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