Implemented clrscr routine for C1P
This commit is contained in:
3
libsrc/c1p/c1p.inc
Normal file
3
libsrc/c1p/c1p.inc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
SCRNBASE := $D000 ; Base of video RAM
|
||||||
|
VIDEORAMSIZE := $0400 ; Size of C1P video RAM (1 kB)
|
||||||
23
libsrc/c1p/clrscr.s
Normal file
23
libsrc/c1p/clrscr.s
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
;
|
||||||
|
; void clrscr (void);
|
||||||
|
;
|
||||||
|
.export _clrscr
|
||||||
|
.include "c1p.inc"
|
||||||
|
|
||||||
|
; Adapted from the Challenger Character Graphics
|
||||||
|
; Reference Manual, "2.3.3 MACHINE LANGUAGE SCREEN CLEAR"
|
||||||
|
; This is self-modifying code!
|
||||||
|
BANKS = VIDEORAMSIZE / $100
|
||||||
|
|
||||||
|
_clrscr: LDA #$20 ;' '
|
||||||
|
LDY #BANKS
|
||||||
|
LDX #$00
|
||||||
|
STALOC: STA SCRNBASE,X
|
||||||
|
INX
|
||||||
|
BNE STALOC
|
||||||
|
INC STALOC+2
|
||||||
|
DEY
|
||||||
|
BNE STALOC
|
||||||
|
LDA #>(SCRNBASE) ; load high byte
|
||||||
|
STA STALOC+2 ; restore base address
|
||||||
|
RTS
|
||||||
Reference in New Issue
Block a user