2 ; common iocb setup routine for read, write
3 ; expects __fastcall__ parameters (int fd, void *buf, int count)
16 pha ; push size in stack
19 jsr popax ; get buffer address
23 jsr popax ; get handle
24 jsr fdtoiocb ; convert to iocb
25 bmi iocberr ; negative (X=$FF or A>$7F) on error.
35 ora ICBLH,x ; returns Z if length is 0
42 ldx #$FF ; indicate error + clear ZF
46 ; this routine updates errno. do a JMP here right after calling
47 ; CIOV. we expect status in Y.
49 .export __do_oserror,__inviocb
51 sty __oserror ; save os dependent error code
58 ; sets EINVAL error code and returns -1
64 jmp retminus ; return -1