This program implements a five-question pseudo-psychology test that presents abstract ASCII designs and asks the user to interpret them, then delivers a “psycho-analysis” based on the answers. Each test displays a simple ASCII pattern — a diamond cross, a bordered rectangle with diagonal lines, a staircase shape, a partial staircase, and two vertical parallel lines — using TAB positioning and FOR/NEXT delay loops. Answers are collected as numeric choices or Y/N strings, converted to numeric flags, and evaluated with a series of IF/GOTO branches to print one of two or more personality verdicts for each trait. The fifth question scores a self-reported line-crossing count against four thresholds to produce a tiered result.
Program Analysis
Program Structure
The program is divided into three broad phases: an introduction (lines 100–172), five sequential test screens (lines 175–692), and a results/analysis section (lines 694–1070). Each test clears the screen, draws an ASCII graphic, pauses briefly, then solicits one answer before moving to the next test.
- Introduction (100–172): Multi-line PRINT statements explain the test; INPUT Z$ waits for Enter.
- Test 1 (180–270): Diamond/cross shape via TAB; INPUT A (1 or 2).
- Test 2 (276–438): Rectangle border with diagonal lines using TAB; INPUT B$ (“Y”/”N”) converted to B=1/0.
- Test 3 (442–556): Staircase shape; INPUT C$ converted to C=1/0.
- Test 4 (560–640): Partial staircase; INPUT D (1 or 2).
- Test 5 (646–692): Two parallel vertical lines of commas; INPUT E (numeric).
- Analysis (694–1070): IF/GOTO chain evaluates A, B, C, D, E and PRINTs trait verdicts.
ASCII Graphics Technique
All five test designs are rendered entirely with PRINT and TAB. Test 1 uses TAB 15 and TAB 14 to centre a small X cross. Test 2 combines a full-width asterisk border (PRINT "********************************") with diagonal X characters positioned symmetrically using two TAB values per line, creating a parallelogram effect inside the border. Tests 3 and 4 use repeated comma characters and dash strings to form descending staircase shapes. Test 5 prints ten rows of ", ," to suggest two parallel vertical lines.
Delay Loops
Each test uses a software delay loop of the form FOR P=1 TO 350 : NEXT P (lines 204–206, 402–404, 512–514, 608–609, 672–674) to pause briefly after drawing the graphic before printing the question. A shorter loop of 250 iterations is used at line 710–712 for the “stand by” delay. These are busy-wait loops with no PAUSE statement, which was a common technique on machines without a convenient timed-pause instruction in BASIC.
Input Handling and Variable Conversion
Tests 2 and 3 accept string inputs (B$ and C$) and immediately convert them to integer flags with paired IF statements:
IF B$="Y" THEN LET B=1/IF B$="N" THEN LET B=0IF C$="Y" THEN LET C=1/IF C$="N" THEN LET C=0
This conversion allows the analysis section to use straightforward numeric comparisons. Tests 1 and 4 collect numeric values directly into A and D. Test 5 collects a count into E.
Analysis Logic
The analysis (lines 720–1060) is a linear IF/GOTO chain. Each trait is evaluated independently; there is no scoring accumulation. The branching pattern is:
| Variable | Condition | Verdict |
|---|---|---|
| A | A=1 | Self-centered / selfish |
| A | A≠1 | Not self-centered |
| B | B=1 | Social-minded |
| B | B=0 | Prefers solitude |
| C | C=1 | Conformist |
| C | C≠1 | Non-conformist |
| D | D=2 | Mechanical-minded |
| D | D≠2 | Concerned for living things |
| E | E≤3 | Very weak sex drive |
| E | E≤6 | Medium low sex drive |
| E | E≤10 | Medium high sex drive |
| E | E>10 | “Very, very strong” (falls through) |
The E thresholds are evaluated in ascending order at lines 940–944, with fall-through to line 950 for values above 10.
Bugs and Anomalies
- No input validation: If the user enters a value other than 1 or 2 for A or D, or something other than Y/N for B$/C$, the program may print no verdict for that trait or behave unexpectedly. For B$ and C$, the flags B and C will remain at their default value of 0.
- String spacing in PRINT: Several PRINT statements concatenate strings with deliberate extra spaces inside the literals to force line-wrapping at desired points (e.g.,
"THERE ARE FIVE SHORT TEST. EACH TEST WILL BE SOME"continuing onto the next PRINT). This was a common technique to control text flow on a 32-column display. - Spelling errors: “COMPLEAT” (line 700), “SENCE” (line 740), “VARY” for “very” (lines 950, 970), “OPPOSIT” (line 980), and “DONT” without apostrophe appear throughout. These are original to the program.
- Lines 1080–1100: After
STOPat line 1070, lines 1080 (CLEAR), 1090 (SAVE "1032%6"), and 1100 (RUN) are unreachable during normal execution and appear to be utility/maintenance lines left in the listing.
Content
Source Code
100 CLS
110 PRINT "THIS IS A PSYCHOLOGY TEST."
115 PRINT
120 PRINT "THERE ARE FIVE SHORT TEST. EACH TEST WILL BE SOME";
130 PRINT " DESIGN. YOU ARE TO MAKE A PICTURE OUT OF THEDESIGN.";
140 PRINT " AFTER YOU DRAW THE PICTURE, YOU WILL ANSWER A QUESTION";
150 PRINT " ON WHAT YOU DREW. AFTERTHE FIVE TESTS ARE OVER,";
160 PRINT " THE COMPUTER WILL MAKE AN ANALYSIS OF YOU."
165 PRINT
166 PRINT
170 PRINT "HIT -ENTER- TO BEGIN..."
172 INPUT Z$
175 CLS
180 PRINT "TEST NO.1"
185 PRINT
190 PRINT TAB 15;"X";TAB 14;"XXX";TAB 14;"XXX";
200 PRINT TAB 15;"X"
201 PRINT
202 PRINT
204 FOR P=1 TO 350
206 NEXT P
210 PRINT "-------------------------------"
212 PRINT
230 PRINT "THE DOT IN THE MIDDLE OF THE TEST BLOCK";
240 PRINT " REPRESENTS IN YOUR PICTURE..."
245 PRINT
250 PRINT "(1) THE CENTRAL SUBJECT"
255 PRINT
260 PRINT "(2) THE RIGHT OR LEFT OF THE SUBJECT"
270 INPUT A
272 CLS
274 PRINT
276 PRINT "TEST NO.2"
278 PRINT
280 PRINT "********************************"
290 PRINT TAB 5;"X";TAB 26;"X"
300 PRINT TAB 4;"X";TAB 27;"X"
310 PRINT TAB 3;"X";TAB 28;"X"
320 PRINT TAB 2;"X";TAB 29;"X"
325 PRINT
340 PRINT
360 PRINT TAB 2;"X";TAB 29;"X"
370 PRINT TAB 3;"X";TAB 28;"X"
380 PRINT TAB 4;"X";TAB 27;"X"
390 PRINT TAB 5;"X";TAB 26;"X"
400 PRINT "********************************"
402 FOR P=1 TO 350
404 NEXT P
410 PRINT
420 PRINT "IN YOUR PICTURE ARE THE FOUR CORNERS CONNECTED ?"
430 PRINT
432 PRINT "PRESS Y (YES) OR N (NO)"
434 INPUT B$
436 IF B$="Y" THEN LET B=1
438 IF B$="N" THEN LET B=0
440 CLS
442 PRINT
444 PRINT "TEST NO.3"
450 PRINT
460 FOR I=1 TO 4
462 PRINT TAB 29;","
464 NEXT I
472 PRINT TAB 25;"----"
480 FOR I=1 TO 4
482 PRINT TAB 24;","
484 NEXT I
490 PRINT TAB 20;"----"
500 FOR I=1 TO 4
502 PRINT TAB 19;","
504 NEXT I
510 PRINT TAB 15;"----"
512 FOR P=1 TO 350
514 NEXT P
540 PRINT "IN YOUR PICTURE DOES THE DESIGN REPRESENT STAIRS ?"
545 PRINT
550 PRINT "PRESS Y (YES) OR N (NO)"
552 INPUT C$
554 IF C$="Y" THEN LET C=1
556 IF C$="N" THEN LET C=0
560 CLS
562 PRINT
564 PRINT "TEST NO.4"
566 PRINT
580 FOR I=1 TO 5
582 PRINT TAB 29;","
584 NEXT I
590 PRINT TAB 25;"----"
600 FOR I=1 TO 4
602 PRINT TAB 24;","
604 NEXT I
606 PRINT
608 FOR P=1 TO 350
609 NEXT P
620 PRINT "THE SUBJECT OF YOUR PICTURE IS.."
622 PRINT
630 PRINT "(1) AN ANIMAL OR PERSON"
632 PRINT
634 PRINT "(2) SOMETHING MECHANICAL"
640 INPUT D
642 CLS
644 PRINT
646 PRINT "TEST NO.5"
650 PRINT
660 FOR I=1 TO 10
662 PRINT TAB 13;", ,"
664 NEXT I
670 PRINT
672 FOR P=1 TO 350
674 NEXT P
680 PRINT "HOW MANY TIMES IN YOUR PICTURE DID YOU DRAW A LINE WHICH";
690 PRINT " CROSSED BOTH PARALLEL LINES"
692 INPUT E
694 CLS
696 PRINT
700 PRINT TAB 8;"TEST COMPLEAT"
705 PRINT AT 11,9;"**STAND BY**"
710 FOR I=1 TO 250
712 NEXT I
714 CLS
716 PRINT AT 1,9;"PSYCHO ANALYSIS"
718 PRINT
720 IF A=1 THEN GOTO 750
730 PRINT "YOU ARE NOT SELF-CENTERED, AND HAVE A ";
740 PRINT "GOOD SENCE OF DESIGN."
742 PRINT
744 GOTO 760
750 PRINT "YOU ARE SELF-CENTERED,AND HAVE SELFISH TENDENCIES."
760 IF B=0 THEN GOTO 790
770 PRINT "YOU ENJOY PEOPLES COMPANY, AND ARE SOCIAL-MINDED."
780 GOTO 820
790 PRINT "YOU PREFER TO BE ALONE AT TIMES,AND ARE NOT A PARTY TYPE."
820 IF C=1 THEN GOTO 860
830 PRINT "YOU ARE A NON-CONFORMIST, AND ENJOY DOING THINGS";
840 PRINT " BECAUSE YOU LIKE THEM, NOT BECAUSE YOU ARE";
850 PRINT " INFLUENCED BY OTHERS."
852 GOTO 870
860 PRINT "YOU ARE A CONFORMIST, AND YOU FOLLOW THE CROWD."
870 PRINT
880 IF D=2 THEN GOTO 910
890 PRINT "YOU ARE NOT MECHANICAL-MINDED, BUT YOU ARE ";
900 PRINT "CONCERNED FOR OTHER LIVING THINGS."
902 GOTO 930
910 PRINT "YOU ARE MECHANICAL MINDED, AND ENJOY WORKING ";
920 PRINT "WITH INANIMATE OBJECTS."
930 PRINT
940 IF E<=3 THEN GOTO 970
942 IF E<=6 THEN GOTO 1000
944 IF E<=10 THEN GOTO 1030
950 PRINT "***WOW*** YOUR SEX DRIVE IS VARY,VARY, STRONG...";
960 PRINT "THEY BETTER KEEPYOU IN A CAGE."
962 GOTO 1050
970 PRINT "YOU HAVE A VARY WEAK SEX DRIVE, AND YOU PROBABLY ";
980 PRINT "DONT ENJOY THE COMPANY OF MEMBERS OF THE OPPOSIT SEX."
990 GOTO 1050
\n1000 PRINT "YOUR SEX DRIVE IS MEDIUM LOW. YOU DONT ";
\n1010 PRINT "MIND BEING WITH MEMBERSOF THE OPPOSITE SEX, ";
\n1020 PRINT "BUT YOU DONT PREFER IT EITHER."
\n1022 GOTO 1050
\n1030 PRINT "YOU HAVE A MEDIUM HIGH SEX DRIVE, AND YOU ";
\n1040 PRINT "ENJOY BEING WITH MEMBERS OF THE OPPOSITE SEX."
\n1050 PRINT
\n1060 PRINT "THIS IS THE END OF YOUR PSYCHO-ANALYSIS."
\n1070 STOP
\n1080 CLEAR
\n1090 SAVE "1032%6"
\n1100 RUN
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
