1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-11-29 01:49:19 +00:00
C02/include/oric/color.a02
2018-11-07 00:11:09 -05:00

107 lines
2.9 KiB
Plaintext

;Screen Control Assembly Language Routines for Oric-1
; Display Colors
BLACK EQU 0 Black
RED EQU 1 Red
GREEN EQU 2 Green
YELLOW EQU 3 Yellow
BLUE EQU 4 Blue
MAGENT EQU 5 Magenta
CYAN EQU 6 Cyan
WHITE EQU 7 White
;ASCII Screen Control Characters
CHRBEL EQU $07 Beep (Bell)
CHRBLK EQU $FF Block
CHRCAP EQU $14 Caps Lock ()
CHRCKR EQU $7E Checkerboard
CHRCLR EQU $0C Clear (Form Feed)
CHRDEL EQU $7F Delete (Delete)
CHRDWN EQU $0A Cursor Down (Line Feed)
CHRFLS EQU 140 Flash On
CHRHOM EQU $00 Home (None)
CHRINS EQU $00 Insert
CHRLFT EQU $08 Cursor Left (Backspace)
CHRRGT EQU $09 Cursor Right (Tab)
CHRRTN EQU $0D Return (Carriage Return)
CHRRVF EQU $00 Reverse Off
CHRRVN EQU $00 Reverse On
CHRUP EQU $0B Cursor Up (Vertical Tab)
;ASCII Box Drawing Characters
BOXBLC EQU 43 Bottom Left Corner (+)
BOXBRC EQU 43 Bottom Right Corner (+)
BOXBCT EQU 45 Bottom to Cetter Tee (-)
BOXCTR EQU 123 Center Cross (+)
BOXHLN EQU 45 Horizontal Line (-)
BOXLCT EQU 124 Left To Center T (|)
BOXRCT EQU 124 Right To Center T (|)
BOXTLC EQU 43 Top Left Corner (+)
BOXTRC EQU 43 Top Right Corner (+)
BOXTCT EQU 45 Top to Center T (-)
BOXVLN EQU 124 Vertical Line (|)
;ASCII Color Code Table
CLRCDS DC 128, 129, 130, 131, 132, 133, 134, 136
;Set Background Color
;Args: A = Oric Color Code
;Uses: TEMP0 - Temporary Storage
;Affects: A,C,N,Z
SCRBKG: AND $07 ;Strip High Bits
ORA $90 ;Convert to Control Character
JMP PRCHR ;Print Character and Return
;Set Text Color
;Args: A = Vic color code
;Affects: A,X,C,N,Z
SCRTXT: AND $07 ;Strip High Bits
ORA $80 ;Convert to Control Character
JMP PRCHR ;Print Character and Return
;Clear Screen
;Affects A,C,N,Z
SCRCLR: LDA #CHRCLR ;Load Clear Screen Character
JMP PRCHR ;Print it and Return
;Move Cursor Down
;Affects A,C,N,Z
SCRDWN: LDA #CHRDWN ;Load Cursor Down Character
JMP PRCHR ;Print it and Return
;Move Cursor To Home Position
;Affects A,C,N,Z
SCRHOM: LDA #0 ;Column 0
TAY ;Row 0
BEQ SRCMOV ;Move Cursor
;Move Cursor Left
;Affects A,C,N,Z
SCRLFT: LDA #CHRLFT ;Load Cursor Left Character
JMP PRCHR ;Print it and Return
;Move Cursor Right
;Affects A,C,N,Z
SCRRGT: LDA #CHRRGT ;Load Cursor Left Character
JMP PRCHR ;Print it and Return
;Move Cursor Up
;Affects A,C,N,Z
SCRUP: LDA #CHRUP ;Load Cursor Left Character
JMP PRCHR ;Print it and Return
;Move Cursor to Specified Coordinates
;Args: A = screen column (0 = top)
; Y = screen line (0 = left)
SCRMOV: RTS ;Not Yet Implemented
;Get Cursor Position
;Returns: A = current cursor column
; Y = current cursor row
SCRPOS: RTS ;Not Yet Implemented
;Get Screen Size
;Returns: A = width of screen in columns
; Y = height of screen in rows
SCRSIZ: RTS ;Not Yet Implemented