10REM ****** JBOX *******
20REM VERSION 2.2 7-1992.
30REM J.BRONZWAER A.C.C.L
40REM R.LEURS (ATOMinPC update)
50REM====================
60?#23=00;?#24=#82
70DIMLL100,KK100,MM100,WW30,CC40,XX30,RR30,ZZ30
80F.I=0TO100;LLI=#FFF;KKI=#FFF;MMI=#FFF;N.
90F.I=0TO30;CCI=#FFF;WWI=#FFF;XXI=#FFF;RRI=#FFF;N.
100P.$12$15"SOURCE jbox"';DOP."=";U.C.>=12
110P.''"CLEANING SPACE"'';@=0
111LOCK 1;WP OFF
120F.X=#A000TO#AFFCS.4;!X=#FFFFFFFF;N.;Z=#A000
130P.'"PASS1"$21;P=Z+2;GOS.a
140?#E8=0
150P.$6'"PASS2"$21;P=Z+2;GOS.a
160IF?#E8<>0G.e
170?Z=#40;Z?1=#BF
180P.$6''"CODE VAN #"&Z" T/M #"&(P-1)'
190P."NOG VRIJ :"(#B000-P)" BYTES"''
200WP ON;END
210eP.$6$7$7$7''"OUT OF RANGE DETECTED"''$3;E.
220a
230[
240\====================
250\interpreteerroutine
260\====================
270LDX@#FF
280:XX0LDY#5E;DEY
290:XX1INX;INY
300:XX2LDA#A032,X;BMIXX4;CMP(#05),Y;BEQXX1;DEX
310:XX3INX;LDA#A032,X;BPLXX3;INX;LDA(#05),Y
320CMP@#2E;BNEXX0;INY;DEX;BCSXX2
330:XX4STA#53;LDA#A033,X;STA#52;STY#03;LDX#04;JMP(#0052)
340\
350\=================
360\tabel statements
370\=================
380];T=P
400$T="BIN";A=1;GOS.t
410$T="BIT";A=16;GOS.t
440$T="DAS";A=3;GOS.t
460$T="FVAR";A=22;GOS.t
470$T="FZERO";A=15;GOS.t
480$T="JBOX";A=0;GOS.t
500$T="HIP";A=12;GOS.t
510$T="HVAR";A=23;GOS.t
515$T="HXD";A=8;GOS.t
520$T="INFO";A=4;GOS.t
530$T="LAB";A=9;GOS.t
540$T="LIB";A=11;GOS.t
550$T="LINE";A=10;GOS.t
570$T="MFIND";A=20;GOS.t
580$T="SPRITE";A=25;GOS.t
615$T="USR";A=7;GOS.t
620$T="VER";A=24;GOS.t
630$T="#";A=13;GOS.t
640?T=#C5;T?1=#58;T=T+2
650R=T;T=P;P=R;G.c
660tT=T+L.T;?T=CCA/256;T?1=CCA;T=T+2;R.
670c
680[
690\============
700:CC0\**HELP**
710\============
720\zp:#90-#92
730LDA@16;JSR#FFF4;JSR#FFED;JSR#F7D1
740];$P="JBOX V2.2 STATEMENTS:";P=P+L.P;!P=#0A0D;P=P+2
750$P="---------------------";P=P+L.P;!P=#0A0D0A0D;P=P+4
760[;NOP;JSRLL7;STA#91;STA#92;TAY
770:LL1LDA#A032,Y;STA#92;CMP@#C5;BNELL2;INY
780LDA#A032,Y;CMP@#58;BEQLL8;DEY
790:LL2LDA#92;AND@#F0;CMP@#A0;BNELL3;LDA#90
800CMP@#0B;BNELL5;LDA#91;CMP@#02;BEQLL6
810CLC;ADC@#01;STA#91;JSRLL7;INY;INY;JMPLL1
820:LL3LDA#90;CLC;ADC@#01;STA#90;CMP@#0B
830BEQLL1;LDA#92;JSR#FFF4;CMP@#20;BNELL4;JMPLL5
840:LL4INY;JMPLL1
850:LL5LDA@#20;STA#92;JMPLL3
860:LL6JSR#FFED;JSRLL7;STA#91;INY;INY;JMPLL1
870:LL7LDA@#00;STA#90;RTS
880:LL8JSR#FFED;JMPXX18
890\
990\===========
1000:CC3\**DAS**
1010\===========
1020\zp:#90-#94
1030JSRXX10;LDA#52;CMP@13;BEQLL15;JSRXX11
1040LDA@6;JSR#FFF4;JSRXX13
1050:LL15LDA#93;CMP#91;BCCLL8;BNELL16
1060LDA#90;CMP#92;BCCLL16;JMPXX18
1070:LL16JSRXX17;LDY@#02
1080:LL17LDA(#90),Y;STA#66,Y;DEY;BPLLL17
1090:LL18INY;STY#0F;LDX@#40
1100:LL19SEC;LDA#66;SBC#F1F3,Y;SEC;SBC#F210,X
1110BNELL21;STA#64;STA#65;LDY#F250,X
1120:LL20ROR#64;ROR#65;DEY;BNELL20;LDY#0F
1130LDA#F1D5,Y;AND#64;BNELL22;LDA#F1E4,Y;AND#65
1140BNELL22
1150:LL21DEX;BNELL19;CPY@#0E;BNELL18;LDY@#00
1160LDX@#11;STY#0F
1170:LL22LDA#F202,Y;CMP@#0F;BNELL23;LDA@#01
1180:LL23AND@#0F;STA#69;STA#00;STX#6A;LDX@#90
1190JSR#F7F1;LDY@#00;LDX@#90;LDA@#05;STA#94
1200:LL24LDA(#90),Y;JSR#F7FA;JSR RR16
1210:LL25DEC#69;PHP;INC#94;INC#94;INC#94;PLP;BPLLL24
1215LDY#94;JSR RR18;LDX#6A
1220LDA#F194,X;STA#64;LDA#F154,X;STA#65;LDY@#03
1230:LL26LDX@#05
1240:LL27ROL#64;ROL#65;ROLA;DEX;BNELL27
1250AND@#1F;CLC;ADC@#3F;JSR#FFF4;DEY
1260BNELL26;JSR#F7FD;LDY@#08;LDX#0F;LDALL39,X
1270STA#69
1280:LL28CPY@#06;BNELL33;CPX@#02;BNELL30;LDX@#FF
1290LDA#67;BMILL29;INX
1300:LL29CLC;ADC#90;STA#67;TXA;ADC#91
1310STA#68;LDX@#02;BNELL31
1320:LL30LDX#00;BEQLL33
1330:LL31LDA@#23;JSR#FFF4
1340:LL32LDA#66,X;JSR#F802;DEX;BNELL32
1350:LL33ASL#69;BCSLL34;LDALL40,Y;JSR#FFE9
1360:LL34DEY;BPLLL28;PHP;LDX@#02
1370:LL35LDA#66,X;CMPLL41,X;BNELL36;DEX;BPLLL35
1380BMILL37
1390:LL36PLP;JMPLL15
1400:LL37JSRXX17;LDY@#00;LDA(#90),Y;BMILL36
1410PHA;PHA;LDX@#90;JSR#F7F1;JSR#F7D1;
1420];$P="** ";P=P+L.P;[
1430LDX@#90;PLA;JSR#F7FA;PLA;CMP@#20
1440BCCLL38;CMP@#7F;BCSLL38;JSR#FFF4
1450:LL38JSR#FFED;JSR RR16;JMPLL37
1460:LL39;]
1470P!0=#F9FFFEFF;P!4=#7F7FFFCF;P!8=#87B1CFF9
1480P?12=#FF;P?13=#B7;P?14=#F9;P=P+15;[:LL40;]
1490P!0=#2C59410D;P!4=#282C5829;P?8=#40;P=P+9;[
1500:LL41JSR#F7D1;RTS
1510\
1520\============
1530:CC4\**INFO**
1540\============
1550\NOzp
1560LDA@#00;STA#0321;JSRLL93;\zieLIB-statement
1570LDA#12;JSR#F802;LDA@#00;JSR#F802;JSR#FFED
1580JSRLL98;\zieLIB-statement
1590JSR#F7D1;];$P="TDIM: #";P=P+L.P;[;NOP
1600LDX@#23;JSR#F7F1;JSR#FFED
1610JSR#F7D1;];$P="SIZE: ";P=P+L.P;[;NOP
1620LDA@#00;STA#34;STA#43
1630LDA#0D;STA#16;SEC;LDA#0E;SBC#12;STA#25;JSR#C589
1640JSRLL45;JSR#FFED;JSR#F7D1;];$P="FREE: ";P=P+L.P;[;NOP
1650LDA#12;SBC@#81;BPLLL42;SEC;LDA@#00
1660SBC#0D;STA#16;LDA@#A0;SBC#0E;STA#25;JSRLL43;JMPLL44
1670:LL42SEC;LDA@#00;SBC#0D;STA#16;LDA@#A0;SBC#0E;STA#25
1680:LL43JSR#C589;JSRLL45
1690:LL44JMPXX18
1700:LL45JSR#F7D1;];$P=" BYTES";P=P+L.P;[;NOP;RTS
1710\
1720\===========
1730:CC8\**HEP**
1740\===========
1750\zp:#90-#91
1760JSRXX10;LDA#52;CMP@13;BEQWW15;JSRXX11;JSRXX13
1770:WW15LDX@#90;JSR#F7F1;LDY@#00
1780:WW16LDA(#90),Y;JSR#F7FA;INY
1790CPY@#10;BNEWW16;LDY@#00;JSR#F7FD
1800:WW17LDA(#90),Y;CMP@#7F;BCSWW18;CMP@#20;BCSWW19
1810:WW18LDA@#2E
1820:WW19JSR#FFF4;INY;CPY@#10;BNEWW17;JSR#FFED
1830:WW20LDX@#90;JSR RR16;BEQWW22;DEY;BNEWW20
1840:WW21LDY@#01;STA#03;JSRXX17;JMPWW15
1850:WW22JMPXX18
2100\
2110\===========
2120:CC9\**LAB**
2130\===========
2140\zp:#90-#92
2150\ASSEMBLER-LABELS
2160JSR#FFED;LDA#12;STA#91;LDA@#00;STA#90;LDY@#00
2170:LL51LDA(#90),Y;CMP@#0D;BEQLL58;LDA(#90),Y;CMP@#3A
2180BNELL56;CPY@#FF;BNELL52;INC#91
2190:LL52INY;LDA(#90),Y;CMP@#40;BMILL51;CMP@#5B
2200BPLLL51;LDA(#90),Y;STA#92;CPY@#FF;BNELL53;INC#91
2210:LL53INY;LDA(#90),Y;CMP#92;BNELL51;JSR#FFED
2220JSR#C504;LDA#92;JSR#FFF4;JSR#FFF4
2230:LL54CPY@#FF;BNELL55;INC#91
2240:LL55INY;LDA(#90),Y;CMP@#30;BMILL56;CMP@#3A
2250BPLLL56;JSR#FFF4;JMPLL54
2260:LL56CPY@#FF;BNELL57;INC#91
2270:LL57INY;JMPLL51
2280:LL58CPY@#FF;BNELL59;INC#91
2290:LL59INY;LDA(#90),Y;CMP@#FF;BNELL56
2300\
2310\BASIC-LABELS
2320JSR#FFED;JSR#FFED;LDA@#00;LDY@#1A
2330:LL60STA#0140,Y;DEY;BNELL60;LDA@#61;STA#01
2340:LL61JSRXX20;STY#02
2350:LL62JSRLL71;INY;LDA(#90),Y;BMILL65;STA#25
2360INY;LDA(#90),Y;STA#16;INY;LDA(#90),Y
2370CMP#01;BNELL62;AND@#9F;TAX;ORA@#60
2380STA#0140,X;LDX#02;BNELL64;PHA;LDA#07
2390CMP@#1E;BCCLL63;JSR#CD54
2400:LL63PLA;JSR#CA4C;LDX@#06;STX#0321
2410LDA@#00;STA#34;STA#43;JSR#C589
2420:LL64INC#02;BNELL62
2430:LL65LDA@#23;LDX#02;BEQLL67
2440CPX@#02;BNELL66;LDA@#20
2450:LL66JSR#CA4C;JSR#F379;JSR#F379
2460:LL67INC#01;LDA#01;CMP@#7C;BCCLL61
2470JSR#FFED;JSR#FFED;DEY
2480:LL68INY;LDA#0140,Y;BNELL69;TYA;ORA@#40
2490:LL69JSR#CA4C;CPY@#1A;BCCLL68;JMPXX18
2500:LL70INY
2510:LL71LDA(#90),Y;CMP@#0D
2520BNELL70;CPY#13;BCCLL72;STY#13
2530:LL72INC#14;BNELL73;INC#15
2540:LL73TYA;CLC;ADC#90
2550STA#90;BCCLL74;INC#91
2560:LL74LDY@#00;RTS
2570\
2580\=============
2590:CC10\**LINE**
2600\=============
2610\zp:#90-#91
2620JSR#C465;JSRXX20;DEY
2630:LL75JSRLL77;INY;LDA(#90),Y;BMILL81
2640INY;CMP#24,X;BNELL75;LDA(#90),Y
2650CMP#15,X;BNELL75
2660LDA@#23;JSR#FFF4;LDX@#90;JSR#F7F1;JMPXX18
2670:LL77INY;LDA(#90),Y;CMP@#0D
2680BNELL77;CPY#13;BCCLL78;STY#13
2690:LL78INC#14;BNELL79;INC#15
2700:LL79TYA;CLC;ADC#90
2710STA#90;BCCLL80;INC#91
2720:LL80LDY@#00;RTS
2730:LL81;JSR#FD1A;JSR#F7D1;];$P="REGEL NIET GEVONDEN !";P=P+L.P
2740[;NOP;JMPXX18
2750\
2760\============
2770:CC11\**LIB**
2780\============
2790\zp:#90-#92
2800\TP+FIRSTLINE
2810:LL83LDA@16;JSR#FFF4;JSR#FFED
2820JSR#F7D1;];$P="Aanwezige programma's";P=P+L.P;!P=#0A0D0A0D;P=P+4
2830[;NOP;LDA@#00;STA#90;LDA@#07;STA#91;LDA#12;STA#92
2840:LL84INC#91;BNELL85;JMPLL91
2850:LL85LDY@#00;LDA(#90),Y;CMP@#0D;BNELL84;INY
2860LDA(#90),Y;CMP@#00;BNELL84;INY;LDA#91;CMP#12;BEQLL82
2870JSR#F7FA;JMPLL86
2880:LL82LDA#91;JSR#F802;LDA@#3D;JSR#FFF4;LDA#91
2890:LL86INY;CPY@#1C;BEQLL87;LDA(#90),Y;CMP@#0D
2900BEQLL87;JSR#FFF4;BNELL86
2910:LL87JSR#FFED;JMPLL84
2920\
2930\PAG:
2940:LL91JSRLL93;JSR#FFE6;JSR#F87E;BCSLL92;ASLA;ASLA;ASLA;ASLA
2950STA#13;JSR#FFE6;PHA;JSR#FFED;PLA
2960JSR#F87E;BCSLL92;ADC#13;STA#92
2970:LL92LDA#92;STA#12;JSRXX20;LDA(#90),Y;CMP@#0D;BEQLL95
2980:LL94JSR#F7D1;];$P="NEW";P=P+L.P;[;NOP;JSR#FFED;JMP#C2B6
2990:LL95;\berekentop
3000LDA#12;STA#0E;LDY@0;STY#0D;DEY
3010:LL96INY;LDA(#0D),Y;CMP@#0D;BNELL96;JSR#CDBC
3020LDA(#0D),Y;BMILL97;INY;BNELL96
3030:LL97INY;JSR#CDBC;JSRLL98;JMP#C2CA
3040:LL98JSR#F7D1;];$P="TOP : #";P=P+L.P;[;NOP
3050LDX@#0D;JSR#F7F1;JSR#FFED;RTS
3060:LL93JSR#F7D1;];!P=#0A0D;P=P+2
3070$P="PAGE: #";P=P+L.P;[;NOP;RTS
3080\
3090\============
3100:CC13\** # **
3110\============
3120\NO zp
3130JSR#C90A;JSR#C4E4;DEY;LDA#52;STA#12;STA#55
3140LDA(#54),Y;CMP@#0D;BNELL94;JSRLL95;JMP#C2CA
3150\
3160\============
3170:CC12\**HIP**
3180\============
3190\zp:#90-#95
3200JSRXX10;LDA#52;CMP@13;BEQKK0
3210JSRXX11;JSRXX13;LDA@6;JSR#FFF4
3220:KK0LDX@1;STX#D0
3230:KK1JSRKK8;JSR#F7FD;LDA@#3F;JSR#CD0F;LDY@0
3240LDA#0100,Y;CMP@#0D;BEQKK4;CMP@ 5E;BEQKK5
3250CMP@#54;BNEKK2;INY;LDA#0100,Y;BNEKK3
3260:KK2LDX@#D2;JSR#F893;LDA#D3;BNEKK1;LDA#D2
3270:KK3LDY@#00;STA(#90),Y
3280:KK4LDX@#90;JSR RR16;BNEKK1;JMPXX18
3290:KK5LDA#90;BNEKK6;DEC#91
3300:KK6DEC#90;JMPKK1
3310:KK7JSR#FFED
3320:KK8LDX@#90;JSR#F7F1;JSR#F7FD;LDY@#00
3330:KK9LDA(#90),Y;JSR#F802;JSR#F7FD;INY;CPY#D0
3340BNEKK9;LDY@#00;LDA#D0;STA#CF
3350:KK10JSR#F7FD;LDA(#90),Y;CMP@#7F;BCCKK12
3360:KK11LDA@#2E
3370:KK12CMP@#20;BCCKK11;JSR#FFF4;LDA#D0;CMP@#01
3380BEQKK14;LDX@#90;JSR RR16;BEQKK13;DEC#CF
3390BEQKK7;BNEKK10
3400:KK13JSR#FFED
3410:KK14RTS
3420\
3430\============
3440:CC7\**USR**
3450\============
3455JSR#C3C8;JSR#C4E4;LDA#322;LDX#339;LDY#33A;JSR#C2A5;CLD
3460STA#322;STX#339;STY#33A;JMP#C55B
3550\=============
3560:CC15\**FZERO**
3570\=============
3580\NOzp
3590LDX@#87
3600:KK31LDA@#00;STA#5FF,X;DEX;BNEKK31;JMP#C2CA
3610\
3620\============
3630:CC16\**BIT**
3640\============
3650\NOzp
3660LDA@#00;STA#321
3670JSR#C78B;JSR#C3CB;LDA#53;JSRKK33;LDA#52;JSRKK33
3680JSR#F7FD;LDA@#3D;JSR#FFF4;JSR#F7FD
3690LDA@#23;JSR#FFF4;JMP#C349
3700:KK33LDX@7;STA#93
3710:KK34BIT#93;BPLKK35;LDA@#31;BNEKK36
3720:KK35LDA@#30
3730:KK36JSR#CA4C;ASL#93;DEX;BPLKK34;JMP#F379
3970\
3980\==============
3990:CC20\**MFIND**
4000\==============
4010\zp:#90-#97
4020JSRXX10;JSRXX11;JSR#C231;JMPKK52
4030:KK51JMP#FA7D
4040:KK52LDA@#01;STA#034C;LDA@#40;STA#0331;STA#0367
4050JSR#F876;CMP@#23;BNEKK54;INY;LDX@#94
4060JSR#F893;BEQKK54;LDA#95;BEQKK53;STAG0141;INC#0331
4070:KK53LDA#94;STA#0140;INC#0331;JMPKK59
4080:KK54CMP@#22;BNEKK56;LDX@#00
4090:KK55INC#0331;INY;LDA#0100,Y;STA#0140,X;INX
4100CMP@#0D;BEQKK51;CMP@#22;BNEKK55;DEC#0331
4110CMP@#40;BEQKK51;JMPKK59
4120:KK56SEC;LDA#90;SBC#92;LDA#91;SBC#93;BCSKK51
4130LDA#020A;STA#96
4140LDA#020B;STA#97
4150LDA@(KK57&255);STA#20A
4160LDA@(KK57/256);STA#20B
4170LDA@21;JSR#FFF4;JMP#F2A1
4180:KK57LDA#96;STA#020A
4190LDA#97;STA#020B
4200LDA@#7F;JSR#FFF4
4210LDA@06;JSR#FFF4;LDA#00
4220CMP@#00;BNEKK58;JMP#FA7D
4230:KK58CMP@#04;BCSKK67
4240:KK59SEC;LDA#0331;SBC#0367;STA#0331;LDA#034C
4250STA#D4;LDA#0367;STA#D3
4260:KK60LDY@#00;LDA(#90),Y;CMP(#D3),Y;BEQKK63
4270:KK61LDX@#90;JSR RR16;BEQKK62;JMPKK60
4280:KK62JMPXX18
4290:KK63LDA#90;STA#D5;LDA#91;STA#D6
4300:KK64INY;CPY#0331;BEQKK65;LDA(#90),Y;CMP(#D3),Y
4310BEQKK64;BNEKK61
4320:KK65LDX@#03;LDA@#20
4330:KK66JSR#FFF4;DEX;BNEKK66;JSRXX17;LDA@#23
4340JSR#FFF4;LDX@#D5;JSR#F7F1
4350LDA@#08;JSR#FFF4;JMPKK61
4360:KK67JMPXX18
4370\
4380\============
4390:CC1\**BIN**
4400\============
4410\zp:#90
4420JSR#C434;LDY#03;DEY;LDX@0;STX#90
4430:KK75INY;LDA(#05),Y;CMP@#32;BCCKK74;JMP#FA7D
4440:KK74CPX@#08;BEQKK77;SEC;SBC@#30
4450BEQKK76;CMP@#01;BNEKK77
4460:KK76ASL#90;ORA#90;STA#90;INX;JMPKK75
4470:KK77STY#03;LDA@#23;JSR#FFF4
4480LDA#90;JSR#F802;JMPXX18
4700\
4710\=============
4720:CC22\**FVAR**
4730 LDX@0;JMPMM16
4740\-------------
4750:CC23\**HVAR**
4760 LDX@70;JMPMM16
4770\=============
4780\NO zp
4790:MM16JSR#FFED;LDY@0
4800:MM17LDAMM19,X;STA#0100,Y
4810CMP@#0D;BEQMM18;INX;INY;JMPMM17
4820:MM18JMP#C2D5
4830:MM19;]
4840 REM TEKST FVAR
4850$P="@=0;?8=63;DO?8=?8+1;?#133=?8;P.$37$?8$32$61$32"
4860P=P+L.P;$P=";FP.%A';U.?8=90;";P=P+L.P
4870$P="@=8;E.";P=P+L.P;!P=#FF0D;P=P+2
4880 REM TEKST HVAR
4890$P="@=8;?8=64;DO?8=?8+1;?#132=?8;P.$?8$32$61$32$35"
4900P=P+L.P;$P=";P.&A"" "";U.?8=90;P.';E."
4910P=P+L.P;!P=#FF0D;P=P+2;[;NOP
6000\
6010\==============
6020:CC24\**VER**
6030\==============
6040\zp:#90-#97
6050JSRXX10;JSRXX11;JSRXX12
6060:MM76LDY@0;LDA(#90),Y;CMP(#94),Y;BNEMM79
6070:MM77LDX@#90;JSR RR16;BNEMM78;JMPXX19
6080:MM78LDX@#94;JSR RR16;JMPMM76
6090:MM79JSRXX17;JSR#F7D1;];$P="VERSCHIL OP: ";P=P+L.P
6100[;NOP;JSR#F7FD;LDX@#90;JSR#F7F1;JSR#F7FD
6110LDX@#94;JSR#F7F1;JSR#F7FD;LDA(#90),Y;JSR#F802
6120JSR#F7FD;LDA(#94),Y;JSR#F802;JSR#FFED;JMPMM77
6440\
6450\==================
6460\ ALGEMENE ROUTINES
6470\==================
6480\ inputroutines
6490:XX10JSR#C78B;LDY@#90;JSR#C3CD;LDA@#FF;STA#92;STA#93;RTS
6500:XX11JSR#C231;JSR#C78B;LDY@#92;JSR#C3CD;LDX@#92;JSR RR16;RTS
6510:XX12JSR#C231;JSR#C78B;LDY@#94;JSR#C3CD;RTS
6520\ printerroutine
6530:XX13LDA@#0B;JSR#FFC2;BCC P-3;LDA @#00;JSR #FFC8;LDA @#3E
6531JSR#FFC8;LDA@#00;JSR#FFC8
6532JSR #FFC5;PHA;LDA@#0A;JSR #FFC2;PLA;CMP@#90;BEQ XX14;RTS
6540:XX14JSR#FFED;LDA@7;JSR#FFF4;JSR#FFF4;JSR#F7D1
6550];$P="PRINTER GEREED! UITVOER NAAR PRINTER (J/N) ?";P=P+L.P
6560[;NOP;JSR#FFE3;CMP@74;BEQXX15;JSR#FFED;RTS
6570:XX15JSR#FFED;LDA@21;JSR#FFF4;LDA@2;JSR#FFF4;LDX@6
6580:XX16JSR#FFED;DEX;BNEXX16;RTS
6590\ escape-toets
6600:XX17LDA@1;JSR #FFC2;BEQXX18;RTS
6610\ stop
6620:XX18LDA@#03;JSR#FFF4;LDA@#06;JSR#FFF4;JSR#FFED;JMP#C2CA
6630:XX19JSR#FFED;JSR#F7D1;];$P="KLAAR";P=P+LENP;[;NOP;JMPXX18
6640\ lab - lib - line
6650:XX20LDA#12;STA#91;LDY@#00;STY#90
6660STY#15;STY#14;STY#13;RTS
6666
6870:RR16 \ KOPIE ROUTINE #FA08
6880INC#00,X;BNE P+4;INC#01,X;LDA#00,X;CMP#02,X;BNE P+6
6890LDA#01,X;CMP#03,X;RTS
6900:RR17 \ KOPIE ROUTINE #F99A
6910INY;:RR18;JSR#F7FD;CPY@#0E;BCCRR17;RTS
6920
7000 :CC25 \ SPRITE
7010 LDX @#FF
7020 :ZZ0 LDY#03
7030 :ZZ1 INX;INY
7040 :ZZ2 LDA ZZ5,X;BMI ZZ4;CMP(#05),Y;BEQ ZZ1;DEX
7050 :ZZ3 INX;LDA ZZ5,X;BPL ZZ3;INX;LDA(#05),Y
7060 CMP @#2E;BNE ZZ0;INY;DEX;BCS ZZ2
7070 :ZZ4 STA #53;LDA ZZ5+1,X;STA #52
7080 STY #03;LDX#04;JMP(#52)
7100 :ZZ5;];T=P
7110 $T="BASE";A=30;GOS.t
7120 $T="DEF";A=31;GOS.t
7130 $T="SET";A=32;GOS.t
7140 $T="UNSET";A=33;GOS.t
7150 $T="MOVE";A=34;GOS.t
7160 $T="PUT";A=35;GOS.t
7170 $T="POS";A=36;GOS.t
7180 $T="HIT";A=37;GOS.t
7190 !T=#58C5;P=T+2;[
7200 :CC30 \ SPRITE BASE
7210 JSR ZZ8;LDA @0;STA #90;LDY @1
7215 :ZZ13 JSR ZZ9;PHA;JSR ZZ10
7217 LDA #321,X;STA #33C,X;PLA;STA #321,X;JMP #C558
7220
7230 :CC31 \ SPRITE DEF
7240 JSR ZZ7;LDA @1;STA #90;LDY @2;JSR ZZ9;BNE ZZ17;LDA @#FF;STA #90
7250 LDA @#03;STA #91;LDY @0
7260 :ZZ12 LDA (#93),Y;JSR #FFC8;INC #93;BNE P+4;INC #94
7270 DEC #90;LDA #90;CMP@#FF;BNE ZZ12;DEC #91;BPL ZZ12
7280 :ZZ17 JSR ZZ18;JMP #C558
7290
7300 :CC32 \ SPRITE SET
7310 JSR ZZ6;LDA @2
7312 :ZZ19 STA #90;LDY @2;JSR ZZ9;BNE ZZ17;LDX @3;LDY @3
7314 :ZZ21 LDA #90,X;JSR #FFC8;INX;DEY;BPL ZZ21;JMP ZZ17
7320
7330 :CC33 \ SPRITE UNSET
7340 JSR ZZ8;LDA @3;STA #90;LDY @2;BNE ZZ20
7350
7360 :CC34 \ SPRITE MOVE
7370 JSR ZZ6;LDA @4;BNE ZZ19
7380
7390 :CC35 \ SPRITE PUT
7400 JSR ZZ6;LDA @5;BNE ZZ19
7410
7420 :CC36 \ SPRITE POS
7430 JSR ZZ8;LDA @6;STA #90;LDY @2;JSR ZZ9;BNE ZZ22
7432 LDX @0
7434 :ZZ11 JSR #FFC5;STA #90,X;INX;CPX @4;BNE ZZ11
7435 :ZZ22 LDA @#0A;JSR #FFC2
7436 JSR ZZ15;LDA #90;STA #321,X;LDA #91;STA #33C,X;JSR #C231
7438 JSR ZZ15;LDA #92;STA #321,X;LDA #93;STA #33C,X;JSR #C231
7440 JSR ZZ15;LDA #97;STA #321,X;JMP #C558
7450
7460 :CC37 \ SPRITE HIT
7470 JSR ZZ7;LDA #26;BMI CC38;LDA @7;STA #90;LDY @4;BNE ZZ20
7475 :CC38 LDA @8;STA #90;LDY @2
7477 :ZZ20 JSR ZZ9;JSR ZZ18;JMP #C558
7480
7490 :ZZ6 JSR #C78B;JSR #C231
7500 :ZZ7 JSR #C78B;JSR #C231
7510 :ZZ8 JSR #C78B;JSR #C231
7520 LDA #16;STA #91;LDA #25;STA #92
7530 LDA #17;STA #93;LDA #26;STA #94
7540 LDA #18;STA #95;LDA #27;STA #96
7550 LDX @0;STX#04;RTS
7560
7570 :ZZ9 LDA @#0B;JSR #FFC2;BCC ZZ9
7580 LDA @0;JSR #FFC8;LDA @#65;JSR #FFC8;LDX @0
7590 :ZZ14 LDA #90,X;JSR #FFC8;INX;DEY;BPL ZZ14
7600 JSR #FFC5;STA #97;RTS
7610
7620 :ZZ10 JSR #FFC5;STA #97
7625 :ZZ18 LDA @#0A;JSR #FFC2;JSR ZZ15;LDA #97;STA #321,X;RTS
7630 :ZZ15 JSR #F291;SEC;SBC@#40;CMP @#1B;BCC ZZ16
7640 LDX @135;LDA @12;JSR #FFC2
7650 :ZZ16 TAX;LDA @0;STA #321,X;STA #33C,X
7660 STA #357,X;STA #372,X;RTS
7670];RETURN
|