; IX = page pointer
;
; On return
-; Z HL = address to write to, BC = length, DE = kaddr
+; Z HL = user address, BC = length, DE = kaddr
;
-; NZ HL = address to write to, BC = length before split, DE = kaddr
+; NZ HL = user address, BC = length before split, DE = kaddr
; HL' = user address of rest BC' = length of rest, DE' = kaddr
; of rest (for a second call)
;
add ix,sp
call uputget
jr z, uget_out
+ ex de,hl
call user_mapping
- jr z, uput1
ex de,hl
+ jr z, uput1
ldir
exx
call user_mapping
-uput1:
ex de,hl
+uput1:
ldir
pop ix
jp map_kernel_low
pop hl
push hl
push bc
- bit 7,(hl)
+ bit 7,h
ld a,(U_DATA__U_PAGE)
jr z, ugetcl
ld a,(U_DATA__U_PAGE + 1)
pop hl
push hl
push bc
- bit 7,(hl)
+ bit 7,h
jr z, ugetwl
ld a,(U_DATA__U_PAGE + 1)
call map_page_low
push hl
push de
push bc
- bit 7,(hl)
+ bit 7,h
ld a,(U_DATA__U_PAGE)
jr z, uputcl
ld a,(U_DATA__U_PAGE + 1)
push hl
push de
push bc
- bit 7,(hl)
+ bit 7,h
jr z, uputwl
ld a,(U_DATA__U_PAGE + 1)
call map_page_low