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