]> git.sur5r.net Git - cc65/blob - libsrc/pce/conio.s
b9333e1fa6f9eb302106370ea99c02328aef042b
[cc65] / libsrc / pce / conio.s
1         .include        "pce.inc"
2
3         .import vce_init
4         .import psg_init
5         .import vdc_init
6
7         .constructor    initconio, 24
8
9         .macpack        longbranch
10
11 initconio:
12         jsr     vce_init
13         jsr     psg_init
14         jsr     conio_init
15         jsr     set_palette
16
17         st0     #VDC_RCR
18         st1     #<$0088
19         st2     #>$0088
20         rts
21
22         .import colors
23 set_palette:
24         stz     VCE_ADDR_LO
25         stz     VCE_ADDR_HI
26
27         ldx     #0
28 @lp:
29         ldy     #16
30 @lp1:
31         lda     colors,x
32         sta     VCE_DATA_LO
33         lda     colors+1,x
34         sta     VCE_DATA_HI
35         dey
36         bne     @lp1
37
38         inx
39         inx
40         cpx     #16*2
41         jne     @lp
42
43         stz     VCE_ADDR_LO
44         stz     VCE_ADDR_HI
45         stz     VCE_DATA_LO
46         stz     VCE_DATA_HI
47
48         rts
49
50 ;----------------------------------------------------------------------------
51 ;
52 ;----------------------------------------------------------------------------
53
54         .importzp       ptr1, tmp1
55 conio_init:
56         ; Load font
57         st0     #VDC_MAWR
58         st1     #<$2000
59         st2     #>$2000
60
61         ; ptr to font data
62         lda     #<font
63         sta     ptr1
64         lda     #>font
65         sta     ptr1+1
66
67         st0     #VDC_VWR        ; VWR
68
69         lda     #0
70         sta     tmp1
71         jsr     copy
72
73         lda     #<font
74         sta     ptr1
75         lda     #>font
76         sta     ptr1+1
77
78         lda     #$ff
79         sta     tmp1
80         jsr     copy
81
82
83         ldx     #0
84         stx     BGCOLOR
85         inx
86         stx     CHARCOLOR
87
88
89         rts
90
91 copy:
92         ldy     #$80            ; 128 chars
93 charloop:
94         ldx     #$08            ; 8 bytes/char
95 lineloop:
96         lda     (ptr1)
97         eor     tmp1
98         sta     a:VDC_DATA_LO   ; bitplane 0
99         stz     a:VDC_DATA_HI   ; bitplane 1
100
101         clc                     ; increment font pointer
102         lda     ptr1
103         adc     #$01
104         sta     ptr1
105         lda     ptr1+1
106         adc     #$00
107         sta     ptr1+1
108         dex
109         bne     lineloop        ; next bitplane 0 byte
110         ldx     #$08            ; fill bitplane 2/3 with 0
111 fillloop:
112         st1     #$00
113         st2     #$00
114         dex
115         bne     fillloop        ; next byte
116         dey
117         bne     charloop        ; next character
118
119         rts
120
121         .rodata
122 font:
123         .include        "vga.inc"