home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-02-02 | 2.5 KB | 82 lines | [04] ASCII Text (0x0000) |
- ; DANCNOTE.SC1
- ;
- ;*** POKE80
- ;*** STORES ANY BYTE DIRECTLY ON 80 COLUMN SCREEN
- ;*** USING PROTOCOL DESCRIBED IN "INSIDE THE APPLE //E"
- ;--------
- ; POKE80
- ;--------
- ; A = CHARACTER TO POKE ON SCREEN
- ; X = X COORDINATE (0-79)
- ; Y = Y COORDINATE (0-23)
- ;--------
- POKE80 CPX #80 ;VALIDATE X,Y COORDINATES
- BCC POKE80A
- CPY #24
- BCC POKE80A
- RTS
- POKE80A PHP ;SAVE INTERRUPT STATUS
- PHA ;SAVE USER'S DATA BYTE
- STA SAVEA
- STX SAVEX
- STY SAVEY
- SEI ;DISABLE INTERRUPTS
- LDA $C018
- STA STAT80ST ;SAVE STATUS OF 80STORE AND PAGE2 FLAGS
- LDA $C01C
- STA STATPAG2
- STA $C001 ;TURN 80STORE ON TO USE PAGE2 TO SWITCH MAIN->AUX
- LDA $28
- STA SAVEBASL ;SAVE CURRENT SCREEN BASE ADDRESS
- LDA $29
- STA SAVEBASH
- TYA ;MULTIPLY Y BY 2 FOR LOOKUP IN BASE TABLE
- ASL A
- TAY
- LDA BASTABLE,Y ;GET LINE ADDRESS AND STORE IT IN ZP VECTOR
- STA $28
- INY
- LDA BASTABLE,Y
- STA $29
- TXA ;DIVIDE X BY 2 TO GET OFFSET FROM LINE BASE
- LSR A
- TAY ;PUT IT IN Y FOR THE INDIRECT ADDRESSING LATER
- BCC EVENCOL ;CHECK CARRY TO DETERMINE IF X WAS ODD OR EVEN
- STA $C054 ;ODD - TURN PAGE 2 OFF
- BCS STORBYTE
- EVENCOL STA $C055 ;EVEN - TURN PAGE 2 ON
- STORBYTE PLA
- STA ($28),Y ;POKE THE CHARACTER ON THE SCREEN
- LDA STAT80ST
- BPL OFF80ST
- STA $C001 ;80STOREON
- BMI RSTRPAG2
- OFF80ST STA $C000 ;80STOREOFF
- RSTRPAG2 LDA STATPAG2
- BPL OFFPAG2
- STA $C055 ;PAGE2ON
- BMI RSTRBASE
- OFFPAG2 STA $C054 ;PAGE2OFF
- RSTRBASE LDA SAVEBASL ;RESTORE ZP BASE VECTOR
- STA $28
- LDA SAVEBASH
- STA $29
- LDX SAVEX
- LDY SAVEY
- LDA SAVEA
- PLP ;RESTORE INTERRUPT STATUS
- RTS
- ;
- STAT80ST DFB $00
- STATPAG2 DFB $00
- SAVEBASL DFB $00
- SAVEBASH DFB $00
- SAVEA DFB $00
- SAVEX DFB $00
- SAVEY DFB $00
- BASTABLE DFB $00,$04,$80,$04,$00,$05,$80,$05,$00,$06,$80,$06,$00,$07,$80,$07
- DFB $28,$04,$A8,$04,$28,$05,$A8,$05,$28,$06,$A8,$06,$28,$07,$A8,$07
- DFB $50,$04,$D0,$04,$50,$05,$D0,$05,$50,$06,$D0,$06,$50,$07,$D0,$07
- ;
- CHN DANCNOTE.SC2
-