From 9c00e86cb2c61fcb7f4024160aa93e60f8b0aa9c Mon Sep 17 00:00:00 2001 From: nathanriggs Date: Wed, 31 Oct 2018 20:37:12 -0400 Subject: [PATCH] v1 of stdio.lib finished --- source/STDIO/STDIO.DEMO.S | 1930 ++++++++++++++++++++++++++++++++++++ source/STDIO/T.STDIO.HOOKS | 53 + source/STDIO/T.STDIO.LIB | 788 +++++++++++++++ source/STDIO/T.STDIO.MAC | 583 +++++++++++ 4 files changed, 3354 insertions(+) create mode 100644 source/STDIO/STDIO.DEMO.S create mode 100644 source/STDIO/T.STDIO.HOOKS create mode 100644 source/STDIO/T.STDIO.LIB create mode 100644 source/STDIO/T.STDIO.MAC diff --git a/source/STDIO/STDIO.DEMO.S b/source/STDIO/STDIO.DEMO.S new file mode 100644 index 0000000..46f84f4 --- /dev/null +++ b/source/STDIO/STDIO.DEMO.S @@ -0,0 +1,1930 @@ +0901- AA TAX +0902- 8D AA AA STA $AAAA +0905- AA TAX +0906- AA TAX +0907- AA TAX +0908- AA TAX +0909- AA TAX +090A- AA TAX +090B- AA TAX +090C- AA TAX +090D- AA TAX +090E- AA TAX +090F- AA TAX +0910- AA TAX +0911- AA TAX +0912- AA TAX +0913- AA TAX +0914- AA TAX +0915- AA TAX +0916- AA TAX +0917- AA TAX +0918- AA TAX +0919- AA TAX +091A- AA TAX +091B- AA TAX +091C- AA TAX +091D- AA TAX +091E- AA TAX +091F- AA TAX +0920- AA TAX +0921- AA TAX +0922- AA TAX +0923- 8D AA 20 STA $20AA +0926- 20 20 20 JSR $2020 +0929- 20 20 20 JSR $2020 +092C- 20 20 20 JSR $2020 +092F- 20 20 20 JSR $2020 +0932- 20 20 20 JSR $2020 +0935- 20 20 20 JSR $2020 +0938- 20 20 20 JSR $2020 +093B- 20 20 20 JSR $2020 +093E- 20 20 20 JSR $2020 +0941- 20 20 AA JSR $AA20 +0944- 8D AA 20 STA $20AA +0947- 20 20 20 JSR $2020 +094A- 20 20 AD JSR $AD20 +094D- BC 20 D3 LDY $D320,X +0950- D4 ??? +0951- C4 C9 CPY $C9 +0953- CF ??? +0954- 20 C4 C5 JSR $C5C4 +0957- CD CF 20 CMP $20CF +095A- BE AD 20 LDX $20AD,Y +095D- 20 20 20 JSR $2020 +0960- 20 20 20 JSR $2020 +0963- 20 AA 8D JSR $8DAA +0966- AA TAX +0967- 20 20 20 JSR $2020 +096A- 20 20 20 JSR $2020 +096D- 20 20 20 JSR $2020 +0970- 20 20 20 JSR $2020 +0973- 20 20 20 JSR $2020 +0976- 20 20 20 JSR $2020 +0979- 20 20 20 JSR $2020 +097C- 20 20 20 JSR $2020 +097F- 20 20 20 JSR $2020 +0982- 20 20 20 JSR $2020 +0985- AA TAX +0986- 8D AA 20 STA $20AA +0989- 20 20 20 JSR $2020 +098C- 20 20 20 JSR $2020 +098F- D6 C5 DEC $C5,X +0991- D2 D3 CMP ($D3) +0993- C9 CF CMP #$CF +0995- CE 20 B0 DEC $B020 +0998- B0 AE BCS $0948 +099A- B0 B0 BCS $094C +099C- AE B0 B1 LDX $B1B0 +099F- 20 20 20 JSR $2020 +09A2- 20 20 20 JSR $2020 +09A5- 20 AA 8D JSR $8DAA +09A8- AA TAX +09A9- 20 20 20 JSR $2020 +09AC- 20 20 20 JSR $2020 +09AF- 20 20 20 JSR $2020 +09B2- 20 20 20 JSR $2020 +09B5- 20 20 20 JSR $2020 +09B8- 20 20 20 JSR $2020 +09BB- 20 20 20 JSR $2020 +09BE- 20 20 20 JSR $2020 +09C1- 20 20 20 JSR $2020 +09C4- 20 20 20 JSR $2020 +09C7- AA TAX +09C8- 8D AA 20 STA $20AA +09CB- 20 20 20 JSR $2020 +09CE- 20 20 20 JSR $2020 +09D1- 20 20 B0 JSR $B020 +09D4- B3 ??? +09D5- AF ??? +09D6- B0 B4 BCS $098C +09D8- AF ??? +09D9- B1 B9 LDA ($B9),Y +09DB- B8 CLV +09DC- B0 20 BCS $09FE +09DE- 20 20 20 JSR $2020 +09E1- 20 20 20 JSR $2020 +09E4- 20 20 20 JSR $2020 +09E7- 20 AA 8D JSR $8DAA +09EA- AA TAX +09EB- 20 20 20 JSR $2020 +09EE- 20 20 20 JSR $2020 +09F1- 20 20 20 JSR $2020 +09F4- 20 20 20 JSR $2020 +09F7- 20 20 20 JSR $2020 +09FA- 20 20 20 JSR $2020 +09FD- 20 20 20 JSR $2020 +0A00- 20 20 20 JSR $2020 +0A03- 20 20 20 JSR $2020 +0A06- 20 20 20 JSR $2020 +0A09- AA TAX +0A0A- 8D AA AA STA $AAAA +0A0D- AA TAX +0A0E- AA TAX +0A0F- AA TAX +0A10- AA TAX +0A11- AA TAX +0A12- AA TAX +0A13- AA TAX +0A14- AA TAX +0A15- AA TAX +0A16- AA TAX +0A17- AA TAX +0A18- AA TAX +0A19- AA TAX +0A1A- AA TAX +0A1B- AA TAX +0A1C- AA TAX +0A1D- AA TAX +0A1E- AA TAX +0A1F- AA TAX +0A20- AA TAX +0A21- AA TAX +0A22- AA TAX +0A23- AA TAX +0A24- AA TAX +0A25- AA TAX +0A26- AA TAX +0A27- AA TAX +0A28- AA TAX +0A29- AA TAX +0A2A- AA TAX +0A2B- 8D AA 20 STA $20AA +0A2E- 20 20 20 JSR $2020 +0A31- 20 20 20 JSR $2020 +0A34- 20 20 20 JSR $2020 +0A37- 20 20 20 JSR $2020 +0A3A- 20 20 20 JSR $2020 +0A3D- 20 20 20 JSR $2020 +0A40- 20 20 20 JSR $2020 +0A43- 20 20 20 JSR $2020 +0A46- 20 20 20 JSR $2020 +0A49- 20 20 AA JSR $AA20 +0A4C- 8D AA 20 STA $20AA +0A4F- 20 20 20 JSR $2020 +0A52- 20 20 20 JSR $2020 +0A55- CE C1 D4 DEC $D4C1 +0A58- C8 INY +0A59- C1 CE CMP ($CE,X) +0A5B- 20 C4 AE JSR $AEC4 +0A5E- 20 D2 C9 JSR $C9D2 +0A61- C7 ??? +0A62- C7 ??? +0A63- D3 ??? +0A64- 20 20 20 JSR $2020 +0A67- 20 20 20 JSR $2020 +0A6A- 20 20 AA JSR $AA20 +0A6D- 8D AA 20 STA $20AA +0A70- 20 20 CE JSR $CE20 +0A73- C1 D4 CMP ($D4,X) +0A75- C8 INY +0A76- C1 CE CMP ($CE,X) +0A78- AE D2 C9 LDX $C9D2 +0A7B- C7 ??? +0A7C- C7 ??? +0A7D- D3 ??? +0A7E- C0 CF CPY #$CF +0A80- D5 D4 CMP $D4,X +0A82- CC CF CF CPY $CFCF +0A85- CB ??? +0A86- AE C3 CF LDX $CFC3 +0A89- CD 20 20 CMP $2020 +0A8C- 20 AA 8D JSR $8DAA +0A8F- AA TAX +0A90- 20 20 20 JSR $2020 +0A93- 20 20 20 JSR $2020 +0A96- 20 20 20 JSR $2020 +0A99- 20 20 20 JSR $2020 +0A9C- 20 20 20 JSR $2020 +0A9F- 20 20 20 JSR $2020 +0AA2- 20 20 20 JSR $2020 +0AA5- 20 20 20 JSR $2020 +0AA8- 20 20 20 JSR $2020 +0AAB- 20 20 20 JSR $2020 +0AAE- AA TAX +0AAF- 8D AA AA STA $AAAA +0AB2- AA TAX +0AB3- AA TAX +0AB4- AA TAX +0AB5- AA TAX +0AB6- AA TAX +0AB7- AA TAX +0AB8- AA TAX +0AB9- AA TAX +0ABA- AA TAX +0ABB- AA TAX +0ABC- AA TAX +0ABD- AA TAX +0ABE- AA TAX +0ABF- AA TAX +0AC0- AA TAX +0AC1- AA TAX +0AC2- AA TAX +0AC3- AA TAX +0AC4- AA TAX +0AC5- AA TAX +0AC6- AA TAX +0AC7- AA TAX +0AC8- AA TAX +0AC9- AA TAX +0ACA- AA TAX +0ACB- AA TAX +0ACC- AA TAX +0ACD- AA TAX +0ACE- AA TAX +0ACF- AA TAX +0AD0- 8D AA 8D STA $8DAA +0AD3- AA TAX +0AD4- AA TAX +0AD5- 20 C1 D3 JSR $D3C1 +0AD8- D3 ??? +0AD9- C5 CD CMP $CD +0ADB- C2 ??? +0ADC- CC C5 D2 CPY $D2C5 +0ADF- 20 C4 C9 JSR $C9C4 +0AE2- D2 C5 CMP ($C5) +0AE4- C3 ??? +0AE5- D4 ??? +0AE6- C9 D6 CMP #$D6 +0AE8- C5 D3 CMP $D3 +0AEA- 8D AA 8D STA $8DAA +0AED- A0 C3 LDY #$C3 +0AEF- D9 C3 A0 CMP $A0C3,Y +0AF2- C1 D6 CMP ($D6,X) +0AF4- C5 8D CMP $8D +0AF6- A0 C5 LDY #$C5 +0AF8- D8 CLD +0AF9- D0 A0 BNE $0A9B +0AFB- CF ??? +0AFC- CE CC D9 DEC $D9CC +0AFF- 8D A0 C4 STA $C4A0 +0B02- D3 ??? +0B03- CB ??? +0B04- A0 D3 LDY #$D3 +0B06- D4 ??? +0B07- C4 C9 CPY $C9 +0B09- CF ??? +0B0A- AE C4 C5 LDX $C5C4 +0B0D- CD CF 8D CMP $8DCF +0B10- AA TAX +0B11- 8D AA E0 STA $E0AA +0B14- E0 E0 CPX #$E0 +0B16- E0 E0 CPX #$E0 +0B18- E0 E0 CPX #$E0 +0B1A- E0 E0 CPX #$E0 +0B1C- E0 E0 CPX #$E0 +0B1E- E0 E0 CPX #$E0 +0B20- E0 E0 CPX #$E0 +0B22- E0 E0 CPX #$E0 +0B24- E0 E0 CPX #$E0 +0B26- E0 E0 CPX #$E0 +0B28- E0 E0 CPX #$E0 +0B2A- E0 E0 CPX #$E0 +0B2C- E0 E0 CPX #$E0 +0B2E- E0 E0 CPX #$E0 +0B30- E0 AA CPX #$AA +0B32- 8D AA 20 STA $20AA +0B35- 20 D4 CF JSR $CFD4 +0B38- D0 20 BNE $0B5A +0B3A- C9 CE CMP #$CE +0B3C- C3 ??? +0B3D- CC D5 C4 CPY $C4D5 +0B40- C5 D3 CMP $D3 +0B42- 20 A8 D0 JSR $D0A8 +0B45- D5 D4 CMP $D4,X +0B47- D3 ??? +0B48- AC 20 CD LDY $CD20 +0B4B- C1 C3 CMP ($C3,X) +0B4D- D2 CF CMP ($CF) +0B4F- D3 ??? +0B50- A9 20 LDA #$20 +0B52- AA TAX +0B53- 8D AA AC STA $ACAA +0B56- AC AC AC LDY $ACAC +0B59- AC AC AC LDY $ACAC +0B5C- AC AC AC LDY $ACAC +0B5F- AC AC AC LDY $ACAC +0B62- AC AC AC LDY $ACAC +0B65- AC AC AC LDY $ACAC +0B68- AC AC AC LDY $ACAC +0B6B- AC AC AC LDY $ACAC +0B6E- AC AC AC LDY $ACAC +0B71- AC AC AA LDY $AAAC +0B74- 8D AA 8D STA $8DAA +0B77- A0 D0 LDY #$D0 +0B79- D5 D4 CMP $D4,X +0B7B- A0 C4 LDY #$C4 +0B7D- C5 C3 CMP $C3 +0B7F- D3 ??? +0B80- 8D A0 D5 STA $D5A0 +0B83- D3 ??? +0B84- C5 A0 CMP $A0 +0B86- D3 ??? +0B87- D4 ??? +0B88- C4 C9 CPY $C9 +0B8A- CF ??? +0B8B- AE CD C1 LDX $C1CD +0B8E- C3 ??? +0B8F- 8D AA 8D STA $8DAA +0B92- A0 D0 LDY #$D0 +0B94- D5 D4 CMP $D4,X +0B96- A0 D3 LDY #$D3 +0B98- D4 ??? +0B99- C4 C9 CPY $C9 +0B9B- CF ??? +0B9C- AE C8 CF LDX $CFC8 +0B9F- CF ??? +0BA0- CB ??? +0BA1- D3 ??? +0BA2- 8D A0 D0 STA $D0A0 +0BA5- D5 D4 CMP $D4,X +0BA7- 20 A0 C3 JSR $C3A0 +0BAA- CF ??? +0BAB- CD CD CF CMP $CFCD +0BAE- CE AE C8 DEC $C8AE +0BB1- CF ??? +0BB2- CF ??? +0BB3- CB ??? +0BB4- D3 ??? +0BB5- 8D AA 8D STA $8DAA +0BB8- A0 CF LDY #$CF +0BBA- D2 C7 CMP ($C7) +0BBC- A0 A4 LDY #$A4 +0BBE- B6 B0 LDX $B0,Y +0BC0- B0 B0 BCS $0B72 +0BC2- 8D AA 8D STA $8DAA +0BC5- AA TAX +0BC6- E0 E0 CPX #$E0 +0BC8- E0 E0 CPX #$E0 +0BCA- E0 E0 CPX #$E0 +0BCC- E0 E0 CPX #$E0 +0BCE- E0 E0 CPX #$E0 +0BD0- E0 E0 CPX #$E0 +0BD2- E0 E0 CPX #$E0 +0BD4- E0 E0 CPX #$E0 +0BD6- E0 E0 CPX #$E0 +0BD8- E0 E0 CPX #$E0 +0BDA- E0 E0 CPX #$E0 +0BDC- E0 E0 CPX #$E0 +0BDE- E0 E0 CPX #$E0 +0BE0- E0 E0 CPX #$E0 +0BE2- E0 E0 CPX #$E0 +0BE4- AA TAX +0BE5- 8D AA 20 STA $20AA +0BE8- 20 20 20 JSR $2020 +0BEB- 20 20 D0 JSR $D020 +0BEE- D2 CF CMP ($CF) +0BF0- C7 ??? +0BF1- D2 C1 CMP ($C1) +0BF3- CD 20 CD CMP $CD20 +0BF6- C1 C9 CMP ($C9,X) +0BF8- CE 20 C2 DEC $C220 +0BFB- CF ??? +0BFC- C4 D9 CPY $D9 +0BFE- 20 20 20 JSR $2020 +0C01- 20 20 20 JSR $2020 +0C04- 20 AA 8D JSR $8DAA +0C07- AA TAX +0C08- AC AC AC LDY $ACAC +0C0B- AC AC AC LDY $ACAC +0C0E- AC AC AC LDY $ACAC +0C11- AC AC AC LDY $ACAC +0C14- AC AC AC LDY $ACAC +0C17- AC AC AC LDY $ACAC +0C1A- AC AC AC LDY $ACAC +0C1D- AC AC AC LDY $ACAC +0C20- AC AC AC LDY $ACAC +0C23- AC AC AC LDY $ACAC +0C26- AA TAX +0C27- 8D AA 8D STA $8DAA +0C2A- AA TAX +0C2B- 8D AA 8D STA $8DAA +0C2E- AA TAX +0C2F- AA TAX +0C30- 20 C2 C9 JSR $C9C2 +0C33- C7 ??? +0C34- 20 CC D5 JSR $D5CC +0C37- CD D0 D3 CMP $D3D0 +0C3A- 20 AD AD JSR $ADAD +0C3D- 20 C8 C9 JSR $C9C8 +0C40- C7 ??? +0C41- C8 INY +0C42- 20 CC C5 JSR $C5CC +0C45- D6 C5 DEC $C5,X +0C47- CC 20 C3 CPY $C320 +0C4A- CF ??? +0C4B- C4 C5 CPY $C5 +0C4D- 8D AA 8D STA $8DAA +0C50- AA TAX +0C51- 8D A0 CA STA $CAA0 +0C54- D3 ??? +0C55- D2 A0 CMP ($A0) +0C57- C8 INY +0C58- CF ??? +0C59- CD C5 A0 CMP $A0C5 +0C5C- BB ??? +0C5D- 20 C3 CC JSR $CCC3 +0C60- C5 C1 CMP $C1 +0C62- D2 20 CMP ($20) +0C64- D3 ??? +0C65- C3 ??? +0C66- D2 C5 CMP ($C5) +0C68- C5 CE CMP $CE +0C6A- 8D AA 8D STA $8DAA +0C6D- AA TAX +0C6E- AA TAX +0C6F- AA TAX +0C70- 8D AA AA STA $AAAA +0C73- AA TAX +0C74- 20 D5 D3 JSR $D3D5 +0C77- C5 20 CMP $20 +0C79- D8 CLD +0C7A- D0 D2 BNE $0C4E +0C7C- C9 CE CMP #$CE +0C7E- D4 ??? +0C7F- 20 D4 CF JSR $CFD4 +0C82- 20 D0 D2 JSR $D2D0 +0C85- C9 CE CMP #$CE +0C87- D4 ??? +0C88- 20 C1 20 JSR $20C1 +0C8B- D3 ??? +0C8C- D4 ??? +0C8D- D2 C9 CMP ($C9) +0C8F- CE C7 20 DEC $20C7 +0C92- CF ??? +0C93- C6 20 DEC $20 +0C95- C3 ??? +0C96- C8 INY +0C97- C1 D2 CMP ($D2,X) +0C99- C1 C3 CMP ($C3,X) +0C9B- D4 ??? +0C9C- C5 D2 CMP $D2 +0C9E- D3 ??? +0C9F- 8D AA AA STA $AAAA +0CA2- AA TAX +0CA3- 20 D4 CF JSR $CFD4 +0CA6- 20 D4 C8 JSR $C8D4 +0CA9- C5 20 CMP $20 +0CAB- D3 ??? +0CAC- C3 ??? +0CAD- D2 C5 CMP ($C5) +0CAF- C5 CE CMP $CE +0CB1- AE 20 D4 LDX $D420 +0CB4- C8 INY +0CB5- C5 20 CMP $20 +0CB7- D3 ??? +0CB8- D4 ??? +0CB9- D2 C9 CMP ($C9) +0CBB- CE C7 20 DEC $20C7 +0CBE- C3 ??? +0CBF- CF ??? +0CC0- CD C5 D3 CMP $D3C5 +0CC3- 20 C1 C6 JSR $C6C1 +0CC6- D4 ??? +0CC7- C5 D2 CMP $D2 +0CC9- 8D AA AA STA $AAAA +0CCC- AA TAX +0CCD- 20 D4 C8 JSR $C8D4 +0CD0- C5 20 CMP $20 +0CD2- CA DEX +0CD3- D3 ??? +0CD4- D2 20 CMP ($20) +0CD6- D3 ??? +0CD7- D4 ??? +0CD8- C1 D4 CMP ($D4,X) +0CDA- C5 CD CMP $CD +0CDC- C5 CE CMP $CE +0CDE- D4 ??? +0CDF- 20 C9 CE JSR $CEC9 +0CE2- 20 C1 CE JSR $CEC1 +0CE5- 20 C1 D3 JSR $D3C1 +0CE8- C3 ??? +0CE9- AF ??? +0CEA- C8 INY +0CEB- C5 D8 CMP $D8 +0CED- AE 8D AA LDX $AA8D +0CF0- AA TAX +0CF1- AA TAX +0CF2- 8D A0 CA STA $CAA0 +0CF5- D3 ??? +0CF6- D2 A0 CMP ($A0) +0CF8- D8 CLD +0CF9- D0 D2 BNE $0CCD +0CFB- C9 CE CMP #$CE +0CFD- D4 ??? +0CFE- 8D A0 C1 STA $C1A0 +0D01- D3 ??? +0D02- C3 ??? +0D03- A0 A2 LDY #$A2 +0D05- D7 ??? +0D06- D4 ??? +0D07- C6 20 DEC $20 +0D09- D7 ??? +0D0A- CF ??? +0D0B- D2 CC CMP ($CC) +0D0D- C4 A2 CPY $A2 +0D0F- 8D A0 C8 STA $C8A0 +0D12- C5 D8 CMP $D8 +0D14- A0 B8 LDY #$B8 +0D16- C4 B0 CPY $B0 +0D18- B0 A0 BCS $0CBA +0D1A- BB ??? +0D1B- 20 D4 C8 JSR $C8D4 +0D1E- C9 D3 CMP #$D3 +0D20- 20 D4 C5 JSR $C5D4 +0D23- CC CC D3 CPY $D3CC +0D26- 20 D4 C8 JSR $C8D4 +0D29- C5 8D CMP $8D +0D2B- BB ??? +0D2C- 20 D2 CF JSR $CFD2 +0D2F- D5 D4 CMP $D4,X +0D31- C9 CE CMP #$CE +0D33- C5 20 CMP $20 +0D35- D4 ??? +0D36- CF ??? +0D37- 20 D3 D4 JSR $D4D3 +0D3A- CF ??? +0D3B- D0 8D BNE $0CCA +0D3D- BB ??? +0D3E- 20 D0 D2 JSR $D2D0 +0D41- C9 CE CMP #$CE +0D43- D4 ??? +0D44- C9 CE CMP #$CE +0D46- C7 ??? +0D47- 20 D4 C8 JSR $C8D4 +0D4A- C5 20 CMP $20 +0D4C- D3 ??? +0D4D- D4 ??? +0D4E- D2 C9 CMP ($C9) +0D50- CE C7 8D DEC $8DC7 +0D53- AA TAX +0D54- 8D AA AA STA $AAAA +0D57- AA TAX +0D58- 20 D5 D3 JSR $D3D5 +0D5B- C5 20 CMP $20 +0D5D- C4 D0 CPY $D0 +0D5F- D2 C9 CMP ($C9) +0D61- CE D4 20 DEC $20D4 +0D64- D4 ??? +0D65- CF ??? +0D66- 20 D0 D2 JSR $D2D0 +0D69- C9 CE CMP #$CE +0D6B- D4 ??? +0D6C- 20 D4 C8 JSR $C8D4 +0D6F- C5 20 CMP $20 +0D71- D4 ??? +0D72- C5 D8 CMP $D8 +0D74- D4 ??? +0D75- 20 C1 D4 JSR $D4C1 +0D78- 20 C1 20 JSR $20C1 +0D7B- D3 ??? +0D7C- D0 C5 BNE $0D43 +0D7E- C3 ??? +0D7F- C9 C6 CMP #$C6 +0D81- C9 C3 CMP #$C3 +0D83- 8D AA AA STA $AAAA +0D86- AA TAX +0D87- 20 CD C5 JSR $C5CD +0D8A- CD CF D2 CMP $D2CF +0D8D- D9 20 CC CMP $CC20,Y +0D90- CF ??? +0D91- C3 ??? +0D92- C1 D4 CMP ($D4,X) +0D94- C9 CF CMP #$CF +0D96- CE AE 20 DEC $20AE +0D99- CE CF D4 DEC $D4CF +0D9C- C5 20 CMP $20 +0D9E- D4 ??? +0D9F- C8 INY +0DA0- C1 D4 CMP ($D4,X) +0DA2- 20 D4 C8 JSR $C8D4 +0DA5- C9 D3 CMP #$D3 +0DA7- 20 C9 D3 JSR $D3C9 +0DAA- 20 CE CF JSR $CFCE +0DAD- D4 ??? +0DAE- 8D AA AA STA $AAAA +0DB1- AA TAX +0DB2- 20 D4 D9 JSR $D9D4 +0DB5- D0 C9 BNE $0D80 +0DB7- C3 ??? +0DB8- C1 CC CMP ($CC,X) +0DBA- CC D9 20 CPY $20D9 +0DBD- D5 D3 CMP $D3,X +0DBF- C5 C4 CMP $C4 +0DC1- 20 D4 CF JSR $CFD4 +0DC4- 20 D0 D2 JSR $D2D0 +0DC7- C9 CE CMP #$CE +0DC9- D4 ??? +0DCA- 20 D3 D4 JSR $D4D3 +0DCD- D2 C9 CMP ($C9) +0DCF- CE C7 D3 DEC $D3C7 +0DD2- AC 20 C1 LDY $C120 +0DD5- CE C4 20 DEC $20C4 +0DD8- CC C9 CB CPY $CBC9 +0DDB- C5 8D CMP $8D +0DDD- AA TAX +0DDE- AA TAX +0DDF- AA TAX +0DE0- 20 D8 D0 JSR $D0D8 +0DE3- D2 C9 CMP ($C9) +0DE5- CE D4 20 DEC $20D4 +0DE8- D5 D3 CMP $D3,X +0DEA- C5 D3 CMP $D3 +0DEC- 20 D4 C8 JSR $C8D4 +0DEF- C5 20 CMP $20 +0DF1- CE D5 CC DEC $CCD5 +0DF4- CC 20 D4 CPY $D420 +0DF7- C5 D2 CMP $D2 +0DF9- CD C9 CE CMP $CEC9 +0DFC- C1 D4 CMP ($D4,X) +0DFE- CF ??? +0DFF- D2 20 CMP ($20) +0E01- D4 ??? +0E02- CF ??? +0E03- 20 C1 CC JSR $CCC1 +0E06- C5 D2 CMP $D2 +0E08- D4 ??? +0E09- 8D AA AA STA $AAAA +0E0C- AA TAX +0E0D- 20 D4 C8 JSR $C8D4 +0E10- C5 20 CMP $20 +0E12- D2 CF CMP ($CF) +0E14- D5 D4 CMP $D4,X +0E16- C9 CE CMP #$CE +0E18- C5 20 CMP $20 +0E1A- D4 ??? +0E1B- CF ??? +0E1C- 20 D3 D4 JSR $D4D3 +0E1F- CF ??? +0E20- D0 20 BNE $0E42 +0E22- D0 D2 BNE $0DF6 +0E24- C9 CE CMP #$CE +0E26- D4 ??? +0E27- C9 CE CMP #$CE +0E29- C7 ??? +0E2A- AE 20 D4 LDX $D420 +0E2D- CF ??? +0E2E- 20 D0 D2 JSR $D2D0 +0E31- C9 CE CMP #$CE +0E33- D4 ??? +0E34- 8D AA AA STA $AAAA +0E37- AA TAX +0E38- 20 D3 D4 JSR $D4D3 +0E3B- D2 C9 CMP ($C9) +0E3D- CE C7 D3 DEC $D3C7 +0E40- AC 20 D7 LDY $D720 +0E43- C8 INY +0E44- C9 C3 CMP #$C3 +0E46- C8 INY +0E47- 20 C8 C1 JSR $C1C8 +0E4A- D6 C5 DEC $C5,X +0E4C- 20 D4 C8 JSR $C8D4 +0E4F- C5 20 CMP $20 +0E51- CC C5 CE CPY $CEC5 +0E54- C7 ??? +0E55- D4 ??? +0E56- C8 INY +0E57- 20 CF C6 JSR $C6CF +0E5A- 20 D4 C8 JSR $C8D4 +0E5D- C5 20 CMP $20 +0E5F- D3 ??? +0E60- D4 ??? +0E61- D2 C9 CMP ($C9) +0E63- CE C7 8D DEC $8DC7 +0E66- AA TAX +0E67- AA TAX +0E68- AA TAX +0E69- 20 C1 D3 JSR $D3C1 +0E6C- 20 D4 C8 JSR $C8D4 +0E6F- C5 C9 CMP $C9 +0E71- D2 20 CMP ($20) +0E73- C6 C9 DEC $C9 +0E75- D2 D3 CMP ($D3) +0E77- D4 ??? +0E78- 20 C2 D9 JSR $D9C2 +0E7B- D4 ??? +0E7C- C5 20 CMP $20 +0E7E- D6 C1 DEC $C1,X +0E80- CC D5 C5 CPY $C5D5 +0E83- AC 20 D5 LDY $D520 +0E86- D3 ??? +0E87- C5 20 CMP $20 +0E89- D3 ??? +0E8A- D0 D2 BNE $0E5E +0E8C- C9 CE CMP #$CE +0E8E- D4 ??? +0E8F- AE 8D AA LDX $AA8D +0E92- 8D AA 8D STA $8DAA +0E95- A0 CC LDY #$CC +0E97- C4 C1 CPY $C1 +0E99- A0 A3 LDY #$A3 +0E9B- A4 B1 LDY $B1 +0E9D- B8 CLV +0E9E- A0 BB LDY #$BB +0EA0- 20 D0 D5 JSR $D5D0 +0EA3- D4 ??? +0EA4- 20 A7 D8 JSR $D8A7 +0EA7- D8 CLD +0EA8- D8 CLD +0EA9- A7 ??? +0EAA- 20 C9 CE JSR $CEC9 +0EAD- D4 ??? +0EAE- CF ??? +0EAF- 8D A0 D3 STA $D3A0 +0EB2- D4 ??? +0EB3- C1 A0 CMP ($A0,X) +0EB5- A4 B3 LDY $B3 +0EB7- B0 B0 BCS $0E69 +0EB9- A0 BB LDY #$BB +0EBB- 20 CC CF JSR $CFCC +0EBE- C3 ??? +0EBF- C1 D4 CMP ($D4,X) +0EC1- C9 CF CMP #$CF +0EC3- CE 20 A4 DEC $A420 +0EC6- B3 ??? +0EC7- B0 B0 BCS $0E79 +0EC9- 8D A0 D3 STA $D3A0 +0ECC- D4 ??? +0ECD- C1 A0 CMP ($A0,X) +0ECF- A4 B3 LDY $B3 +0ED1- B0 B1 BCS $0E84 +0ED3- 8D A0 D3 STA $D3A0 +0ED6- D4 ??? +0ED7- C1 A0 CMP ($A0,X) +0ED9- A4 B3 LDY $B3 +0EDB- B0 B2 BCS $0E8F +0EDD- 8D A0 CC STA $CCA0 +0EE0- C4 C1 CPY $C1 +0EE2- A0 A3 LDY #$A3 +0EE4- B0 B0 BCS $0E96 +0EE6- 8D A0 D3 STA $D3A0 +0EE9- D4 ??? +0EEA- C1 A0 CMP ($A0,X) +0EEC- A4 B3 LDY $B3 +0EEE- B0 B3 BCS $0EA3 +0EF0- 8D A0 CC STA $CCA0 +0EF3- C4 C1 CPY $C1 +0EF5- A0 A3 LDY #$A3 +0EF7- BE A4 B3 LDX $B3A4,Y +0EFA- B0 B0 BCS $0EAC +0EFC- A0 BB LDY #$BB +0EFE- 20 D0 D5 JSR $D5D0 +0F01- D3 ??? +0F02- C8 INY +0F03- 20 C8 C9 JSR $C9C8 +0F06- C2 ??? +0F07- D9 D4 C5 CMP $C5D4,Y +0F0A- 8D A0 D0 STA $D0A0 +0F0D- C8 INY +0F0E- C1 8D CMP ($8D,X) +0F10- A0 CC LDY #$CC +0F12- C4 C1 CPY $C1 +0F14- A0 A3 LDY #$A3 +0F16- BC A4 B3 LDY $B3A4,X +0F19- B0 B0 BCS $0ECB +0F1B- A0 BB LDY #$BB +0F1D- 20 D0 D5 JSR $D5D0 +0F20- D3 ??? +0F21- C8 INY +0F22- 20 CC CF JSR $CFCC +0F25- C2 ??? +0F26- D9 D4 C5 CMP $C5D4,Y +0F29- 8D A0 D0 STA $D0A0 +0F2C- C8 INY +0F2D- C1 8D CMP ($8D,X) +0F2F- A0 CA LDY #$CA +0F31- D3 ??? +0F32- D2 A0 CMP ($A0) +0F34- C4 D0 CPY $D0 +0F36- D2 C9 CMP ($C9) +0F38- CE D4 A0 DEC $A0D4 +0F3B- BB ??? +0F3C- 20 CE CF JSR $CFCE +0F3F- D7 ??? +0F40- 20 D0 D2 JSR $D2D0 +0F43- C9 CE CMP #$CE +0F45- D4 ??? +0F46- 20 C9 D4 JSR $D4C9 +0F49- 8D AA 8D STA $8DAA +0F4C- AA TAX +0F4D- 20 DE DE JSR $DEDE +0F50- DE 20 CE DEC $CE20,X +0F53- CF ??? +0F54- D4 ??? +0F55- C5 20 CMP $20 +0F57- C1 C2 CMP ($C2,X) +0F59- CF ??? +0F5A- D6 C5 DEC $C5,X +0F5C- 20 D4 C8 JSR $C8D4 +0F5F- C1 D4 CMP ($D4,X) +0F61- 20 D4 C8 JSR $C8D4 +0F64- C5 20 CMP $20 +0F66- C8 INY +0F67- C9 C7 CMP #$C7 +0F69- C8 INY +0F6A- 20 C2 D9 JSR $D9C2 +0F6D- D4 ??? +0F6E- C5 8D CMP $8D +0F70- AA TAX +0F71- 20 C9 D3 JSR $D3C9 +0F74- 20 D0 D5 JSR $D5D0 +0F77- D3 ??? +0F78- C8 INY +0F79- C5 C4 CMP $C4 +0F7B- 20 C2 C5 JSR $C5C2 +0F7E- C6 CF DEC $CF +0F80- D2 C5 CMP ($C5) +0F82- 20 D4 C8 JSR $C8D4 +0F85- C5 20 CMP $20 +0F87- CC CF D7 CPY $D7CF +0F8A- 20 C2 D9 JSR $D9C2 +0F8D- D4 ??? +0F8E- C5 20 CMP $20 +0F90- C2 ??? +0F91- C5 C3 CMP $C3 +0F93- C1 D5 CMP ($D5,X) +0F95- D3 ??? +0F96- C5 8D CMP $8D +0F98- AA TAX +0F99- 20 B6 B5 JSR $B5B6 +0F9C- B0 B2 BCS $0F50 +0F9E- 20 C3 CF JSR $CFC3 +0FA1- CE D6 C5 DEC $C5D6 +0FA4- CE D4 C9 DEC $C9D4 +0FA7- CF ??? +0FA8- CE 20 C9 DEC $C920 +0FAB- D3 ??? +0FAC- 20 D4 CF JSR $CFD4 +0FAF- 20 D2 C5 JSR $C5D2 +0FB2- C1 C4 CMP ($C4,X) +0FB4- 20 D4 C8 JSR $C8D4 +0FB7- C5 20 CMP $20 +0FB9- CC CF D7 CPY $D7CF +0FBC- 20 C2 D9 JSR $D9C2 +0FBF- D4 ??? +0FC0- C5 8D CMP $8D +0FC2- AA TAX +0FC3- 20 C6 C9 JSR $C9C6 +0FC6- D2 D3 CMP ($D3) +0FC8- D4 ??? +0FC9- AC 20 D4 LDY $D420 +0FCC- C8 INY +0FCD- C5 CE CMP $CE +0FCF- 20 D4 C8 JSR $C8D4 +0FD2- C5 20 CMP $20 +0FD4- C8 INY +0FD5- C9 C7 CMP #$C7 +0FD7- C8 INY +0FD8- 20 C2 D9 JSR $D9C2 +0FDB- D4 ??? +0FDC- C5 AE CMP $AE +0FDE- 20 D4 C8 JSR $C8D4 +0FE1- C9 D3 CMP #$D3 +0FE3- 20 C9 D3 JSR $D3C9 +0FE6- 20 D4 C8 JSR $C8D4 +0FE9- C5 8D CMP $8D +0FEB- AA TAX +0FEC- 20 CF D2 JSR $D2CF +0FEF- C4 C5 CPY $C5 +0FF1- D2 20 CMP ($20) +0FF3- C9 D4 CMP #$D4 +0FF5- 20 D7 C9 JSR $C9D7 +0FF8- CC CC 20 CPY $20CC +0FFB- D0 CF BNE $0FCC +0FFD- D0 20 BNE $101F +0FFF- CF ??? +1000- C6 C6 DEC $C6 +1002- 20 D4 C8 JSR $C8D4 +1005- C5 20 CMP $20 +1007- D3 ??? +1008- D4 ??? +1009- C1 C3 CMP ($C3,X) +100B- CB ??? +100C- AE 8D AA LDX $AA8D +100F- 8D AA AA STA $AAAA +1012- AA TAX +1013- 8D AA AA STA $AAAA +1016- AA TAX +1017- 20 D5 D3 JSR $D3D5 +101A- C5 20 CMP $20 +101C- D4 ??? +101D- C8 INY +101E- CC C9 CE CPY $CEC9 +1021- 20 D4 CF JSR $CFD4 +1024- 20 C3 D2 JSR $D2C3 +1027- C5 C1 CMP $C1 +1029- D4 ??? +102A- C5 20 CMP $20 +102C- C1 20 CMP ($20,X) +102E- CC C9 CE CPY $CEC9 +1031- C5 20 CMP $20 +1033- CF ??? +1034- C6 20 DEC $20 +1036- C8 INY +1037- CF ??? +1038- D2 C9 CMP ($C9) +103A- DA PHX +103B- CF ??? +103C- CE D4 C1 DEC $C1D4 +103F- CC 8D AA CPY $AA8D +1042- AA TAX +1043- AA TAX +1044- 20 D4 C5 JSR $C5D4 +1047- D8 CLD +1048- D4 ??? +1049- 20 C3 CF JSR $CFC3 +104C- CE D3 C9 DEC $C9D3 +104F- D3 ??? +1050- D4 ??? +1051- C9 CE CMP #$CE +1053- C7 ??? +1054- 20 CF C6 JSR $C6CF +1057- 20 C1 20 JSR $20C1 +105A- D3 ??? +105B- C9 CE CMP #$CE +105D- C7 ??? +105E- CC C5 20 CPY $20C5 +1061- C3 ??? +1062- C8 INY +1063- C1 D2 CMP ($D2,X) +1065- C1 C3 CMP ($C3,X) +1067- D4 ??? +1068- C5 D2 CMP $D2 +106A- AE 8D AA LDX $AA8D +106D- AA TAX +106E- AA TAX +106F- 20 CC C9 JSR $C9CC +1072- CB ??? +1073- C5 20 CMP $20 +1075- CD C1 CE CMP $CEC1 +1078- D9 20 CF CMP $CF20,Y +107B- D4 ??? +107C- C8 INY +107D- C5 D2 CMP $D2 +107F- 20 D3 D5 JSR $D5D3 +1082- C2 ??? +1083- D2 CF CMP ($CF) +1085- D5 D4 CMP $D4,X +1087- C9 CE CMP #$CE +1089- C5 D3 CMP $D3 +108B- AC 20 D4 LDY $D420 +108E- C8 INY +108F- C9 D3 CMP #$D3 +1091- 20 D5 D3 JSR $D3D5 +1094- C5 D3 CMP $D3 +1096- 8D AA AA STA $AAAA +1099- AA TAX +109A- 20 D4 C8 JSR $C8D4 +109D- C5 20 CMP $20 +109F- D3 ??? +10A0- D4 ??? +10A1- C1 C3 CMP ($C3,X) +10A3- CB ??? +10A4- 20 D4 CF JSR $CFD4 +10A7- 20 D0 C1 JSR $C1D0 +10AA- D3 ??? +10AB- D3 ??? +10AC- 20 D6 C1 JSR $C1D6 +10AF- D2 C9 CMP ($C9) +10B1- C1 C2 CMP ($C2,X) +10B3- CC C5 D3 CPY $D3C5 +10B6- AE 8D AA LDX $AA8D +10B9- AA TAX +10BA- AA TAX +10BB- 8D AA 8D STA $8DAA +10BE- A0 CC LDY #$CC +10C0- C4 C1 CPY $C1 +10C2- A0 A3 LDY #$A3 +10C4- B0 A0 BCS $1066 +10C6- BB ??? +10C7- 20 D3 D4 JSR $D4D3 +10CA- C1 D2 CMP ($D2,X) +10CC- D4 ??? +10CD- 20 CF C6 JSR $C6CF +10D0- 20 CC C9 JSR $C9CC +10D3- CE C5 8D DEC $8DC5 +10D6- A0 D0 LDY #$D0 +10D8- C8 INY +10D9- C1 8D CMP ($8D,X) +10DB- A0 CC LDY #$CC +10DD- C4 C1 CPY $C1 +10DF- A0 A3 LDY #$A3 +10E1- B1 B5 LDA ($B5),Y +10E3- A0 BB LDY #$BB +10E5- 20 C5 CE JSR $CEC5 +10E8- C4 20 CPY $20 +10EA- CF ??? +10EB- C6 20 DEC $20 +10ED- CC C9 CE CPY $CEC9 +10F0- C5 8D CMP $8D +10F2- A0 D0 LDY #$D0 +10F4- C8 INY +10F5- C1 8D CMP ($8D,X) +10F7- A0 CC LDY #$CC +10F9- C4 C1 CPY $C1 +10FB- A0 A3 LDY #$A3 +10FD- B1 B0 LDA ($B0),Y +10FF- A0 BB LDY #$BB +1101- 20 D9 20 JSR $20D9 +1104- D0 CF BNE $10D5 +1106- D3 ??? +1107- C9 D4 CMP #$D4 +1109- C9 CF CMP #$CF +110B- CE 8D A0 DEC $A08D +110E- D0 C8 BNE $10D8 +1110- C1 8D CMP ($8D,X) +1112- A0 CC LDY #$CC +1114- C4 C1 CPY $C1 +1116- A0 A3 LDY #$A3 +1118- A4 B1 LDY $B1 +111A- B8 CLV +111B- A0 BB LDY #$BB +111D- 20 A2 D8 JSR $D8A2 +1120- A2 20 LDX #$20 +1122- C3 ??? +1123- C8 INY +1124- C1 D2 CMP ($D2,X) +1126- C1 C3 CMP ($C3,X) +1128- D4 ??? +1129- C5 D2 CMP $D2 +112B- AC 20 C9 LDY $C920 +112E- CE D6 C5 DEC $C5D6 +1131- D2 D3 CMP ($D3) +1133- C5 8D CMP $8D +1135- A0 D0 LDY #$D0 +1137- C8 INY +1138- C1 8D CMP ($8D,X) +113A- A0 CA LDY #$CA +113C- D3 ??? +113D- D2 A0 CMP ($A0) +113F- D4 ??? +1140- C8 INY +1141- CC C9 CE CPY $CEC9 +1144- 8D AA 8D STA $8DAA +1147- AA TAX +1148- AA TAX +1149- AA TAX +114A- 20 D4 D6 JSR $D6D4 +114D- CC C9 CE CPY $CEC9 +1150- 20 D7 CF JSR $CFD7 +1153- D2 CB CMP ($CB) +1155- D3 ??? +1156- 20 CC C9 JSR $C9CC +1159- CB ??? +115A- C5 20 CMP $20 +115C- D4 ??? +115D- C8 INY +115E- CC C9 CE CPY $CEC9 +1161- AC 20 C2 LDY $C220 +1164- D5 D4 CMP $D4,X +1166- 20 C3 D2 JSR $D2C3 +1169- C5 C1 CMP $C1 +116B- D4 ??? +116C- C5 D3 CMP $D3 +116E- 20 C1 20 JSR $20C1 +1171- D6 C5 DEC $C5,X +1173- D2 D4 CMP ($D4) +1175- C9 C3 CMP #$C3 +1177- C1 CC CMP ($CC,X) +1179- 8D AA AA STA $AAAA +117C- AA TAX +117D- 20 CC C9 JSR $C9CC +1180- CE C5 20 DEC $20C5 +1183- C9 CE CMP #$CE +1185- D3 ??? +1186- D4 ??? +1187- C5 C1 CMP $C1 +1189- C4 20 CPY $20 +118B- CF ??? +118C- C6 20 DEC $20 +118E- C1 20 CMP ($20,X) +1190- C8 INY +1191- CF ??? +1192- D2 C9 CMP ($C9) +1194- DA PHX +1195- CF ??? +1196- CE D4 C1 DEC $C1D4 +1199- CC 20 CF CPY $CF20 +119C- CE C5 AE DEC $AEC5 +119F- 8D AA 8D STA $8DAA +11A2- A0 CC LDY #$CC +11A4- C4 C1 CPY $C1 +11A6- A0 A3 LDY #$A3 +11A8- B0 A0 BCS $114A +11AA- BB ??? +11AB- 20 D3 D4 JSR $D4D3 +11AE- C1 D2 CMP ($D2,X) +11B0- D4 ??? +11B1- C9 CE CMP #$CE +11B3- C7 ??? +11B4- 20 D9 20 JSR $20D9 +11B7- D0 CF BNE $1188 +11B9- D3 ??? +11BA- 20 CF C6 JSR $C6CF +11BD- 20 CC C9 JSR $C9CC +11C0- CE C5 8D DEC $8DC5 +11C3- A0 D0 LDY #$D0 +11C5- C8 INY +11C6- C1 8D CMP ($8D,X) +11C8- A0 CC LDY #$CC +11CA- C4 C1 CPY $C1 +11CC- A0 A3 LDY #$A3 +11CE- B1 B5 LDA ($B5),Y +11D0- A0 BB LDY #$BB +11D2- 20 C5 CE JSR $CEC5 +11D5- C4 20 CPY $20 +11D7- D9 D0 CF CMP $CFD0,Y +11DA- D3 ??? +11DB- 20 CF C6 JSR $C6CF +11DE- 20 CC C9 JSR $C9CC +11E1- CE C5 8D DEC $8DC5 +11E4- A0 D0 LDY #$D0 +11E6- C8 INY +11E7- C1 8D CMP ($8D,X) +11E9- A0 CC LDY #$CC +11EB- C4 C1 CPY $C1 +11ED- A0 A3 LDY #$A3 +11EF- B1 B0 LDA ($B0),Y +11F1- A0 BB LDY #$BB +11F3- 20 D8 20 JSR $20D8 +11F6- D0 CF BNE $11C7 +11F8- D3 ??? +11F9- C9 D4 CMP #$D4 +11FB- C9 CF CMP #$CF +11FD- CE 8D A0 DEC $A08D +1200- D0 C8 BNE $11CA +1202- C1 8D CMP ($8D,X) +1204- A0 CC LDY #$CC +1206- C4 C1 CPY $C1 +1208- A0 A3 LDY #$A3 +120A- A4 B1 LDY $B1 +120C- B8 CLV +120D- A0 BB LDY #$BB +120F- 20 A2 D8 JSR $D8A2 +1212- A2 20 LDX #$20 +1214- C3 ??? +1215- C8 INY +1216- C1 D2 CMP ($D2,X) +1218- C1 C3 CMP ($C3,X) +121A- D4 ??? +121B- C5 D2 CMP $D2 +121D- AC 20 C9 LDY $C920 +1220- CE D6 C5 DEC $C5D6 +1223- D2 D3 CMP ($D3) +1225- C5 8D CMP $8D +1227- A0 D0 LDY #$D0 +1229- C8 INY +122A- C1 8D CMP ($8D,X) +122C- A0 CA LDY #$CA +122E- D3 ??? +122F- D2 A0 CMP ($A0) +1231- D4 ??? +1232- D6 CC DEC $CC,X +1234- C9 CE CMP #$CE +1236- 8D AA 8D STA $8DAA +1239- AA TAX +123A- 8D AA AA STA $AAAA +123D- AA TAX +123E- 20 D4 C8 JSR $C8D4 +1241- C5 20 CMP $20 +1243- D4 ??? +1244- C6 C9 DEC $C9 +1246- CC CC C1 CPY $C1CC +1249- 20 D2 CF JSR $CFD2 +124C- D5 D4 CMP $D4,X +124E- C9 CE CMP #$CE +1250- C5 20 CMP $20 +1252- C1 C3 CMP ($C3,X) +1254- D4 ??? +1255- D3 ??? +1256- 20 CC C9 JSR $C9CC +1259- CB ??? +125A- C5 20 CMP $20 +125C- C1 20 CMP ($20,X) +125E- C3 ??? +125F- CF ??? +1260- CD C2 C9 CMP $C9C2 +1263- CE C1 D4 DEC $D4C1 +1266- C9 CF CMP #$CF +1268- CE 20 CF DEC $CF20 +126B- C6 8D DEC $8D +126D- AA TAX +126E- AA TAX +126F- AA TAX +1270- 20 D4 C8 JSR $C8D4 +1273- CC C9 CE CPY $CEC9 +1276- 20 C1 CE JSR $CEC1 +1279- C4 20 CPY $20 +127B- D4 ??? +127C- D6 CC DEC $CC,X +127E- C9 CE CMP #$CE +1280- AE 20 C9 LDX $C920 +1283- D4 ??? +1284- 20 C6 C9 JSR $C9C6 +1287- CC CC D3 CPY $D3CC +128A- 20 C1 20 JSR $20C1 +128D- C7 ??? +128E- C9 D6 CMP #$D6 +1290- C5 CE CMP $CE +1292- 20 D2 C5 JSR $C5D2 +1295- C3 ??? +1296- D4 ??? +1297- C1 CE CMP ($CE,X) +1299- C7 ??? +129A- D5 CC CMP $CC,X +129C- C1 D2 CMP ($D2,X) +129E- 8D AA AA STA $AAAA +12A1- AA TAX +12A2- 20 C1 D2 JSR $D2C1 +12A5- C5 C1 CMP $C1 +12A7- 20 CF C6 JSR $C6CF +12AA- 20 D4 C8 JSR $C8D4 +12AD- C5 20 CMP $20 +12AF- D3 ??? +12B0- C3 ??? +12B1- D2 C5 CMP ($C5) +12B3- C5 CE CMP $CE +12B5- 20 D7 C9 JSR $C9D7 +12B8- D4 ??? +12B9- C8 INY +12BA- 20 D4 C8 JSR $C8D4 +12BD- C5 20 CMP $20 +12BF- C4 C5 CPY $C5 +12C1- D3 ??? +12C2- C9 C7 CMP #$C7 +12C4- CE C1 D4 DEC $D4C1 +12C7- C5 C4 CMP $C4 +12C9- 8D AA AA STA $AAAA +12CC- AA TAX +12CD- 20 C3 C8 JSR $C8C3 +12D0- C1 D2 CMP ($D2,X) +12D2- C1 C3 CMP ($C3,X) +12D4- D4 ??? +12D5- C5 D2 CMP $D2 +12D7- 20 C1 D4 JSR $D4C1 +12DA- 20 D8 B1 JSR $B1D8 +12DD- AC D9 B1 LDY $B1D9 +12E0- BA TSX +12E1- D8 CLD +12E2- B2 AC LDA ($AC) +12E4- D9 B2 AE CMP $AEB2,Y +12E7- 8D AA 8D STA $8DAA +12EA- A0 CC LDY #$CC +12EC- C4 C1 CPY $C1 +12EE- A0 A3 LDY #$A3 +12F0- B1 B0 LDA ($B0),Y +12F2- A0 BB LDY #$BB +12F4- 20 CC C5 JSR $C5CC +12F7- C6 D4 DEC $D4 +12F9- 20 C2 CF JSR $CFC2 +12FC- D5 CE CMP $CE,X +12FE- C4 C1 CPY $C1 +1300- D2 D9 CMP ($D9) +1302- 8D A0 D0 STA $D0A0 +1305- C8 INY +1306- C1 8D CMP ($8D,X) +1308- A0 CC LDY #$CC +130A- C4 C1 CPY $C1 +130C- A0 A3 LDY #$A3 +130E- B3 ??? +130F- B0 A0 BCS $12B1 +1311- BB ??? +1312- 20 D2 C9 JSR $C9D2 +1315- C7 ??? +1316- C8 INY +1317- D4 ??? +1318- 20 C2 CF JSR $CFC2 +131B- D5 CE CMP $CE,X +131D- C4 C1 CPY $C1 +131F- D2 D9 CMP ($D9) +1321- 8D A0 D0 STA $D0A0 +1324- C8 INY +1325- C1 8D CMP ($8D,X) +1327- A0 CC LDY #$CC +1329- C4 C1 CPY $C1 +132B- A0 A3 LDY #$A3 +132D- B5 A0 LDA $A0,X +132F- BB ??? +1330- 20 D4 CF JSR $CFD4 +1333- D0 20 BNE $1355 +1335- C2 ??? +1336- CF ??? +1337- D5 CE CMP $CE,X +1339- C4 C1 CPY $C1 +133B- D2 D9 CMP ($D9) +133D- 8D A0 D0 STA $D0A0 +1340- C8 INY +1341- C1 8D CMP ($8D,X) +1343- A0 CC LDY #$CC +1345- C4 C1 CPY $C1 +1347- A0 A3 LDY #$A3 +1349- B1 B5 LDA ($B5),Y +134B- A0 BB LDY #$BB +134D- 20 C2 CF JSR $CFC2 +1350- D4 ??? +1351- D4 ??? +1352- CF ??? +1353- CD 20 C2 CMP $C220 +1356- CF ??? +1357- D5 CE CMP $CE,X +1359- C4 C1 CPY $C1 +135B- D2 D9 CMP ($D9) +135D- 8D A0 D0 STA $D0A0 +1360- C8 INY +1361- C1 8D CMP ($8D,X) +1363- A0 CC LDY #$CC +1365- C4 C1 CPY $C1 +1367- A0 A3 LDY #$A3 +1369- A4 B1 LDY $B1 +136B- C1 A0 CMP ($A0,X) +136D- BB ??? +136E- 20 A2 DA JSR $DAA2 +1371- A2 20 LDX #$20 +1373- C3 ??? +1374- C8 INY +1375- C1 D2 CMP ($D2,X) +1377- C1 C3 CMP ($C3,X) +1379- D4 ??? +137A- C5 D2 CMP $D2 +137C- 8D A0 D0 STA $D0A0 +137F- C8 INY +1380- C1 8D CMP ($8D,X) +1382- A0 CA LDY #$CA +1384- D3 ??? +1385- D2 A0 CMP ($A0) +1387- D4 ??? +1388- C6 C9 DEC $C9 +138A- CC CC C1 CPY $C1CC +138D- 8D AA 8D STA $8DAA +1390- AA TAX +1391- 8D AA AA STA $AAAA +1394- AA TAX +1395- 20 D4 C8 JSR $C8D4 +1398- C5 20 CMP $20 +139A- D3 ??? +139B- C9 CE CMP #$CE +139D- D0 D5 BNE $1374 +139F- D4 ??? +13A0- 20 D2 CF JSR $CFD2 +13A3- D5 D4 CMP $D4,X +13A5- C9 CE CMP #$CE +13A7- C5 20 CMP $20 +13A9- A8 TAY +13AA- D3 ??? +13AB- D0 C5 BNE $1372 +13AD- C3 ??? +13AE- C9 C1 CMP #$C1 +13B0- CC 20 C9 CPY $C920 +13B3- CE D0 D5 DEC $D5D0 +13B6- D4 ??? +13B7- A9 20 LDA #$20 +13B9- D0 D2 BNE $138D +13BB- CF ??? +13BC- CD D0 D4 CMP $D4D0 +13BF- D3 ??? +13C0- 8D AA AA STA $AAAA +13C3- AA TAX +13C4- 20 D4 C8 JSR $C8D4 +13C7- C5 20 CMP $20 +13C9- D5 D3 CMP $D3,X +13CB- C5 D2 CMP $D2 +13CD- 20 C6 CF JSR $CFC6 +13D0- D2 20 CMP ($20) +13D2- C1 20 CMP ($20,X) +13D4- D3 ??? +13D5- D4 ??? +13D6- D2 C9 CMP ($C9) +13D8- CE C7 20 DEC $20C7 +13DB- CF ??? +13DC- C6 20 DEC $20 +13DE- D4 ??? +13DF- C5 D8 CMP $D8 +13E1- D4 ??? +13E2- 20 C6 CF JSR $CFC6 +13E5- CC CC CF CPY $CFCC +13E8- D7 ??? +13E9- C5 C4 CMP $C4 +13EB- 20 C2 D9 JSR $D9C2 +13EE- 8D AA AA STA $AAAA +13F1- AA TAX +13F2- 20 C1 20 JSR $20C1 +13F5- BC D2 C5 LDY $C5D2,X +13F8- D4 ??? +13F9- D5 D2 CMP $D2,X +13FB- CE BE 20 DEC $20BE +13FE- D0 D2 BNE $13D2 +1400- C5 D3 CMP $D3 +1402- D3 ??? +1403- AC 20 D4 LDY $D420 +1406- C8 INY +1407- C5 CE CMP $CE +1409- 20 D3 D4 JSR $D4D3 +140C- CF ??? +140D- D2 C5 CMP ($C5) +140F- D3 ??? +1410- 20 D4 C8 JSR $C8D4 +1413- C5 20 CMP $20 +1415- C9 CE CMP #$CE +1417- D0 D5 BNE $13EE +1419- D4 ??? +141A- D4 ??? +141B- C5 C4 CMP $C4 +141D- 8D AA AA STA $AAAA +1420- AA TAX +1421- 20 D3 D4 JSR $D4D3 +1424- D2 C9 CMP ($C9) +1426- CE C7 20 DEC $20C7 +1429- C1 D4 CMP ($D4,X) +142B- 20 D4 C8 JSR $C8D4 +142E- C5 20 CMP $20 +1430- D3 ??? +1431- D0 C5 BNE $13F8 +1433- C3 ??? +1434- C9 C6 CMP #$C6 +1436- C9 C5 CMP #$C5 +1438- C4 20 CPY $20 +143A- CC CF C3 CPY $C3CF +143D- C1 D4 CMP ($D4,X) +143F- C9 CF CMP #$CF +1441- CE AC 20 DEC $20AC +1444- D7 ??? +1445- C9 D4 CMP #$D4 +1447- C8 INY +1448- 20 C9 D4 JSR $D4C9 +144B- D3 ??? +144C- 8D AA AA STA $AAAA +144F- AA TAX +1450- 20 CC C5 JSR $C5CC +1453- CE C7 D4 DEC $D4C7 +1456- C8 INY +1457- 20 C1 D3 JSR $D3C1 +145A- 20 D4 C8 JSR $C8D4 +145D- C5 20 CMP $20 +145F- C6 C9 DEC $C9 +1461- D2 D3 CMP ($D3) +1463- D4 ??? +1464- 20 C2 D9 JSR $D9C2 +1467- D4 ??? +1468- C5 20 CMP $20 +146A- A8 TAY +146B- CD C1 D8 CMP $D8C1 +146E- BA TSX +146F- 20 B2 B5 JSR $B5B2 +1472- B5 A9 LDA $A9,X +1474- 8D AA 8D STA $8DAA +1477- A0 CC LDY #$CC +1479- C4 C1 CPY $C1 +147B- A0 A3 LDY #$A3 +147D- BE A4 B3 LDX $B3A4,Y +1480- B0 B0 BCS $1432 +1482- A0 BB LDY #$BB +1484- 20 D0 D5 JSR $D5D0 +1487- D3 ??? +1488- C8 INY +1489- 20 C8 C9 JSR $C9C8 +148C- C7 ??? +148D- C8 INY +148E- 20 C2 D9 JSR $D9C2 +1491- D4 ??? +1492- C5 20 CMP $20 +1494- C6 C9 DEC $C9 +1496- D2 D3 CMP ($D3) +1498- D4 ??? +1499- 8D A0 D0 STA $D0A0 +149C- C8 INY +149D- C1 8D CMP ($8D,X) +149F- A0 CC LDY #$CC +14A1- C4 C1 CPY $C1 +14A3- A0 A3 LDY #$A3 +14A5- BC A4 B3 LDY $B3A4,X +14A8- B0 B0 BCS $145A +14AA- A0 BB LDY #$BB +14AC- 20 D4 C8 JSR $C8D4 +14AF- C5 CE CMP $CE +14B1- 20 CC CF JSR $CFCC +14B4- D7 ??? +14B5- 20 C2 D9 JSR $D9C2 +14B8- D4 ??? +14B9- C5 AC CMP $AC +14BB- 20 D3 CF JSR $CFD3 +14BE- 8D BB 20 STA $20BB +14C1- D4 ??? +14C2- C8 INY +14C3- C1 D4 CMP ($D4,X) +14C5- 20 D4 C8 JSR $C8D4 +14C8- C5 20 CMP $20 +14CA- D2 CF CMP ($CF) +14CC- D5 D4 CMP $D4,X +14CE- C9 CE CMP #$CE +14D0- C5 8D CMP $8D +14D2- A0 BB LDY #$BB +14D4- 20 D2 C5 JSR $C5D2 +14D7- C1 C4 CMP ($C4,X) +14D9- D3 ??? +14DA- 20 CC CF JSR $CFCC +14DD- D7 ??? +14DE- AC 20 C8 LDY $C820 +14E1- C9 C7 CMP #$C7 +14E3- C8 INY +14E4- 8D A0 D0 STA $D0A0 +14E7- C8 INY +14E8- C1 8D CMP ($8D,X) +14EA- A0 CA LDY #$CA +14EC- D3 ??? +14ED- D2 A0 CMP ($A0) +14EF- D3 ??? +14F0- C9 CE CMP #$CE +14F2- D0 D5 BNE $14C9 +14F4- D4 ??? +14F5- A0 BB LDY #$BB +14F7- 20 D3 D4 JSR $D4D3 +14FA- CF ??? +14FB- D2 C5 CMP ($C5) +14FD- D3 ??? +14FE- 20 C9 CE JSR $CEC9 +1501- 20 A4 B3 JSR $B3A4 +1504- B0 B0 BCS $14B6 +1506- 8D AA 8D STA $8DAA +1509- AA TAX +150A- 8D AA AA STA $AAAA +150D- AA TAX +150E- 20 D4 C8 JSR $C8D4 +1511- C5 20 CMP $20 +1513- D0 C1 BNE $14D6 +1515- C4 C4 CPY $C4 +1517- CC C5 20 CPY $20C5 +151A- C2 ??? +151B- D5 D4 CMP $D4,X +151D- D4 ??? +151E- CF ??? +151F- CE 20 D2 DEC $D220 +1522- CF ??? +1523- D5 D4 CMP $D4,X +1525- C9 CE CMP #$CE +1527- C5 20 CMP $20 +1529- C3 ??? +152A- C8 INY +152B- C5 C3 CMP $C3 +152D- CB ??? +152E- D3 ??? +152F- 8D AA AA STA $AAAA +1532- AA TAX +1533- 20 D7 C8 JSR $C8D7 +1536- C5 D4 CMP $D4 +1538- C8 INY +1539- C5 D2 CMP $D2 +153B- 20 D4 C8 JSR $C8D4 +153E- C5 20 CMP $20 +1540- C4 C5 CPY $C5 +1542- D3 ??? +1543- C9 C7 CMP #$C7 +1545- CE C1 D4 DEC $D4C1 +1548- C5 C4 CMP $C4 +154A- 20 D0 C1 JSR $C1D0 +154D- C4 C4 CPY $C4 +154F- CC C5 20 CPY $20C5 +1552- C2 ??? +1553- D5 D4 CMP $D4,X +1555- D4 ??? +1556- CF ??? +1557- CE 8D AA DEC $AA8D +155A- AA TAX +155B- AA TAX +155C- 20 C9 D3 JSR $D3C9 +155F- 20 C3 D5 JSR $D5C3 +1562- D2 D2 CMP ($D2) +1564- C5 CE CMP $CE +1566- D4 ??? +1567- CC D9 20 CPY $20D9 +156A- C2 ??? +156B- C5 C9 CMP $C9 +156D- CE C7 20 DEC $20C7 +1570- D0 D2 BNE $1544 +1572- C5 D3 CMP $D3 +1574- D3 ??? +1575- C5 C4 CMP $C4 +1577- AE 8D AA LDX $AA8D +157A- 8D AA 8D STA $8DAA +157D- AA TAX +157E- 8D AA 8D STA $8DAA +1581- AA TAX +1582- 8D AA 8D STA $8DAA +1585- AA TAX +1586- AA TAX +1587- AA TAX +1588- AA TAX +1589- AA TAX +158A- AA TAX +158B- AA TAX +158C- AA TAX +158D- AA TAX +158E- AA TAX +158F- AA TAX +1590- AA TAX +1591- AA TAX +1592- AA TAX +1593- AA TAX +1594- AA TAX +1595- AA TAX +1596- AA TAX +1597- AA TAX +1598- AA TAX +1599- AA TAX +159A- AA TAX +159B- AA TAX +159C- AA TAX +159D- AA TAX +159E- AA TAX +159F- AA TAX +15A0- AA TAX +15A1- AA TAX +15A2- AA TAX +15A3- AA TAX +15A4- AA TAX +15A5- 8D AA AA STA $AAAA +15A8- AA TAX +15A9- AA TAX +15AA- AA TAX +15AB- AA TAX +15AC- AA TAX +15AD- AA TAX +15AE- AA TAX +15AF- AA TAX +15B0- AA TAX +15B1- AA TAX +15B2- AA TAX +15B3- AA TAX +15B4- AA TAX +15B5- AA TAX +15B6- AA TAX +15B7- AA TAX +15B8- AA TAX +15B9- AA TAX +15BA- AA TAX +15BB- AA TAX +15BC- AA TAX +15BD- AA TAX +15BE- AA TAX +15BF- AA TAX +15C0- AA TAX +15C1- AA TAX +15C2- AA TAX +15C3- AA TAX +15C4- AA TAX +15C5- AA TAX +15C6- 8D AA 20 STA $20AA +15C9- CE CF D7 DEC $D7CF +15CC- 20 CC C5 JSR $C5CC +15CF- D4 ??? +15D0- A7 ??? +15D1- D3 ??? +15D2- 20 C4 CF JSR $CFC4 +15D5- 20 C9 D4 JSR $D4C9 +15D8- 20 C1 C7 JSR $C7C1 +15DB- C1 C9 CMP ($C9,X) +15DD- CE A1 20 DEC $20A1 +15E0- 20 20 20 JSR $2020 +15E3- 20 20 20 JSR $2020 +15E6- AA TAX +15E7- 8D AA 20 STA $20AA +15EA- A8 TAY +15EB- C2 ??? +15EC- D5 D4 CMP $D4,X +15EE- 20 D7 C9 JSR $C9D7 +15F1- D4 ??? +15F2- C8 INY +15F3- 20 CD C1 JSR $C1CD +15F6- C3 ??? +15F7- D2 CF CMP ($CF) +15F9- D3 ??? +15FA- A9 20 LDA #$20 +15FC- 20 20 20 JSR $2020 +15FF- 20 20 20 JSR $2020 +1602- 20 20 20 JSR $2020 +1605- 20 20 AA JSR $AA20 +1608- 8D AA AA STA $AAAA +160B- AA TAX +160C- AA TAX +160D- AA TAX +160E- AA TAX +160F- AA TAX +1610- AA TAX +1611- AA TAX +1612- AA TAX +1613- AA TAX +1614- AA TAX +1615- AA TAX +1616- AA TAX +1617- AA TAX +1618- AA TAX +1619- AA TAX +161A- AA TAX +161B- AA TAX +161C- AA TAX +161D- AA TAX +161E- AA TAX +161F- AA TAX +1620- AA TAX +1621- AA TAX +1622- AA TAX +1623- AA TAX +1624- AA TAX +1625- AA TAX +1626- AA TAX +1627- AA TAX +1628- AA TAX +1629- 8D AA AA STA $AAAA +162C- AA TAX +162D- AA TAX +162E- AA TAX +162F- AA TAX +1630- AA TAX +1631- AA TAX +1632- AA TAX +1633- AA TAX +1634- AA TAX +1635- AA TAX +1636- AA TAX +1637- AA TAX +1638- AA TAX +1639- AA TAX +163A- AA TAX +163B- AA TAX +163C- AA TAX +163D- AA TAX +163E- AA TAX +163F- AA TAX +1640- AA TAX +1641- AA TAX +1642- AA TAX +1643- AA TAX +1644- AA TAX +1645- AA TAX +1646- AA TAX +1647- AA TAX +1648- AA TAX +1649- AA TAX +164A- 8D AA 8D STA $8DAA +164D- A0 CA LDY #$CA +164F- D3 ??? +1650- D2 A0 CMP ($A0) +1652- C8 INY +1653- CF ??? +1654- CD C5 8D CMP $8DC5 +1657- A0 DF LDY #$DF +1659- D0 D2 BNE $162D +165B- CE A0 A2 DEC $A2A0 +165E- D7 ??? +165F- D4 ??? +1660- C6 AC DEC $AC +1662- 20 D7 CF JSR $CFD7 +1665- D2 CC CMP ($CC) +1667- C4 BF CPY $BF +1669- A2 8D LDX #$8D +166B- A0 DF LDY #$DF +166D- C3 ??? +166E- D8 CLD +166F- D9 A0 A3 CMP $A3A0,Y +1672- B1 B0 LDA ($B0),Y +1674- BB ??? +1675- A3 ??? +1676- B1 B0 LDA ($B0),Y +1678- 8D A0 DF STA $DFA0 +167B- D4 ??? +167C- D6 CC DEC $CC,X +167E- CE A0 A3 DEC $A3A0 +1681- B5 BB LDA $BB,X +1683- A3 ??? +1684- B2 B0 LDA ($B0) +1686- BB ??? +1687- A3 ??? +1688- B3 ??? +1689- B0 BB BCS $1646 +168B- A3 ??? +168C- A4 B1 LDY $B1 +168E- B8 CLV +168F- 8D A0 DF STA $DFA0 +1692- D4 ??? +1693- C8 INY +1694- CC CE A0 CPY $A0CE +1697- A3 ??? +1698- B5 BB LDA $BB,X +169A- A3 ??? +169B- B3 ??? +169C- B0 BB BCS $1659 +169E- A3 ??? +169F- B2 B0 LDA ($B0) +16A1- BB ??? +16A2- A3 ??? +16A3- A4 B1 LDY $B1 +16A5- C1 8D CMP ($8D,X) +16A7- A0 DF LDY #$DF +16A9- C9 CE CMP #$CE +16AB- D0 A0 BNE $164D +16AD- A4 B3 LDY $B3 +16AF- B0 B0 BCS $1661 +16B1- 8D A0 DF STA $DFA0 +16B4- D4 ??? +16B5- C6 C9 DEC $C9 +16B7- CC A0 A3 CPY $A3A0 +16BA- B0 BB BCS $1677 +16BC- A3 ??? +16BD- B3 ??? +16BE- B9 BB A3 LDA $A3BB,Y +16C1- B0 BB BCS $167E +16C3- A3 ??? +16C4- B2 B1 LDA ($B1) +16C6- BB ??? +16C7- A3 ??? +16C8- A4 B1 LDY $B1 +16CA- B9 8D AA LDA $AA8D,Y +16CD- 8D AA 8D STA $8DAA +16D0- AA TAX +16D1- 8D AA AA STA $AAAA +16D4- 20 CC C9 JSR $C9CC +16D7- D4 ??? +16D8- D4 ??? +16D9- CC C5 20 CPY $20C5 +16DC- CC D5 CD CPY $CDD5 +16DF- D0 D3 BNE $16B4 +16E1- 20 AD AD JSR $ADAD +16E4- 20 CD C9 JSR $C9CD +16E7- C4 AF CPY $AF +16E9- CC CF D7 CPY $D7CF +16EC- 20 CC C5 JSR $C5CC +16EF- D6 C5 DEC $C5,X +16F1- CC 8D AA CPY $AA8D +16F4- 8D AA 8D STA $8DAA +16F7- A0 CA LDY #$CA +16F9- CD D0 A0 CMP $A0D0 +16FC- D2 C5 CMP ($C5) +16FE- C5 CE CMP $CE +1700- D4 ??? +1701- D2 D9 CMP ($D9) +1703- 8D AA 8D STA $8DAA +1706- AA TAX +1707- E0 E0 CPX #$E0 +1709- E0 E0 CPX #$E0 +170B- E0 E0 CPX #$E0 +170D- E0 E0 CPX #$E0 +170F- E0 E0 CPX #$E0 +1711- E0 E0 CPX #$E0 +1713- E0 E0 CPX #$E0 +1715- E0 E0 CPX #$E0 +1717- E0 E0 CPX #$E0 +1719- E0 E0 CPX #$E0 +171B- E0 E0 CPX #$E0 +171D- E0 E0 CPX #$E0 +171F- E0 E0 CPX #$E0 +1721- E0 E0 CPX #$E0 +1723- E0 E0 CPX #$E0 +1725- AA TAX +1726- 8D AA 20 STA $20AA +1729- 20 20 20 JSR $2020 +172C- 20 20 20 JSR $2020 +172F- 20 C2 CF JSR $CFC2 +1732- D4 ??? +1733- D4 ??? +1734- CF ??? +1735- CD 20 C9 CMP $C920 +1738- CE C3 CC DEC $CCC3 +173B- D5 C4 CMP $C4,X +173D- C5 D3 CMP $D3 +173F- 20 20 20 JSR $2020 +1742- 20 20 20 JSR $2020 +1745- 20 AA 8D JSR $8DAA +1748- AA TAX +1749- AC AC AC LDY $ACAC +174C- AC AC AC LDY $ACAC +174F- AC AC AC LDY $ACAC +1752- AC AC AC LDY $ACAC +1755- AC AC AC LDY $ACAC +1758- AC AC AC LDY $ACAC +175B- AC AC AC LDY $ACAC +175E- AC AC AC LDY $ACAC +1761- AC AC AC LDY $ACAC +1764- AC AC AC LDY $ACAC +1767- AA TAX +1768- 8D AA 8D STA $8DAA +176B- AA TAX +176C- 8D AA AA STA $AAAA +176F- 20 C2 CF JSR $CFC2 +1772- D4 ??? +1773- D4 ??? +1774- CF ??? +1775- CD 20 C9 CMP $C920 +1778- CE C3 CC DEC $CCC3 +177B- D5 C4 CMP $C4,X +177D- C5 D3 CMP $D3 +177F- 8D AA 8D STA $8DAA +1782- A0 D0 LDY #$D0 +1784- D5 D4 CMP $D4,X +1786- A0 D3 LDY #$D3 +1788- D4 ??? +1789- C4 C9 CPY $C9 +178B- CF ??? +178C- AE CC C9 LDX $C9CC +178F- C2 ??? +1790- 8D AA 8D STA $8DAA +1793- AA TAX +1794- 8D 00 00 STA $0000 diff --git a/source/STDIO/T.STDIO.HOOKS b/source/STDIO/T.STDIO.HOOKS new file mode 100644 index 0000000..571056f --- /dev/null +++ b/source/STDIO/T.STDIO.HOOKS @@ -0,0 +1,53 @@ +* +*``````````````````````````````* +* STDIO.HOOKS.PUT * +*- -* +* HOOKS TO INPUT/OUTPUT * +* ROUTINES IN MONITOR * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +* OUTPUT HOOKS +* +COUT1 EQU $FDF0 ; FASTER SCREEN OUTPUT +COUT EQU $FDED ; MONITOR STD OUTPUT +HOME EQU $FC58 ; CLEAR SCREEN, HOME CURSOR +VTAB EQU $FC22 ; MONITOR CURSOR POS ROUTINE +CURSH EQU $24 ; HPOS OF COUT CURSOR +CURSV EQU $25 ; VPOS OF COUT CURSOR +WNDLEFT EQU $20 ; SCROLL WINDOW LEFT +WNDWIDTH EQU $21 ; SCROLL WINDOW WIDTH +WNDTOP EQU $22 ; SCROLL WINDOW TOP +WNDBOT EQU $23 ; SCROLL WINDOW BOTTOM +TEXTP1 EQU $0400 ; START OF TEXT PAGE 1 +TEXTP2 EQU $0800 ; START OF TEXT PAGE 2 +PAGE1 EQU $C054 ; SOFT SWITCH USE PAGE 1 +PAGE2 EQU $C055 ; SOFT SWITCH USE PAGE 2 +S80COL EQU $C01F ; READ ONLY; CHECK IF 80C +KEYBUFF EQU $0200 ; KEYBUFFER START +GSTROBE EQU $C040 ; GAME CONNECTOR STROBE +TXTSET EQU $C051 ; TEXT ON SOFT SWITCH +SETWND EQU $FB4B ; SET NORMAL WINDOW MODE +CURADV EQU $FBF4 ; ADVANCE CURSOR RIGHT +CURBS EQU $FC10 ; CURSOR LEFT +CURUP EQU $FC1A ; CURSOR UP +CR EQU $FC62 ; CARRIAGE RETURN TO SCREEN +LF EQU $FC66 ; LINE FEED ONLY TO SCREEN +CLEOL EQU $FC9C ; CLEAR TEXT TO END OF LINE +* +* INPUT HOOKS +* +KYBD EQU $C000 ; LDA SINGLE KEYPRESS +STROBE EQU $C010 ; CLEAR KYBD BUFFER +GETLN EQU $FD6F ; MONITOR GET LINE OF KB INPUT +GETKEY EQU $FD0C ; MONITOR GET SINGLE KEY INPUT +OPAPP EQU $C061 +CLAPP EQU $C062 +* +* PADDLE HOOKS +* +PREAD EQU $FB1E ; READ STATE OF PADDLE +PB0 EQU $C061 ; PADDLE BUTTON 0 +PB1 EQU $C062 +PB2 EQU $C063 +PB3 EQU $C060 +* diff --git a/source/STDIO/T.STDIO.LIB b/source/STDIO/T.STDIO.LIB new file mode 100644 index 0000000..bfce116 --- /dev/null +++ b/source/STDIO/T.STDIO.LIB @@ -0,0 +1,788 @@ +* + JMP STDIOX +* +*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* +* * +* STDIO.PUT * +* * +* AUTHOR: NATHAN RIGGS * +* CONTACT: NATHAN.RIGGS@ * +* OUTLOOK.COM * +* * +* VERSION: 0.1.2 * +* DATE: 30-OCT-2018 * +* ASSEMBLER: MERLIN 8 PRO * +* * +**** SEE CHANGELOG FOR **** +**** HISTORY OF CHANGES **** +* * +* LICENSE: MIT LICENSE, WHERE * +* APPLICABLE. CODE INSPIRED * +* BY THE WORKS OF OTHERS MAY * +* FALL UNDER A DIFFERENT * +* LICENSE (NOTED IN ROUTINE). * +* * +* STANDARD INPUT / OUTPUT * +* LIBRARY. PRIMARILY FOR THE * +* APPLE II FAMILY, BUT COULD * +* BE PORTED TO OTHER 6502- * +* BASED SYSTEMS FAIRLY * +* EASILY. * +* * +*------------------------------* +* * +* LIST OF ROUTINES * +* * +* XPRINT : SPECIAL PRINT * +* DPRINT : PRINT FROM MEMORY * +* THLIN : TEXT LINE HORIZONTAL * +* TVLIN : TEXT LINE VERTICAL * +* CURSFOR : CURSOR FORWARD * +* CURSBAK : CURSOR BACKWARD * +* CURSDN : CURSOR DOWN * +* CURSUP : CURSOR UP * +* TFILLA : TEXT FILL AREA * +* SINPUT : STRING INPUT * +* GPBX : GET PADDLE BUTTON X * +* * +*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* +* +*``````````````````````````````* +* XPRINT :: SPECIAL PRINT * +*- -* +* PRINTS DATA IMMEDIATELY * +* FOLLOWING THE JSR TO SPRINT * +*- -* +* CLOBBERS: * +* * +* FLAGS: NZC----- REG: AYM- * +*- -* +* CYCLES: 53+ * +* SIZE: * +*- -* +* USAGE: * +* JSR SPRINT * +* ASC "HELLO, WORLD!" * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* A,Y = LOW BYTE OF ADDRESS * +* X = UNCHANGED * +*- -* +* NOTE: PARTIALLY ADOPTED FROM * +* ROGER WAGNER'S AND CHRIS * +* TORRENCE'S /ASSEMBLY LINES/ * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +XPRINT +* +** GET CURRENT EXEC ADDRESS +* + PLA + STA ADDR1 + PLA + STA ADDR1+1 +* + LDY #$01 ; POINT TO NEXT + ; INSTRUCTION +:LOOP + LDA (ADDR1),Y + BEQ :DONE + JSR COUT1 + INY + BNE :LOOP +:DONE ; RESTORE STACK + CLC ; EXEC POINTER + TYA ; TO RESUME + ADC ADDR1 + STA ADDR1 + LDA ADDR1+1 + ADC #$00 + PHA + LDA ADDR1 + PHA + RTS +:EXIT +* +*``````````````````````````````* +* DPRINT :: PRINT FROM MEMORY * +*- -* +* PRINTS DATA FROM SPECIFIED * +* MEMORY LOCATION UNTIL * +* REACHING 00 (STRING TERM). * +*- -* +* CLOBBERS: * +* * +* FLAGS: -------- REG: A-YM * +*- -* +* CYCLES: 25+ * +* SIZE: * +*- -* +* USAGE: * +* LDA #>(ADDRESS) * +* PHA * +* LDA #<(ADDRESS) * +* PHA * +* JSR DPRINT * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* LOW BYTE OF PRINT ADDRESS * +* HI BYTE OF PRINT ADDRESS * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* A = LOW BYTE OF ADDRESS * +* X = UNCHANGED * +* Y = LENGTH OF PRINTED * +* STRING * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +DPRINT +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** GET ADDRESS, STORE IN ZERO PAGE +* + PLA + STA ADDR1 + PLA + STA ADDR1+1 +* + LDY #$00 +:LOOP + LDA (ADDR1),Y + BEQ :EXIT + JSR COUT1 + INY + BNE :LOOP +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA +* + RTS +* +** DATA +* +:RETADR DS 2 +* +* +*``````````````````````````````* +* THLIN :: TEXT HORIZ LINE * +*- -* +* CREATES A HORIZONTAL LINE OF * +* TEXT COMPOSED OF THE FILL * +* CHARACTER SPECIFIED AT Y. * +*- -* +* CLOBBERS: * +* * +* FLAGS: ????---- REG: AXYM * +*- -* +* CYCLES: ??? * +* SIZE: * +*- -* +* USAGE: * +* LDA (X-START) * +* PHA * +* LDA (X-END) * +* PHA * +* LDA (Y-POS) * +* PHA * +* LDA (FILL CHAR) * +* PHA * +* JSR THLIN * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* XPOS START OF LINE (:X1) * +* XPOS END OF LINE (:X2) * +* YPOS OF LINE (:Y) * +* FILL CHARACTER (:F) * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* X,Y = START,END OF LINE * +* A = LOW BYTE OF RET ADDR * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +THLIN +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** GET PARAMETERS +* + PLA + STA :F + PLA + STA :Y + PLA + STA :X2 + PLA + STA :X1 +* +* + LDX :X1 ; LOAD X START POS + STX CURSH ; STORE IN CURSH + LDY :Y ; LDY Y POS + STY CURSV ; STORE IN CURSV + JSR VTAB ; MOVE CURSOR + LDA :F ; LOAD FILL CHAR + LDY :X1 ; LOAD X START POS +:LOOP + JSR COUT1 ; PRINT FILL CHAR + INY ; INCREASE X POS + CPY :X2 ; IF LESS THAN X END POS + BNE :LOOP ; REPEAT UNTIL DONE +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA + RTS +* +** DATA +* +:X1 DS 1 +:X2 DS 1 +:Y DS 1 +:F DS 1 ; FILL CHAR +:RETADR DS 2 +* +*``````````````````````````````* +* TVLIN :: TEXT VERTICAL LINE * +*- -* +* CREATES A VERTICAL LINE OF * +* TEXT COMPOSED OF THE FILL * +* CHARACTER SPECIFIED AT X. * +*- -* +* CLOBBERS: * +* * +* FLAGS: ????---- REG: AXYM * +*- -* +* CYCLES: ??? * +* SIZE: * +*- -* +* USAGE: * +* LDA (Y-START) * +* PHA * +* LDA (Y-END) * +* PHA * +* LDA (X-POS) * +* PHA * +* LDA (FILL CHAR) * +* PHA * +* JSR TVLIN * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* XPOS START OF LINE (:Y1) * +* XPOS END OF LINE (:Y2) * +* YPOS OF LINE (:X) * +* FILL CHARACTER (:F) * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* Y = END OF LINE * +* X = HORIZONTAL POSITION * +* A = LOW BYTE OF RET ADDR * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +TVLIN +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** GET PARAMETERS +* + PLA + STA :F ; FILL CHAR + PLA + STA :X ; X POS + PLA + STA :Y2 ; END + PLA + STA :Y1 ; START +* + LDX :X + LDY :Y1 + STY CURSV + STX CURSH + JSR VTAB ; SET CURSOR POS +:LOOP + JSR COUT1 ; PRINT CHAR + LDX :X + STX CURSH + STY CURSV + JSR VTAB ; SET NEW CURSOR POS + LDA :F ; RELOAD FILL CHAR + INY ; INCREASE COUNTER + CPY :Y2 ; IF Y1 < Y2 + BNE :LOOP ; LOOP; ELSE, CONTINUE +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA +* + RTS +* +** DATA +* +:RETADR DS 2 +:X DS 1 +:Y1 DS 1 +:Y2 DS 1 +:F DS 1 +* +* +*``````````````````````````````* +*CURSFOR :: MOVE CURSOR FORWD * +* * +*- -* +* FLAGS: NZC----- REG: AYM- * +* CYCLES: 20 * +*- -* +* USAGE: * +* LDA (AMT TO MOVE) * +* JSR CURSFOR * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +CURSFOR + CLC + ADC CURSH + STA CURSH + JSR VTAB + RTS +* +*``````````````````````````````* +*CURSBAK :: MOVE CURSOR BACKWD * +* * +*- -* +* FLAGS: NZC----- REG: AYM- * +* CYCLES: 26 * +*- -* +* USAGE: * +* LDA (AMT TO MOVE) * +* JSR CURSBAK * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +CURSBAK + SEC + STA :SCRATCH + LDA CURSH + SBC :SCRATCH + STA CURSH + JSR VTAB + RTS +* +** DATA +* +:SCRATCH DS 1 +* +*``````````````````````````````* +* CURSDN :: MOVE CURSOR DOWN * +* * +*- -* +* FLAGS: NZC----- REG: AYM- * +* CYCLES: 20 * +*- -* +* USAGE: * +* LDA (AMT TO MOVE) * +* JSR CURSDN * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +CURSDN + CLC + ADC CURSV + STA CURSV + JSR VTAB + RTS +* +*``````````````````````````````* +* CURSUP :: MOVE CURSOR UP * +* * +*- -* +* FLAGS: NZC----- REG: AYM- * +* CYCLES: 26 * +*- -* +* USAGE: * +* LDA (AMT TO MOVE) * +* JSR CURSUP * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +CURSUP + SEC + STA :SCRATCH + LDA CURSV + SBC :SCRATCH + STA CURSV + JSR VTAB + RTS +* +** DATA +* +:SCRATCH DS 1 +* +*``````````````````````````````* +* TFILLA :: TEXT FILL AREA * +*- -* +* FILLS A RECTANGULAR AREA OF * +* THE SCREEN WITH THE DESIRED * +* CHARACTER. * +*- -* +* CLOBBERS: * +* * +* FLAGS: ???----- REG: AXYM * +*- -* +* CYCLES: ??? * +* SIZE: * +*- -* +* USAGE: * +* LDA (LEFT BOUND) * +* PHA * +* LDA (RIGHT BOUND) * +* PHA * +* LDA (TOP BOUND) * +* PHA * +* LDA (BOTTOM BOUND) * +* PHA * +* LDA (FILL CHAR) * +* PHA * +* JSR TFILLA * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* FILL CHAR (:FILL) * +* BOTTOM BOUND (:BOTTOM) * +* TOP BOUND (:TOP) * +* RIGHT BOUND (:RIGHT) * +* LEFT BOUND (:LEFT) * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* A = LOW BYTE OF ADDRESS * +* X = COUNTER DATA; TRASH * +* Y = COUNTER DATA; TRASH * +* STRING * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +TFILLA +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** LOAD PARAMETERS +* + PLA + STA :FILL + PLA + STA :BOTTOM + PLA + STA :TOP + PLA + STA :RIGHT + PLA + STA :LEFT +* + + LDY :TOP ; LOAD STARTING Y +:LOOPY + STY CURSV + JSR VTAB ; SET VERTICAL + LDX :LEFT ; CURSOR POSITION + DEX +:LOOPX + INX + STX CURSH + JSR VTAB ; SET HORIZONTAL + LDA :FILL + JSR COUT1 ; PRINT FILL CHAR + CPX :RIGHT ; IF X < RIGHT MAX + BNE :LOOPX ; LOOP; ELSE, CONTINUE +* ; END X LOOP + INY + CPY :BOTTOM ; IF Y < BOTTOM MAX + BNE :LOOPY ; LOOP; ELSE, CONTINUE +* +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA +* + RTS +* +** DATA +* +:LEFT DS 1 +:RIGHT DS 1 +:BOTTOM DS 1 +:TOP DS 1 +:FILL DS 1 +:RETADR DS 2 +* +*``````````````````````````````* +* SINPUT :: SPECIAL INPUT * +* * +* INPUTS A STRING OF TEXT VIA * +* MONITOR HOOKS. MAC 255 CHARS * +*- -* +* CLOBBERS: * +* * +* FLAGS: ???----- REG: AXYM * +*- -* +* CYCLES: ??? * +* SIZE: * +*- -* +* USAGE: * +* LDA #>(ADDRESS) * +* PHA * +* LDA #<(ADDRESS) * +* PHA * +* JSR SINPUT * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* LOW BYTE OF INPUT ADDRESS * +* HI BYTE OF INPUT ADDRESS * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* A = LOW BYTE OF ADDRESS * +* X = LENGTH OF STRING * +* Y = LENGTH OF STRING * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +SINPUT +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** GET PARAMETERS +* + PLA + STA ADDR1 ; STORE IN ZERO + PLA ; PAGE + STA ADDR1+1 +* + LDX #$00 + JSR GETLN + STX :STRLEN ; STORE STR LENGTH + CPX #0 + BEQ :EXIT +* +:INP_CLR + LDY #0 + LDA :STRLEN ; LENGTH OF STRING + STA (ADDR1),Y ; PUT LENGTH AT START OF LOC +:LOOP + LDA KEYBUFF,Y ; PUT STR INTO NEW LOC + INY + STA (ADDR1),Y + CPY :STRLEN ; IF Y < STR LENGTH + BNE :LOOP ; LOOP; ELSE, CONTINUE +* +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA +* + RTS +* +** DATA +* +:STRLEN DS 1 +:RETADR DS 2 +* +* +*``````````````````````````````* +* GPBX :: GET PADDLE BUTTON X * +* * +* GETS STATE OF PADDLE BUTTON * +* SPECIFIED AND RET 0, 1 IN A * +*- -* +* CLOBBERS: * +* * +* FLAGS: ???----- REG: A-YM * +*- -* +* CYCLES: ??? * +* SIZE: * +*- -* +* USAGE: * +* LDA #>(ADDRESS) * +* PHA * +* LDA #<(ADDRESS) * +* PHA * +* JSR GPBX * +* * +* --- WHERE: * +* * +* BUTTON 0 = $C061 (PB0) * +* BUTTON 1 = $CO62 (PB1) * +* BUTTON 2 - $C063 (PB2) * +* BUTTON 3 = $C060 (PB3) * +*- -* +* ENTRY * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* LOW BYTE OF PDL BTN ADDRESS * +* HI BYTE OF PDL BTN ADDRESS * +*- -* +* EXIT * +* * +* TOP OF STACK * +* * +* LOW BYTE OF RETURN ADDRESS * +* HI BYTE OF RETURN ADDRESS * +* * +* A = 1 IF PRESSED, 0 IF NOT * +* X = UNCHANGED * +* Y = GARBAGE * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +* CHANGE THIS LATER TO ACCEPT ALL BUTTONS, 0-4 +* +GBPX +* +** SAVE RETURN ADDRESS +* + PLA + STA :RETADR + PLA + STA :RETADR+1 +* +** GET PARAMETER +* + PLA + STA ADDR1 ; ZERO PAGE + PLA + STA ADDR1+1 +* +* + LDY #$00 + LDA (ADDR1),Y ; IF BTN = PUSHED + BMI :1 + JMP :0 +:1 + LDY #$01 ; BTN PUSHED;A=1 + JMP :EXIT +:0 + LDY #$00 ; BTN NOT PUSHED;A=0 +* +:EXIT +* +** RESTORE RETURN ADDRESS +* + LDA :RETADR+1 + PHA + LDA :RETADR + PHA +* + TYA ; BTN FLAG MOVE TO A + RTS +* +** DATA +* +:RETADR DS 2 +* +STDIOX RTS diff --git a/source/STDIO/T.STDIO.MAC b/source/STDIO/T.STDIO.MAC new file mode 100644 index 0000000..059f113 --- /dev/null +++ b/source/STDIO/T.STDIO.MAC @@ -0,0 +1,583 @@ +* +*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* +* * +* STDIO.MAC * +* * +* AUTHOR: NATHAN RIGGS * +* CONTACT: NATHAN.RIGGS@ * +* OUTLOOK.COM * +* * +* VERSION: 0.1.2 * +* DATE: 30-OCT-2018 * +* ASSEMBLER: MERLIN 8 PRO * +* * +**** SEE CHANGELOG FOR **** +**** HISTORY OF CHANGES **** +* * +* LICENSE: MIT LICENSE, WHERE * +* APPLICABLE. CODE INSPIRED * +* BY THE WORKS OF OTHERS MAY * +* FALL UNDER A DIFFERENT * +* LICENSE (NOTED IN ROUTINE). * +* * +*------------------------------* +* * +* THIS IS A MACRO LIBRARY FOR * +* STDIO.LIB, AND CAN BE USED * +* REGARDLESS OF WHETHER A * +* SPECIFIC FUNCTION IS * +* INCLUDED AS A PUT IN THE * +* MAIN SOURCE. IT IS INTENDED * +* TO SERVE AS A USEFUL SHORT- * +* CUT FOR CALLING THE VARIOUS * +* ROUTINES. SO, YOU KNOW. LIKE * +* A MACRO LIBRARY. * +* * +*------------------------------* +* * +* LIST OF MACROS * +* * +* _TPG1 : SET TEXT PAGE 1 * +* _TPG2 : SET TEXT PAGE 2 * +* _PRN : FLEXIBLE PRINT * +* _PCR : PRINT CARRIAGE RET * +* _PLN : PRINT LINE * +* _INP : SPECIAL INPUT * +* _GKEY : GET SINGLE KEY * +* _WKEY : WAIT FOR KEY * +* _CXY : SET CURS POS AT X,Y * +* _CX : SET CURSOR X * +* _CY : SET CURSOR Y * +* _CURF : CURSOR FORWARD * +* _CURB : CURSOR BACKWARD * +* _CURU : CURSOR UP * +* _CURD : CURSOR DOWN * +* _RCXY : READ CURSOR POSITION * +* _PDL : READ PADDLE STATE * +* _PBX : READ PDL BTN X * +* _TVLN : TEXT VERTICAL LINE * +* _THLN : TEXT HORIZ LINE * +* _TFIL : TEXT FILL AREA * +* * +*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* +* +*``````````````````````````````* +* _TPG1 : SET TEXT PAGE 1 * +* * +* SIMPLY SETS TEXT PAGE 1. * +* BARELY WORTH BEING A MACRO, * +* BUT KEEPING FOR NOW. * +*- -* +* PARAMETERS: NONE * +*- -* +* SAMPLE USAGE: _TPG1 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_TPG1 MAC ;SET P1 + LDA PAGE1 + <<< +* +*``````````````````````````````* +* _TPG2 : SET TEXT PAGE 2 * +* * +* SIMPLY SETS TEXT PAGE 2. * +* BARELY WORTH BEING A MACRO, * +* BUT KEEPING FOR NOW. * +*- -* +* PARAMETERS: NONE * +*- -* +* SAMPLE USAGE: _TPG2 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_TPG2 MAC ;SET P2 + LDA PAGE2 + <<< +* +*``````````````````````````````* +* _PRN :: PRINT (NO ) * +*- -* +* EITHER PRINTS A STRING OF * +* TEXT PROVIDED, OR PRINTS THE * +* DATA FOUND AT THE SPECIFIED * +* MEMORY LOCATION. * +*- -* +* PARAMETERS * +* * +* IF FIRST LETTER OF VAR1 IS * +* A QUOTATION MARK, THEN PASS * +* CONTROL TO XPRINT. * +* * +* IF FIRST LETTER OF VAR1 IS * +* A DOLLAR SIGN, THEN IT IS A * +* MEMORY LOCATION, SO PASS TO * +* DPRINT. * +* * +* IF FIRST LETTER OF VAR1 IS * +* AN 'S', THEN A STRING PRINT * +* IS BEING INDICATED. VAR2 * +* (]2) HOLDS THE ADDRESS TO * +* THE STRING; TRANSFER CONTROL * +* TO SPRINT. * +*- -* +* SAMPLE USAGE: * +* * +* _PRN "HELLO!" * +* _PRN $300 * +* _PRN S;$310 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_PRN MAC +* + IF ",]1 ; --- IF PARAM=STRING +* + JSR XPRINT ; SPECIAL PRINT + ASC ]1 ; PUT STRING HERE + HEX 00 ; STRING TERMINATE +* + ELSE ; ELSE, PARAM IS + ; MEMORY LOCATION +* + LDA #>]1 ; PUSH HIGH BYTE + PHA ; TO STACK + LDA #<]1 ; PUSH LOW BYTE + PHA + JSR DPRINT +* + FIN + <<< +* +*``````````````````````````````* +* _PCR: PRINT CARRAIGE RETURN * +* * +* SIMPLY SENDS A CR AND LINE * +* FEED TO COUT (OR THE * +* EQUIVALENT, ANYHOW). * +*- -* +* PARAMETERS: NONE * +*- -* +* SAMPLE USAGE: _PCR * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_PCR MAC + LDA #$8D + JSR COUT1 + LDA #$00 + JSR COUT1 + <<< +* +*``````````````````````````````* +* _PLN: PRINT LINE * +* * +* PRINTS A STRING OF TEXT FROM * +* PARAMETER, PRINTS IT AND * +* THEN PRINTS A NEWLINE. * +* CURRENTLY, THIS WILL ONLY * +* SUPPORT DIRECT PRINTS, NOT * +* MEMORY CALLS OR STRINGS. * +*- -* +* PARAMETERS * +* * +* VAR1 SHOULD CONTAIN THE * +* STRING OF CHARACTERS TO BE * +* PRINTED (]1). * +*- -* +* SAMPLE USAGE: * +* * +* _PLN "HELLO!" * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_PLN MAC + JSR XPRINT + ASC ]1 + HEX 8D00 + <<< +* +*``````````````````````````````* +* _INP: INPUT MACRO * +* * +* INPUTS A STRING FROM KEYBRD * +* AND STORES IT AT SPECIFIED * +* LOCATION. * +*- -* +* PARAMETERS * +* * +* VAR1 (]1) SHOULD CONTAIN THE * +* ADDRESS WHERE THE INPUTTED * +* STRING WILL BE STORED. * +*- -* +* SAMPLE USAGE: * +* * +* _INP $6A00 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_INP MAC + LDA #>]1 ; HIGH ORDER + PHA + LDA #<]1 ; LOW ORDER + PHA + JSR SINPUT + <<< +* +*``````````````````````````````* +* _GKEY [LOC] : GETKEY * +* * +* WAITS FOR USER TO PRESS A * +* KEY, THEN STORES THAT IN * +* THE SPECIFIED LOCATION. * +*- -* +* PARAMETERS * +* * +* THE FIRST PARAMETER SHOULD * +* HOLD THE ADDRESS WHERE THE * +* CHARACTER IS TO BE STORED. * +*- -* +* SAMPLE USAGE: * +* * +* _GKEY $6A00 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_GKEY MAC + LDA #<]1 + LDX #>]1 + STX ADDR1+1 + STA ADDR1 + JSR GETKEY + LDY #$00 + STA (ADDR1),Y + LDA #$00 + STA STROBE + <<< +* +*``````````````````````````````* +* WKEY : WAIT FOR KEYPRESS * +* * +* SIMPLY LOOPS UNTIL A KEY IS * +* PRESSED. KEY VALUE STORED * +* IN ACCUMULATOR. * +*- -* +* PARAMETERS: NONE * +*- -* +* SAMPLE USAGE: _WKEY * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_WKEY MAC +_LOOP LDA KYBD + CMP #$80 + BCC _LOOP + STA STROBE + <<< +* +*``````````````````````````````* +* _CXY: POSITION CURSOR X,Y * +*- -* +* SETS THE CURSOR POSITION. * +*- -* +* PARAMETERS * +* * +* THE FIRST PARAMETER SHOULD * +* HOLD THE X POSITION; THE * +* SECOND SHOULD HOLD Y. * +*- -* +* SAMPLE USAGE: * +* * +* _CXY #10;#10 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CXY MAC + LDX ]1 + LDY ]2 + STX CURSH + STY CURSV + JSR VTAB + <<< +* +*``````````````````````````````* +*- _CX: POSITION CURSOR HORIZ -* +*- -* +* SETS THE HORIZONTAL POSITION * +* OF THE TEXT CURSOR. * +* NUMBER Y TO MOVE UPWARD. * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER HOLDS X. * +*- -* +* SAMPLE USAGE: _CX #10 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CX MAC + LDX ]1 + STX CURSH + JSR VTAB + <<< +* +*``````````````````````````````* +* _CY: POSITION CURSOR VERT * +*- -* +* SET CURSOR VERTICAL POSITION * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER HOLDS Y. * +*- -* +* SAMPLE USAGE: _CY #10 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CY MAC + LDY ]1 + STY CURSV + JSR VTAB + <<< +* +*``````````````````````````````* +* _CURF : TEXT CURSOR FORWRD * +*- -* +* MOVES THE CURSOR FORWARD BY * +* SPECIFIED AMOUNT. * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER SHOULD HOLD * +* NUMBER X TO MOVE FORWARD. * +*- -* +* SAMPLE USAGE: _CURF #10 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CURF MAC + LDA ]1 + JSR CURSFOR + <<< +* +*``````````````````````````````* +* _CURB : TEXT CURSOR BACKWD * +*- -* +* MOVES THE CURSOR BACKWARD BY * +* SPECIFIED AMOUNT. * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER SHOULD HOLD * +* NUMBER X TO MOVE BACKWARD. * +*- -* +* SAMPLE USAGE: _CURB #10 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CURB MAC + LDA ]1 + JSR CURSBAK + <<< +* +*``````````````````````````````* +* _CURU : TEXT CURSOR UP * +*- -* +* MOVES THE CURSOR UP BY * +* SPECIFIED AMOUNT. * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER SHOULD HOLD * +* NUMBER Y TO MOVE UPWARD. * +*- -* +* SAMPLE USAGE: _CURU #10 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CURU MAC + LDA ]1 + JSR CURSUP + <<< +* +*``````````````````````````````* +* _CURD : TEXT CURSOR DOWN * +*- -* +* MOVES THE CURSOR DOWN BY * +* SPECIFIED AMOUNT. * +*- -* +* PARAMETERS * +* * +* FIRST PARAMETER SHOULD HOLD * +* THE AMOUNT TO MOVE DOWN IN Y * +*- -* +* SAMPLE USAGE: #10 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_CURD MAC + LDA ]1 + JSR CURSDN + <<< +* +*``````````````````````````````* +* _RCXY : READ SCREEN AT XY * +*- -* +* READ THE CHARACTER AT POS * +* X,Y AND LOADS INTO ACCUM * +*- -* +* PARAMETERS * +* * +* PARAMETER 1 SHOULD HOLD THE * +* X POSITION ON SCREEN TO BE * +* READ, PARAMETER 2 HOLDS Y. * +*- -* +* SAMPLE USAGE: _RCXY #3;#9 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_RCXY MAC + LDA ]1 ; ROW + LDY ]2 ; COLUMN + JSR $F847 ; NOT SURE ABOUT THIS MAGIC NUM + LDA ($26),Y ; LOAD CHAR INTO ACCUM +* +* THANKS GO TO ERIC JACOBS +* IN THE APPLE II ENTHUSIASTS +* FACEBOOK GROUP FOR THIS +* + <<< +* +*``````````````````````````````* +* PADDLE / MOUSE INPUT * +*- -* +* SIMPLY READS STATE OF PADDLE * +* NUMBER [NUM] AND STORES IT * +* IN THE Y REGISTER. * +*- -* +* PARAMETERS * +* * +* PARAMETER 1 SHOULD HOLD THE * +* NUMBER THAT CORRESPONDS TO * +* THE PADDLE TO READ. * +*- -* +* SAMPLE USAGE: _PDL #0 * +* * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_PDL MAC ; GET PADDLE VALUE + LDX #]1 ; READ PADDLE # ]1 (USUALLY 0) + JSR PREAD ; PADDLE READING STORED IN Y + <<< +* +*``````````````````````````````* +* _PBX : PADDLE BUTTON X * +* * +* STORE 1 IN ACCUMULATOR IF * +* PADDLE BUTTON X IS PRESSED, * +* OTHERWISE STORE 0 IN ACCUM. * +*- -* +* PARAMETERS * +* * +* PARAMETER1 SHOULD HOLD THE * +* ADDRESS OF THE PADDLE BUTTON * +* READ. THEY ARE AS FOLLOWS: * +* * +* PB0: $C061 PB1: $C062 * +* PB2: $C063 PB4: $C060 * +*- -* +* SAMPLE USAGE: _PBX $C061 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_PBX MAC + LDA #>]1 + PHA + LDA #<]1 + PHA + JSR GPBX + <<< +* +*``````````````````````````````* +* _TVLN : TEXT VERTICAL LINE * +*- -* +* CREATES A VERTICAL LINE OF * +* TEXT AT THE CURRENT CURSOR * +* COLUMN CONSISTING OF THE * +* SPECIFIED CHARACTER. * +*- -* +* PARAMETERS * +* * +* PARAM1 = START OF VLINE, * +* PARAM2 = END POS OF VLINE, * +* PARAM3 = X POSITION OF LINE, * +* PARAM4 = FILL CHARACTER. * +*- -* +* SAMPLE USAGE: * +* * +* _TVLN #0;#10;#3;#$18 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_TVLN MAC + LDA ]1 ; Y START + PHA + LDA ]2 ; Y END + PHA + LDA ]3 ; X POSITION + PHA + LDA ]4 ; CHARACTER + PHA + JSR TVLIN + <<< +* +*``````````````````````````````* +* _THLN : TEXT HORIZONTAL LINE * +* * +* CREATES A HORIZONTAL LINE OF * +* TEXT FROM X1,Y TO X2,Y WITH * +* THE SPECIFIED CHARACTER. * +*- -* +* PARAMETERS * +* * +* PARAM1 = START OF HLINE, * +* PARAM2 = END POS OF HLINE, * +* PARAM3 = Y POSITION OF LINE, * +* PARAM4 = FILL CHARACTER. * +*- -* +* SAMPLE USAGE: * +* * +* _THLN #0;#10;#12;#$18 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_THLN MAC + LDA ]1 ; X START + PHA + LDA ]2 ; X END + PHA + LDA ]3 ; Y POS + PHA + LDA ]4 ; FILL CHAR + PHA + JSR THLIN + <<< +* +*``````````````````````````````* +* _TFIL : TEXT FILL (A) -* +*- -* +* FILL X1,Y1 TO X2,Y2 WITH * +* SPECIFIED CHARACTER. * +*- -* +* PARAMETERS * +* * +* PARAM1 = LEFT BOUNDARY * +* PARAM2 = RIGHT BOUNDARY * +* PARAM3 = TOP BOUNDARY * +* PARAM4 = BOTTOM BOUNDARY * +*- -* +* SAMPLE USAGE: * +* * +* _TFIL #0;#10;#0;#10 * +*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* +* +_TFIL MAC + LDA ]1 ; LEFT BOUNDARY + PHA + LDA ]2 ; RIGHT BOUNDARY + PHA + LDA ]3 ; TOP BOUNDARY + PHA + LDA ]4 ; BOTTOM BOUNDARY + PHA + LDA ]5 ; FILL CHAR + PHA + JSR TFILLA + <<< +*