;Screen Control Assembly Lanuage Routines for C02 ;Skeleton Code for Systems with no Screen Control 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 ;Clear the Screen CLRSCR: LDA #$0C ;Print Form Feed JMP PUTCHR ;and Return ;Move Cursor Home CRSRHM EQU $E395 ;Aliad to HOME Routine ;Move Cursor to Specified Coordinates SETPOS: STA $E9 ;Set CURCOL STY $E8 ;Set CURROW JMP $E39D ;Set Pointers and Return ;Get Cursor Position GETPOS: LDA $E9 ;Load Column Position LDY $E8 ;Load Row Position RTS ;Return Cursor Column in A, Row in Y ;Get Screen Size GETSIZ: LDA #32 ;Return 32 Columns TAY ;and 32 Rows RTS