Mercurial > repos > blastem
comparison runtime.S @ 138:aa3e1bb338c9
Fix VDP reads
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 31 Dec 2012 11:26:57 -0800 |
parents | 0e7e1ccc0a81 |
children | 15b8dce19cf4 |
comparison
equal
deleted
inserted
replaced
137:0e7e1ccc0a81 | 138:aa3e1bb338c9 |
---|---|
213 mov (%rdx), %rbx | 213 mov (%rdx), %rbx |
214 cmp %rbx, 8(%rdx) | 214 cmp %rbx, 8(%rdx) |
215 /* bail out if fifo is full */ | 215 /* bail out if fifo is full */ |
216 je fifo_fallback | 216 je fifo_fallback |
217 /* populate FIFO entry */ | 217 /* populate FIFO entry */ |
218 mov %cx, 4(%rbx) /* value */ | 218 mov %cx, 6(%rbx) /* value */ |
219 movb $0, 6(%rbx) /* partial */ | 219 mov 16(%rdx), %cx |
220 mov %cx, 4(%rbx) /* address */ | |
221 mov 18(%rdx), %cl | |
222 mov %cl, 8(%rbx) /* cd */ | |
223 movb $0, 9(%rbx) /* partial */ | |
220 mov %eax, %ecx | 224 mov %eax, %ecx |
221 shl $3, %ecx /* multiply by 68K cycle by 7 to get MCLK cycle */ | 225 shl $3, %ecx /* multiply by 68K cycle by 7 to get MCLK cycle */ |
222 sub %eax, %ecx | 226 sub %eax, %ecx |
223 mov %ecx, (%rbx) /* cycle */ | 227 mov %ecx, (%rbx) /* cycle */ |
224 /* update fifo_cur and store back in 68K context */ | 228 /* update fifo_cur and store back in 68K context */ |
225 add $8, %rbx | 229 add $12, %rbx |
226 mov %rbx, (%rdx) | 230 mov %rbx, (%rdx) |
231 /* update address register */ | |
232 movzbw 35(%rdx), %bx | |
233 add %bx, 16(%rdx) | |
227 /* clear pending flag */ | 234 /* clear pending flag */ |
228 andb $0xEF, 19(%rdx) | 235 andb $0xEF, 19(%rdx) |
229 pop %rbx | 236 pop %rbx |
230 pop %rdx | 237 pop %rdx |
231 ret | 238 ret |