$E706/59142:   Write error message string to buffer

Jump from $E6E0, $E75F:

E706: AA        TAX             ; error code to X
E707: A5 86     LDA $86
E709: 48        PHA             ; preserve pointer $86/$87
E70A: A5 87     LDA $87
E70C: 48        PHA
E70D: A9 FC     LDA #$FC
E70F: 85 86     STA $86
E711: A9 E4     LDA #$E4        ; start of the error messages
E713: 85 87     STA $87         ; E4FC
E715: 8A        TXA             ; error number in accumulator
E716: A2 00     LDX #$00

Jump from $E736:

E718: C1 86     CMP ($86,X)     ; compare with error number in table
E71A: F0 21     BEQ $E73D
E71C: 48        PHA
E71D: 20 75 E7  JSR $E775       ; bit 7 into carry and erase
E720: 90 05     BCC $E727       ; not set?

Jump from $E725:

E722: 20 75 E7  JSR $E775       ; bit 7 into carry
E725: 90 FB     BCC $E722       ; wait for character with bit 7 set

Jump from $E720:

E727: A5 87     LDA $87
E729: C9 E6     CMP #$E6
E72B: 90 08     BCC $E735       ; $E60A, check to end of table
E72D: D0 0A     BNE $E739
E72F: A9 0A     LDA #$0A
E731: C5 86     CMP $86
E733: 90 04     BCC $E739

Jump from $E72B:

E735: 68        PLA
E736: 4C 18 E7  JMP $E718       ; no, continue

Jump from $E72D, $E733:

E739: 68        PLA
E73A: 4C 4D E7  JMP $E74D       ; done

Jump from $E71A, $E740:

E73D: 20 67 E7  JSR $E767       ; get a character, bit 7 in carry
E740: 90 FB     BCC $E73D       ; wait for character with bit 7 set

Jump from $E748:

E742: 20 54 E7  JSR $E754       ; and write in buffer
E745: 20 67 E7  JSR $E767       ; get next character
E748: 90 F8     BCC $E742       ; wait for character with bit 7 set
E74A: 20 54 E7  JSR $E754       ; put character in buffer

Jump from $E73A:

E74D: 68        PLA
E74E: 85 87     STA $87
E750: 68        PLA             ; get pointer $86/$87 back
E751: 85 86     STA $86
E753: 60        RTS

    Previous Page / Next Page