a4f04fe
From 244dc358e55a9b86a7281d40a576355c21268f30 Mon Sep 17 00:00:00 2001
a4f04fe
From: mc78 <mc78@outlook.de>
a4f04fe
Date: Sun, 1 Dec 2019 13:25:14 +0100
a4f04fe
Subject: [PATCH 137/170] Changed the order in which lo/hi bytes of vdc addr
a4f04fe
 are set according to willimanilys ((z64k) suggestions. Changed offset for vdc
a4f04fe
 ramsize detection from 000 to 000.
a4f04fe
a4f04fe
---
a4f04fe
 libsrc/c128/emd/c128-vdc.s | 22 ++++++++++++----------
a4f04fe
 1 file changed, 12 insertions(+), 10 deletions(-)
a4f04fe
a4f04fe
diff --git a/libsrc/c128/emd/c128-vdc.s b/libsrc/c128/emd/c128-vdc.s
a4f04fe
index 842059c3..e359dcdb 100644
a4f04fe
--- a/libsrc/c128/emd/c128-vdc.s
a4f04fe
+++ b/libsrc/c128/emd/c128-vdc.s
a4f04fe
@@ -104,7 +104,7 @@ INSTALL:
a4f04fe
         lda     ptr2
a4f04fe
         cmp     ptr2+1
a4f04fe
         bne     @have64k
a4f04fe
-        
a4f04fe
+   
a4f04fe
         lda     #64             ; assumes x = 0, here -> p.c = 64
a4f04fe
         bne     @setpagecnt
a4f04fe
 @have64k:        
a4f04fe
@@ -113,22 +113,25 @@ INSTALL:
a4f04fe
 @setpagecnt:        
a4f04fe
         sta     pagecount
a4f04fe
         stx     pagecount+1
a4f04fe
+
a4f04fe
+        txa
a4f04fe
+        bne     @keep64kBit        
a4f04fe
         
a4f04fe
         ldx     #VDC_CSET       ; restore 16/64k flag
a4f04fe
         lda     vdc_cset_save   
a4f04fe
-        jsr     vdcputreg        
a4f04fe
-
a4f04fe
+        jsr     vdcputreg   
a4f04fe
+@keep64kBit:
a4f04fe
         lda     #
a4f04fe
         ldx     #>EM_ERR_OK
a4f04fe
         rts
a4f04fe
 
a4f04fe
 test64k:
a4f04fe
-        sta     tmp3
a4f04fe
+        sta     tmp1
a4f04fe
         sty     ptr3
a4f04fe
         lda     #0
a4f04fe
         sta     ptr3+1
a4f04fe
         jsr     settestadr1
a4f04fe
-        lda     tmp3
a4f04fe
+        lda     tmp1
a4f04fe
         jsr     vdcputbyte              ; write $55
a4f04fe
         jsr     settestadr1
a4f04fe
         jsr     vdcgetbyte              ; read here
a4f04fe
@@ -146,7 +149,7 @@ settestadr1:
a4f04fe
         ldy     #$02                    ; test page 2 (here)
a4f04fe
         .byte   $2c
a4f04fe
 settestadr2:
a4f04fe
-        ldy     #$42                    ; or page 64+2 (there)
a4f04fe
+        ldy     #$82                    ; or page 64+2 (there)
a4f04fe
         lda     #0
a4f04fe
         jmp     vdcsetsrcaddr
a4f04fe
 
a4f04fe
@@ -334,17 +337,16 @@ COPYTO:
a4f04fe
 ;
a4f04fe
 
a4f04fe
 vdcsetsrcaddr:
a4f04fe
-        ldx     #VDC_DATA_LO
a4f04fe
+        ldx     #VDC_DATA_HI
a4f04fe
         stx     VDC_ADDR_REG
a4f04fe
 @L0:    bit     VDC_ADDR_REG
a4f04fe
         bpl     @L0
a4f04fe
         sta     VDC_DATA_REG
a4f04fe
-        dex
a4f04fe
-        tya
a4f04fe
+        inx
a4f04fe
         stx     VDC_ADDR_REG
a4f04fe
 @L1:    bit     VDC_ADDR_REG            ; XXX: Test waiting for register 18
a4f04fe
         bpl     @L1
a4f04fe
-        sta     VDC_DATA_REG
a4f04fe
+        sty     VDC_DATA_REG
a4f04fe
         rts
a4f04fe
 
a4f04fe
 vdcgetbyte:
a4f04fe
-- 
a4f04fe
2.26.0
a4f04fe