M*5: Best Overall

Paul Holmgren got the idea for this program from one that appeared in “Sync” Vol. 3 No. 1 by Ronald Duguid. The program was originally written for the TS1000, which was the machine Paul first owned. After obtaining a TS2068, Paul used UPLOAD 2000 to move it to that machine. The version you have before you now is the result of much work expanding and rewriting it.

The questions are trapped from a direct repeat occurring. Since this is primarily a drill, you might have a question repeat during the quiz, but not twice in a row.

The only draw back is in the timing. If the TS2068 in use has a Z80B microprocessor, then the computation for the first screen needs to be changed.

One of the neat things Paul did during the development of the program was to involve the kids in the expansion of the program. He had his children research the additional questions to expand the quiz from three to four questions for each category.

10 SOUND 8,16;9,16;10,16: LET P=NOT PI: GO TO VAL "1750"
20 REM **** ROUTINES...STARS****
30 FOR N=E TO 230
40 IF INT (RND*S)+1<T THEN LET V$=V$+"*": GO TO 60
50 LET V$=V$+" "
60 PRINT INVERSE E;AT 5,5;17-INT ((PEEK 23672+PEEK 23673*256)/60);" SECONDS ": NEXT N: LET V$=V$+V$
70 FOR N=E TO 14: PRINT AT N+EE; PAPER 5;V$(N*29-28 TO N*29)
80 NEXT N: RETURN
90 REM ****CHANGE STARS****
100 LET N=INT (RND*400)+2
110 LET V$=V$(N+E TO )+V$( TO N): GO TO 70
120 REM ****PRINT SCORE****
130 PRINT AT 20,E;" ";AT 20,6-LEN STR$ SA;SA;"/MPH ";AT 20,12;" ";AT 20,17-LEN STR$ SC;SC;"/MPH ": RETURN
140 REM ****PRINT IDENT****
150 BEEP .1,20: PRINT AT 20,23;"BRIDGE": RETURN
160 BEEP .1,10: PRINT AT 20,23;" M*5 ": RETURN
170 REM ****CLS SCREEN****
180 FOR A=15 TO T STEP -E
190 PRINT AT A,E;C$: NEXT A: RETURN
200 REM ****SCROLL TEXT****
210 FOR N=E TO LEN A$-26: PRINT PAPER 3;AT 9,T;A$( TO 27): BEEP .005,.2: PAUSE 11: LET A$=A$(T TO ): NEXT N: RETURN
220 REM ****BAD INPUT****
230 PRINT AT 9,T; FLASH E;" INPUT UNUSABLE, PLEASE WAIT"
240 PAUSE SR: RETURN
250 REM ****QUESTIONS****
260 PAPER 7: GO SUB 130: GO SUB M5
270 GO SUB 100: PAUSE 90: PAPER 5: PRINT AT PI,T;"NAME THE PLANET THAT:";AT 4,T;
280 LET QR=INT (RND*36)+E
290 IF QR=K THEN GO TO 280
300 LET K=QR
310 LET Q$="MERCURY"
320 IF QR>4 THEN LET Q$="VENUS"
330 IF QR>8 THEN LET Q$="EARTH"
340 IF QR>12 THEN LET Q$="MARS"
350 IF QR>16 THEN LET Q$="JUPITER"
360 IF QR>20 THEN LET Q$="SATURN"
370 IF QR>24 THEN LET Q$="URANUS"
380 IF QR>28 THEN LET Q$="NEPTUNE"
390 IF QR>32 THEN LET Q$="PLUTO"
400 GO TO VAL "380+QR*30"
410 PRINT "IS 1ST";S$
430 GO TO AS
450 PRINT L$;"88 DAYS"
460 GO TO AS
470 PRINT "HAS A SURFACE TEMPERATURE OF"
480 PRINT AT 5,T;"430 DEG. C ON THE DAY SIDE";AT 6,T;"-170 C ON THE NIGHT SIDE"
490 GO TO AS
500 PRINT "HAS THE LONGEST DAY"
520 GO TO AS
540 PRINT "IS 2ND";S$
550 GO TO AS
560 PRINT "IS COVERED WITH THICK CLOUDS";AT 5,T;"OF SULFURIC ACID"
580 GO TO AS
590 PRINT L$;"255 DAYS"
610 GO TO AS
620 PRINT "WAS NAMED FOR A GREEK";AT 5,T;"GODDESS"
640 GO TO AS
650 PRINT "IS 3RD";S$
670 GO TO AS
680 PRINT "IS THE ONLY PLANET KNOWN TO ";AT 5,T;"SUPPORT LIFE"
700 GO TO AS
710 PRINT "IS 149,600,000 KM FROM THE";AT 5,T;"SUN. (APPROX. 93 MILLION";AT 6,T;"MILES)"
730 GO TO AS
740 PRINT L$;"365 DAYS"
760 GO TO AS
770 PRINT "IS 4TH";S$
790 GO TO AS
800 PRINT "IS KNOWN AS THE ""RED PLANET"""
820 GO TO AS
830 PRINT "HAS A VARIABLE SURFACE";AT 5,T;"TEMPERATURE AVERAGING -50";AT 6,T;"DEG. C"
850 GO TO AS
860 PRINT "HAS CANALS "
880 GO TO AS
900 PRINT "IS 5TH";S$
910 GO TO AS
930 PRINT L$;"11.86 YEARS"
940 GO TO AS
950 PRINT F$;" EUROPA "
970 GO TO AS
980 PRINT "HAS A RED SPOT"
1000 GO TO AS
1010 PRINT "IS 6TH";S$
1030 GO TO AS
1040 PRINT "IS THE 2ND LARGEST PLANET IN";AT 5,T;"OUR SOLAR SYSTEM"
1060 GO TO AS
1070 PRINT "HAS 7 MAJOR RINGS"
1090 GO TO AS
1100 PRINT F$;"TITAN"
1120 GO TO AS
1130 PRINT "IS 7TH";S$
1150 GO TO AS
1160 PRINT "HAS 9 MAJOR RINGS"
1180 GO TO AS
1190 PRINT "HAS A TEMPERATURE OF -215";AT 5,T;"DEG. C AT THE CLOUD TOPS"
1210 GO TO AS
1220 PRINT L$;"84 YEARS"
1240 GO TO AS
1250 PRINT "IS 8TH";S$
1270 GO TO AS
1280 PRINT F$;" TRITON "
1300 GO TO AS
1320 PRINT L$;"165 YEARS"
1330 GO TO AS
1340 PRINT "IS THE 4TH LARGEST"
1360 GO TO AS
1370 PRINT "IS 9TH";S$
1390 GO TO AS
1400 PRINT "IS THE COLDEST"
1420 GO TO AS
1430 PRINT L$;"248 YEARS"
1450 GO TO AS
1470 PRINT F$;" CHARON "
1490 PAPER 7: GO SUB CR
1500 INPUT " INPUT DATA ";B$
1510 PAPER 5: PRINT AT 8,6;"CREW'S ANSWER-:";B$;AT 5,T;"CORRECT ANSWER-:";Q$: PAPER 7
1520 IF B$<>Q$ THEN GO TO 1540
1530 LET SA=SA-TH*T: GO SUB 130
1540 IF SA<=TH*T AND SC>TH THEN GO TO 1590
1550 LET SC=SC-TH: GO SUB 130
1560 PAUSE SR
1570 IF SC<=TH THEN GO TO 1640
1580 IF SC>TH THEN GO TO 260
1590 PRINT AT 20,23;"DOCKING"
1600 PAUSE SR: GO SUB 170
1610 REM ****LANDING****
1620 PRINT AT PI,T;"***CONGRATULATIONS***";AT 4,T;"YOU HAVE SURVIVED THE";AT 5,T;"CRISIS. PREPARE FOR A SAFE";AT 6,T;"LANDING AT MOON BASE 2 AND ";AT 7,T;"ENJOY YOUR STAY"
1630 PAUSE TH: GO TO 2150
1640 REM ****ALL-OVER****
1650 GO SUB 170
1660 PRINT AT T+R,T;"ALL HOPE IS LOST NO ONE CAN";AT 6,T;"HELP US NOW";AT S-T,T;"DISASTER PROCEEDINGS"
1670 PRINT INK 2;AT S-T,24; FLASH E;"NOW";AT PI,R+T;"DANGER"; FLASH NOT PI;TAB 21; FLASH E; INVERSE E;"DANGER"
1680 FOR N=E TO 20
1690 BEEP .15,10: BEEP .15,20: NEXT N
1700 PRINT AT 14,S+R; FLASH E;"CRASH"
1710 SOUND 8,16;9,16;10,16;6,25;13,0;12,70;7,7: PAUSE 180
1730 GO TO 2150
1740 REM ****SETUP****
1750 POKE 23609,10: POKE 23658,8: DIM C$(29): READ M5,CR,SR,E,T,S,TH,F$,L$,S$,R,SA,SC,K,AS
1760 DATA VAL "160",VAL "150",VAL "210",SGN PI,VAL "2",VAL "10",VAL "1000","has a moon named ","has a orbit of "," in line from the sun",INT PI,VAL "18e3",sa,NOT PI,VAL "1490"
1770 CLS : REM ****PLOT SCREEN$****
1780 PRINT '"▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
1790 FOR A=E TO 14
1800 PRINT "▒"; PAPER NOT PI;C$;: PRINT "▒": NEXT A
1810 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
1820 PRINT TAB 5;"MAIN SCREEN"'" SPEED(ACT) SPEED(CAL) CONTROL"
1830 PLOT 4,20: DRAW 236,NOT PI: DRAW NOT PI,-16: DRAW -236,NOT PI: DRAW NOT PI,16: PLOT 92,20: DRAW NOT PI,-16: PLOT 180,4: DRAW NOT PI,16
1840 IF P THEN GO TO 260
1850 PRINT AT 20,E;"WARP-DRIVE";AT 20,S+T;"WARP-DRIVE": GO SUB M5
1860 PRINT AT PI,T; INVERSE E;"M*5 HERE-PREPARE TO LEAVE";AT 4,T;"WARP-DRIVE. NORMAL SPACE";AT 5,T;"IN "
1870 LET V$="": POKE 23672,NOT PI: POKE 23673,NOT PI: GO SUB 20
1880 PAUSE VAL "333"
1890 LET a$=C$+"M*5 HERE-WE HAVE EMERGED FROM WARP-DRIVE AND ARE NOW MOVING AT SUB-LIGHT SPEED; 18000/MPH. WE ARE NEARING OUR SOLAR SYSTEM."
1900 LET A$=A$+" I WILL CONTROL THE SHIP'S DEACCELERATION TO DOCKING APPROACH FOR MOON BASE 2."
1910 GO SUB 130: GO SUB M5
1920 LET A$=A$+" I WILL DISENGAGE AT 2000/MPH TO LET THE DOCKING COMPUTER HAVE CONTROL OF OUR SHIP. OUR ETA IS--AWRK↑MARY HAD A??1+1=3//BLRUP SORRY ABOUT THAT!"
1930 GO SUB SR
1940 PAUSE SR: GO SUB CR
1950 LET A$=C$+"CAPTIAN HOOK HERE, SCIENCE OFFICER SPECK REPORTS A CHECK OF YOUR TROUBLE SHOWS MAJOR DATA LOSS ABOUT OUR SOLAR SYSTEM. YOU NEED ALL DATA RE-INPUTTED"
1960 GO SUB SR
1970 PAUSE SR: GO SUB M5
1980 LET A$=C$+"CAN THE CREW HELP ME? "
1990 GO SUB SR
2000 PAUSE SR: GO SUB CR
2010 LET A$=C$+"OF COURSE, WE CAN, AND IF THE ANSWERS ARE CORRECT YOU CAN CONTROL THE SHIP."
2020 GO SUB SR
2030 PAUSE SR: GO SUB M5
2040 LET A$=C$+"THANK YOU CAPTIAN, WITH EACH CORRECT ANSWER I CAN REDUCE SHIP'S SPEED BY 2000 MPH. WE MUST REDUCE SHIP'S SPEED TO 2000 MPH BEFORE THE CALCULATED SPEED REACHES 1000 MPH OR WE WILL CRASH."
2050 LET A$=A$+" QUESTIONS ARE ANSWERED BY ENTERING A PLANET NAME."
2060 GO SUB SR
2070 PAUSE SR: LET A$=C$+"IS THE CREW READY? (Y OR N)"
2080 GO SUB SR
2090 GO SUB CR
2100 INPUT B$: IF B$="" THEN GO TO 2130
2110 IF B$(E)="Y" THEN GO TO 260
2120 IF B$(E)="N" THEN GO TO 1640
2130 GO SUB 220: GO TO 2070
2140 GO SUB 170: REM ****REPLAY****
2150 INPUT "Do you wish to play again (Y/N)?";A$
2160 IF A$(E)="Y" THEN LET P=E: RESTORE : GO TO 1750
2170 IF A$(E)="N" THEN CLS : PRINT AT S+T,S+T;"GOODBY": PAUSE 120: NEW
2180 GO SUB 220: GO TO 2150
2190 SAVE "M*5" LINE PI

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