Mercurial > repos > blastem
comparison zruntime.S @ 290:171f97e70d85
Implement writes from Z80 to YM-2612
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 06 May 2013 00:54:58 -0700 |
parents | 021aeb6df19b |
children | 14a937097c2b |
comparison
equal
deleted
inserted
replaced
289:1cc0850ab6bc | 290:171f97e70d85 |
---|---|
88 z80_read_byte_noinc: | 88 z80_read_byte_noinc: |
89 cmp $0x4000, %r13w | 89 cmp $0x4000, %r13w |
90 jb z80_read_ram | 90 jb z80_read_ram |
91 cmp $0x8000, %r13w | 91 cmp $0x8000, %r13w |
92 jae z80_read_bank | 92 jae z80_read_bank |
93 cmp $0x6000, %r13w | |
94 jb z80_read_ym2612 | |
93 /* TODO: Bank reg, YM-2612, PSG/VDP */ | 95 /* TODO: Bank reg, YM-2612, PSG/VDP */ |
94 mov $0xFF, %r13b | 96 mov $0xFF, %r13b |
95 ret | 97 ret |
96 z80_read_ram: | 98 z80_read_ram: |
97 and $0x1FFF, %r13 | 99 and $0x1FFF, %r13 |
106 mov (%r12, %r13), %r13b | 108 mov (%r12, %r13), %r13b |
107 ret | 109 ret |
108 slow_bank_read: | 110 slow_bank_read: |
109 /* TODO: Call into C to implement this */ | 111 /* TODO: Call into C to implement this */ |
110 ret | 112 ret |
113 z80_read_ym2612: | |
114 call z80_save_context | |
115 mov %r13w, %di | |
116 push %rsi | |
117 call z80_read_ym | |
118 pop %rsi | |
119 mov %al, %r13b | |
120 call z80_load_context | |
121 ret | |
111 | 122 |
112 .global z80_write_byte | 123 .global z80_write_byte |
113 z80_write_byte: | 124 z80_write_byte: |
114 call z_inccycles | 125 call z_inccycles |
115 z80_write_byte_noinc: | 126 z80_write_byte_noinc: |
116 cmp $0x4000, %r14w | 127 cmp $0x4000, %r14w |
117 jb z80_write_ram | 128 jb z80_write_ram |
118 cmp $0x8000, %r14w | 129 cmp $0x8000, %r14w |
119 jae z80_write_bank | 130 jae z80_write_bank |
120 cmp $0x6000, %r14w | 131 cmp $0x6000, %r14w |
121 je z80_write_bank_reg | 132 jb z80_write_ym2612 |
133 cmp $0x6100, %r14w | |
134 jb z80_write_bank_reg | |
122 /* TODO: YM-2612, PSG/VDP */ | 135 /* TODO: YM-2612, PSG/VDP */ |
123 ret | 136 ret |
124 z80_write_ram: | 137 z80_write_ram: |
125 and $0x1FFF, %r14 | 138 and $0x1FFF, %r14 |
126 mov %r13b, (%r11, %r14) | 139 mov %r13b, (%r11, %r14) |
143 xor $1, %r14 | 156 xor $1, %r14 |
144 mov %r13b, (%r12, %r14) | 157 mov %r13b, (%r12, %r14) |
145 ret | 158 ret |
146 slow_bank_write: | 159 slow_bank_write: |
147 /* TODO: Call into C to implement this */ | 160 /* TODO: Call into C to implement this */ |
161 ret | |
162 z80_write_ym2612: | |
163 and $0x3, %r14w | |
164 call z80_save_context | |
165 mov %r14w, %di | |
166 mov %r13b, %dl | |
167 call z80_write_ym | |
168 mov %rax, %rsi | |
169 call z80_load_context | |
148 ret | 170 ret |
149 z80_write_bank_reg: | 171 z80_write_bank_reg: |
150 and $1, %r13w | 172 and $1, %r13w |
151 shr %r15w | 173 shr %r15w |
152 shl $8, %r13w | 174 shl $8, %r13w |