notaz.gp2x.de
/
megadrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
testpico: check busy after dma
[megadrive.git]
/
testpico
/
asmtools.S
diff --git
a/testpico/asmtools.S
b/testpico/asmtools.S
index
24b6458
..
83f03db
100644
(file)
--- a/
testpico/asmtools.S
+++ b/
testpico/asmtools.S
@@
-6,6
+6,7
@@
move.l (4 + \arg * 4 + \stacksz)(%sp), \reg
.endm
move.l (4 + \arg * 4 + \stacksz)(%sp), \reg
.endm
+# args are always 4 bytes in stack, caller restores sp
.macro ldargw arg, stacksz, reg
move.w (4 + \arg * 4 + 2 + \stacksz)(%sp), \reg
.endm
.macro ldargw arg, stacksz, reg
move.w (4 + \arg * 4 + 2 + \stacksz)(%sp), \reg
.endm
@@
-44,6
+45,8
@@
write16_x16:
# destroys d1
.global get_input
get_input:
# destroys d1
.global get_input
get_input:
+.global get_input_s
+get_input_s:
move.b #0x40,(0xa10003)
moveq.l #0,d0
nop
move.b #0x40,(0xa10003)
moveq.l #0,d0
nop
@@
-66,6
+69,8
@@
get_input:
and.w d0,d1 /* what changed now */
.endif
rts
and.w d0,d1 /* what changed now */
.endif
rts
+.global get_input_end
+get_input_end:
.global get_line
get_line:
.global get_line
get_line:
@@
-295,6
+300,7
@@
x32x_enable_end:
.global x32x_disable
x32x_disable:
movea.l #0xa15100, a0
.global x32x_disable
x32x_disable:
movea.l #0xa15100, a0
+ move.w #0, 6(a0) /* RV=0 */
move.w #1, (a0) /* ADEN (reset sh2) */
move.w #0, (a0) /* adapter disable, reset sh2 */
move.w #1, d0
move.w #1, (a0) /* ADEN (reset sh2) */
move.w #0, (a0) /* adapter disable, reset sh2 */
move.w #1, d0
@@
-534,7
+540,7
@@
test_ym_ab_sync2:
movea.l #0xa04000, a0
movea.l #0xa04001, a1
movea.l #0xa04000, a0
movea.l #0xa04001, a1
-
# move.b #0x3f, (a1) /* 12 clear
*/
+
move.b #0x0f, (a1) /* 12 enable
*/
moveq.l #0, d0
moveq.l #3, d1
nop /* 4 need ~12c to clear */
moveq.l #0, d0
moveq.l #3, d1
nop /* 4 need ~12c to clear */
@@
-543,6
+549,26
@@
test_ym_ab_sync2:
and.b d1, d0 /* 4 */
beq 0b /* 10|8 */
move.b (a0), d0 /* re-read */
and.b d1, d0 /* 4 */
beq 0b /* 10|8 */
move.b (a0), d0 /* re-read */
+ move.b #0x3c, (a1) /* 12 clear, disable */
rts
rts
+.global x32x_switch_rv
+x32x_switch_rv:
+ ldargw 0, 0, d0
+ move.l (sp)+, d1
+ movea.l #0xa15106, a0
+ btst #0, d0
+ bne 0f
+ move.w #0, (a0)
+ or.l #0x880000, d1
+ bra 1f
+0:
+ move.w #1, (a0)
+ and.l #0x07ffff, d1
+1:
+ movea.l d1, a1
+ jmp (a1)
+.global x32x_switch_rv_end
+x32x_switch_rv_end:
+
# vim:filetype=asmM68k:ts=4:sw=4:expandtab
# vim:filetype=asmM68k:ts=4:sw=4:expandtab