200 PTR1 = $26 210 PTR2 = $28 220 SCR1 = $8000 230 SCR2 = $8400 235 *=$033C 240 LDA #SCR1 ; FROM SCREEN 1 290 LDY #>SCR2 ; TO SCREEN 2 300 STX PTR1+1 310 STY PTR2+1 320 LDA #$10 330 BIT $D018 340 BEQ FLIP 350 STX PTR2+1 ; FROM SCREEN 2 360 STY PTR1+1 ; TO SCREEN 1 370 FLIP LDX #$00 380 ; 390 NXLIN LDY #$00 ; START OF LINE 400 NXCHAR LDA (PTR1),Y ; CHAR.. 410 STA (PTR2),Y ; TO OTHER SCREEN 420 INY ; NEXT CHARACTER 430 CPY #$28 ; COPIED 40 CHARS.. 440 BCC NXCHAR ; NO, DO MORE 450 CLC 460 LDA PTR1 ; 'FROM' (null) 470 ADC #$28 ; .. TO NEXT LINE 480 STA PTR1 490 BCC INC2 500 INC PTR1+1 510 INC2 CLC 520 LDA PTR2 ; 'TO' (null) 530 ADC #$28 ; .. TO NEXT LINE 540 STA PTR2 550 BCC SAMPG 560 INC PTR2+1 570 SAMPG INX 580 CPX #$18 ; COPIED 24 LINES.. 590 BCC NXLIN ; NO, (null) MORE 600 ; 610 LDA #$20 ; SPACES... 620 LDY #$00 630 MOVCHR STA (PTR2),Y ; BOTTOM LINE 640 INY 650 CPY #$28 ; (null)NE 40 SPACES.. 660 BCC MOVCHR ; NO, (null) MORE 670 ; STEP OLD SCREEN THRU (null)& SCROLL 680 LDX #$17 ; BOTTOM PIXEL POSITION 690 SCROL LDY #$05 700 WAIT LDA $D012 ; WAIT RETRACE 710 CMP $03D0 720 STA $03D0 730 BCS WAIT 740 BIT $D011 ; CHECK HI RASTER 750 BMI WAIT 760 DEY ; WAIT SIX RETRACE CYCLES 770 BPL WAIT 780 STX $D011 ; SCROLL IT! 790 DEX ; SET ONE PIXEL HIGHER 800 CPX #$10 ; CHECK LAST PX POSITION 810 BCS SCROL ; NO, MOVE ANOTHER PIXEL 820 ; WE HAVE (null)NE A FULL PIXEL SCROLL; 825 ; ... SWITCH SCREENS! 830 LDX #$17 ; BOTTOM PIXEL POSITION 840 LDA $D018 ; SCREEN ADDRS REGISTER 850 EOR #$10 ; FLIP TO OTHER SCREEN 860 STA $D018 870 STX $D011 880 LDA $0288 ; SUPPLY SCREEN ADDRS 890 EOR #$04 900 STA $0288 910 ; PRINTING THEN RETURN 920 ; GIVES THE EFFECT OF 925 ; RESTORING CURSOR TO LEFT MARGIN 930 LDA #$91 ; CURSOR-UP (null)ACTER 940 JSR $FFD2 950 LDA #$0D ; RETURN (null)ACTER 960 JMP $FFD2