2018-09-17 00:30:25 +00:00
|
|
|
;Screen Control Assembly Lanuage Routines for VIC-20
|
|
|
|
|
2019-11-20 06:06:34 +00:00
|
|
|
SUBROUTINE _SCREEN
|
|
|
|
|
|
|
|
SMTEXT EQU $00 ;Default Text Screen
|
|
|
|
SMWIDE EQU $FF ;Wide Text Screen (Undefined)
|
|
|
|
|
|
|
|
;Set Screen Mode
|
|
|
|
SETSCR: CMP SMTEXT ;If Default Text Screen
|
|
|
|
BEQ GETSCR ;Return Return 0
|
|
|
|
LDA #$FF ;Else Return ERROR
|
|
|
|
RTS
|
|
|
|
;Else Return 0
|
|
|
|
;Get Screen Mode
|
|
|
|
GETSCR: LDA #0 ;Return 0 (Default Text Mode)
|
|
|
|
RTS
|
|
|
|
|
2018-09-17 00:30:25 +00:00
|
|
|
;Clear the Screen
|
|
|
|
CLRSCR EQU $E544 ;Aliased to CLSR Routine
|
|
|
|
|
|
|
|
;Move Cursor To Home Position
|
|
|
|
CRSRHM EQU $E566 ;Aliased to HOME Routine
|
|
|
|
|
|
|
|
;Move Cursor to Specified Coordinates
|
|
|
|
SETPOS: STA $D3 ;Save Cursor Column
|
|
|
|
STY $D6 ;Save Cursor Row
|
|
|
|
JMP $E56C ;Set Screen Poiners and Return
|
|
|
|
|
|
|
|
;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
|