comparison runtime.S @ 153:42c031184e8a

Implement access to Z80 RAM
author Mike Pavone <pavone@retrodev.com>
date Fri, 04 Jan 2013 21:47:09 -0800
parents 79958b95526f
children 69ac23d42897
comparison
equal deleted inserted replaced
152:79958b95526f 153:42c031184e8a
173 mov 136(%rsi), %cx 173 mov 136(%rsi), %cx
174 ret 174 ret
175 175
176 do_io_write: 176 do_io_write:
177 call m68k_save_context 177 call m68k_save_context
178 and $0x1FFF, %edi 178 and $0x1FFFF, %edi
179 mov %ecx, %edx 179 mov %ecx, %edx
180 call io_write 180 call io_write
181 mov %rax, %rsi 181 mov %rax, %rsi
182 call m68k_load_context 182 call m68k_load_context
183 ret 183 ret
184 do_io_read: 184 do_io_read:
185 mov %ecx, %edi 185 mov %ecx, %edi
186 and $0x1FFF, %edi 186 and $0x1FFFF, %edi
187 call m68k_save_context 187 call m68k_save_context
188 call io_read 188 call io_read
189 mov %rax, %rsi 189 mov %rax, %rsi
190 call m68k_load_context 190 call m68k_load_context
191 mov 136(%rsi), %cl 191 mov 136(%rsi), %cl
192 ret 192 ret
193 193
194 do_io_write_w: 194 do_io_write_w:
195 call m68k_save_context 195 call m68k_save_context
196 and $0x1FFF, %edi 196 and $0x1FFFF, %edi
197 mov %ecx, %edx 197 mov %ecx, %edx
198 call io_write_w 198 call io_write_w
199 mov %rax, %rsi 199 mov %rax, %rsi
200 call m68k_load_context 200 call m68k_load_context
201 ret 201 ret
202 do_io_read_w: 202 do_io_read_w:
203 mov %ecx, %edi 203 mov %ecx, %edi
204 and $0x1FFF, %edi 204 and $0x1FFFF, %edi
205 call m68k_save_context 205 call m68k_save_context
206 call io_read_w 206 call io_read_w
207 mov %rax, %rsi 207 mov %rax, %rsi
208 call m68k_load_context 208 call m68k_load_context
209 mov 136(%rsi), %cx 209 mov 136(%rsi), %cx
221 jbe cart_w 221 jbe cart_w
222 cmp $0xE00000, %edi 222 cmp $0xE00000, %edi
223 jae workram_w 223 jae workram_w
224 cmp $0xC00000, %edi 224 cmp $0xC00000, %edi
225 jae vdp_psg_w 225 jae vdp_psg_w
226 cmp $0xA10000, %edi 226 cmp $0xA00000, %edi
227 jb not_io_w 227 jb not_io_w
228 cmp $0xA12000, %edi 228 cmp $0xA12000, %edi
229 jae not_io_w 229 jae not_io_w
230 jmp do_io_write_w 230 jmp do_io_write_w
231 not_io_w: 231 not_io_w:
298 jbe cart_wb 298 jbe cart_wb
299 cmp $0xE00000, %edi 299 cmp $0xE00000, %edi
300 jae workram_wb 300 jae workram_wb
301 cmp $0xC00000, %edi 301 cmp $0xC00000, %edi
302 jae vdp_psg_wb 302 jae vdp_psg_wb
303 cmp $0xA10000, %edi 303 cmp $0xA00000, %edi
304 jb not_io_wb 304 jb not_io_wb
305 cmp $0xA12000, %edi 305 cmp $0xA12000, %edi
306 jae not_io_wb 306 jae not_io_wb
307 jmp do_io_write 307 jmp do_io_write
308 not_io_wb: 308 not_io_wb:
371 jbe cart 371 jbe cart
372 cmp $0xE00000, %ecx 372 cmp $0xE00000, %ecx
373 jae workram 373 jae workram
374 cmp $0xC00000, %ecx 374 cmp $0xC00000, %ecx
375 jae vdp_psg 375 jae vdp_psg
376 cmp $0xA10000, %ecx 376 cmp $0xA00000, %ecx
377 jb not_io 377 jb not_io
378 cmp $0xA12000, %ecx 378 cmp $0xA12000, %ecx
379 jae not_io 379 jae not_io
380 call do_io_read_w 380 call do_io_read_w
381 ret 381 ret
419 jbe cart_b 419 jbe cart_b
420 cmp $0xE00000, %ecx 420 cmp $0xE00000, %ecx
421 jae workram_b 421 jae workram_b
422 cmp $0xC00000, %ecx 422 cmp $0xC00000, %ecx
423 jae vdp_psg_b 423 jae vdp_psg_b
424 cmp $0xA10000, %ecx 424 cmp $0xA00000, %ecx
425 jb not_io_b 425 jb not_io_b
426 cmp $0xA12000, %ecx 426 cmp $0xA12000, %ecx
427 jae not_io_b 427 jae not_io_b
428 jmp do_io_read 428 jmp do_io_read
429 not_io_b: 429 not_io_b: