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