summaryrefslogtreecommitdiff
path: root/zruntime.S
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2015-05-28 21:19:55 -0700
committerMichael Pavone <pavone@retrodev.com>2015-05-28 21:19:55 -0700
commitef033e39c170fe272a956b1417f217a0d3cce29c (patch)
tree0ca08ba1614e87cee73f4904ea362928565b2531 /zruntime.S
parent632c82bd63a13da242c90a5d93dfe7482a0bebe6 (diff)
parent6817ef558d165b50a9b08a337dd93c4f1f46304e (diff)
Merge windows branch with latest changes
Diffstat (limited to 'zruntime.S')
-rw-r--r--zruntime.S30
1 files changed, 27 insertions, 3 deletions
diff --git a/zruntime.S b/zruntime.S
index 4445842..a7bac3f 100644
--- a/zruntime.S
+++ b/zruntime.S
@@ -125,7 +125,7 @@ z80_read_bank:
add $3, %ebp
push %rsi
mov 144(%rsi), %rsi /* get system context pointer */
- cmp $0, 120(%rsi) /* check bus busy flag */
+ cmpb $0, 120(%rsi) /* check bus busy flag */
pop %rsi
jne bus_busy
z80_read_bank_cont:
@@ -150,7 +150,15 @@ z80_read_ym2612:
call z80_save_context
mov %r13w, %di
push %rsi
+ test $8, %rsp
+ jnz 0f
call z80_read_ym
+ jmp 1f
+0:
+ sub $8, %rsp
+ call z80_read_ym
+ add $8, %rsp
+1:
pop %rsi
mov %al, %r13b
call z80_load_context
@@ -196,7 +204,15 @@ z80_write_ym2612:
call z80_save_context
mov %r14w, %di
mov %r13b, %dl
+ test $8, %rsp
+ jnz 0f
+ call z80_write_ym
+ jmp 1f
+0:
+ sub $8, %rsp
call z80_write_ym
+ add $8, %rsp
+1:
mov %rax, %rsi
jmp z80_load_context
z80_write_bank_reg:
@@ -219,7 +235,15 @@ z80_write_vdp:
call z80_save_context
mov %r14w, %di
mov %r13b, %dl
+ test $8, %rsp
+ jnz 0f
+ call z80_vdp_port_write
+ jmp 1f
+0:
+ sub $8, %rsp
call z80_vdp_port_write
+ add $8, %rsp
+1:
mov %rax, %rsi
jmp z80_load_context
@@ -243,7 +267,7 @@ z80_read_bank_word:
add $3, %ebp /* first read typically has 3 wait states */
push %rsi
mov 144(%rsi), %rsi /* get system context pointer */
- cmp $0, 120(%rsi) /* check bus busy flag */
+ cmpb $0, 120(%rsi) /* check bus busy flag */
pop %rsi
jne bus_busy_word
z80_read_bank_word_cont:
@@ -256,7 +280,7 @@ z80_read_bank_word_cont:
add $4, %ebp /* second read typically has 4 wait states */
push %rsi
mov 144(%rsi), %rsi /* get system context pointer */
- cmp $0, 120(%rsi) /* check bus busy flag */
+ cmpb $0, 120(%rsi) /* check bus busy flag */
pop %rsi
jne bus_busy_word2
z80_read_bank_word_cont2: