8-Bit Software Online Conversion
:0.$.C2OR - Listing
10ONERRORPROCerror
20DIM lt 12:!lt=&04030201:lt!4=&08070
605:lt!8=&12111009
30*TV250
40MODE2:VDU23;8202;0;0;0;:?&FE00=6:?&
FE01=20:wh%=&B0D:lev%=&AF6:sp%=&AF7:np%=
&AFF:sc%=&AAF:up%=&AB2:ts%=&A00:gs%=&A56
:cs%=&A70:ad%=&AC6:mx%=&83:cls%=&B28:PRO
Cabout`deluxe
50rx=&71CE:sx=&71CF:sy=&71D0:dead=&71
D1:how=&71D2:fin=&71D3:frame=&71D5:dir=&
71D4:baddata=&73E0:badset=&74C5:*LOAD BA
LL
60PROCassemble
70ONERRORPROCerror
80PROCdemos
90?sc%=0:sc%?1=0:sc%?2=0:lv%=0:l%=4:P
ROCcls:PROCstatus:PROCdraw
100?dead=0:?fin=0:?dir=3:?frame=0:A%=0
:X%=?sx:Y%=?sy:CALLgs%:A%=?dir+?frame:CA
LLts%:REPEAT
110TIME=0:OSCLI"FX19":CALL&7100:REPEAT
UNTILTIME>5
120UNTIL?dead=&FF OR ?fin=&FF:A%=0:X%=
?sx:Y%=?sy:CALLts%:IF?dead=&FF:PROCsound
`fx
130IF?dead=&FF AND l%=0:GOTO1420
140IF?dead=&FF:l%=l%-1:A%=lv%:CALLprin
tscreen:TIME=0:REPEATUNTILTIME>20:PROCst
atus:CALLbadset:GOTO100
150IF?fin=&FF AND las%:PROCcompleted:P
ROCcls:GOTO80
160l%=l%+1:FORB%=0TO24*(lv%+1):A%=20:C
ALLad%:SOUND1,-15,255,0.1:TIME=0:REPEATU
NTILTIME>1:NEXT:lv%=lv%+1:A%=60:CALLcls%
:TIME=0:REPEATUNTILTIME>40:PROCcls:PROCs
tatus:PROCdraw:GOTO100
170DEFPROCcls:A%=0:CALLcls%:ENDPROC
180DEFPROCstatus:IFl%<5:n%=l%:ELSE n%=
4
190Y%=18:A%=46:X%=0:CALLts%:A%=4:FORX%
=4 TO (n%*5)+4 STEP 5:CALLts%:NEXT:A%=2:
CALLts%:A%=45:X%=52:CALLts%:CALLup%:X%=3
4:A%=47:CALLts%:?lev%=lv%?lt:CALLsp%:END
PROC
200DEFPROCdraw:IFlv%=11:las%=TRUE:A%=l
v%:CALLprintscreen:ELSE las%=FALSE:A%=lv
%:CALLprintscreen
210RESTORE(lv%*60)+710
220FORL%=0TO19:READv%:L%?baddata=v%:NE
XT:CALLbadset:ENDPROC
230DEFPROCsound`fx
240IF ?how=0:FORB%=100TO120STEP2:SOUND
1,-15,B%,0.009:NEXT:FORB%=120TO100STEP-2
:SOUND1,-15,B%,0.009:NEXT
250IF ?how=1:FORB%=50TO60:FORC%=1TO3:S
OUNDC%,-15,B%,0.002:NEXT:NEXT
260IF ?how=2:FORB%=100TO150STEP2:SOUND
1,-15,B%,0.009:NEXT
270IF ?how=3:SOUND0,-15,4,3:A%=8:X%=?s
x:Y%=?sy:CALLts%:TIME=0:REPEAT UNTILTIME
>70:A%=0:CALLts%
280ENDPROC
290DEFPROCassemble
300FOR opt%=0 TO 2 STEP 2
310P%=&759E
320[OPT opt%
330.printscreen
340TAX
350LDA screenlo,X
360STA &62
370LDA screenhi,X
380STA &63
390½
400LDX#0
410LDY#0
420.printloop
430STX&60
440STY&61
450LDY#0
460LDA(&62),Y
470LDX&60
480LDY&61
490JSR ts%
500LDA&62
510CLC
520ADC#1
530BCC notcarry
540INC&63
550.notcarry
560STA&62
570LDX&60:LDY&61:INX:INX:INX:INX:CPX#8
0:BEQ moreinc
580JMP printloop
590.moreinc
600INY:INY:LDX#0:CPY#18:BNE printloop
610LDY#0:LDA(&62),Y:STAsx
620INY:LDA(&62),Y:STAsy:INY
630RTS
640.screenlo:]:P%=P%+12:[OPTopt%:.scre
enhi:]:P%=P%+12:NEXT:FORl%=0TO11:l%?scre
enlo=(&767B+(l%*203)) MOD 256:l%?screenh
i=(&767B+(l%*203)) DIV 256:NEXT
650ENDPROC
660DEFPROCdemos
670A%=0:CALLcls%:A%=RND(12)-1:CALLprin
tscreen:FORA%=52TO55:Y%=6:X%=(A%-52)*4+3
2:CALLts%:NEXT:FORA%=56TO59:Y%=8:X%=(A%-
56)*4+32:CALLts%:NEXT
680COLOUR5:A%=33:X%=36:Y%=13:CALLts%:A
%=34:X%=40:CALLts%:PRINTTAB(5,11)"WRITTE
N BY":*FX15
690A=INKEY(500):IFA=32:ENDPROC:ELSE GO
TO670
700:
710DATA 0,0,0,0
720DATA 0,0,0,0
730DATA 0,0,0,0
740DATA 90,90,90,90
750DATA 0,0,0,0
760:
770DATA 2,0,0,0
780DATA 24,0,0,0
790DATA 60,0,0,0
800DATA 24,99,99,99
810DATA 0,0,0,0
820:
830DATA 1,2,0,0
840DATA 8,0,0,0
850DATA 56,56,0,0
860DATA 56,8,90,90
870DATA 8,4,0,0
880:
890DATA 0,0,0,0
900DATA 0,0,0,0
910DATA 0,0,0,0
920DATA 90,90,90,90
930DATA 0,0,0,0
940:
950DATA 2,2,0,0
960DATA 34,42,0,0
970DATA 42,52,0,0
980DATA 34,42,90,90
990DATA 10,4,0,0
1000:
1010DATA 2,1,0,0
1020DATA 0,44,0,0
1030DATA 16,60,0,0
1040DATA 12,50,90,90
1050DATA 14,4,0,0
1060:
1070DATA 2,2,0,0
1080DATA 24,28,0,0
1090DATA 32,48,0,0
1100DATA 24,28,90,90
1110DATA 12,4,0,0
1120:
1130DATA 1,1,1,0
1140DATA 20,28,28,0
1150DATA 56,48,48,0
1160DATA 40,32,36,90
1170DATA 5,2,8,0
1180:
1190DATA 1,1,0,0
1200DATA 20,2,0,0
1210DATA 44,10,0,0
1220DATA 30,10,90,90
1230DATA 0,6,0,0
1240:
1250DATA 2,2,2,0
1260DATA 64,10,10,0
1270DATA 76,66,54,0
1280DATA 70,20,20,90
1290DATA 12,6,2,0
1300:
1310DATA 1,1,1,0
1320DATA 6,28,20,76
1330DATA 24,40,52,62
1340DATA 40,40,52,90
1350DATA 14,12,0,4
1360:
1370DATA 1,1,1,0
1380DATA 2,66,42,0
1390DATA 14,76,54,0
1400DATA 6,70,50,90
1410DATA 12,2,4,0
1420:
1430REM gameover
1440:
1450A%=2:FORX%=0TO79STEP4:Y%=18:CALLts%
:NEXT:FORA%=19TO22:X%=32+((A%-19)*4):Y%=
9:CALLts%:NEXT:*FX15 1
1460COLOUR6:TIME=0:REPEATUNTILTIME>100:
PROCcls:PRINTTAB(5,8)"CONTINUE??"TAB(5,1
3)"Hit Shift!":FORA%=44TO35STEP-1:X%=39:
Y%=10:CALLts%:TIME=0:REPEATUNTILTIME>20
1470IF INKEY(-1):A%=0
1480NEXT
1490IF A%<20:l%=4:PROCcls:PROCstatus:PR
OCdraw:GOTO100
1500PROCcls:GOTO80
1510:
1520DEFPROCcompleted:*FX15 1
1530A%=3:CALLcls%:A%=12:CALLcls%:A%=48:
CALLcls%:PROCcls
1540FORA%=52TO55:Y%=6:X%=(A%-52)*4+32:C
ALLts%:NEXT:FORA%=56TO59:Y%=8:X%=(A%-56)
*4+32:CALLts%:NEXT
1550PROCcycle("CONGRATULATIONS!",2,4)
1560PROCcycle("YOU'VE DONE",5,11)
1570PROCcycle("IT..",9,13)
1580PROCcls:PROCcycle("YOU JUST",6,4):P
ROCcycle("SAVED THE WORLD!",2,6):PROCcyc
("THANK YOU!",5,13)
1590PROCcls:PROCcycle("CREDITS",0,0):PR
OCcyc("program ANDY NIBBS",0,2):PROCcyc(
"(alias SWIG)",8,4):PROCcyc("graphics ST
EVE PICK",0,7):PROCcyc("(alias SIP)",8,9
)
1600PROCcycle("MANY THANKS TO",0,11)
1610PROCcyc("paul nibbs,",2,13)
1620PROCcyc("wurble the gerbil",2,15)
1630PROCcyc("& Thank YOU!",2,17)
1640PROCcycle("YOU!",10,17)
1650PROCabout`deluxe:ENDPROC
1660DEFPROCcycle(A$,X%,Y%):FORB%=11TO9S
TEP-1:COLOURB%:PRINTTAB(X%,Y%)A$:TIME=0:
REPEATUNTILTIME>20:NEXT:ENDPROC
1670DEFPROCcyc(A$,X%,Y%):FORB%=9TO11:CO
LOURB%:PRINTTAB(X%,Y%)A$:TIME=0:REPEATUN
TILTIME>20:NEXT:ENDPROC
1680DEFPROCabout`deluxe
1690PROCcls:PROCcycle("MasterDisk Magaz
ine",0,0):PROCcyc("for the Master only",
0,3):PROCcyc("available for £1.50",0,5):
PROCcyc("(£2.00 Xmas issue)",0,7):PROCcy
c("Games,reviews,utils",0,9):PROCcyc("ap
plications+more",0,11)
1700TIME=0:REPEATUNTILTIME>100:PROCcls:
PROCcycle("SEND A CHEQUE TO",0,0):PROCcy
cle("ANDREW NIBBS AT",0,2):PROCcyc("Andy
Nibbs",4,5):PROCcyc("2 Seaview",4,7):PR
OCcyc("Hoylake",4,9):PROCcyc("L47 2DD",4
,11):TIME=0:REPEATUNTILTIME>300
1710PROCcls:ENDPROC
1720:
1730DEFPROCerror
1740IFERR=17:ENDPROC
1750*TV
1760VDU22,7:REPORT:PRINT" at line ";ERL
1770END