]> git.sur5r.net Git - cc65/commitdiff
Used I/O mirror locations that avoid (redirected) zero-page accesses.
authorGreg King <gregdk@users.sf.net>
Tue, 29 Sep 2015 16:39:58 +0000 (12:39 -0400)
committerOliver Schmidt <ol.sc@web.de>
Thu, 30 Aug 2018 09:48:46 +0000 (11:48 +0200)
asminc/pce.inc
libsrc/pce/clrscr.s
libsrc/pce/conio.s
libsrc/pce/cputc.s
libsrc/pce/irq.s
libsrc/pce/vdc.s

index 623ab4da8736050387d7f56f8400f134360f9b12..86ed5232da6ea5b6ff83f0c35f595ee872131041 100644 (file)
@@ -34,11 +34,13 @@ VDC_LENR        = 18            ; (DMA) Length Register
 VDC_SATB        = 19            ; Sprite Attribute Table
 
 ; VDC port
-; Note: absolute addressing mode must be used when writing to this port
+; Note:  The zero-page addressing mode is redirected to page $20.
+; Therefore, absolute addressing mode must be used when writing to this port.
+; We force it by using mirror locations that are outside of zero page.
 
-VDC_CTRL        = $0000
-VDC_DATA_LO     = $0002
-VDC_DATA_HI     = $0003
+VDC_CTRL        := $0200
+VDC_DATA_LO     := $0202
+VDC_DATA_HI     := $0203
 
 ; huc6260 - Video Color Encoder (vce)
 
index e3f40bb8b78e11ae602c08f6428ac8765eca453b..851c7e317d929b8334c12d7f28b486f1dcfebe98 100644 (file)
@@ -16,9 +16,9 @@ rowloop:
         ldx     #$80
 colloop:
         lda     #' '
-        sta     a:VDC_DATA_LO
+        sta     VDC_DATA_LO
         lda     #$02
-        sta     a:VDC_DATA_HI
+        sta     VDC_DATA_HI
 
         dex
         bne     colloop
index 674b7027901603d0b02d5b2f349542f970b9e0d5..d5b12c3fe1d27edd9e231ed2f0d4a66b497c3363 100644 (file)
@@ -90,8 +90,8 @@ charloop:
 lineloop:
         lda     (ptr1)
         eor     tmp1
-        sta     a:VDC_DATA_LO   ; bitplane 0
-        stz     a:VDC_DATA_HI   ; bitplane 1
+        sta     VDC_DATA_LO     ; bitplane 0
+        stz     VDC_DATA_HI     ; bitplane 1
 
         clc                     ; increment font pointer
         lda     ptr1
index cfe6a1a279be6cc1b458d59964e7102d5278ad40..aaf67b2987ec34d406a7849569fbbb9192587f87 100644 (file)
@@ -69,15 +69,15 @@ putchar:
         st0     #VDC_MAWR       ; Memory Adress Write
 
         lda     SCREEN_PTR
-        sta     a:VDC_DATA_LO
+        sta     VDC_DATA_LO
 
         lda     SCREEN_PTR + 1
-        sta     a:VDC_DATA_HI
+        sta     VDC_DATA_HI
 
         st0     #VDC_VWR        ; VWR
 
         txa
-        sta     a:VDC_DATA_LO   ; character
+        sta     VDC_DATA_LO     ; character
 
         lda     CHARCOLOR
 
@@ -87,7 +87,7 @@ putchar:
         asl     a
 
         ora     #$02
-        sta     a:VDC_DATA_HI
+        sta     VDC_DATA_HI
 
         rts
 
index e0fb6855663dd851cc53e93acfc89a509d3ef636..60a7e22ba74a5123509de7141586481b3274f999 100644 (file)
@@ -32,7 +32,7 @@ IRQStub:
 
 ; Save the display-source flags (and, release the interrupt).
 ;
-        ldy     a:VDC_CTRL
+        ldy     VDC_CTRL
         sty     vdc_flags
 
         ldy     #<(__INTERRUPTOR_COUNT__ * 2)
index 878c79321d1bbccdabd2f8b4d522d7d9c3da80fa..91d58bd510e09575ac6732592888cba9a421db13 100644 (file)
@@ -7,7 +7,7 @@ HIRES   = 1
         .export         vdc_init
 
 vdc_init:
-        lda     a:VDC_CTRL
+        lda     VDC_CTRL
 
         VREG    $00, $0000      ; MAWR
         VREG    $01, $0000      ; MARR
@@ -37,5 +37,5 @@ vdc_init:
 
 .endif
 
-        lda     a:VDC_CTRL
+        lda     VDC_CTRL
         rts