10 OPEN1,8,2,"SCREENS.PAC,P,W" 20 SYS9*4096:.OPT O1:*=$8000 30 .ASC "PRO[195] MODE,PRO[195] CLEAR,PRO[195] PEN,PRO[195] LORES:PRO[199]:" 40 COL0 = 53281:COL1 = 53282:COL2 = 53283:COL3 = 53284:ZP1 = 254 50 JMP MOD:JMP CLR:JMP PN:JMP LRS 100 ; ******************** 101 ; *** MODE COMMAND *** 105 MOD JSR $B79E:CPX #2:BCS ERROR:TXA:PHA:JSR $E200:CPX #2:BCS ERROR 110 PLA:STA 56576:TXA:EOR #1:ORA #40:STA 53272 115 TXA:ASL A:ASL A:ASL A:ASL A:ORA #8:STA 53270:LDA #59:STA 53265:RTS 130 ; ******************* 131 ; *** (null) COMMAND *** 135 PN JSR $B79E:CPX #4:BCS ERROR:TXA:PHA:JSR $E200:PLA:TAY:TXA:STA 53281,Y:RTS 140 ; *** ILLEGAL QUANTITY *** 145 ERROR LDX #14:JMP $A43A 150 ; ********************* 151 ; *** CLEAR COMMAND *** 160 CLR LDA 56576:AND #3:CMP #2:BCS ERROR 161 LDA 53270:AND #16:BEQ L162:JSR MCCLR 162 L162 JSR COLCLR 200 ; *** BITMAP CLEAR *** 205 ; ******************** 210 LDA 56576:EOR #3:AND #3:SEC:ROR:ROR:ROR:STA L240+2:LDA #0:LDX #32 220 ; ** X PAGES -> A ** 230 FILL LDY #0 240 L240 STA $0000,Y:INY:BNE L240:INC L240+2:DEX:BNE L240:RTS 300 ; *** FARBRAM CLEAR *** 310 ; ********************* 330 COLCLR LDA 56576:AND #3:EOR #3:CLC:ROR:ROR:ROR 340 ORA #8:STA L240+2:LDX #4:LDA 53270:AND #16:BNE L344 342 LDA COL0:JMP L348 344 L344 LDA COL2:AND #15 348 L348 AND #15:STA VAR:LDA COL1:ASL A:ASL A:ASL A:ASL A:ORA VAR:JMP FILL 355 ; *** FARBRAM CLEAR $D8 *** 356 ; ************************* 358 MCCLR LDA COL0:STA 53281:LDA #$D8:STA L240+2:LDA COL3:LDX #4:BNE FILL 790 ; ********************* 791 ; *** LORES COMMAND *** 820 LRS LDA #$FF:STA 56576 830 LDA #4:STA 648:LDA #21:STA 53272 840 LDA 53265:AND #223:STA 53265:RTS 1000 VAR .BYTE 0 1020 .END:CLOSE1