ASMB,A,B,L * * Backspace patch for 28KW BASIC w/ cross2 overlay 12/5/10 * If not cross2.asm dated 12/4/10 then edit locations * * ZP locations - don't disturb 74,75 after applying patch ORG 74B SUBLK DEF SUB link to patch sub BSPAT DEF BSPAD new location to save overlay from * * bs patch location - before overlay w/ a bit of extra space * edit these if not the 12/4/10 version or re-ORG'd ORG 73600B BSPAD JMP *+1,I OCT 74000 for wild exe jump to overlay menu CIO OCT 74264 location of CONIO sub OUT OCT 74367 location of CHROT sub TSLOT OCT 74263 location of TTY patch slot OTABL OCT 102600 blank OTA instruction BS OCT 10 backspace RO OCT 177 rubout SPC OCT 40 space TIN OCT 160000 TTY in command TMP OCT 0 temp TB OCT 0 temp B SUB NOP sub entry CPA BS backspace? JMP DOIT yes - process CPA RO rubout? JMP DOIT yes - process ISZ SUB bump ret ptr JMP SUB,I exit skip DOIT SZB,RSS buffer empty? JMP SUB,I yes - exit without effect STB TB save B reg STA TMP save keypress JSB CIO,I patch TTY slot LDB TMP get keypress in B LDA BS get backspace in A CPB RO was rubout sent? JSB OUT,I yes - send backspace LDA SPC JSB OUT,I send space LDA BS JSB OUT,I send backspace LDB TSLOT,I get TTY slot LDA OTABL get OTA blank IOR 1 merge with slot STA OTAIN put where it should be LDA TIN get TTY input command OTAIN OTA 0 output to TTY card LDB TB restore B register STF 0 restore interrupts JMP SUB,I exit sub * must end at or before location 73777 * * patch save code to save this code too... * change if not 12/4/10 version or re-ORG'd, * must correspond to the line NOAXC LDA OVADR * ORG 75321B LDA BSPAT get new start of overlay code * * patch BASIC TTY driver... change this if not 28KW * ORG 67552B stock value = 127537 NOP remove action for rubout ORG 67567B stock value = 067552 JSB SUBLK,I patch backarrow compare to call sub * END