> lcd/s v1.20 & Redirect VDU to 40x4 LCD display  Syntax: lcd (ON|OFF) (: 2D Sends characters to existing VDU driver, then if in MODE 7 and default vectors 6LDA &FFB8:STA &A9 :\ &A8=>default vectors LDY #14 .lcd_off -LDA (&A8),Y:STA &200,Y :\ Reset WRCHV INY:CPY #16:BNE lcd_off:RTS : .lcd_on LDX #reset_end-reset  .reset_lp ?LDA reset,X :\ Get byte from reset sequence ,.wait1:BIT base%+0:BMI wait1:STA base%+1 ",.wait2:BIT base%+2:BMI wait2:STA base%+3 ,DEX:BPL reset_lp 6-LDA &20E:STA old+1 :\ Copy WRCHV @LDA &20F:STA old+2 J/LDA #start 255:STA &20E :\ Redirect WRCHV TLDA #start 256:STA &20F ^RTS h: r: | .reset .EQUB 1:EQUB 13:EQUB 16 :\ , , RESET .reset_end :  .start .old 2JSR &FFFF:PHA :\ Send to old WRCH ,LDA &355:CMP #7:BNE ignore :\ Not mode 7 4LDA &319:CMP #4:BCS ignore :\ Not top four lines TYA:PHA:TXA:PHA : 2LDX #0 :\ First controller 8LDY #0 :\ Start of screen memory  .loop 6LDA #&80+0+0*64 :\ Set address to (0,0)  .home (BIT base%+0,X:BMI home:STA base%+0,X & .char 05BIT base%+0,X:BMI char :\ Wait until not busy :\ Need to translate #_` D1LDA &7C00,Y:STA base%+1,X :\ Write character N8INY :\ Step to next character XECPY #40:BEQ line1 :\ Move to next line, first controller bFCPY #120:BEQ line1 :\ Move to next line, second controller l7CPY #80:BNE next :\ Set to next character v;LDX #2:BNE loop :\ Step to second controller  .line1 6LDA #&80+0+1*64 :\ Set address to (0,1)  .wait (BIT base%+0,X:BMI wait:STA base%+0,X  .next @CPY #160:BNE char :\ Loop back to do next character PLA:TAX:PLA:TAY  .ignore  PLA:RTS ] ?"*SAVE lcd ";~mcode%;" ";~O%;" ";~go%&FFFF0000;" ";~load%