.export _read
.constructor initstdin
-
+
+ .import SETLFS, OPEN, CHKIN, BASIN, CLRCH, READST
.import rwcommon
.import popax
- .import __errno, __oserror
+ .import __oserror
.importzp ptr1, ptr2, ptr3, tmp1, tmp2, tmp3
- .include "errno.inc"
.include "fcntl.inc"
.include "cbm.inc"
.include "filedes.inc"
.proc _read
jsr rwcommon ; Pop params, check handle
- bcs invalidfd ; Branch if handle not ok
+ bcs errout ; Invalid handle, errno already set
; Check if the LFN is valid and the file is open for writing
ldx ptr3+1
rts
-; Error entry, file descriptor is invalid
-
-invalidfd:
- lda #EINVAL
- sta __errno
- lda #0
- sta __errno+1
- beq errout
-
; Error entry, file is not open
notopen:
lda #3 ; File not open
bne error
-
+
; Error entry, status not ok
error5: lda #5 ; Device not present
-