32x: map dram correctly on 68k side
[picodrive.git] / pico / memory_arm.s
index e2b5990..be2fa99 100644 (file)
@@ -1,16 +1,16 @@
-@ vim:filetype=armasm\r
-\r
-@ (c) Copyright 2006-2009, Grazvydas "notaz" Ignotas\r
-@ All Rights Reserved\r
-\r
-\r
-@@ .include "port_config.s"\r
+/*\r
+ * PicoDrive\r
+ * (C) notaz, 2006-2009\r
+ *\r
+ * This work is licensed under the terms of MAME license.\r
+ * See COPYING file in the top-level directory.\r
+ */\r
 \r
 .equ SRR_MAPPED,    (1 <<  0)\r
 .equ SRR_READONLY,  (1 <<  1)\r
 .equ SRF_EEPROM,    (1 <<  1)\r
 .equ POPT_6BTN_PAD, (1 <<  5)\r
-.equ POPT_DIS_32X,  (1 << 20)\r
+.equ POPT_EN_32X,   (1 << 20)\r
 \r
 .text\r
 .align 4\r
@@ -27,7 +27,7 @@ PicoRead8_sram: @ u32 a, u32 d
     ldr     r3, =(Pico+0x22200)\r
     ldr     r1, [r2, #8]    @ SRam.end\r
     cmp     r0, r1\r
-    bge     m_read8_nosram\r
+    bgt     m_read8_nosram\r
     ldr     r1, [r2, #4]    @ SRam.start\r
     cmp     r0, r1\r
     blt     m_read8_nosram\r
@@ -58,8 +58,8 @@ m_read8_nosram:
 m_read8_eeprom:\r
     stmfd   sp!,{r0,lr}\r
     bl      EEPROM_read\r
-    ldmfd   sp!,{r0,lr}\r
-    tst     r0, #1\r
+    ldmfd   sp!,{r1,lr}\r
+    tst     r1, #1\r
     moveq   r0, r0, lsr #8\r
     bx      lr\r
 \r
@@ -114,8 +114,8 @@ m_read8_not_io:
 m_read8_not_brq:\r
     ldr     r2, =PicoOpt\r
     ldr     r2, [r2]\r
-    tst     r2, #POPT_DIS_32X\r
-    beq     PicoRead8_32x\r
+    tst     r2, #POPT_EN_32X\r
+    bne     PicoRead8_32x\r
     mov     r0, #0\r
     bx      lr\r
 \r
@@ -126,7 +126,7 @@ PicoRead16_sram: @ u32 a, u32 d
     ldr     r3, =(Pico+0x22200)\r
     ldr     r1, [r2, #8]    @ SRam.end\r
     cmp     r0, r1\r
-    bge     m_read16_nosram\r
+    bgt     m_read16_nosram\r
     ldr     r1, [r2, #4]    @ SRam.start\r
     cmp     r0, r1\r
     blt     m_read16_nosram\r
@@ -190,8 +190,8 @@ m_read16_not_io:
 m_read16_not_brq:\r
     ldr     r2, =PicoOpt\r
     ldr     r2, [r2]\r
-    tst     r2, #POPT_DIS_32X\r
-    beq     PicoRead16_32x\r
+    tst     r2, #POPT_EN_32X\r
+    bne     PicoRead16_32x\r
     mov     r0, #0\r
     bx      lr\r
 \r
@@ -261,8 +261,8 @@ m_write8_not_z80ctl:
 m_write8_not_sreg:\r
     ldr     r2, =PicoOpt\r
     ldr     r2, [r2]\r
-    tst     r2, #POPT_DIS_32X\r
-    beq     PicoWrite8_32x\r
+    tst     r2, #POPT_EN_32X\r
+    bne     PicoWrite8_32x\r
     bx      lr\r
 \r
 @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
@@ -298,9 +298,10 @@ m_write16_not_z80ctl:
 m_write16_not_sreg:\r
     ldr     r2, =PicoOpt\r
     ldr     r2, [r2]\r
-    tst     r2, #POPT_DIS_32X\r
-    beq     PicoWrite16_32x\r
+    tst     r2, #POPT_EN_32X\r
+    bne     PicoWrite16_32x\r
     bx      lr\r
 \r
 .pool\r
 \r
+@ vim:filetype=armasm\r