2 ; common iocb setup routine for read, write
3 ; expects parameters (int fd,void *buf,int count)
6 .include "../common/errno.inc"
8 .import incsp6,ldax0sp,ldaxysp
9 .import __errno,__oserror
18 jsr fdtoiocb ; convert to iocb
21 jsr ldax0sp ; get size
24 cpx #$80 ; iocb must be 0...7
29 ldy #3 ; get buf addr (was 2 in orig. version)
38 ora ICBLH,x ; return with Z if length was 0
41 iocberr:jsr incsp6 ; pop args
42 ldx #$FF ; indicate error + clear ZF
47 ; this routine updates errno. do a JMP here right after calling
48 ; CIOV. we expect status in Y.
50 .export __do_oserror,__seterrno,__inviocb
52 sty __oserror ; save os dependent error code
64 ; sets EINVAL error code and returns -1
71 jmp retminus ; return -1