Mercurial > repos > blastem
diff 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 |
line wrap: on
line diff
--- a/runtime.S Sun Dec 30 22:39:41 2012 -0800 +++ b/runtime.S Mon Dec 31 11:26:57 2012 -0800 @@ -215,15 +215,22 @@ /* bail out if fifo is full */ je fifo_fallback /* populate FIFO entry */ - mov %cx, 4(%rbx) /* value */ - movb $0, 6(%rbx) /* partial */ + mov %cx, 6(%rbx) /* value */ + mov 16(%rdx), %cx + mov %cx, 4(%rbx) /* address */ + mov 18(%rdx), %cl + mov %cl, 8(%rbx) /* cd */ + movb $0, 9(%rbx) /* partial */ mov %eax, %ecx shl $3, %ecx /* multiply by 68K cycle by 7 to get MCLK cycle */ sub %eax, %ecx mov %ecx, (%rbx) /* cycle */ /* update fifo_cur and store back in 68K context */ - add $8, %rbx + add $12, %rbx mov %rbx, (%rdx) + /* update address register */ + movzbw 35(%rdx), %bx + add %bx, 16(%rdx) /* clear pending flag */ andb $0xEF, 19(%rdx) pop %rbx