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