jr l0b58h\r
\r
; divide x/y\r
-; x: hl\r
-; y: de\r
+; hl: x\r
+; de: y\r
; return:\r
-; x/y: hl\r
-; rem: de\r
+; hl: q (x/y)\r
+; de: r (x%y)\r
\r
DIV_HL_DE:\r
push bc\r
ld c,l\r
ld hl,0 ;r = 0\r
ld a,16 ;count\r
+\r
+; de: x (x shifted out, q shifted in)\r
+; bc: y\r
+; hl: r (initially 0)\r
+\r
l0b89h:\r
ex de,hl ;x\r
add hl,hl ;x <<= 1\r
div_no_restore:\r
dec a\r
jr nz,l0b89h\r
- ex de,hl\r
+ ex de,hl ;hl: q de: r\r
pop bc\r
ret\r
\r
\r
;------------------------------------------\r
\r
- .phase sysram_start+stacksize\r
+ .phase sysram_start+bs$stack$size\r
$stack:\r
-$stcka equ $ - stacksize\r
+$stcka equ $ - bs$stack$size\r
\r
curphse defl $\r
.dephase\r