]> git.sur5r.net Git - cc65/blob - libsrc/pce/conio.s
4fb3b1394e7715d33a2acf2f667c557ad8ab9551
[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 initconio:
11 ;;              jsr     vdc_init
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:       ldx     #$08            ; 8 bytes/char
94 lineloop:
95                 lda     (ptr1)
96                 eor     tmp1
97                 sta     a:VDC_DATA_LO     ; bitplane 0
98                 stz     a:VDC_DATA_HI     ; bitplane 1
99
100                 clc                     ; increment font pointer
101                 lda     ptr1
102                 adc     #$01
103                 sta     ptr1
104                 lda     ptr1+1
105                 adc     #$00
106                 sta     ptr1+1
107                 dex
108                 bne     lineloop        ; next bitplane 0 byte
109                 ldx     #$08            ; fill bitplane 2/3 with 0
110 fillloop:       st1     #$00
111                 st2     #$00
112                 dex
113                 bne     fillloop        ; next byte
114                 dey
115                 bne     charloop        ; next character
116
117                 rts
118
119                 .rodata
120 font:
121                 .include "vga.inc"