1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-11-25 06:31:25 +00:00
C02/include/x16/screen.a02
2019-11-20 01:06:34 -05:00

46 lines
1.1 KiB
Plaintext

;Screen Control Assembly Lanuage Routines for VIC-20
;SUBROUTINE
SMTEXT EQU $00 ;Default Text Screen
SMWIDE EQU $02 ;Wide Text Screen (Undefined)
;Set Screen Mode
SETSCR: SEC ;Set Carry
JSR $FF5F ;Call SCRMOD
LDA #0 ;Set Return Value to Zero
BCC .RETURN ;If Carry Set
DEC ; Return 255 (Error)
.RETURN RTS
;Get Screen Mode
GETSCR: CLC ;Clear Carry
JMP $FF5F ;Execute SCRMOD
RTS
;Clear the Screen
CLRSCR LDA #$93 ;Load CLR/HOME Character
JMP PUTCHR ;and Print to Screen
;Move Cursor To Home Position
CRSRHM LDA #$13 ;Load HOME Character
JMP PUTCHR ;and Print to Screen
;Move Cursor to Specified Coordinates
SETPOS: .DC $5A ;PHY Copy Row
.DC $FA ;PLX to X Register,
TAY ;Column to Y Register
CLC ;Set Carry
JMP $FFF0 ;and Execute Plot
;Get Cursor Position
GETPOS: LDY $D6 ;Load Cursor Row
LDA $D3 ;Load Cursor Column
RTS
;Get Screen Size
GETSIZ: JSR $FFED ;Call SCREEN Kernal Routine
TXA ;Transfer Width to Accumulator
RTS