mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-25 06:31:25 +00:00
107 lines
2.9 KiB
Plaintext
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
|