]> git.sur5r.net Git - cc65/blobdiff - libsrc/pce/conio.s
fixed screensize, timertick, revers mode
[cc65] / libsrc / pce / conio.s
index 0a66cf454fe49e07d220eec88c94302f8ef9f094..4fb3b1394e7715d33a2acf2f667c557ad8ab9551 100644 (file)
-                                               .include "pcengine.inc"
-            .import vce_init
-            .import psg_init
-            .import vdc_init
+                .include "pce.inc"
 
-                       .export initconio
-                   .export _conio_init
+                .import vce_init
+                .import psg_init
+                .import vdc_init
 
-                       .constructor initconio, 24
+                .constructor initconio, 24
 
-            .macpack longbranch
+                .macpack longbranch
 initconio:
-                     ;;   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
+;;              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:
+                stz     VCE_ADDR_LO
+                stz     VCE_ADDR_HI
 
-                        ; Make palette (use VGA palette?)
-                     ;   stz     VCE_ADDR_LO
-                     ;   stz     VCE_ADDR_HI
-                     ;   clx
-                     ;   cly
-        vce_loop:    ;; stx     VCE_DATA_LO
-                     ;; sty     VCE_DATA_HI
-                     ;   inx
-                     ;   cpx     #$00
-                     ;   bne     vce_loop
-                     ;   iny
-                     ;   cpy     #$02
-                     ;   bne     vce_loop
-
-
-                        stz     VCE_ADDR_LO
-                        stz     VCE_ADDR_HI
-                                               
-                                               ldx #0
+                ldx #0
 @lp:
-                                               .repeat 16
-                        lda colors,x
-                        sta     VCE_DATA_LO
-                        lda colors+1,x
-                        sta     VCE_DATA_HI
-                                               .endrepeat
-
-                                               inx
-                                               inx
-                                               cpx #16*2;*5
-                                               jne @lp
-
-                        stz     VCE_ADDR_LO
-                        stz     VCE_ADDR_HI
-                        stz     VCE_DATA_LO
-                        stz     VCE_DATA_HI
-
-; so it will get linked in
-_conio_init:
-                        rts
+                ldy     #16
+@lp1:
+                lda     colors,x
+                sta     VCE_DATA_LO
+                lda     colors+1,x
+                sta     VCE_DATA_HI
+                dey
+                bne     @lp1
+
+                inx
+                inx
+                cpx     #16*2
+                jne     @lp
+
+                stz     VCE_ADDR_LO
+                stz     VCE_ADDR_HI
+                stz     VCE_DATA_LO
+                stz     VCE_DATA_HI
+
+                rts
 
 ;----------------------------------------------------------------------------
 ;
 ;----------------------------------------------------------------------------
 
-                        .importzp ptr1
-
+                .importzp ptr1, tmp1
 conio_init:
-
-                        ; Load font
-                        st0     #VDC_MAWR
-                        st1     #<$2000
-                        st2     #>$2000
-
-                        ; ptr to font data
-                        lda    #<font
-                        sta            ptr1
-                        lda    #>font
-                        sta            ptr1+1
-
-                        st0     #VDC_VWR            ; VWR
-                        ldy     #$80            ; 128 chars
-        charloop:       ldx     #$08            ; 8 bytes/char
-        lineloop:
-                                               ;;lda     [$00]           ; read font byte
-                        lda (ptr1)
-                        staio  VDC_DATA_LO       ; bitplane 0
-                        stzio  VDC_DATA_HI       ; bitplane 1
-
-                        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
-                        stx    BGCOLOR
-                        inx
-                        stx    CHARCOLOR
-
-
-                        rts
-
-                        .rodata
-font:                   .include "vga.inc"
+                ; Load font
+                st0     #VDC_MAWR
+                st1     #<$2000
+                st2     #>$2000
+
+                ; ptr to font data
+                lda     #<font
+                sta     ptr1
+                lda     #>font
+                sta     ptr1+1
+
+                st0     #VDC_VWR        ; VWR
+
+                lda     #0
+                sta     tmp1
+                jsr     copy
+
+                lda     #<font
+                sta     ptr1
+                lda     #>font
+                sta     ptr1+1
+
+                lda     #$ff
+                sta     tmp1
+                jsr     copy
+
+
+                ldx     #0
+                stx     BGCOLOR
+                inx
+                stx     CHARCOLOR
+
+
+                rts
+
+copy:
+                ldy     #$80            ; 128 chars
+charloop:       ldx     #$08            ; 8 bytes/char
+lineloop:
+                lda     (ptr1)
+                eor     tmp1
+                sta     a:VDC_DATA_LO     ; bitplane 0
+                stz     a:VDC_DATA_HI     ; bitplane 1
+
+                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
+
+                rts
+
+                .rodata
+font:
+                .include "vga.inc"