1 REM Isotopes
2 REM By J.Fox-Geen 3 REM 10 RANDOMIZE TIME 20 FOR a=5 TO 11:POKE &A400+a,INT((RND*100)*2):NEXT 30 GOSUB 450 40 REM Title Screen 50 PEN 3:PAPER 2 60 LOCATE 13,7:PRINT "---------------" 70 LOCATE 13,8 80 PRINT "I S O T O P E S" 90 LOCATE 13,9:PRINT "---------------" 100 LOCATE 28,11:PEN 3:PAPER 1 110 PRINT "By J.Fox-Geen" 120 WINDOW #1,10,31,16,22 130 PAPER #1,1:CLS #1:PEN #1,2 140 WINDOW SWAP 0,1 150 LOCATE 1,2:PRINT "1....Play Isotopes" 160 LOCATE 1,4:PRINT "2....Instructions" 170 LOCATE 1,6:PRINT "3....Change Speed" 180 IF INKEY(64)=0 THEN GOTO 220 190 IF INKEY(65)=0 THEN GOTO 870 200 IF INKEY(57)=0 THEN CLS:INPUT "New Speed (0-500):",sp%:IF sp%<0 OR sp%>500 THEN GOTO 40 ELSE GOTO 220 210 GOTO 180 220 MODE 1 230 sc%=0:d%=1:se%=3 240 x%=16:y%=17:POKE nxc%,x%:POKE nyc%,y% 250 POKE dir%,d%:POKE seg%,se%:CALL &92C2 260 GOSUB 640 270 REM Main Loop 280 SOUND 2+128,300,5,10,0,0,30 290 i%=PEEK(chk%) 300 IF i%=1 THEN GOTO 760 310 IF i%=2 THEN sc%=sc%+10:se%=se%+1:POKE seg%,se%:LOCATE 7,1:PRINT USING "#####";sc%:SOUND 1+128,50,0,1,1 320 IF se%=250 THEN GOTO 1010 330 IF INKEY(28)=0 THEN d%=1 340 IF INKEY(30)=0 THEN d%=2 350 IF INKEY(71)=0 THEN d%=3 360 IF INKEY(63)=0 THEN d%=4 370 IF d%=1 THEN y%=y%-1 380 IF d%=2 THEN y%=y%+1 390 IF d%=3 THEN x%=x%-1 400 IF d%=4 THEN x%=x%+1 410 IF y%=2 OR y%=24 OR x%=0 OR x%=39 THEN GOTO 760 420 IF i%=3 THEN GOTO 760 430 POKE dir%,d%:POKE nxc%,x%:POKE nyc%,y% 440 CALL &9000:FOR i%=1 TO sp%:NEXT:GOTO 270 450 REM Initialise 460 addr=&A400 470 hi%=0:se%=3:sp%=100 480 ENV 1,7,2,2,2,0,2,15,-1,3 490 ENV 2,7,2,3,20,0,5,15,-1,20 500 ENT 1,10,3,3,10,-4,3,10,5,3,10,-6,3 510 seg%=addr 520 nxc%=addr+1 530 nyc%=addr+2 540 dir%=addr+3 550 chk%=addr+4 560 MODE 1 570 MEMORY &8FFF 580 SYMBOL 255,255,255,255,255,255,255,255,255 590 FOR I%=0 TO 3:READ A:INK I%,A:NEXT 600 DATA 0,14,6,24 610 PRINT "Please wait....":GOSUB 1780 620 FOR i%=&93E2 TO &9400:POKE i%,16:NEXT 630 CLS:BORDER 1:RETURN 640 PEN 2:PAPER 0:CLS 650 LOCATE 1,3:PRINT STRING$(40,255); 660 FOR i%=3 TO 25 670 LOCATE 1,i%:PRINT CHR$(255); 680 LOCATE 40,i%:PRINT CHR$(255); 690 NEXT 700 LOCATE 1,25:PRINT STRING$(40,255); 710 LOCATE 1,1:PRINT "SCORE:";USING "#####";sc% 720 LOCATE 28,1:PRINT "HISCORE:";USING "#####";hi% 730 LOCATE 16,1:PEN 3:PRINT "ISOTOPES" 740 LOCATE 16,2:PRINT "--------":PEN 2 750 RETURN 760 REM Dead Routine 770 SOUND 2,500,0,1,2,1,31 780 SOUND 4,500,100,10,0,1,25 790 FOR a=1 TO PEEK(seg%):FOR b=1 TO 35:NEXT:CALL &9000:NEXT 800 LOCATE 16,15:PRINT "GAME OVER" 810 LOCATE 9,25:PRINT "Press <SPACE> to continue" 820 IF sc%>hi% THEN hi%=sc%:LOCATE 36,1:PRINT USING "#####";hi%; 830 FOR i%=1 TO 200:NEXT 840 SOUND 4+128,500,0,1,2,1,29 850 WHILE INKEY(47)<>0:WEND 860 CLS:GOTO 40 870 REM Instructions 880 WINDOW SWAP 0,1 890 PAPER 0:CLS:PEN 3:LOCATE 8,2 900 CLS 910 PRINT:PRINT:PRINT "The keys are:" 920 PEN 3 930 LOCATE 14,7:PRINT ";........up" 940 LOCATE 14,9:PRINT "/......down" 950 LOCATE 14,11:PRINT "Z......left" 960 LOCATE 14,13:PRINT "X.....right" 970 PEN 2 980 LOCATE 9,25:PRINT "Press <SPACE> to play" 990 WHILE INKEY(47)<>0:WEND 1000 GOTO 230 1010 REM Completed 1020 CLS 1030 PEN 1 1040 LOCATE 15,3:PRINT "WELL DONE!" 1050 LOCATE 15,4:PRINT "----------" 1060 PEN 2 1070 LOCATE 6,25:PRINT "Press <SPACE> to play again." 1080 i%=1 1090 WHILE INKEY(47)<>0:INK 1,i%:i%=i%+1:FOR o%=1 TO 50:NEXT:IF i%=27 THEN i%=1 1100 WEND 1110 INK 1,14 1120 CLS:GOTO 40 1130 DATA CDDA90CD3E90CD1391CD7090CD7DD 1140 DATA AA90C9F321539143232310FC4E5DE 1150 DATA 234621E29409422310FD7EFBC95BD 1160 DATA F321539143232310FC4E234621465 1170 DATA E29409422310FD77FBC93A01A460B 1180 DATA 573A02A45FD5CD10903204A4D1583 1190 DATA 3E01CD27902100003A00A46F01332 1200 DATA E293092B562100006F01DC9209407 1210 DATA 2B5E3E00CD2790C9CD9B9257FE663 1220 DATA 02F8FE27F27090CD9B925FFE0476C 1230 DATA FA7C90FE18F0D5CD1090D1FE0081D 1240 DATA C03E02D5CD2790D1CD9B92FE07729 1250 DATA FA9790FE0BF29790626BCD5B927CA 1260 DATA C9CD9B92FE05F8FE6EF0CD9B92914 1270 DATA FE02F8FE27F057CD9B92FE04F8858 1280 DATA FE18F05FCD1090FE00C03E03CD69E 1290 DATA 2790626B3E0BCD5B92C9F33A0057D 1300 DATA A42100006F01E293092B477E233C6 1310 DATA 772B2B10F93A00A42100006F01345 1320 DATA DC92092B477E23772B2B10F93A49A 1330 DATA 01A421E293773A02A421DC9277598 1340 DATA FBC93AE293673ADC926F3A03A46D2 1350 DATA CD5B923A00A42100006F01E29349E 1360 DATA 092B562100006F01DC92092B5E31B 1370 DATA 626B3E00CD5B9221E293237E57553 1380 DATA 21DC92237E5F626B3E05CD5B92559 1390 DATA C9280050007800A000C800F000411 1400 DATA 1801400168019001B801E001082F6 1410 DATA 02300258028002A802D002F802386 1420 DATA 2003480370039803C0039B91AB416 1430 DATA 91BB91CB91DB91EB91FB910B9284A 1440 DATA 1B922B923B924B920000000000314 1450 DATA 00000000000000000000000000000 1460 DATA 020406063CC37EE736C6138C01412 1470 DATA 080108138C36C67EE73CC3060641C 1480 DATA 020400000108038C16CE10E310285 1490 DATA E316CE038C01080108130C3786344 1500 DATA 7C807C803786130C0108018830396 1510 DATA C070E0F8E178F170E030C011087AB 1520 DATA 000601088708011F01088F080115F 1530 DATA 1E0108008F408F91FFFF8FFF8F631 1540 DATA 91FF408F008F7003F786F3C8F178A 1550 DATA C9F1CAF3C8F786700310000008647 1560 DATA 01008A0A0515000801000080911C9 1570 DATA 9851A821C041C234C1214851A85CC 1580 DATA 919831C47368D750BC90E8F0B07F4 1590 DATA B0506030C0F5CD1ABCF1E51183752 1600 DATA 91FE00CA719213133DFE00C2695E8 1610 DATA 9206020E08626B5E2356E1C51A414 1620 DATA 77132310FAC1C52B10FDC13E0857C 1630 DATA 84673006C50150C009C10DC5C2555 1640 DATA 7C92C1C93F2105000105A4097E42E 1650 DATA 4F2B7E472B2B2B7E88893205A442A 1660 DATA 2104000105A40906057E23772B226 1670 DATA 2B10F9C921E19401E8032336004D8 1680 DATA 793D4FFEFFC2C892783D47FEFF817 1690 DATA C2C892C9171717171717170000386 1780 m=&9000:f=0 1790 FOR i=1130 TO 1690 STEP 10 1800 READ p$:c=0 1810 FOR o=1 TO 26 STEP 2 1820 b=VAL("&"+MID$(p$,o,2)) 1830 POKE m,b:m=m+1:c=c+b:NEXT 1840 chk$=RIGHT$(p$,3):chk=VAL("&"+chk$) 1850 IF c<>chk THEN PRINT "ERROR IN LINE:"i:f=1 1860 NEXT:IF f=1 THEN END:ELSE RETURN |