testpico: show that vres clear is separate
[megadrive.git] / testpico / sega_gcc.s
index 52c9f8a..4abb418 100644 (file)
@@ -112,20 +112,22 @@ exc_tab:
     .word 0x5100,0x3340,0x0006,0x303C,0x8000,0x6004,0x44FC,0x0001\r
 \r
 RST:\r
-    move.w  #0x2600, %sr\r
-\r
-    move.b (0xA10001), %d0\r
-    andi.b #0x0F, %d0\r
-    beq.s 0f\r
-    move.l  #0x53454741, (0xA14000) /* 'SEGA' */\r
+    andi.b  #0x0F, (0xA10001)       /* 24 */\r
+    bne.s   0f                      /* 10 */\r
+    move.w  #0x8104, (0xc00004)\r
+    bra     1f\r
 0:\r
-    tst.w   (0xc00004).l\r
+    move.l  #0x53454741, (0xA14000) /* 28 'SEGA' */\r
+1:\r
+    move.w  (0xc00008), %d0         /* 16 */\r
+    move.w  %d0, -(%sp)\r
+    subq.l  #2, %sp\r
+    move    %sp, %usp\r
 \r
-    moveq   #0, %d0\r
-    movea.l %d0, %a7\r
-    move    %a7, %usp\r
+    move.w  #0x2600, %sr\r
 \r
     /* clear .bss */\r
+    moveq.l #0, %d0\r
     lea     __bss_start, %a0\r
     lea     __end, %a1\r
 0:\r
@@ -162,9 +164,9 @@ ram_rv_switch_end:
 pre_exception:\r
     move.w  #0x2700, %sr\r
     movem.l %d0-%d7/%a0-%a7,-(%sp)\r
-    add.w   #2, 0x3e(%sp)\r
+    add.w   #2, 0x3e(%sp)   /* ecxnum */\r
     move.l  %sp, %d0\r
-    move.l  %d0,-(%sp)  /* arg0 */\r
+    move.l  %d0,-(%sp)      /* arg0 */\r
     jsr     exception\r
 0:\r
     bra     0b\r