1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-04 13:29:35 +00:00
cc65/libsrc/pce/conio.s

103 lines
2.7 KiB
ArmAsm
Raw Normal View History

2015-07-12 12:27:24 +00:00
.include "pce.inc"
2015-07-12 12:27:24 +00:00
.import vce_init
.import psg_init
.import vdc_init
2015-07-12 12:27:24 +00:00
.export initconio
2015-07-12 12:27:24 +00:00
.constructor initconio, 24
.macpack longbranch
initconio:
2015-07-12 12:27:24 +00:00
;; jsr vdc_init
jsr vce_init
jsr psg_init
jsr conio_init
jsr set_palette
st0 #VDC_RCR
st1 #<$0088
st2 #>$0088
rts
.import colors
set_palette:
2015-07-12 12:27:24 +00:00
stz VCE_ADDR_LO
stz VCE_ADDR_HI
2015-07-12 12:27:24 +00:00
ldx #0
@lp:
2015-07-12 12:27:24 +00:00
.repeat 16
lda colors,x
sta VCE_DATA_LO
lda colors+1,x
sta VCE_DATA_HI
.endrepeat
inx
inx
cpx #16*2
jne @lp
stz VCE_ADDR_LO
stz VCE_ADDR_HI
stz VCE_DATA_LO
stz VCE_DATA_HI
rts
;----------------------------------------------------------------------------
;
;----------------------------------------------------------------------------
2015-07-12 12:27:24 +00:00
.importzp ptr1
conio_init:
2015-07-12 12:27:24 +00:00
; Load font
st0 #VDC_MAWR
st1 #<$2000
st2 #>$2000
; ptr to font data
2015-07-14 15:22:47 +00:00
lda #<font
sta ptr1
lda #>font
sta ptr1+1
2015-07-12 12:27:24 +00:00
2015-07-14 15:22:47 +00:00
st0 #VDC_VWR ; VWR
2015-07-12 12:27:24 +00:00
ldy #$80 ; 128 chars
charloop: ldx #$08 ; 8 bytes/char
lineloop:
lda (ptr1)
2015-07-14 15:22:47 +00:00
staio VDC_DATA_LO ; bitplane 0
stzio VDC_DATA_HI ; bitplane 1
2015-07-12 12:27:24 +00:00
clc ; increment font pointer
lda ptr1
adc #$01
sta ptr1
lda ptr1+1
adc #$00
sta ptr1+1
dex
bne lineloop ; next bitplane 0 byte
ldx #$08 ; fill bitplane 2/3 with 0
fillloop: st1 #$00
st2 #$00
dex
bne fillloop ; next byte
dey
bne charloop ; next character
ldx #0
2015-07-14 15:22:47 +00:00
stx BGCOLOR
2015-07-12 12:27:24 +00:00
inx
2015-07-14 15:22:47 +00:00
stx CHARCOLOR
2015-07-12 12:27:24 +00:00
rts
.rodata
font:
.include "vga.inc"