*=$E000 ; ; ---- Code ; E000: 4C 36 E0 JMP L_E036 E003: 4C A7 E0 JMP L_E0A7 E006: 4C 16 E1 JMP L_E116 E009: 4C 02 E2 JMP $E202 ;Output to Screen E00C: 4C 42 E4 JMP $E442 ;Main IRQ Entry Point E00F: 4C 55 E4 JMP L_E455 E012: 4C 00 E6 JMP $E600 ;Exit Interrupt E015: 4C 42 E0 JMP L_E042 E018: 4C 0F E6 JMP L_E60F E01B: 4C 17 E6 JMP L_E617 E01E: 4C 1D E6 JMP L_E61D E021: 4C EA E6 JMP L_E6EA E024: 4C D1 E3 JMP L_E3D1 E027: 4C BF E4 JMP L_E4BF E02A: 4C 57 E6 JMP L_E657 E02D: 4C 98 E0 JMP L_E098 E030: 4C 98 E0 JMP L_E098 E033: 4C 98 E0 JMP L_E098 ; L_E036: E036: 20 83 E6 JSR L_E683 E039: 20 17 E6 JSR L_E617 E03C: 20 54 E6 JSR L_E654 E03F: 20 54 E6 JSR L_E654 ; L_E042: E042: A2 18 LDX #$18 E044: A9 C0 LDA #$C0 E046: A0 83 LDY #$83 ; L_E048: E048: 94 E0 STY SCTOP,X ;First line of window E04A: 38 SEC E04B: E9 28 SBC #$28 E04D: B0 01 BCS L_E050 E04F: 88 DEY ; L_E050: E050: CA DEX E051: 10 F5 BPL L_E048 E053: 84 C5 STY $C5 E055: E8 INX E056: 86 9F STX RVS ;Flag: Print Reverse Chars. -1=Yes E058: 86 C4 STX PNT ;Pointer: Current Screen Line Address E05A: A9 20 LDA #$20 ; L_E05C: E05C: 9D 00 80 STA SCREEN1,X ;screen page 1 (40 col) E05F: 9D 00 81 STA SCREEN2,X ;screen page 2 (40 col) E062: 9D 00 82 STA SCREEN3,X ;screen page 3 (40 col) E065: 9D 00 83 STA SCREEN4,X ;screen page 4 (40 col) E068: E8 INX E069: D0 F1 BNE L_E05C ; L_E06B: E06B: A0 00 LDY #$00 E06D: 84 C6 STY PNTR ;Cursor Column on Current Line E06F: 84 D8 STY TBLX ;Current Cursor Physical Line Number ; L_E071: E071: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E073: B5 E0 LDA SCTOP,X ;First line of window E075: 09 80 ORA #$80 E077: 85 C5 STA $C5 E079: BD 98 E7 LDA L_E798,X E07C: 85 C4 STA PNT ;Pointer: Current Screen Line Address E07E: A9 27 LDA #$27 E080: 85 D5 STA LNMX ;Physical Screen Line Length E082: E0 18 CPX #$18 E084: F0 08 BEQ L_E08E E086: B5 E1 LDA SCBOT,X ;Last line of window E088: 30 04 BMI L_E08E E08A: A9 4F LDA #$4F E08C: 85 D5 STA LNMX ;Physical Screen Line Length ; L_E08E: E08E: A5 C6 LDA PNTR ;Cursor Column on Current Line E090: C9 28 CMP #$28 E092: 90 04 BCC L_E098 E094: E9 28 SBC #$28 E096: 85 C6 STA PNTR ;Cursor Column on Current Line ; L_E098: E098: 60 RTS ; ; L_E099: E099: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E0A1: !BYTE $AA,$AA,$AA,$AA,$AA,$AA ;filler ; L_E0A7: E0A7: AC 6F 02 LDY $026F E0AA: A2 00 LDX #$00 ; L_E0AC: E0AC: BD 70 02 LDA KEYD,X ;Keyboard Buffer Queue (FIFO) E0AF: 9D 6F 02 STA $026F,X E0B2: E8 INX E0B3: E4 9E CPX NDX ;No. of Chars. in Keyboard Buffer (Queue) E0B5: D0 F5 BNE L_E0AC E0B7: C6 9E DEC NDX ;No. of Chars. in Keyboard Buffer (Queue) E0B9: 98 TYA E0BA: 58 CLI E0BB: 60 RTS ; ; L_E0BC: E0BC: 20 3C E6 JSR L_E63C ; L_E0BF: E0BF: A5 9E LDA NDX ;No. of Chars. in Keyboard Buffer (Queue) E0C1: 85 A7 STA BLNSW ;Cursor Blink enable: 0 = Flash Cursor E0C3: F0 FA BEQ L_E0BF E0C5: 78 SEI E0C6: A5 AA LDA BLNON ;Flag: Last Cursor Blink On/Off E0C8: F0 09 BEQ L_E0D3 E0CA: A5 A9 LDA GDBLN ;Character Under Cursor E0CC: A0 00 LDY #$00 E0CE: 84 AA STY BLNON ;Flag: Last Cursor Blink On/Off E0D0: 20 06 E6 JSR L_E606 ; L_E0D3: E0D3: 20 A7 E0 JSR L_E0A7 E0D6: C9 83 CMP #$83 E0D8: D0 10 BNE L_E0EA E0DA: 78 SEI E0DB: A2 09 LDX #$09 E0DD: 86 9E STX NDX ;No. of Chars. in Keyboard Buffer (Queue) ; L_E0DF: E0DF: BD 8E E7 LDA $E78E,X E0E2: 9D 6E 02 STA $026E,X E0E5: CA DEX E0E6: D0 F7 BNE L_E0DF E0E8: F0 D5 BEQ L_E0BF ; L_E0EA: E0EA: C9 0D CMP #$0D E0EC: D0 CE BNE L_E0BC E0EE: A4 D5 LDY LNMX ;Physical Screen Line Length E0F0: 84 AC STY CRSW ;Flag: INPUT or GET from Keyboard ; L_E0F2: E0F2: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E0F4: C9 20 CMP #$20 E0F6: D0 03 BNE L_E0FB E0F8: 88 DEY E0F9: D0 F7 BNE L_E0F2 ; L_E0FB: E0FB: C8 INY E0FC: 84 A1 STY INDX ;Pointer: End of Logical Line for INPUT E0FE: A0 00 LDY #$00 E100: 84 C6 STY PNTR ;Cursor Column on Current Line E102: 84 CD STY QTSW ;Flag: Editor in Quote Mode E104: A5 A3 LDA LXSP ;Cursor Y-X Pos. at Start of INPUT E106: 30 16 BMI L_E11E E108: C5 D8 CMP TBLX ;Current Cursor Physical Line Number E10A: D0 12 BNE L_E11E E10C: A5 A4 LDA $A4 E10E: 85 C6 STA PNTR ;Cursor Column on Current Line E110: C5 A1 CMP INDX ;Pointer: End of Logical Line for INPUT E112: 90 0A BCC L_E11E E114: B0 2B BCS L_E141 ; L_E116: E116: 98 TYA E117: 48 PHA E118: 8A TXA E119: 48 PHA E11A: A5 AC LDA CRSW ;Flag: INPUT or GET from Keyboard E11C: F0 A1 BEQ L_E0BF ; L_E11E: E11E: A4 C6 LDY PNTR ;Cursor Column on Current Line E120: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E122: 85 D9 STA DATAX ;Current Character to Print E124: 29 3F AND #$3F E126: 06 D9 ASL DATAX ;Current Character to Print E128: 24 D9 BIT DATAX ;Current Character to Print E12A: 10 02 BPL L_E12E E12C: 09 80 ORA #$80 ; L_E12E: E12E: 90 04 BCC L_E134 E130: A6 CD LDX QTSW ;Flag: Editor in Quote Mode E132: D0 04 BNE L_E138 ; L_E134: E134: 70 02 BVS L_E138 E136: 09 40 ORA #$40 ; L_E138: E138: E6 C6 INC PNTR ;Cursor Column on Current Line E13A: 20 67 E1 JSR L_E167 E13D: C4 A1 CPY INDX ;Pointer: End of Logical Line for INPUT E13F: D0 17 BNE L_E158 ; L_E141: E141: A9 00 LDA #$00 E143: 85 AC STA CRSW ;Flag: INPUT or GET from Keyboard E145: A9 0D LDA #$0D E147: A6 AF LDX DFLTN ;Default Input Device (0) E149: E0 03 CPX #$03 E14B: F0 06 BEQ L_E153 E14D: A6 B0 LDX DFLTO ;Default Output (CMD) Device (3) E14F: E0 03 CPX #$03 E151: F0 03 BEQ L_E156 ; L_E153: E153: 20 02 E2 JSR $E202 ;Output to Screen ; L_E156: E156: A9 0D LDA #$0D ; L_E158: E158: 85 D9 STA DATAX ;Current Character to Print E15A: 68 PLA E15B: AA TAX E15C: 68 PLA E15D: A8 TAY E15E: A5 D9 LDA DATAX ;Current Character to Print E160: C9 DE CMP #$DE E162: D0 02 BNE L_E166 E164: A9 FF LDA #$FF ; L_E166: E166: 60 RTS ; ; L_E167: E167: C9 22 CMP #$22 E169: D0 08 BNE L_E173 E16B: A5 CD LDA QTSW ;Flag: Editor in Quote Mode E16D: 49 01 EOR #$01 E16F: 85 CD STA QTSW ;Flag: Editor in Quote Mode E171: A9 22 LDA #$22 ; L_E173: E173: 60 RTS ; ; L_E174: E174: 09 40 ORA #$40 ; L_E176: E176: A6 9F LDX RVS ;Flag: Print Reverse Chars. -1=Yes E178: F0 02 BEQ L_E17C ; L_E17A: E17A: 09 80 ORA #$80 ; L_E17C: E17C: A6 DC LDX INSRT ;Flag: Insert Mode E17E: F0 02 BEQ L_E182 E180: C6 DC DEC INSRT ;Flag: Insert Mode ; L_E182: E182: 20 06 E6 JSR L_E606 E185: E6 C6 INC PNTR ;Cursor Column on Current Line E187: A4 D5 LDY LNMX ;Physical Screen Line Length E189: C4 C6 CPY PNTR ;Cursor Column on Current Line E18B: B0 19 BCS L_E1A6 E18D: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E18F: C0 4F CPY #$4F E191: D0 0C BNE L_E19F E193: 20 B3 E1 JSR L_E1B3 E196: 20 A9 E3 JSR L_E3A9 E199: A9 00 LDA #$00 E19B: 85 C6 STA PNTR ;Cursor Column on Current Line E19D: F0 07 BEQ L_E1A6 ; L_E19F: E19F: E0 18 CPX #$18 E1A1: D0 1B BNE L_E1BE E1A3: 20 C4 E1 JSR L_E1C4 ; L_E1A6: E1A6: 68 PLA E1A7: A8 TAY E1A8: A5 DC LDA INSRT ;Flag: Insert Mode E1AA: F0 02 BEQ L_E1AE E1AC: 46 CD LSR QTSW ;Flag: Editor in Quote Mode ; L_E1AE: E1AE: 68 PLA E1AF: AA TAX E1B0: 68 PLA E1B1: 58 CLI E1B2: 60 RTS ; ; L_E1B3: E1B3: E0 17 CPX #$17 E1B5: B0 06 BCS L_E1BD E1B7: B5 E2 LDA SCLF,X ;First column of window E1B9: 09 80 ORA #$80 E1BB: 95 E2 STA SCLF,X ;First column of window ; L_E1BD: E1BD: 60 RTS ; ; L_E1BE: E1BE: 20 CD E1 JSR L_E1CD E1C1: 4C A6 E1 JMP L_E1A6 ; L_E1C4: E1C4: 20 D1 E3 JSR L_E3D1 E1C7: C6 A3 DEC LXSP ;Cursor Y-X Pos. at Start of INPUT E1C9: C6 D8 DEC TBLX ;Current Cursor Physical Line Number E1CB: A6 D8 LDX TBLX ;Current Cursor Physical Line Number ; L_E1CD: E1CD: 16 E1 ASL SCBOT,X ;Last line of window E1CF: 56 E1 LSR SCBOT,X ;Last line of window E1D1: 20 B3 E1 JSR L_E1B3 E1D4: A5 C6 LDA PNTR ;Cursor Column on Current Line E1D6: 48 PHA E1D7: 20 71 E0 JSR L_E071 E1DA: 68 PLA E1DB: 85 C6 STA PNTR ;Cursor Column on Current Line E1DD: 60 RTS ; ; L_E1DE: E1DE: A0 27 LDY #$27 E1E0: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E1E2: D0 06 BNE L_E1EA E1E4: 86 C6 STX PNTR ;Cursor Column on Current Line E1E6: 68 PLA E1E7: 68 PLA E1E8: D0 BC BNE L_E1A6 ; L_E1EA: E1EA: B5 DF LDA MYCH,X ;Serial Word Buffer E1EC: 30 05 BMI L_E1F3 E1EE: CA DEX E1EF: B5 DF LDA MYCH,X ;Serial Word Buffer E1F1: A0 4F LDY #$4F ; L_E1F3: E1F3: CA DEX E1F4: 86 D8 STX TBLX ;Current Cursor Physical Line Number E1F6: 85 C5 STA $C5 E1F8: BD 98 E7 LDA L_E798,X E1FB: 85 C4 STA PNT ;Pointer: Current Screen Line Address E1FD: 84 C6 STY PNTR ;Cursor Column on Current Line E1FF: 84 D5 STY LNMX ;Physical Screen Line Length E201: 60 RTS ; ; L_E202: E202: 48 PHA E203: 85 D9 STA DATAX ;Current Character to Print E205: 8A TXA E206: 48 PHA E207: 98 TYA E208: 48 PHA E209: A9 00 LDA #$00 E20B: 85 AC STA CRSW ;Flag: INPUT or GET from Keyboard E20D: A4 C6 LDY PNTR ;Cursor Column on Current Line E20F: A5 D9 LDA DATAX ;Current Character to Print E211: 29 7F AND #$7F E213: C9 1B CMP #$1B E215: D0 03 BNE L_E21A E217: 4C C6 E3 JMP L_E3C6 ; L_E21A: E21A: A5 D9 LDA DATAX ;Current Character to Print E21C: 10 03 BPL L_E221 E21E: 4C D5 E2 JMP L_E2D5 ; L_E221: E221: C9 0D CMP #$0D E223: D0 03 BNE L_E228 E225: 4C BF E3 JMP L_E3BF ; L_E228: E228: C9 20 CMP #$20 E22A: 90 08 BCC L_E234 E22C: 29 3F AND #$3F E22E: 20 67 E1 JSR L_E167 E231: 4C 76 E1 JMP L_E176 ; L_E234: E234: A6 DC LDX INSRT ;Flag: Insert Mode E236: F0 03 BEQ L_E23B E238: 4C 7A E1 JMP L_E17A ; L_E23B: E23B: C9 14 CMP #$14 E23D: D0 1C BNE L_E25B E23F: 88 DEY E240: 84 C6 STY PNTR ;Cursor Column on Current Line E242: 10 06 BPL L_E24A E244: 20 DE E1 JSR L_E1DE E247: 4C 55 E2 JMP L_E255 ; L_E24A: E24A: C8 INY E24B: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E24D: 88 DEY E24E: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E250: C8 INY E251: C4 D5 CPY LNMX ;Physical Screen Line Length E253: D0 F5 BNE L_E24A ; L_E255: E255: A9 20 LDA #$20 E257: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E259: D0 29 BNE L_E284 ; L_E25B: E25B: A6 CD LDX QTSW ;Flag: Editor in Quote Mode E25D: F0 03 BEQ L_E262 E25F: 4C 7A E1 JMP L_E17A ; L_E262: E262: C9 12 CMP #$12 E264: D0 04 BNE L_E26A E266: 85 9F STA RVS ;Flag: Print Reverse Chars. -1=Yes E268: F0 1A BEQ L_E284 ; L_E26A: E26A: C9 13 CMP #$13 E26C: D0 03 BNE L_E271 E26E: 20 6B E0 JSR L_E06B ; L_E271: E271: C9 1D CMP #$1D E273: D0 12 BNE L_E287 E275: C8 INY E276: 84 C6 STY PNTR ;Cursor Column on Current Line E278: 88 DEY E279: C4 D5 CPY LNMX ;Physical Screen Line Length E27B: 90 07 BCC L_E284 E27D: 20 A9 E3 JSR L_E3A9 E280: A0 00 LDY #$00 ; L_E282: E282: 84 C6 STY PNTR ;Cursor Column on Current Line ; L_E284: E284: 4C A6 E1 JMP L_E1A6 ; L_E287: E287: C9 11 CMP #$11 E289: D0 11 BNE L_E29C E28B: 18 CLC E28C: 98 TYA E28D: 69 28 ADC #$28 E28F: A8 TAY E290: C5 D5 CMP LNMX ;Physical Screen Line Length E292: 90 EE BCC L_E282 E294: F0 EC BEQ L_E282 E296: 20 A9 E3 JSR L_E3A9 ; L_E299: E299: 4C A6 E1 JMP L_E1A6 ; L_E29C: E29C: C9 10 CMP #$10 E29E: D0 0C BNE L_E2AC E2A0: A9 20 LDA #$20 E2A2: 88 DEY ; L_E2A3: E2A3: C8 INY E2A4: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E2A6: C4 D5 CPY LNMX ;Physical Screen Line Length E2A8: 90 F9 BCC L_E2A3 E2AA: B0 ED BCS L_E299 ; L_E2AC: E2AC: C9 0E CMP #$0E E2AE: D0 05 BNE L_E2B5 E2B0: 20 0F E6 JSR L_E60F E2B3: 30 E4 BMI L_E299 ; L_E2B5: E2B5: C9 07 CMP #$07 E2B7: D0 05 BNE L_E2BE E2B9: 20 57 E6 JSR L_E657 E2BC: F0 DB BEQ L_E299 ; L_E2BE: E2BE: C9 09 CMP #$09 E2C0: D0 D7 BNE L_E299 ; L_E2C2: E2C2: C4 D5 CPY LNMX ;Physical Screen Line Length E2C4: 90 07 BCC L_E2CD E2C6: A4 D5 LDY LNMX ;Physical Screen Line Length ; L_E2C8: E2C8: 84 C6 STY PNTR ;Cursor Column on Current Line E2CA: 4C A6 E1 JMP L_E1A6 ; L_E2CD: E2CD: C8 INY E2CE: 20 88 E5 JSR L_E588 E2D1: F0 EF BEQ L_E2C2 E2D3: D0 F3 BNE L_E2C8 ; L_E2D5: E2D5: 29 7F AND #$7F E2D7: C9 7F CMP #$7F E2D9: D0 02 BNE L_E2DD E2DB: A9 5E LDA #$5E ; L_E2DD: E2DD: C9 20 CMP #$20 E2DF: 90 03 BCC L_E2E4 E2E1: 4C 74 E1 JMP L_E174 ; L_E2E4: E2E4: C9 0D CMP #$0D E2E6: D0 03 BNE L_E2EB E2E8: 4C BF E3 JMP L_E3BF ; L_E2EB: E2EB: A6 CD LDX QTSW ;Flag: Editor in Quote Mode E2ED: D0 30 BNE L_E31F E2EF: C9 14 CMP #$14 E2F1: D0 28 BNE L_E31B E2F3: A4 D5 LDY LNMX ;Physical Screen Line Length E2F5: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E2F7: C9 20 CMP #$20 E2F9: D0 04 BNE L_E2FF E2FB: C4 C6 CPY PNTR ;Cursor Column on Current Line E2FD: D0 07 BNE L_E306 ; L_E2FF: E2FF: C0 4F CPY #$4F E301: F0 81 BEQ L_E284 E303: 20 EA E6 JSR L_E6EA ; L_E306: E306: A4 D5 LDY LNMX ;Physical Screen Line Length ; L_E308: E308: 88 DEY E309: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E30B: C8 INY E30C: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E30E: 88 DEY E30F: C4 C6 CPY PNTR ;Cursor Column on Current Line E311: D0 F5 BNE L_E308 E313: A9 20 LDA #$20 E315: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E317: E6 DC INC INSRT ;Flag: Insert Mode E319: D0 58 BNE L_E373 ; L_E31B: E31B: A6 DC LDX INSRT ;Flag: Insert Mode E31D: F0 05 BEQ L_E324 ; L_E31F: E31F: 09 40 ORA #$40 E321: 4C 7A E1 JMP L_E17A ; L_E324: E324: C9 11 CMP #$11 E326: D0 2B BNE L_E353 E328: A5 C6 LDA PNTR ;Cursor Column on Current Line E32A: C9 28 CMP #$28 E32C: 90 06 BCC L_E334 E32E: E9 28 SBC #$28 E330: 85 C6 STA PNTR ;Cursor Column on Current Line E332: B0 3F BCS L_E373 ; L_E334: E334: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E336: F0 3B BEQ L_E373 E338: B5 DF LDA MYCH,X ;Serial Word Buffer E33A: 10 07 BPL L_E343 E33C: C6 D8 DEC TBLX ;Current Cursor Physical Line Number E33E: 20 71 E0 JSR L_E071 E341: 90 30 BCC L_E373 ; L_E343: E343: CA DEX E344: CA DEX E345: 86 D8 STX TBLX ;Current Cursor Physical Line Number E347: 20 71 E0 JSR L_E071 E34A: A5 C6 LDA PNTR ;Cursor Column on Current Line E34C: 18 CLC E34D: 69 28 ADC #$28 E34F: 85 C6 STA PNTR ;Cursor Column on Current Line E351: D0 20 BNE L_E373 ; L_E353: E353: C9 12 CMP #$12 E355: D0 06 BNE L_E35D E357: A9 00 LDA #$00 E359: 85 9F STA RVS ;Flag: Print Reverse Chars. -1=Yes E35B: F0 16 BEQ L_E373 ; L_E35D: E35D: C9 1D CMP #$1D E35F: D0 0B BNE L_E36C E361: 88 DEY E362: 84 C6 STY PNTR ;Cursor Column on Current Line E364: 10 0D BPL L_E373 E366: 20 DE E1 JSR L_E1DE E369: 4C A6 E1 JMP L_E1A6 ; L_E36C: E36C: C9 13 CMP #$13 E36E: D0 06 BNE L_E376 E370: 20 42 E0 JSR L_E042 ; L_E373: E373: 4C A6 E1 JMP L_E1A6 ; L_E376: E376: C9 16 CMP #$16 E378: D0 0D BNE L_E387 E37A: A9 20 LDA #$20 E37C: A0 00 LDY #$00 ; L_E37E: E37E: C4 C6 CPY PNTR ;Cursor Column on Current Line E380: B0 F1 BCS L_E373 E382: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E384: C8 INY E385: D0 F7 BNE L_E37E ; L_E387: E387: C9 0E CMP #$0E E389: D0 05 BNE L_E390 E38B: 20 17 E6 JSR L_E617 E38E: 30 E3 BMI L_E373 ; L_E390: E390: C9 07 CMP #$07 E392: D0 05 BNE L_E399 E394: 20 54 E6 JSR L_E654 E397: F0 DA BEQ L_E373 ; L_E399: E399: C9 09 CMP #$09 E39B: D0 D6 BNE L_E373 E39D: 20 88 E5 JSR L_E588 E3A0: 4D EF 03 EOR TABS ;Table of 80 bits to set TABs (80col) E3A3: 9D F0 03 STA $03F0,X E3A6: 4C A6 E1 JMP L_E1A6 ; L_E3A9: E3A9: 38 SEC E3AA: 46 A3 LSR LXSP ;Cursor Y-X Pos. at Start of INPUT E3AC: A6 D8 LDX TBLX ;Current Cursor Physical Line Number ; L_E3AE: E3AE: E8 INX E3AF: E0 19 CPX #$19 E3B1: D0 03 BNE $E3B6 E3B3: 20 D1 E3 JSR L_E3D1 ; L_E3B6: E3B6: B5 E0 LDA SCTOP,X ;First line of window E3B8: 10 F4 BPL L_E3AE E3BA: 86 D8 STX TBLX ;Current Cursor Physical Line Number E3BC: 4C 71 E0 JMP L_E071 ; L_E3BF: E3BF: 20 A9 E3 JSR L_E3A9 E3C2: A9 00 LDA #$00 E3C4: 85 C6 STA PNTR ;Cursor Column on Current Line ; L_E3C6: E3C6: A9 00 LDA #$00 E3C8: 85 DC STA INSRT ;Flag: Insert Mode E3CA: 85 9F STA RVS ;Flag: Print Reverse Chars. -1=Yes E3CC: 85 CD STA QTSW ;Flag: Editor in Quote Mode E3CE: 4C A6 E1 JMP L_E1A6 ; L_E3D1: E3D1: A2 19 LDX #$19 E3D3: 86 D8 STX TBLX ;Current Cursor Physical Line Number ; L_E3D5: E3D5: A2 FF LDX #$FF ; L_E3D7: E3D7: E8 INX E3D8: BD 98 E7 LDA L_E798,X E3DB: 85 C4 STA PNT ;Pointer: Current Screen Line Address E3DD: B5 E0 LDA SCTOP,X ;First line of window E3DF: 09 80 ORA #$80 E3E1: 85 C5 STA $C5 E3E3: E0 18 CPX #$18 E3E5: B0 1D BCS L_E404 E3E7: B4 E1 LDY SCBOT,X ;Last line of window E3E9: 30 02 BMI L_E3ED E3EB: 29 7F AND #$7F ; L_E3ED: E3ED: 95 E0 STA SCTOP,X ;First line of window E3EF: 98 TYA E3F0: 09 80 ORA #$80 E3F2: 85 C8 STA $C8 E3F4: BD 99 E7 LDA $E799,X E3F7: 85 C7 STA SAL ;Pointer: Tape Buffer/ Screen Scrolling E3F9: A0 27 LDY #$27 ; L_E3FB: E3FB: B1 C7 LDA (SAL),Y ;Pointer: Tape Buffer/ Screen Scrolling E3FD: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E3FF: 88 DEY E400: 10 F9 BPL L_E3FB E402: 30 D3 BMI L_E3D7 ; L_E404: E404: 95 E0 STA SCTOP,X ;First line of window E406: A0 27 LDY #$27 E408: A9 20 LDA #$20 ; L_E40A: E40A: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E40C: 88 DEY E40D: 10 FB BPL L_E40A E40F: C6 D8 DEC TBLX ;Current Cursor Physical Line Number E411: A5 E0 LDA SCTOP ;First line of window E413: 10 C0 BPL L_E3D5 E415: AD 12 E8 LDA PIA1REG02 ;PIA#1; $E812 Keyboard Columns Read E418: C9 FE CMP #$FE E41A: D0 0B BNE L_E427 E41C: A0 00 LDY #$00 ; L_E41E: E41E: EA NOP E41F: CA DEX E420: D0 FC BNE L_E41E E422: 88 DEY E423: D0 F9 BNE L_E41E E425: 84 9E STY NDX ;No. of Chars. in Keyboard Buffer (Queue) ; L_E427: E427: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E429: 60 RTS ; E42A: AA TAX E42B: AA TAX E42C: AA TAX E42D: AA TAX ; L_E42E: E42E: 20 EA FF JSR UDTIME ;$FFEA UDTIME Update clock/ store key E431: EE ED 03 INC TIADJ ;Counter to speed TI by 6/5 (40col) E434: AD ED 03 LDA TIADJ ;Counter to speed TI by 6/5 (40col) E437: C9 06 CMP #$06 E439: D0 1D BNE L_E458 E43B: A9 00 LDA #$00 E43D: 8D ED 03 STA TIADJ ;Counter to speed TI by 6/5 (40col) E440: F0 EC BEQ L_E42E ; L_E442: E442: 48 PHA E443: 8A TXA E444: 48 PHA E445: 98 TYA E446: 48 PHA E447: BA TSX E448: BD 04 01 LDA $0104,X E44B: 29 10 AND #$10 E44D: F0 03 BEQ L_E452 E44F: 6C 92 00 JMP (CBINV) ;Vector: BRK Instr. Interrupt ; L_E452: E452: 6C 90 00 JMP (CINV) ;Vector: Hardware Interrupt ; L_E455: E455: 4C 2E E4 JMP L_E42E ; L_E458: E458: A5 A7 LDA BLNSW ;Cursor Blink enable: 0 = Flash Cursor E45A: D0 1F BNE L_E47B E45C: C6 A8 DEC BLNCT ;Timer: Countdown to Toggle Cursor E45E: D0 1B BNE L_E47B E460: A9 14 LDA #$14 E462: 2C EE 03 BIT RPTFLG4 ;Repeat Flag (40 col) E465: 10 02 BPL L_E469 E467: A9 02 LDA #$02 ; L_E469: E469: 85 A8 STA BLNCT ;Timer: Countdown to Toggle Cursor E46B: A4 C6 LDY PNTR ;Cursor Column on Current Line E46D: 46 AA LSR BLNON ;Flag: Last Cursor Blink On/Off E46F: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E471: B0 04 BCS L_E477 E473: E6 AA INC BLNON ;Flag: Last Cursor Blink On/Off E475: 85 A9 STA GDBLN ;Character Under Cursor ; L_E477: E477: 49 80 EOR #$80 E479: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address ; L_E47B: E47B: A0 00 LDY #$00 E47D: AD 10 E8 LDA PIA1REG00 ;PIA#1; $E810 Keyboard Row Select E480: 29 F0 AND #$F0 E482: 8D 10 E8 STA PIA1REG00 ;PIA#1; $E810 Keyboard Row Select E485: AD 10 E8 LDA PIA1REG00 ;PIA#1; $E810 Keyboard Row Select E488: 0A ASL E489: 0A ASL E48A: 0A ASL E48B: 10 09 BPL L_E496 E48D: 84 F9 STY CAS1 ;Tape Motor Interlock #1 E48F: AD 13 E8 LDA PIA1REG03 ;PIA#1; $E813 E492: 09 08 ORA #$08 E494: D0 09 BNE L_E49F ; L_E496: E496: A5 F9 LDA CAS1 ;Tape Motor Interlock #1 E498: D0 08 BNE L_E4A2 E49A: AD 13 E8 LDA PIA1REG03 ;PIA#1; $E813 E49D: 29 F7 AND #$F7 ; L_E49F: E49F: 8D 13 E8 STA PIA1REG03 ;PIA#1; $E813 ; L_E4A2: E4A2: 90 09 BCC L_E4AD E4A4: 84 FA STY CAS2 ;Tape Motor Interlock #2 E4A6: AD 40 E8 LDA VIAREG00 ;VIA; $E840 PortB E4A9: 09 10 ORA #$10 E4AB: D0 09 BNE L_E4B6 ; L_E4AD: E4AD: A5 FA LDA CAS2 ;Tape Motor Interlock #2 E4AF: D0 08 BNE L_E4B9 E4B1: AD 40 E8 LDA VIAREG00 ;VIA; $E840 PortB E4B4: 29 EF AND #$EF ; L_E4B6: E4B6: 8D 40 E8 STA VIAREG00 ;VIA; $E840 PortB ; L_E4B9: E4B9: 20 BF E4 JSR L_E4BF E4BC: 4C 00 E6 JMP $E600 ;Exit Interrupt ; L_E4BF: E4BF: A0 FF LDY #$FF E4C1: 84 A6 STY KEYIMG ;Key Image E4C3: C8 INY E4C4: 84 98 STY SFDX ;Flag: Print Shifted Chars. E4C6: AD EE 03 LDA RPTFLG4 ;Repeat Flag (40 col) E4C9: 29 7F AND #$7F E4CB: 8D EE 03 STA RPTFLG4 ;Repeat Flag (40 col) E4CE: A2 50 LDX #$50 ; L_E4D0: E4D0: A0 08 LDY #$08 E4D2: AD 12 E8 LDA PIA1REG02 ;PIA#1; $E812 Keyboard Columns Read E4D5: CD 12 E8 CMP PIA1REG02 ;PIA#1; $E812 Keyboard Columns Read E4D8: D0 F6 BNE L_E4D0 E4DA: C9 FF CMP #$FF E4DC: D0 09 BNE L_E4E7 E4DE: 8A TXA E4DF: 38 SEC E4E0: E9 08 SBC #$08 E4E2: AA TAX E4E3: D0 2C BNE L_E511 E4E5: F0 2F BEQ L_E516 ; L_E4E7: E4E7: 4A LSR E4E8: B0 21 BCS L_E50B E4EA: 48 PHA E4EB: BD 3E E7 LDA $E73E,X E4EE: D0 06 BNE L_E4F6 E4F0: A9 01 LDA #$01 E4F2: 85 98 STA SFDX ;Flag: Print Shifted Chars. E4F4: D0 14 BNE L_E50A ; L_E4F6: E4F6: C9 10 CMP #$10 E4F8: D0 0A BNE L_E504 E4FA: AD EE 03 LDA RPTFLG4 ;Repeat Flag (40 col) E4FD: 09 80 ORA #$80 E4FF: 8D EE 03 STA RPTFLG4 ;Repeat Flag (40 col) E502: 30 06 BMI L_E50A ; L_E504: E504: C9 FF CMP #$FF E506: F0 02 BEQ L_E50A E508: 85 A6 STA KEYIMG ;Key Image ; L_E50A: E50A: 68 PLA ; L_E50B: E50B: CA DEX E50C: F0 08 BEQ L_E516 E50E: 88 DEY E50F: D0 D6 BNE L_E4E7 ; L_E511: E511: EE 10 E8 INC PIA1REG00 ;PIA#1; $E810 Keyboard Row Select E514: D0 BA BNE L_E4D0 ; L_E516: E516: A5 A6 LDA KEYIMG ;Key Image E518: C5 97 CMP LSTX ;Current Key Pressed: 255 = No Key E51A: F0 07 BEQ L_E523 E51C: A2 10 LDX #$10 E51E: 8E E9 03 STX DELAY4 ;Repeat key countdown (40col) E521: D0 33 BNE L_E556 ; L_E523: E523: 2C EE 03 BIT RPTFLG4 ;Repeat Flag (40 col) E526: 30 20 BMI L_E548 E528: 70 5D BVS L_E587 E52A: C9 FF CMP #$FF E52C: F0 59 BEQ L_E587 E52E: C9 14 CMP #$14 E530: F0 0C BEQ L_E53E E532: C9 20 CMP #$20 E534: F0 08 BEQ L_E53E E536: C9 1D CMP #$1D E538: F0 04 BEQ L_E53E E53A: C9 11 CMP #$11 E53C: D0 49 BNE L_E587 ; L_E53E: E53E: AE E9 03 LDX DELAY4 ;Repeat key countdown (40col) E541: F0 05 BEQ L_E548 E543: CE E9 03 DEC DELAY4 ;Repeat key countdown (40col) E546: D0 3F BNE L_E587 ; L_E548: E548: CE EA 03 DEC KOUNT4 ;Delay between repeats (40col) E54B: D0 3A BNE L_E587 E54D: A2 04 LDX #$04 E54F: 8E EA 03 STX KOUNT4 ;Delay between repeats (40col) E552: A6 9E LDX NDX ;No. of Chars. in Keyboard Buffer (Queue) E554: D0 31 BNE L_E587 ; L_E556: E556: 85 97 STA LSTX ;Current Key Pressed: 255 = No Key E558: C9 FF CMP #$FF E55A: F0 2B BEQ L_E587 E55C: EA NOP E55D: EA NOP E55E: EA NOP E55F: EA NOP E560: EA NOP E561: EA NOP E562: EA NOP E563: 46 98 LSR SFDX ;Flag: Print Shifted Chars. E565: 90 13 BCC L_E57A E567: EA NOP E568: EA NOP E569: EA NOP E56A: EA NOP E56B: EA NOP E56C: EA NOP E56D: EA NOP E56E: EA NOP E56F: EA NOP E570: EA NOP E571: EA NOP E572: EA NOP E573: EA NOP E574: EA NOP E575: EA NOP E576: EA NOP E577: EA NOP E578: 09 80 ORA #$80 ; L_E57A: E57A: A6 9E LDX NDX ;No. of Chars. in Keyboard Buffer (Queue) E57C: EC EB 03 CPX XMAX4 ;Max keyboard buffer size (40 col) E57F: B0 06 BCS L_E587 E581: 9D 6F 02 STA $026F,X E584: E8 INX E585: 86 9E STX NDX ;No. of Chars. in Keyboard Buffer (Queue) ; L_E587: E587: 60 RTS ; ; L_E588: E588: 98 TYA E589: 29 07 AND #$07 E58B: AA TAX E58C: BD DC E7 LDA L_E7DC,X E58F: 8D EF 03 STA TABS ;Table of 80 bits to set TABs (80col) E592: 98 TYA E593: 4A LSR E594: 4A LSR E595: 4A LSR E596: AA TAX E597: BD F0 03 LDA $03F0,X E59A: 2C EF 03 BIT TABS ;Table of 80 bits to set TABs (80col) E59D: 60 RTS ; ; L_E59E: E59E: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5A6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5AE: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5B6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5BE: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5C6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5CE: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5D6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5DE: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5E6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5EE: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5F6: !BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA ;filler E5FE: !BYTE $AA,$AA ;filler ; L_E600: E600: 68 PLA E601: A8 TAY E602: 68 PLA E603: AA TAX E604: 68 PLA E605: 40 RTI ; ; L_E606: E606: A4 C6 LDY PNTR ;Cursor Column on Current Line E608: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E60A: A9 02 LDA #$02 E60C: 85 A8 STA BLNCT ;Timer: Countdown to Toggle Cursor E60E: 60 RTS ; ; L_E60F: E60F: A9 B1 LDA #$B1 E611: A2 E7 LDX #$E7 E613: A0 0E LDY #$0E E615: D0 06 BNE L_E61D ; L_E617: E617: A9 C3 LDA #$C3 E619: A2 E7 LDX #$E7 E61B: A0 0C LDY #$0C ; L_E61D: E61D: 85 C7 STA SAL ;Pointer: Tape Buffer/ Screen Scrolling E61F: 86 C8 STX $C8 E621: AD 4C E8 LDA VIAREG12 ;VIA; $E852 Register C E624: 29 F0 AND #$F0 E626: 85 D1 STA FNLEN ;Length of Current File Name E628: 98 TYA E629: 05 D1 ORA FNLEN ;Length of Current File Name E62B: 8D 4C E8 STA VIAREG12 ;VIA; $E852 Register C E62E: A0 11 LDY #$11 ; L_E630: E630: B1 C7 LDA (SAL),Y ;Pointer: Tape Buffer/ Screen Scrolling E632: 8C 80 E8 STY CRTREG00 ;CRTC; $E880 Controller Register Select E635: 8D 81 E8 STA CRTREG01 ;CRTC; $E881 Controller Data E638: 88 DEY E639: 10 F5 BPL L_E630 E63B: 60 RTS ; ; L_E63C: E63C: 20 02 E2 JSR $E202 ;Output to Screen E63F: AA TAX E640: A5 D5 LDA LNMX ;Physical Screen Line Length E642: 38 SEC E643: E5 C6 SBC PNTR ;Cursor Column on Current Line E645: C9 05 CMP #$05 E647: D0 39 BNE L_E682 E649: 8A TXA E64A: C9 1D CMP #$1D E64C: F0 06 BEQ L_E654 E64E: 29 7F AND #$7F E650: C9 20 CMP #$20 E652: 90 2E BCC L_E682 ; L_E654: E654: 20 57 E6 JSR L_E657 ; L_E657: E657: AC EC 03 LDY CHIME4 ;Chime Time 0=off (40col) E65A: F0 26 BEQ L_E682 E65C: A9 10 LDA #$10 E65E: 8D 4B E8 STA VIAREG11 ;VIA; $E851 Control Register E661: A9 0F LDA #$0F E663: 8D 4A E8 STA VIAREG10 ;VIA; $E850 Shift Register E666: A2 07 LDX #$07 ; L_E668: E668: BD D4 E7 LDA $E7D4,X E66B: 8D 48 E8 STA VIAREG08 ;VIA; $E848 Timer 2 Lo E66E: AD EC 03 LDA CHIME4 ;Chime Time 0=off (40col) ; L_E671: E671: 88 DEY E672: D0 FD BNE L_E671 E674: 38 SEC E675: E9 01 SBC #$01 E677: D0 F8 BNE L_E671 E679: CA DEX E67A: D0 EC BNE L_E668 E67C: 8E 4A E8 STX VIAREG10 ;VIA; $E850 Shift Register E67F: 8E 4B E8 STX VIAREG11 ;VIA; $E851 Control Register ; L_E682: E682: 60 RTS ; ; L_E683: E683: A9 7F LDA #$7F E685: 8D 4E E8 STA VIAREG14 ;VIA; $E854 Register E E688: A2 6D LDX #$6D E68A: A9 00 LDA #$00 ; L_E68C: E68C: 95 8D STA TIME,X ;Real-Time Jiffy Clock (approx) 1/60 Sec E68E: CA DEX E68F: 10 FB BPL L_E68C E691: A2 0A LDX #$0A ; L_E693: E693: 9D F0 03 STA $03F0,X E696: CA DEX E697: 10 FA BPL L_E693 E699: 8D EE 03 STA RPTFLG4 ;Repeat Flag (40 col) E69C: A9 55 LDA #$55 E69E: 85 90 STA CINV ;Vector: Hardware Interrupt E6A0: A9 E4 LDA #$E4 E6A2: 85 91 STA $91 E6A4: A9 03 LDA #$03 E6A6: 85 B0 STA DFLTO ;Default Output (CMD) Device (3) E6A8: A9 0F LDA #$0F E6AA: 8D 10 E8 STA PIA1REG00 ;PIA#1; $E810 Keyboard Row Select E6AD: 0A ASL E6AE: 8D 40 E8 STA VIAREG00 ;VIA; $E840 PortB E6B1: 8D 42 E8 STA VIAREG02 ;VIA; $E842 Data Direction Register for PortB E6B4: 8E 22 E8 STX PIA2REG02 ;PIA#2; $E822 IEEE Output E6B7: 8E 45 E8 STX VIAREG05 ;VIA; $E845 Timer 1 Hi E6BA: A9 3D LDA #$3D E6BC: 8D 13 E8 STA PIA1REG03 ;PIA#1; $E813 E6BF: 2C 12 E8 BIT PIA1REG02 ;PIA#1; $E812 Keyboard Columns Read E6C2: A9 3C LDA #$3C E6C4: 8D 21 E8 STA PIA2REG01 ;PIA#2; $E821 IEEE NDAC control E6C7: 8D 23 E8 STA PIA2REG03 ;PIA#2; $E823 IEEE DAV control E6CA: 8D 11 E8 STA PIA1REG01 ;PIA#1; $E811 E6CD: 8E 22 E8 STX PIA2REG02 ;PIA#2; $E822 IEEE Output E6D0: A9 0C LDA #$0C E6D2: 8D 4C E8 STA VIAREG12 ;VIA; $E852 Register C E6D5: 85 A8 STA BLNCT ;Timer: Countdown to Toggle Cursor E6D7: 85 A7 STA BLNSW ;Cursor Blink enable: 0 = Flash Cursor E6D9: A9 09 LDA #$09 E6DB: 8D EB 03 STA XMAX4 ;Max keyboard buffer size (40 col) E6DE: A9 10 LDA #$10 E6E0: 8D EC 03 STA CHIME4 ;Chime Time 0=off (40col) E6E3: 8D E9 03 STA DELAY4 ;Repeat key countdown (40col) E6E6: 8D EA 03 STA KOUNT4 ;Delay between repeats (40col) E6E9: 60 RTS ; ; L_E6EA: E6EA: A6 D8 LDX TBLX ;Current Cursor Physical Line Number E6EC: E8 INX E6ED: E0 18 CPX #$18 E6EF: F0 33 BEQ L_E724 E6F1: 90 03 BCC L_E6F6 E6F3: 4C C4 E1 JMP L_E1C4 ; L_E6F6: E6F6: A2 17 LDX #$17 ; L_E6F8: E6F8: B5 E1 LDA SCBOT,X ;Last line of window E6FA: 09 80 ORA #$80 E6FC: 85 C8 STA $C8 E6FE: B4 E0 LDY SCTOP,X ;First line of window E700: 30 02 BMI L_E704 E702: 29 7F AND #$7F ; L_E704: E704: 95 E1 STA SCBOT,X ;Last line of window E706: 98 TYA E707: 09 80 ORA #$80 E709: 85 C5 STA $C5 E70B: A0 27 LDY #$27 E70D: BD 99 E7 LDA $E799,X E710: 85 C7 STA SAL ;Pointer: Tape Buffer/ Screen Scrolling E712: BD 98 E7 LDA L_E798,X E715: 85 C4 STA PNT ;Pointer: Current Screen Line Address ; L_E717: E717: B1 C4 LDA (PNT),Y ;Pointer: Current Screen Line Address E719: 91 C7 STA (SAL),Y ;Pointer: Tape Buffer/ Screen Scrolling E71B: 88 DEY E71C: 10 F9 BPL L_E717 E71E: CA DEX E71F: E4 D8 CPX TBLX ;Current Cursor Physical Line Number E721: D0 D5 BNE L_E6F8 E723: E8 INX ; L_E724: E724: B5 E0 LDA SCTOP,X ;First line of window E726: 09 80 ORA #$80 E728: 85 C5 STA $C5 E72A: 29 7F AND #$7F E72C: 95 E0 STA SCTOP,X ;First line of window E72E: BD 98 E7 LDA L_E798,X E731: 85 C4 STA PNT ;Pointer: Current Screen Line Address E733: A0 27 LDY #$27 E735: A9 20 LDA #$20 ; L_E737: E737: 91 C4 STA (PNT),Y ;Pointer: Current Screen Line Address E739: 88 DEY E73A: 10 FB BPL L_E737 E73C: 4C 71 E0 JMP L_E071 ; L_E73F: E73F: !BYTE $3D,$2E,$10,$03,$3C,$20,$5B,$12 ;keyboard matrix E747: !BYTE $2D,$30,$00,$3E,$FF,$5D,$40,$00 ;keyboard matrix E74F: !BYTE $2B,$32,$FF,$3F,$2C,$4E,$56,$58 ;keyboard matrix E757: !BYTE $33,$31,$0D,$3B,$4D,$42,$43,$5A ;keyboard matrix E75F: !BYTE $2A,$35,$FF,$3A,$4B,$48,$46,$53 ;keyboard matrix E767: !BYTE $36,$34,$FF,$4C,$4A,$47,$44,$41 ;keyboard matrix E76F: !BYTE $2F,$38,$FF,$50,$49,$59,$52,$57 ;keyboard matrix E777: !BYTE $39,$37,$5E,$4F,$55,$54,$45,$51 ;keyboard matrix E77F: !BYTE $14,$11,$09,$29,$5C,$27,$24,$22 ;keyboard matrix E787: !BYTE $1D,$13,$5F,$28,$26,$25,$23,$21 ;keyboard matrix ; L_E78F: E78F: !BYTE $44,$CC,$22,$2A,$0D,$52,$55,$4E ;shift-run keystrokes E797: !BYTE $0D ;shift-run keystrokes ; L_E798: E798: !BYTE $00,$28,$50,$78,$A0,$C8,$F0,$18 ;screen address - lo E7A0: !BYTE $40,$68,$90,$B8,$E0,$08,$30,$58 ;screen address - lo E7A8: !BYTE $80,$A8,$D0,$F8,$20,$48,$70,$98 ;screen address - lo E7B0: !BYTE $C0 ;screen address - lo ; L_E7B1: E7B1: !BYTE $31,$28,$29,$0F,$27,$00,$19,$20 ;CRTC register data - text mode E7B9: !BYTE $00,$09,$00,$00,$10,$00,$00,$00 ;CRTC register data - text mode E7C1: !BYTE $00,$00 ;CRTC register data - text mode ; L_E7C3: E7C3: !BYTE $31,$28,$29,$0F,$31,$00,$19,$25 ;CRTC register data - Graphics mode E7CB: !BYTE $00,$07,$00,$00,$10,$00,$00,$00 ;CRTC register data - Graphics mode E7D3: !BYTE $00,$00 ;CRTC register data - Graphics mode ; L_E7D5: E7D5: !BYTE $0E,$1E,$3E,$7E,$3E,$1E,$0E ;bell chime values ; L_E7DC: E7DC: !BYTE $80,$40,$20,$10,$08,$04,$02,$01 ;bit table E7E4: 29 AA AND #$AA E7E6: AA TAX E7E7: AA TAX E7E8: AA TAX ; L_E7E9: E7E9: A2 07 LDX #$07 E7EB: A0 07 LDY #$07 ; L_E7ED: E7ED: B1 B7 LDA (TMPB7),Y ;Temp Data Area (64#00A3) E7EF: 9D F7 87 STA $87F7,X E7F2: CA DEX E7F3: 88 DEY E7F4: 10 F7 BPL L_E7ED E7F6: 24 CB BIT CMP0 ;Tape Timing Constants E7F8: 10 03 BPL L_E7FD E7FA: 4C D6 EC JMP L_ECD6 ; L_E7FD: E7FD: 4C DE EC JMP L_ECDE ; L_E800: E800: !TEXT "COPYRIGHT 1982 SUPERSOFT. 10-14 CANNING ROA" ;Hidden Area - copywrite text E82B: !TEXT "D, WEALDSTONE, HARROW, MIDDLESEX. UNAUTHORI" ;Hidden Area - copywrite text E856: !TEXT "SED REPRODUCTION IS STRICTLY PROHIBITED. SO" ;Hidden Area - copywrite text E881: !TEXT "FTWARE WRITTEN BY NJ RICHMAN. HARWARE DESIG" ;Hidden Area - copywrite text E8AC: !TEXT "NED AND MANUFACTURED BY MG BIGNELL AND M HU" ;Hidden Area - copywrite text E8D7: !TEXT "MPHREY.SERIAL NUMBER OF THIS UNIT =414480" ;Hidden Area - copywrite text E900: EA NOP E901: EA NOP E902: BA TSX E903: 86 B4 STX $B4 E905: 20 F5 BE JSR TSTCOMMA ;Test comma- E908: 84 96 STY STATUS ;Kernal I/O Status Word: ST E90A: A2 0D LDX #$0D ; L_E90C: E90C: DD 2A E9 CMP cmd_table,X E90F: F0 10 BEQ L_E921 E911: CA DEX E912: 10 F8 BPL L_E90C E914: 20 D4 C8 JSR EVAL_BP ;Eval Byte Parameter E917: 8A TXA ; L_E918: E918: 29 0F AND #$0F E91A: 8D FF EF STA $EFFF E91D: 8D 79 02 STA $0279 E920: 60 RTS ; ; L_E921: E921: BD 38 E9 LDA L_E938,X E924: 48 PHA E925: BD 46 E9 LDA $E946,X E928: 48 PHA E929: 60 RTS ; ; cmd_table: E92A: !TEXT "OKP",$A4,$8B,"TMECIRFDS" ;Command Table ; L_E938: E938: !BYTE $E9,$E9,$E9,$EB,$EB,$EB,$ED,$EB ;unknown E940: !BYTE $EE,$EE,$E9,$E9,$E9,$E9,$53,$53 ;unknown E948: !BYTE $71,$CA,$C4,$C7,$73,$A6,$6F,$72 ;unknown E950: !BYTE $87,$8A,$8D,$84,$A2,$17,$2C ;unknown ; L_E957: E957: A2 06 LDX #$06 ; L_E959: E959: BD 99 D3 LDA $D399,X ;INITAT CHRGET For Zero-page E95C: 95 70 STA CHRGET,X ;Subroutine: Get Next Byte of BASIC Text E95E: E0 09 CPX #$09 E960: F0 F5 BEQ L_E957 E962: CA DEX E963: 10 F4 BPL L_E959 E965: 78 SEI E966: A9 55 LDA #$55 E968: A0 E4 LDY #$E4 E96A: 85 90 STA CINV ;Vector: Hardware Interrupt E96C: 84 91 STY $91 E96E: 58 CLI E96F: 4C 70 00 JMP CHRGET ;Subroutine: Get Next Byte of BASIC Text E972: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text E975: 20 F5 BE JSR TSTCOMMA ;Test comma- E978: 20 84 BD JSR FRMNUM ;Confirm Result E97B: 20 2D C9 JSR GETADR ;Convert FAC#1 to Integer in LINNUM E97E: 8C F8 A7 STY $A7F8 E981: 8D F9 A7 STA $A7F9 E984: 60 RTS ; E985: A9 00 LDA #$00 E987: 2C A9 01 BIT $01A9 E98A: 2C A9 02 BIT $02A9 E98D: 2C A9 03 BIT $03A9 E990: 20 F6 EE JSR L_EEF6 E993: A9 00 LDA #$00 E995: 85 FF STA FREEFF ;Not used E997: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text E99A: C9 4C CMP #$4C E99C: F0 06 BEQ L_E9A4 E99E: C6 FF DEC FREEFF ;Not used E9A0: C9 50 CMP #$50 E9A2: D0 2F BNE L_E9D3 ; L_E9A4: E9A4: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text E9A7: 20 F5 BE JSR TSTCOMMA ;Test comma- E9AA: 20 3D EC JSR L_EC3D E9AD: F0 27 BEQ L_E9D6 E9AF: 24 FF BIT FREEFF ;Not used E9B1: 30 20 BMI L_E9D3 ; L_E9B3: E9B3: 20 BD EE JSR L_EEBD E9B6: 24 FF BIT FREEFF ;Not used E9B8: 30 35 BMI L_E9EF E9BA: 20 3A EC JSR L_EC3A ; L_E9BD: E9BD: 20 D4 EE JSR L_EED4 E9C0: 20 CA EE JSR L_EECA E9C3: AD EE 93 LDA $93EE E9C6: 4D F2 93 EOR $93F2 E9C9: 29 01 AND #$01 E9CB: D0 34 BNE L_EA01 E9CD: A9 01 LDA #$01 E9CF: 85 FF STA FREEFF ;Not used E9D1: D0 2E BNE L_EA01 ; L_E9D3: E9D3: 4C 00 BF JMP SYNERR ;Output ?SYNTAX Error ; L_E9D6: E9D6: 24 FF BIT FREEFF ;Not used E9D8: 30 D9 BMI L_E9B3 E9DA: 20 D4 EE JSR L_EED4 E9DD: AD F1 93 LDA $93F1 E9E0: 8D F2 93 STA $93F2 E9E3: AD EC 93 LDA $93EC E9E6: AC ED 93 LDY $93ED E9E9: 20 C3 EE JSR L_EEC3 E9EC: 4C BD E9 JMP L_E9BD ; L_E9EF: E9EF: 20 CA EE JSR L_EECA E9F2: 20 C0 EE JSR L_EEC0 E9F5: 4D F1 93 EOR $93F1 E9F8: 29 01 AND #$01 E9FA: F0 02 BEQ L_E9FE E9FC: E6 FF INC FREEFF ;Not used ; L_E9FE: E9FE: 4C 2C EB JMP L_EB2C ; L_EA01: EA01: A5 FF LDA FREEFF ;Not used EA03: 29 01 AND #$01 EA05: 85 FF STA FREEFF ;Not used EA07: 38 SEC EA08: AD EC 93 LDA $93EC EA0B: ED EE 93 SBC $93EE EA0E: 85 C0 STA PTR1 ;Tape Pass 1 Error Log EA10: AD ED 93 LDA $93ED EA13: ED EF 93 SBC $93EF EA16: 85 C1 STA PTR2 ;Tape Pass 2 Error Log EA18: B0 16 BCS L_EA30 EA1A: 49 FF EOR #$FF EA1C: 85 C1 STA PTR2 ;Tape Pass 2 Error Log EA1E: A5 C0 LDA PTR1 ;Tape Pass 1 Error Log EA20: 49 FF EOR #$FF EA22: 69 01 ADC #$01 EA24: 85 C0 STA PTR1 ;Tape Pass 1 Error Log EA26: D0 02 BNE L_EA2A EA28: E6 C1 INC PTR2 ;Tape Pass 2 Error Log ; L_EA2A: EA2A: A5 FF LDA FREEFF ;Not used EA2C: 09 40 ORA #$40 EA2E: 85 FF STA FREEFF ;Not used ; L_EA30: EA30: 38 SEC EA31: AD F1 93 LDA $93F1 EA34: ED F2 93 SBC $93F2 EA37: 85 CB STA CMP0 ;Tape Timing Constants EA39: B0 0C BCS L_EA47 EA3B: 49 FF EOR #$FF EA3D: 69 01 ADC #$01 EA3F: 85 CB STA CMP0 ;Tape Timing Constants EA41: A5 FF LDA FREEFF ;Not used EA43: 09 80 ORA #$80 EA45: 85 FF STA FREEFF ;Not used ; L_EA47: EA47: A5 CB LDA CMP0 ;Tape Timing Constants EA49: F0 10 BEQ L_EA5B EA4B: A5 C1 LDA PTR2 ;Tape Pass 2 Error Log EA4D: D0 33 BNE L_EA82 EA4F: A5 C0 LDA PTR1 ;Tape Pass 1 Error Log EA51: F0 14 BEQ L_EA67 EA53: C5 CB CMP CMP0 ;Tape Timing Constants EA55: F0 1C BEQ L_EA73 EA57: B0 29 BCS L_EA82 EA59: 90 63 BCC L_EABE ; L_EA5B: EA5B: 20 2C EB JSR L_EB2C ; L_EA5E: EA5E: 20 F6 EA JSR L_EAF6 EA61: 20 78 EB JSR L_EB78 EA64: 4C 5E EA JMP L_EA5E ; L_EA67: EA67: 20 2C EB JSR L_EB2C ; L_EA6A: EA6A: 20 19 EB JSR L_EB19 EA6D: 20 78 EB JSR L_EB78 EA70: 4C 6A EA JMP L_EA6A ; L_EA73: EA73: 20 2C EB JSR L_EB2C ; L_EA76: EA76: 20 19 EB JSR L_EB19 EA79: 20 F9 EA JSR L_EAF9 EA7C: 20 78 EB JSR L_EB78 EA7F: 4C 76 EA JMP L_EA76 ; L_EA82: EA82: A5 C1 LDA PTR2 ;Tape Pass 2 Error Log EA84: 4A LSR EA85: 85 B3 STA TMPB3 ;Temporary save eg. logical address or DOS wedge EA87: A5 C0 LDA PTR1 ;Tape Pass 1 Error Log EA89: 6A ROR EA8A: 85 B2 STA DPSW ;Flag: Tape Byte-Received EA8C: 20 2C EB JSR L_EB2C ; L_EA8F: EA8F: 20 F6 EA JSR L_EAF6 EA92: 18 CLC EA93: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EA95: 65 CB ADC CMP0 ;Tape Timing Constants EA97: 85 B2 STA DPSW ;Flag: Tape Byte-Received EA99: 90 02 BCC L_EA9D EA9B: E6 B3 INC TMPB3 ;Temporary save eg. logical address or DOS wedge ; L_EA9D: EA9D: 38 SEC EA9E: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EAA0: E5 C0 SBC PTR1 ;Tape Pass 1 Error Log EAA2: A5 B3 LDA TMPB3 ;Temporary save eg. logical address or DOS wedge EAA4: E5 C1 SBC PTR2 ;Tape Pass 2 Error Log EAA6: 90 10 BCC L_EAB8 EAA8: 20 1C EB JSR L_EB1C EAAB: 38 SEC EAAC: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EAAE: E5 C0 SBC PTR1 ;Tape Pass 1 Error Log EAB0: 85 B2 STA DPSW ;Flag: Tape Byte-Received EAB2: A5 B3 LDA TMPB3 ;Temporary save eg. logical address or DOS wedge EAB4: E5 C1 SBC PTR2 ;Tape Pass 2 Error Log EAB6: 85 B3 STA TMPB3 ;Temporary save eg. logical address or DOS wedge ; L_EAB8: EAB8: 20 78 EB JSR L_EB78 EABB: 4C 8F EA JMP L_EA8F ; L_EABE: EABE: A5 CB LDA CMP0 ;Tape Timing Constants EAC0: 4A LSR EAC1: 85 B2 STA DPSW ;Flag: Tape Byte-Received EAC3: A9 00 LDA #$00 EAC5: 85 B3 STA TMPB3 ;Temporary save eg. logical address or DOS wedge EAC7: 20 2C EB JSR L_EB2C ; L_EACA: EACA: 20 19 EB JSR L_EB19 EACD: 18 CLC EACE: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EAD0: 65 C0 ADC PTR1 ;Tape Pass 1 Error Log EAD2: 85 B2 STA DPSW ;Flag: Tape Byte-Received EAD4: A5 B3 LDA TMPB3 ;Temporary save eg. logical address or DOS wedge EAD6: 65 C1 ADC PTR2 ;Tape Pass 2 Error Log EAD8: 85 B3 STA TMPB3 ;Temporary save eg. logical address or DOS wedge EADA: D0 06 BNE L_EAE2 EADC: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EADE: C5 CB CMP CMP0 ;Tape Timing Constants EAE0: 90 0E BCC L_EAF0 ; L_EAE2: EAE2: 20 F9 EA JSR L_EAF9 EAE5: 38 SEC EAE6: A5 B2 LDA DPSW ;Flag: Tape Byte-Received EAE8: E5 CB SBC CMP0 ;Tape Timing Constants EAEA: 85 B2 STA DPSW ;Flag: Tape Byte-Received EAEC: B0 02 BCS L_EAF0 EAEE: C6 B3 DEC TMPB3 ;Temporary save eg. logical address or DOS wedge ; L_EAF0: EAF0: 20 78 EB JSR L_EB78 EAF3: 4C CA EA JMP L_EACA ; L_EAF6: EAF6: 20 1C EF JSR L_EF1C ; L_EAF9: EAF9: 24 FF BIT FREEFF ;Not used EAFB: 70 0E BVS L_EB0B EAFD: 46 CC LSR $CC EAFF: 90 07 BCC L_EB08 EB01: A9 80 LDA #$80 EB03: 85 CC STA $CC EB05: 20 70 EF JSR L_EF70 ; L_EB08: EB08: 4C 77 EF JMP L_EF77 ; L_EB0B: EB0B: 06 CC ASL $CC EB0D: 90 07 BCC L_EB16 EB0F: A9 01 LDA #$01 EB11: 85 CC STA $CC EB13: 20 80 EF JSR L_EF80 ; L_EB16: EB16: 4C 89 EF JMP L_EF89 ; L_EB19: EB19: 20 13 EF JSR L_EF13 ; L_EB1C: EB1C: 24 FF BIT FREEFF ;Not used EB1E: 30 06 BMI L_EB26 EB20: 20 2D EF JSR L_EF2D EB23: 4C 53 EF JMP L_EF53 ; L_EB26: EB26: 20 2D EF JSR L_EF2D EB29: 4C 34 EF JMP L_EF34 ; L_EB2C: EB2C: AD EF 93 LDA $93EF EB2F: 85 CA STA $CA EB31: AD EE 93 LDA $93EE EB34: 48 PHA EB35: 46 CA LSR $CA EB37: 6A ROR EB38: 4A LSR EB39: 4A LSR EB3A: 85 C9 STA EAL ;Tape End Addresses/End of Program EB3C: 20 2D EF JSR L_EF2D EB3F: 48 PHA EB40: 4A LSR EB41: 4A LSR EB42: 4A LSR EB43: A8 TAY EB44: B9 98 E7 LDA L_E798,Y EB47: 48 PHA EB48: A2 03 LDX #$03 EB4A: C0 14 CPY #$14 EB4C: B0 0B BCS L_EB59 EB4E: CA DEX EB4F: C0 0D CPY #$0D EB51: B0 06 BCS L_EB59 EB53: CA DEX EB54: C0 07 CPY #$07 EB56: B0 01 BCS L_EB59 EB58: CA DEX ; L_EB59: EB59: 68 PLA EB5A: 20 08 EF JSR L_EF08 EB5D: 68 PLA EB5E: 29 07 AND #$07 EB60: A8 TAY EB61: B9 B9 EF LDA $EFB9,Y EB64: 18 CLC EB65: 20 0E EF JSR L_EF0E EB68: 68 PLA EB69: 29 07 AND #$07 EB6B: A8 TAY EB6C: C8 INY EB6D: A5 BB LDA BUFPNT ;Pointer: Tape I/O Buffer #1 EB6F: C9 04 CMP #$04 EB71: F0 17 BEQ L_EB8A EB73: 20 95 EF JSR L_EF95 EB76: 85 CC STA $CC ; L_EB78: EB78: A5 CC LDA $CC EB7A: A6 BB LDX BUFPNT ;Pointer: Tape I/O Buffer #1 EB7C: F0 0D BEQ L_EB8B EB7E: E0 01 CPX #$01 EB80: F0 20 BEQ L_EBA2 EB82: E0 03 CPX #$03 EB84: F0 0C BEQ L_EB92 ; L_EB86: EB86: 51 C9 EOR (EAL),Y ;Tape End Addresses/End of Program EB88: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program ; L_EB8A: EB8A: 60 RTS ; ; L_EB8B: EB8B: 49 FF EOR #$FF EB8D: 31 C9 AND (EAL),Y ;Tape End Addresses/End of Program EB8F: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program EB91: 60 RTS ; ; L_EB92: EB92: 48 PHA EB93: A5 FF LDA FREEFF ;Not used EB95: 49 01 EOR #$01 EB97: 85 FF STA FREEFF ;Not used EB99: 68 PLA EB9A: 66 FF ROR FREEFF ;Not used EB9C: 08 PHP EB9D: 26 FF ROL FREEFF ;Not used EB9F: 28 PLP EBA0: 90 E9 BCC L_EB8B ; L_EBA2: EBA2: 11 C9 ORA (EAL),Y ;Tape End Addresses/End of Program EBA4: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program EBA6: 60 RTS ; EBA7: 20 F4 EE JSR L_EEF4 EBAA: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EBAD: 20 3A EC JSR L_EC3A EBB0: D0 3C BNE L_EBEE EBB2: 20 BD EE JSR L_EEBD EBB5: 20 CA EE JSR L_EECA ; L_EBB8: EBB8: 20 2C EB JSR L_EB2C EBBB: 20 95 EF JSR L_EF95 EBBE: 31 C9 AND (EAL),Y ;Tape End Addresses/End of Program EBC0: D0 02 BNE L_EBC4 EBC2: E6 96 INC STATUS ;Kernal I/O Status Word: ST ; L_EBC4: EBC4: 60 RTS ; EBC5: A9 00 LDA #$00 EBC7: 2C A9 FF BIT $FFA9 EBCA: 2C A9 40 BIT $40A9 EBCD: 85 BE STA BITCI ;Cassette Temp (64#00A8) EBCF: 20 F4 EE JSR L_EEF4 EBD2: A9 FF LDA #$FF EBD4: 85 B1 STA PRTY ;Tape Character Parity EBD6: 85 BD STA INBIT ;Cassette Temp (64#00A7) EBD8: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EBDB: C9 52 CMP #$52 EBDD: F0 06 BEQ L_EBE5 EBDF: C9 4E CMP #$4E EBE1: D0 0B BNE L_EBEE EBE3: E6 B1 INC PRTY ;Tape Character Parity ; L_EBE5: EBE5: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EBE8: C9 48 CMP #$48 EBEA: F0 06 BEQ L_EBF2 EBEC: C9 56 CMP #$56 ; L_EBEE: EBEE: D0 74 BNE L_EC64 EBF0: E6 BD INC INBIT ;Cassette Temp (64#00A7) ; L_EBF2: EBF2: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EBF5: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EBF8: 20 98 BD JSR FRMEVL ;Evaluate Expression in Text EBFB: 24 07 BIT VAUYP ;Data Type: $FF = String EBFD: 10 57 BPL L_EC56 EBFF: 20 B8 C7 JSR $C7B8 EC02: C9 00 CMP #$00 EC04: F0 2F BEQ L_EC35 EC06: 85 B2 STA DPSW ;Flag: Tape Byte-Received EC08: 86 32 STX FRESPC ;Utility String Pointer EC0A: 84 33 STY $33 EC0C: 20 76 00 JSR CHRGOT ;Entry to Get Same Byte of Text Again EC0F: F0 05 BEQ L_EC16 EC11: 20 BA EE JSR L_EEBA ; L_EC14: EC14: C6 96 DEC STATUS ;Kernal I/O Status Word: ST ; L_EC16: EC16: 20 46 ED JSR L_ED46 EC19: 90 0E BCC L_EC29 EC1B: 24 96 BIT STATUS ;Kernal I/O Status Word: ST EC1D: 10 07 BPL L_EC26 EC1F: 20 9F EC JSR L_EC9F EC22: E6 96 INC STATUS ;Kernal I/O Status Word: ST EC24: F0 03 BEQ L_EC29 ; L_EC26: EC26: 20 72 EC JSR L_EC72 ; L_EC29: EC29: C6 B2 DEC DPSW ;Flag: Tape Byte-Received ; L_EC2B: EC2B: F0 97 BEQ L_EBC4 EC2D: E6 32 INC FRESPC ;Utility String Pointer EC2F: D0 E5 BNE L_EC16 EC31: E6 33 INC $33 EC33: D0 E1 BNE L_EC16 ; L_EC35: EC35: A2 FD LDX #$FD EC37: 4C DA EE JMP L_EEDA ; L_EC3A: EC3A: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text ; L_EC3D: EC3D: 20 B1 EE JSR L_EEB1 EC40: A5 61 LDA $61 EC42: A4 62 LDY $62 EC44: 85 12 STA $12 EC46: 84 11 STY LINNUM ;Temp: Integer Value EC48: 20 AE EE JSR L_EEAE EC4B: A6 62 LDX $62 EC4D: A5 61 LDA $61 EC4F: F0 02 BEQ L_EC53 EC51: A2 FF LDX #$FF ; L_EC53: EC53: 4C 76 00 JMP CHRGOT ;Entry to Get Same Byte of Text Again ; L_EC56: EC56: 20 87 BD JSR $BD87 EC59: 20 D7 C8 JSR $C8D7 EC5C: 86 BC STX BUFP2 ;Pointer: Tape I/O Buffer #2 EC5E: F0 12 BEQ L_EC72 EC60: C9 2C CMP #$2C EC62: F0 35 BEQ L_EC99 ; L_EC64: EC64: 4C 00 BF JMP SYNERR ;Output ?SYNTAX Error ; L_EC67: EC67: AC F2 93 LDY $93F2 EC6A: F0 BF BEQ L_EC2B EC6C: CE F2 93 DEC $93F2 EC6F: 4C 9F EC JMP L_EC9F ; L_EC72: EC72: A5 BD LDA INBIT ;Cassette Temp (64#00A7) EC74: F0 F1 BEQ L_EC67 EC76: 18 CLC EC77: AD F2 93 LDA $93F2 EC7A: 69 07 ADC #$07 EC7C: 8D F2 93 STA $93F2 EC7F: 18 CLC EC80: AD EE 93 LDA $93EE EC83: AC EF 93 LDY $93EF EC86: 69 08 ADC #$08 EC88: 90 01 BCC L_EC8B EC8A: C8 INY ; L_EC8B: EC8B: C0 00 CPY #$00 EC8D: F0 0D BEQ L_EC9C EC8F: C0 01 CPY #$01 EC91: D0 A2 BNE L_EC35 EC93: C9 39 CMP #$39 EC95: B0 9E BCS L_EC35 EC97: 90 03 BCC L_EC9C ; L_EC99: EC99: 20 BA EE JSR L_EEBA ; L_EC9C: EC9C: 20 C3 EE JSR L_EEC3 ; L_EC9F: EC9F: A9 00 LDA #$00 ECA1: 85 B8 STA $B8 ECA3: A5 BC LDA BUFP2 ;Pointer: Tape I/O Buffer #2 ECA5: 0A ASL ECA6: 26 B8 ROL $B8 ECA8: 0A ASL ECA9: 26 B8 ROL $B8 ECAB: 0A ASL ECAC: 26 B8 ROL $B8 ECAE: 18 CLC ECAF: 6D F8 A7 ADC $A7F8 ECB2: 85 B7 STA TMPB7 ;Temp Data Area (64#00A3) ECB4: A5 B8 LDA $B8 ECB6: 6D F9 A7 ADC $A7F9 ECB9: 85 B8 STA $B8 ECBB: A0 00 LDY #$00 ECBD: 84 CB STY CMP0 ;Tape Timing Constants ECBF: 2C F9 A7 BIT $A7F9 ECC2: 10 0F BPL L_ECD3 ECC4: C6 CB DEC CMP0 ;Tape Timing Constants ECC6: BA TSX ECC7: 98 TYA ECC8: 9D FE 00 STA $00FE,X ; L_ECCB: ECCB: BD FE 00 LDA $00FE,X ECCE: F0 FB BEQ L_ECCB ECD0: 8C FF EF STY $EFFF ; L_ECD3: ECD3: 4C E9 E7 JMP L_E7E9 ; L_ECD6: ECD6: AD 79 02 LDA $0279 ECD9: 09 01 ORA #$01 ECDB: 8D FF EF STA $EFFF ; L_ECDE: ECDE: 20 2C EB JSR L_EB2C ECE1: 84 FF STY FREEFF ;Not used ECE3: A9 00 LDA #$00 ECE5: AA TAX ; L_ECE6: ECE6: 88 DEY ECE7: F0 04 BEQ L_ECED ECE9: 38 SEC ECEA: 6A ROR ECEB: 90 F9 BCC L_ECE6 ; L_ECED: ECED: 85 CC STA $CC ; L_ECEF: ECEF: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program ECF1: 49 FF EOR #$FF ECF3: 24 BE BIT BITCI ;Cassette Temp (64#00A8) ECF5: 10 02 BPL L_ECF9 ECF7: 25 CC AND $CC ; L_ECF9: ECF9: 85 B3 STA TMPB3 ;Temporary save eg. logical address or DOS wedge ECFB: 84 FB STY STAL ;I/O Start Address ECFD: BD F7 87 LDA $87F7,X ED00: 45 B1 EOR PRTY ;Tape Character Parity ED02: A4 FF LDY FREEFF ;Not used ; L_ED04: ED04: 88 DEY ED05: F0 0E BEQ L_ED15 ED07: 4A LSR ED08: 66 FB ROR STAL ;I/O Start Address ED0A: 90 F8 BCC L_ED04 ED0C: EA NOP ; L_ED0D: ED0D: 45 B3 EOR TMPB3 ;Temporary save eg. logical address or DOS wedge ED0F: 50 0A BVC L_ED1B ; L_ED11: ED11: 45 FB EOR STAL ;I/O Start Address ED13: 50 19 BVC L_ED2E ; L_ED15: ED15: 24 BE BIT BITCI ;Cassette Temp (64#00A8) ED17: 50 F4 BVC L_ED0D ED19: 05 B3 ORA TMPB3 ;Temporary save eg. logical address or DOS wedge ; L_ED1B: ED1B: 49 FF EOR #$FF ED1D: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program ED1F: C8 INY ED20: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program ED22: 24 BE BIT BITCI ;Cassette Temp (64#00A8) ED24: 10 02 BPL L_ED28 ED26: 05 CC ORA $CC ; L_ED28: ED28: 49 FF EOR #$FF ED2A: 50 E5 BVC L_ED11 ED2C: 05 FB ORA STAL ;I/O Start Address ; L_ED2E: ED2E: 49 FF EOR #$FF ED30: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program ED32: 88 DEY ED33: E8 INX ED34: E0 08 CPX #$08 ED36: D0 02 BNE L_ED3A ; L_ED38: ED38: 60 RTS ; ED39: EA NOP ; L_ED3A: ED3A: 20 2D EF JSR L_EF2D ED3D: C9 C7 CMP #$C7 ED3F: F0 F7 BEQ L_ED38 ED41: 20 34 EF JSR L_EF34 ED44: D0 A9 BNE L_ECEF ; L_ED46: ED46: A0 00 LDY #$00 ED48: B1 32 LDA (FRESPC),Y ;Utility String Pointer ED4A: 29 7F AND #$7F ED4C: C9 12 CMP #$12 ED4E: D0 08 BNE L_ED58 ED50: A9 FF LDA #$FF ED52: 45 B1 EOR PRTY ;Tape Character Parity ED54: 85 B1 STA PRTY ;Tape Character Parity ED56: 18 CLC ; L_ED57: ED57: 60 RTS ; ; L_ED58: ED58: C9 20 CMP #$20 ED5A: 90 FB BCC L_ED57 ED5C: B1 32 LDA (FRESPC),Y ;Utility String Pointer ED5E: C9 40 CMP #$40 ED60: 90 0E BCC L_ED70 ED62: C9 C0 CMP #$C0 ED64: 90 08 BCC L_ED6E ED66: C9 FF CMP #$FF ED68: 90 02 BCC L_ED6C ED6A: E9 22 SBC #$22 ; L_ED6C: ED6C: E9 40 SBC #$40 ; L_ED6E: ED6E: E9 3F SBC #$3F ; L_ED70: ED70: 85 BC STA BUFP2 ;Pointer: Tape I/O Buffer #2 ED72: 38 SEC ED73: 60 RTS ; ED74: 20 F4 EE JSR L_EEF4 ED77: A9 FF LDA #$FF ED79: 85 FB STA STAL ;I/O Start Address ED7B: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text ED7E: C9 46 CMP #$46 ED80: F0 09 BEQ L_ED8B ED82: C9 45 CMP #$45 ED84: F0 03 BEQ L_ED89 ED86: 4C 00 BF JMP SYNERR ;Output ?SYNTAX Error ; L_ED89: ED89: E6 FB INC STAL ;I/O Start Address ; L_ED8B: ED8B: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text ED8E: F0 03 BEQ L_ED93 ED90: 20 BA EE JSR L_EEBA ; L_ED93: ED93: AD EE 93 LDA $93EE ED96: AC EF 93 LDY $93EF ED99: 85 CE STA BITTS ;Cassette Temp (64#00B4): Tape read timer flag=IRQ enabled for Timer 1 ED9B: 84 CF STY EOTRD ;End of tape read ED9D: 20 2C EB JSR L_EB2C EDA0: 20 9E EF JSR L_EF9E EDA3: 20 95 EF JSR L_EF95 EDA6: 85 CC STA $CC EDA8: 85 FF STA FREEFF ;Not used ; L_EDAA: EDAA: 20 B2 EF JSR L_EFB2 EDAD: D0 12 BNE L_EDC1 EDAF: 20 2D EF JSR L_EF2D EDB2: C9 C7 CMP #$C7 EDB4: F0 32 BEQ L_EDE8 EDB6: 20 A7 EF JSR L_EFA7 EDB9: 20 34 EF JSR L_EF34 EDBC: 20 9E EF JSR L_EF9E EDBF: D0 E9 BNE L_EDAA ; L_EDC1: EDC1: A5 CE LDA BITTS ;Cassette Temp (64#00B4): Tape read timer flag=IRQ enabled for Timer 1 EDC3: 8D EE 93 STA $93EE EDC6: A5 CF LDA EOTRD ;End of tape read EDC8: 8D EF 93 STA $93EF EDCB: 20 2D EF JSR L_EF2D EDCE: F0 12 BEQ L_EDE2 EDD0: 20 A7 EF JSR L_EFA7 EDD3: 20 53 EF JSR L_EF53 EDD6: 20 9E EF JSR L_EF9E EDD9: A5 FF LDA FREEFF ;Not used EDDB: 85 CC STA $CC EDDD: 20 B2 EF JSR L_EFB2 EDE0: F0 06 BEQ L_EDE8 ; L_EDE2: EDE2: 60 RTS ; ; L_EDE3: EDE3: 20 B2 EF JSR L_EFB2 EDE6: D0 56 BNE L_EE3E ; L_EDE8: EDE8: AD EF 93 LDA $93EF EDEB: D0 05 BNE L_EDF2 EDED: AD EE 93 LDA $93EE EDF0: F0 35 BEQ L_EE27 ; L_EDF2: EDF2: 20 89 EF JSR L_EF89 EDF5: 06 CC ASL $CC EDF7: 90 EA BCC L_EDE3 ; L_EDF9: EDF9: 20 80 EF JSR L_EF80 EDFC: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program EDFE: C5 FB CMP STAL ;I/O Start Address EE00: D0 1C BNE L_EE1E EE02: AD EF 93 LDA $93EF EE05: D0 07 BNE L_EE0E EE07: AD EE 93 LDA $93EE EE0A: C9 07 CMP #$07 EE0C: F0 16 BEQ L_EE24 ; L_EE0E: EE0E: 38 SEC EE0F: AD EE 93 LDA $93EE EE12: E9 08 SBC #$08 EE14: 8D EE 93 STA $93EE EE17: B0 E0 BCS L_EDF9 EE19: CE EF 93 DEC $93EF EE1C: F0 DB BEQ L_EDF9 ; L_EE1E: EE1E: A9 01 LDA #$01 EE20: 85 CC STA $CC EE22: D0 BF BNE L_EDE3 ; L_EE24: EE24: 8C EE 93 STY $93EE ; L_EE27: EE27: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program EE29: C5 FB CMP STAL ;I/O Start Address EE2B: F0 2D BEQ L_EE5A ; L_EE2D: EE2D: A9 80 LDA #$80 EE2F: 85 CC STA $CC ; L_EE31: EE31: 20 B2 EF JSR L_EFB2 EE34: F0 03 BEQ L_EE39 ; L_EE36: EE36: 4C C1 ED JMP L_EDC1 ; L_EE39: EE39: A5 CC LDA $CC EE3B: 20 86 EB JSR L_EB86 ; L_EE3E: EE3E: 20 77 EF JSR L_EF77 EE41: 46 CC LSR $CC EE43: 90 EC BCC L_EE31 ; L_EE45: EE45: 20 70 EF JSR L_EF70 EE48: AD EF 93 LDA $93EF EE4B: F0 07 BEQ L_EE54 EE4D: AD EE 93 LDA $93EE EE50: C9 40 CMP #$40 EE52: B0 E2 BCS L_EE36 ; L_EE54: EE54: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program EE56: C5 FB CMP STAL ;I/O Start Address EE58: D0 D3 BNE L_EE2D ; L_EE5A: EE5A: A9 FF LDA #$FF EE5C: 45 FB EOR STAL ;I/O Start Address EE5E: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program EE60: 18 CLC EE61: AD EE 93 LDA $93EE EE64: 69 08 ADC #$08 EE66: 8D EE 93 STA $93EE EE69: 90 DA BCC L_EE45 EE6B: EE EF 93 INC $93EF EE6E: D0 D5 BNE L_EE45 EE70: A9 00 LDA #$00 EE72: 2C A9 FF BIT $FFA9 EE75: 85 FF STA FREEFF ;Not used EE77: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text EE7A: 20 F8 EE JSR L_EEF8 ; L_EE7D: EE7D: A9 00 LDA #$00 EE7F: A0 90 LDY #$90 EE81: 85 C9 STA EAL ;Tape End Addresses/End of Program EE83: 84 CA STY $CA EE85: A9 19 LDA #$19 EE87: 85 FD STA MEMUSS ;Tape Load Temps ; L_EE89: EE89: A2 08 LDX #$08 ; L_EE8B: EE8B: A0 00 LDY #$00 ; L_EE8D: EE8D: A9 FF LDA #$FF EE8F: 24 FF BIT FREEFF ;Not used EE91: 50 02 BVC L_EE95 EE93: 51 C9 EOR (EAL),Y ;Tape End Addresses/End of Program ; L_EE95: EE95: 91 C9 STA (EAL),Y ;Tape End Addresses/End of Program EE97: C8 INY EE98: C0 28 CPY #$28 EE9A: D0 F1 BNE L_EE8D EE9C: 20 3D EF JSR L_EF3D EE9F: CA DEX EEA0: D0 E9 BNE L_EE8B EEA2: 20 45 EF JSR L_EF45 EEA5: E9 04 SBC #$04 EEA7: 85 CA STA $CA EEA9: C6 FD DEC MEMUSS ;Tape Load Temps EEAB: D0 DC BNE L_EE89 EEAD: 60 RTS ; ; L_EEAE: EEAE: 20 70 00 JSR CHRGET ;Subroutine: Get Next Byte of BASIC Text ; L_EEB1: EEB1: 20 84 BD JSR FRMNUM ;Confirm Result EEB4: 20 51 CD JSR ROUND ;Round FAC#1 EEB7: 4C EA C2 JMP AYINT ;FAC#1 to Positive Integer ; L_EEBA: EEBA: 20 3A EC JSR L_EC3A ; L_EEBD: EEBD: 20 D4 EE JSR L_EED4 ; L_EEC0: EEC0: 8E F2 93 STX $93F2 ; L_EEC3: EEC3: 8D EE 93 STA $93EE EEC6: 8C EF 93 STY $93EF EEC9: 60 RTS ; ; L_EECA: EECA: 8E F1 93 STX $93F1 EECD: 8D EC 93 STA $93EC EED0: 8C ED 93 STY $93ED EED3: 60 RTS ; ; L_EED4: EED4: E0 C8 CPX #$C8 EED6: 90 0B BCC L_EEE3 ; L_EED8: EED8: A2 FF LDX #$FF ; L_EEDA: EEDA: 86 96 STX STATUS ;Kernal I/O Status Word: ST EEDC: 20 83 B8 JSR DO_BRAK ;Perform [] ; L_EEDF: EEDF: A6 B4 LDX $B4 EEE1: 9A TXS EEE2: 60 RTS ; ; L_EEE3: EEE3: A5 11 LDA LINNUM ;Temp: Integer Value EEE5: A4 12 LDY $12 EEE7: C0 00 CPY #$00 EEE9: F0 08 BEQ L_EEF3 EEEB: C0 01 CPY #$01 EEED: D0 E9 BNE L_EED8 EEEF: C9 40 CMP #$40 EEF1: B0 E5 BCS L_EED8 ; L_EEF3: EEF3: 60 RTS ; ; L_EEF4: EEF4: A9 04 LDA #$04 ; L_EEF6: EEF6: 85 BB STA BUFPNT ;Pointer: Tape I/O Buffer #1 ; L_EEF8: EEF8: A2 FE LDX #$FE EEFA: AD F3 93 LDA $93F3 EEFD: 49 FF EOR #$FF EEFF: 8D F3 93 STA $93F3 EF02: CD F3 93 CMP $93F3 EF05: D0 D3 BNE L_EEDA EF07: 60 RTS ; ; L_EF08: EF08: 18 CLC EF09: 65 C9 ADC EAL ;Tape End Addresses/End of Program EF0B: 85 C9 STA EAL ;Tape End Addresses/End of Program EF0D: 8A TXA ; L_EF0E: EF0E: 65 CA ADC $CA EF10: 85 CA STA $CA EF12: 60 RTS ; ; L_EF13: EF13: AD F2 93 LDA $93F2 EF16: CD F1 93 CMP $93F1 EF19: F0 C4 BEQ L_EEDF EF1B: 60 RTS ; ; L_EF1C: EF1C: AD EF 93 LDA $93EF EF1F: CD ED 93 CMP $93ED EF22: D0 08 BNE L_EF2C EF24: AD EE 93 LDA $93EE EF27: CD EC 93 CMP $93EC EF2A: F0 B3 BEQ L_EEDF ; L_EF2C: EF2C: 60 RTS ; ; L_EF2D: EF2D: 38 SEC EF2E: A9 C7 LDA #$C7 EF30: ED F2 93 SBC $93F2 EF33: 60 RTS ; ; L_EF34: EF34: CE F2 93 DEC $93F2 EF37: 29 07 AND #$07 EF39: C9 07 CMP #$07 EF3B: F0 08 BEQ L_EF45 ; L_EF3D: EF3D: 18 CLC EF3E: A5 CA LDA $CA EF40: 69 04 ADC #$04 EF42: 85 CA STA $CA EF44: 60 RTS ; ; L_EF45: EF45: 38 SEC EF46: A5 C9 LDA EAL ;Tape End Addresses/End of Program EF48: E9 D8 SBC #$D8 EF4A: 85 C9 STA EAL ;Tape End Addresses/End of Program EF4C: A5 CA LDA $CA EF4E: E9 1B SBC #$1B EF50: 85 CA STA $CA EF52: 60 RTS ; ; L_EF53: EF53: EE F2 93 INC $93F2 EF56: 29 07 AND #$07 EF58: F0 08 BEQ L_EF62 EF5A: 38 SEC EF5B: A5 CA LDA $CA EF5D: E9 04 SBC #$04 EF5F: 85 CA STA $CA EF61: 60 RTS ; ; L_EF62: EF62: 18 CLC EF63: A5 C9 LDA EAL ;Tape End Addresses/End of Program EF65: 69 D8 ADC #$D8 EF67: 85 C9 STA EAL ;Tape End Addresses/End of Program EF69: A5 CA LDA $CA EF6B: 69 1B ADC #$1B EF6D: 85 CA STA $CA EF6F: 60 RTS ; ; L_EF70: EF70: E6 C9 INC EAL ;Tape End Addresses/End of Program EF72: D0 02 BNE L_EF76 EF74: E6 CA INC $CA ; L_EF76: EF76: 60 RTS ; ; L_EF77: EF77: EE EE 93 INC $93EE EF7A: D0 03 BNE L_EF7F EF7C: EE EF 93 INC $93EF ; L_EF7F: EF7F: 60 RTS ; ; L_EF80: EF80: A5 C9 LDA EAL ;Tape End Addresses/End of Program EF82: D0 02 BNE L_EF86 EF84: C6 CA DEC $CA ; L_EF86: EF86: C6 C9 DEC EAL ;Tape End Addresses/End of Program EF88: 60 RTS ; ; L_EF89: EF89: AD EE 93 LDA $93EE EF8C: D0 03 BNE L_EF91 EF8E: CE EF 93 DEC $93EF ; L_EF91: EF91: CE EE 93 DEC $93EE EF94: 60 RTS ; ; L_EF95: EF95: A9 80 LDA #$80 ; L_EF97: EF97: 88 DEY EF98: F0 03 BEQ L_EF9D EF9A: 4A LSR EF9B: 90 FA BCC L_EF97 ; L_EF9D: EF9D: 60 RTS ; ; L_EF9E: EF9E: A5 C9 LDA EAL ;Tape End Addresses/End of Program EFA0: 85 C0 STA PTR1 ;Tape Pass 1 Error Log EFA2: A5 CA LDA $CA EFA4: 85 C1 STA PTR2 ;Tape Pass 2 Error Log EFA6: 60 RTS ; ; L_EFA7: EFA7: 48 PHA EFA8: A5 C0 LDA PTR1 ;Tape Pass 1 Error Log EFAA: 85 C9 STA EAL ;Tape End Addresses/End of Program EFAC: A5 C1 LDA PTR2 ;Tape Pass 2 Error Log EFAE: 85 CA STA $CA EFB0: 68 PLA EFB1: 60 RTS ; ; L_EFB2: EFB2: B1 C9 LDA (EAL),Y ;Tape End Addresses/End of Program EFB4: 45 FB EOR STAL ;I/O Start Address EFB6: 24 CC BIT $CC EFB8: 60 RTS ; EFB9: 90 94 BCC L_EF4F EFBB: 98 TYA EFBC: 9C ??? EFBD: A0 A4 LDY #$A4 EFBF: A8 TAY EFC0: AC EA EA LDY $EAEA EFC3: EA NOP EFC4: EA NOP EFC5: EA NOP EFC6: EA NOP EFC7: 4C 80 EF JMP L_EF80 EFCA: 4C 70 EF JMP L_EF70 EFCD: 4C 34 EF JMP L_EF34 EFD0: 4C 53 EF JMP L_EF53 EFD3: 4C 77 EF JMP L_EF77 EFD6: 4C 89 EF JMP L_EF89 EFD9: 4C C0 EE JMP L_EEC0 EFDC: 4C CA EE JMP L_EECA EFDF: 4C F4 EE JMP L_EEF4 EFE2: 4C 18 E9 JMP L_E918 EFE5: 4C 72 EC JMP L_EC72 EFE8: 4C 2D EF JMP L_EF2D EFEB: 4C 01 EA JMP L_EA01 EFEE: 4C 2C EB JMP L_EB2C EFF1: 4C 93 ED JMP L_ED93 EFF4: 4C 7D EE JMP L_EE7D EFF7: 4C B8 EB JMP L_EBB8 EFFA: 4C 14 EC JMP L_EC14 EFFD: 4C 9F EC JMP L_EC9F