comparison zruntime.S @ 744:fc68992cf18d

Merge windows branch with latest changes
author Michael Pavone <pavone@retrodev.com>
date Thu, 28 May 2015 21:19:55 -0700
parents e13f4fd9cf6d
children
comparison
equal deleted inserted replaced
743:cf78cb045fa4 744:fc68992cf18d
123 z80_read_bank: 123 z80_read_bank:
124 /* approximation of wait states for normal 68K bus access */ 124 /* approximation of wait states for normal 68K bus access */
125 add $3, %ebp 125 add $3, %ebp
126 push %rsi 126 push %rsi
127 mov 144(%rsi), %rsi /* get system context pointer */ 127 mov 144(%rsi), %rsi /* get system context pointer */
128 cmp $0, 120(%rsi) /* check bus busy flag */ 128 cmpb $0, 120(%rsi) /* check bus busy flag */
129 pop %rsi 129 pop %rsi
130 jne bus_busy 130 jne bus_busy
131 z80_read_bank_cont: 131 z80_read_bank_cont:
132 and $0x7FFF, %r13 132 and $0x7FFF, %r13
133 cmp $0, %r12 133 cmp $0, %r12
148 jmp z80_read_bank_cont 148 jmp z80_read_bank_cont
149 z80_read_ym2612: 149 z80_read_ym2612:
150 call z80_save_context 150 call z80_save_context
151 mov %r13w, %di 151 mov %r13w, %di
152 push %rsi 152 push %rsi
153 test $8, %rsp
154 jnz 0f
153 call z80_read_ym 155 call z80_read_ym
156 jmp 1f
157 0:
158 sub $8, %rsp
159 call z80_read_ym
160 add $8, %rsp
161 1:
154 pop %rsi 162 pop %rsi
155 mov %al, %r13b 163 mov %al, %r13b
156 call z80_load_context 164 call z80_load_context
157 ret 165 ret
158 166
194 z80_write_ym2612: 202 z80_write_ym2612:
195 and $0x3, %r14w 203 and $0x3, %r14w
196 call z80_save_context 204 call z80_save_context
197 mov %r14w, %di 205 mov %r14w, %di
198 mov %r13b, %dl 206 mov %r13b, %dl
207 test $8, %rsp
208 jnz 0f
199 call z80_write_ym 209 call z80_write_ym
210 jmp 1f
211 0:
212 sub $8, %rsp
213 call z80_write_ym
214 add $8, %rsp
215 1:
200 mov %rax, %rsi 216 mov %rax, %rsi
201 jmp z80_load_context 217 jmp z80_load_context
202 z80_write_bank_reg: 218 z80_write_bank_reg:
203 and $1, %r13w 219 and $1, %r13w
204 shr %r15w 220 shr %r15w
217 z80_write_vdp: 233 z80_write_vdp:
218 and $0xFF, %r14w 234 and $0xFF, %r14w
219 call z80_save_context 235 call z80_save_context
220 mov %r14w, %di 236 mov %r14w, %di
221 mov %r13b, %dl 237 mov %r13b, %dl
238 test $8, %rsp
239 jnz 0f
222 call z80_vdp_port_write 240 call z80_vdp_port_write
241 jmp 1f
242 0:
243 sub $8, %rsp
244 call z80_vdp_port_write
245 add $8, %rsp
246 1:
223 mov %rax, %rsi 247 mov %rax, %rsi
224 jmp z80_load_context 248 jmp z80_load_context
225 249
226 .global z80_read_word 250 .global z80_read_word
227 z80_read_word: 251 z80_read_word:
241 265
242 z80_read_bank_word: 266 z80_read_bank_word:
243 add $3, %ebp /* first read typically has 3 wait states */ 267 add $3, %ebp /* first read typically has 3 wait states */
244 push %rsi 268 push %rsi
245 mov 144(%rsi), %rsi /* get system context pointer */ 269 mov 144(%rsi), %rsi /* get system context pointer */
246 cmp $0, 120(%rsi) /* check bus busy flag */ 270 cmpb $0, 120(%rsi) /* check bus busy flag */
247 pop %rsi 271 pop %rsi
248 jne bus_busy_word 272 jne bus_busy_word
249 z80_read_bank_word_cont: 273 z80_read_bank_word_cont:
250 push %r13 274 push %r13
251 call z80_read_bank_cont 275 call z80_read_bank_cont
254 inc %r13 278 inc %r13
255 call z_inccycles 279 call z_inccycles
256 add $4, %ebp /* second read typically has 4 wait states */ 280 add $4, %ebp /* second read typically has 4 wait states */
257 push %rsi 281 push %rsi
258 mov 144(%rsi), %rsi /* get system context pointer */ 282 mov 144(%rsi), %rsi /* get system context pointer */
259 cmp $0, 120(%rsi) /* check bus busy flag */ 283 cmpb $0, 120(%rsi) /* check bus busy flag */
260 pop %rsi 284 pop %rsi
261 jne bus_busy_word2 285 jne bus_busy_word2
262 z80_read_bank_word_cont2: 286 z80_read_bank_word_cont2:
263 call z80_read_bank_cont 287 call z80_read_bank_cont
264 shl $8, %r13w 288 shl $8, %r13w