A joke computer dating service. It opens on a screen of scrolling hearts with a two-tone tune and “YOUR IDEAL COMPUTER DATE”, then fills in a boxed questionnaire as you answer: name, sex (male, female or other, ticked in UDG boxes), age and eye colour. Ages under 12 and over 70 get a quip, and any eye colour other than blue, green, hazel or brown marks the subject as “extremely bizzare”. Men are matched with a random name from 28 famous and cartoon women such as Mary Poppins, and women with one of 30 men such as Darth Vader, shown flashing with a run of beeps. Answering “other” notes that the subject is a smart-aleck and ends with a red screen saying nothing in the memory bank fits your type.
The REM lines read “computer dating” and “by John Riley”.
Program Analysis
Structure
- Lines 30–100: the main loop. It POKEs the UDGs (line 840), shows the opening screen (700), asks the questions (430), picks a match, thanks you and starts again.
- Lines 110–230: the red screen for “other”, filled cell by cell with a beep per row and followed by 100 random beeps.
- Lines 240–320 and 330–420: the two matching routines, each holding its list of names in DATA.
- Lines 430–690: the questionnaire, drawn with
PLOTandDRAW.
Picking a Match
Each matching routine does RESTORE to its DATA line and reads a random number of names, from 1 to the length of its list, keeping the last one read. The name is printed with FLASH 1 and roughly centred with AT 12,(14-(LEN w$/2)). The heading reads “You’re Ideal Computer Date Is:”, and the lists spell some names as Napolean, Carol Burnette, Miss Piggie and Little Miss Muffitt.
Notable Techniques
- Five UDGs are POKEd from DATA. Four make the two halves of a heart, top and bottom, and the fifth is the tick box. The DATA uses
u, the variable being read, to repeat the previous value. - The opening screen prints a 64-character string of heart halves eleven times to fill the screen, and repeats it ten times with a
CLSbetween, so the hearts appear to flicker. - Line 800 crosses its loops (
NEXT s: NEXT tforFOR sthenFOR t). Rather than an error, this gives a rising scale over a fixed note and then a falling one; it may not be the tune that was intended.
Potential Issues
- Answers are compared exactly and in lower case. A sex typed as “Male” or “M” matches none of the three choices, so no date is offered and the program goes straight to “Thank you for your patronage”. “Blue” with a capital is flagged as a bizarre eye colour.
This program came from an Oliger (JLO SAFE) disk in the SNUG library set and was converted to load from tape: the Oliger slash was removed from SAVE / in line 940. It was tested in ZEsarUX on a stock TS2068 through the opening screen and a match.
Source Code
10 REM computer dating
20 REM by John Riley
30 GO SUB 840
40 GO SUB 700
50 GO SUB 430
60 IF s$="other" THEN GO SUB 110
70 IF s$="male" THEN GO SUB 330
80 IF s$="female" THEN GO SUB 240
90 CLS : PRINT AT 10,1;"Thank you for your patronage. Come back and try again"," sometime."
100 PAUSE 200: CLS : GO TO 40
110 REM weird response
120 CLS : BORDER 2
130 FOR x=0 TO 21
140 FOR y=0 TO 31
150 PRINT PAPER 2;AT x,y;"::"
160 NEXT y
170 BEEP .03,3: NEXT x
180 PRINT AT 12,2;"SORRY, NOTHING IN MY MEMORY";AT 13,2;"BANK SEEMS TO FIT YOUR TYPE"
190 FOR b=1 TO 100
200 BEEP (RND*.05),(RND*1)
210 NEXT b
220 PAUSE 500
230 RETURN
240 RESTORE 260: CLS : FOR a=1 TO INT (RND*30)+1
250 READ w$: NEXT a
260 DATA "Peter Pan","Jabba the Hutt","Attila the Hun","Groucho Marx","Elmer Fudd","The Hunchback of Notre Dame","Mister Rogers","King Kong","Captain Kangaroo","Hagar the Horrible","Godzilla","Jack the Ripper","Boy George","Levi Strauss","Napolean Bonaparte","Robinson Crusoe","Thor, God of Thunder","See-Threepio","The Elephant Man","Yosemite Sam","Xerox Snorge","Mr. T","Mr. Spock","Mohammed Ali","Darth Vader","Truman Capote","E.T.","Buster Brown","Little Boy Blue","Ronald Reagan"
270 BORDER 6: PAPER 6
280 PRINT AT 10,1;"You're Ideal Computer Date Is:"
290 FOR s=1 TO 69 STEP 2
300 BEEP .01,s: NEXT s
310 PRINT AT 12,(14-(LEN w$/2)); FLASH 1;w$
320 PAUSE 300: CLS : RETURN
330 RESTORE 360: CLS
340 FOR a=1 TO INT (RND*28)+1
350 READ w$: NEXT a
360 DATA "Mary Poppins","Grandma Moses","Minnie Mouse","Carol Burnette","Olive Oyl","The Flying Nun","The Bride of Frankenstein","Broom Hilda","Miss Piggie","Sarah Sota","Mother Goose","Florence Nightingale","Tinkerbell","Betsy Ross","Lucretia Borgia","Little Miss Muffitt","Flutie Mae Shagnastie","Mrs. Butterworth","Raggedy Ann","Strawberry Shortcake","Marie Antoinette","Lizzie Borden","Rebecca of Sunnybrook Farm","Annie Oakley","Little Orphan Annie","Phyllis Diller","Smurfette","Lottie Moon"
370 BORDER 6: PAPER 6
380 PRINT AT 10,1;"You're Ideal Computer Date Is:"
390 FOR s=69 TO -10 STEP -2
400 BEEP .01,s: NEXT s
410 PRINT AT 12,(14-(LEN w$/2)); FLASH 1;w$
420 PAUSE 500: CLS : RETURN
430 REM questionnaire
440 BORDER 7: PAPER 7: INK 0: CLS
450 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
460 PLOT 0,159: DRAW 255,0: PLOT 0,87: DRAW 255,0
470 PRINT AT 1,1;"Name:"
480 INPUT "What is your name?";n$: BEEP 1,0
490 PRINT AT 1,8;n$: BEEP 1,50
500 PRINT " VITAL STATISTICS"
510 PRINT '" SEX emale efemale eother": BEEP 1,0
520 INPUT "What is your sex? ";s$
530 OVER 1: LET n=7: IF s$="male" THEN PRINT AT 4,n;"X": BEEP 1,40
540 IF s$="female" THEN PRINT AT 4,n+8;"X": BEEP 1,5
550 IF s$="other" THEN PRINT AT 4,n+18;"X";AT 12,1;"NOTE: subject is a smart-aleck": BEEP 1,-40
560 INPUT "What is your age?";a: BEEP 1,0
570 PRINT AT 6,1;"AGE: ";a: BEEP 1,30
580 IF a<12 THEN PRINT AT 6,10;"Aren't you a little young for this?"
590 IF a>70 THEN PRINT AT 6,10;"Aren't you a little old for this?"
600 INPUT "What is your eye color?";e$: BEEP 1,0
610 PRINT AT 8,1;"EYE COLOR: ";e$: BEEP 1,20
620 LET b$="blue": LET g$="green": LET h$="hazel": LET r$="brown"
630 IF e$=g$ THEN GO TO 690
640 IF e$=b$ THEN GO TO 690
650 IF e$=h$ THEN GO TO 690
660 IF e$=r$ THEN GO TO 690
670 PRINT AT 14,1;"NOTE: Subject is extremely"," bizzare when answering"," questions": BEEP 1,-40
680 PAUSE 200: CLS
690 RETURN
700 REM opening SCREEN$
710 BORDER 5: PAPER 5: INK 2
720 FOR z=1 TO 10
730 FOR a=1 TO 11
740 BEEP .01,20
750 PRINT "ab ab ab ab ab ab ab ab ab ab abcd cd cd cd cd cd cd cd cd cd cd"
760 NEXT a: BEEP .5,-20: IF z<10 THEN CLS : NEXT z
770 PRINT AT 10,4; INK 1; OVER 0; BRIGHT 1;"YOUR IDEAL COMPUTER DATE"
780 FOR s=0 TO 30 STEP 2
790 FOR t=0 TO -30 STEP -2
800 BEEP .01,s: BEEP .01,t: NEXT s: NEXT t
810 PRINT AT 12,5; OVER 0; FLASH 0; BRIGHT 0;"PRESS ANY KEY TO START"
820 IF INKEY$="" THEN GO TO 820
830 CLS : RETURN
840 RESTORE 880
850 FOR m=USR "a" TO USR "e"+7
860 READ u: POKE m,u
870 NEXT m: RETURN
880 DATA 28,62,127,255,u,u,u,u
890 DATA 56,124,254,255,u,u,u,u
900 DATA 127,63,31,15,7,3,1,0
910 DATA 254,252,248,240,224,192,128,0
920 DATA 255,129,u,u,u,u,u,255
930 STOP
940 SAVE /"date" LINE 10Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

