10 REM > lcd/s v1.00
   20 REM Redirect VDU to LCD display
   30 REM Syntax: lcd (ON|OFF)
   40 :
   50 REM Sends to existing VDU driver,
   60 REM then if VPOS in top four lines
   70 REM copies MODE 7 display to LCD
   80 :
   90 base%=&FC80
  100 FOR P=0 TO 1
  110   P%=&900
  120   [OPT P*3
  130   .start
  140   JSR old
  150   PHA:TYA:PHA:TXA:PHA
  160   LDA #&86:JSR &FFF4
  170   CPY #4:BCS ignore
  180   JSR disp
  190   .ignore
  200   PLA:TAX:PLA:TAY:PLA
  210   RTS
  220   .old
  230   JMP (oldv)
  240   .disp
  250   LDA #2:JSR comm
  260   LDX #0:LDY #0:.loop
  270   LDA &7C50,X:JSR data
  280   INX:INY
  290   CPY #40:BNE next
  300   .loop2
  310   LDA #32:JSR data
  320   INY:CPY #64:BNE loop2
  330   LDY #0
  340   .next
  350   CPX #80:BNE loop
  360   LDA #2:JSR commX
  370   LDX #0:LDY #0:.loopX
  380   LDA &7C00,X:JSR dataX
  390   INX:INY
  400   CPY #40:BNE nextX
  410   .loop2X
  420   LDA #32:JSR dataX
  430   INY:CPY #64:BNE loop2X
  440   LDY #0
  450   .nextX
  460   CPX #80:BNE loopX
  470   RTS
  480   .commX
  490   BIT base%+2:BMI commX
  500   STA base%+2:LDA #13
  510   .comm2X
  520   BIT base%+2:BMI comm2X
  530   STA base%+2:RTS
  540   .dataX
  550   BIT base%+2:BMI dataX
  560   STA base%+3:RTS
  570   .comm
  580   BIT base%+0:BMI comm
  590   STA base%+0:LDA #13
  600   .comm2
  610   BIT base%+0:BMI comm2
  620   STA base%+0:RTS
  630   .data
  640   BIT base%+0:BMI data
  650   STA base%+1:RTS
  660   .go%
  670   LDA #1:LDX #&A8:LDY #0
  680   JSR &FFDA:LDA (&A8),Y
  690   CMP #13:BEQ link_on
  700   INY:LDA (&A8),Y:AND #&DF
  710   CMP #ASC"F":BNE link_on
  720   LDA oldv+0:STA &20E
  730   LDA oldv+1:STA &20F
  740   RTS
  750   .link_on
  760   LDA &20E:STA oldv+0
  770   LDA &20F:STA oldv+1
  780   LDA #start AND 255:STA &20E
  790   LDA #start DIV 256:STA &20F
  800   RTS
  810   .oldv
  820 ]NEXT
  830 PRINT"*SAVE lcd FFFF0900 ";~P%OR&FFFF0000;" ";~go%OR&FFFF0000