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