; relative drive number in @rdrv (8 bits) +1\r
\r
sd$login:\r
+ ld (sdstack),sp\r
+ ld sp,sdstack\r
+\r
xor a\r
ld (residual),a\r
ld hl,send_msg+1\r
\r
ld a,(recv_msg_rc)\r
or a\r
+\r
+ ld sp,(sdstack)\r
+\r
ret z\r
ld hl,0\r
ld (@xdph),hl\r
ret\r
\r
rwc_new_sectors:\r
+ ld (sdstack),sp\r
+ ld sp,sdstack\r
+\r
ld b,1 ; assume 1 sector to transfer\r
ld a,(@cnt)\r
or a\r
call msg.recv\r
ld a,(recv_msg_rc)\r
or a\r
- ret z ; check status and return to BDOS if no error\r
+; ret z ; check status and return to BDOS if no error\r
+ jr z,exit\r
\r
ld hl,print_details\r
call pr.errors\r
dec c\r
e_exit:\r
ld a,c\r
+exit:\r
+ ld sp,(sdstack)\r
ret\r
\r
;-------------------------------------------------------------------------------\r
fr$msg20: db 'short read/write,',0\r
db 0\r
\r
+ rept 80\r
+ db 07CH\r
+ endm\r
+sdstack::\r
+ dw 0\r
+\r
end\r