mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-24 15:31:17 +00:00
46 lines
1.1 KiB
Plaintext
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
|
|
|