Psychology Test

This file is part of Timex Sinclair Public Domain Library Tape 1007. Download the collection to get this file.
Date: 198x
Type: Program
Platform(s): TS 1000

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.

  1. Introduction (100–172): Multi-line PRINT statements explain the test; INPUT Z$ waits for Enter.
  2. Test 1 (180–270): Diamond/cross shape via TAB; INPUT A (1 or 2).
  3. Test 2 (276–438): Rectangle border with diagonal lines using TAB; INPUT B$ (“Y”/”N”) converted to B=1/0.
  4. Test 3 (442–556): Staircase shape; INPUT C$ converted to C=1/0.
  5. Test 4 (560–640): Partial staircase; INPUT D (1 or 2).
  6. Test 5 (646–692): Two parallel vertical lines of commas; INPUT E (numeric).
  7. 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=0
  • IF 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:

VariableConditionVerdict
AA=1Self-centered / selfish
AA≠1Not self-centered
BB=1Social-minded
BB=0Prefers solitude
CC=1Conformist
CC≠1Non-conformist
DD=2Mechanical-minded
DD≠2Concerned for living things
EE≤3Very weak sex drive
EE≤6Medium low sex drive
EE≤10Medium high sex drive
EE>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 STOP at 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.

Appears On

Tape 1007 of the Timex Sinclair Public Domain Library. Assembled by Tim Ward from many sources.

Image Gallery

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
 1000 PRINT "YOUR SEX DRIVE IS MEDIUM LOW.   YOU DONT ";
 1010 PRINT "MIND BEING WITH MEMBERSOF THE OPPOSITE SEX, ";
 1020 PRINT "BUT YOU    DONT PREFER IT EITHER."
 1022 GOTO 1050
 1030 PRINT "YOU HAVE A MEDIUM HIGH SEX DRIVE, AND YOU ";
 1040 PRINT "ENJOY BEING WITH      MEMBERS OF THE OPPOSITE SEX."
 1050 PRINT 
 1060 PRINT "THIS IS THE END OF YOUR         PSYCHO-ANALYSIS."
 1070 STOP 
 1080 CLEAR 
 1090 SAVE "1032%6"
 1100 RUN 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.