2 ; Oliver Schmidt, 30.12.2004
4 ; File descriptor management for the POSIX I/O routines
12 ; Check for handle >= 256
16 ; Check for handle >= MAX_FDS
22 ; Convert handle to fdtab slot
27 .error "Assertion failed"
30 ; Check for fdtab slot in use
32 lda fdtab + FD::REF_NUM,y
39 ; Load errno code and return error
46 fdtab: .if .sizeof(FD) = 4
48 .byte $80 ; STDIN_FILENO ::REF_NUM
49 .byte O_RDONLY ; STDIN_FILENO ::FLAGS
50 .addr $0000 ; STDIN_FILENO ::BUFFER
52 .byte $80 ; STDOUT_FILENO::REF_NUM
53 .byte O_WRONLY ; STDOUT_FILENO::FLAGS
54 .addr $0000 ; STDOUT_FILENO::BUFFER
56 .byte $80 ; STDERR_FILENO::REF_NUM
57 .byte O_WRONLY ; STDERR_FILENO::FLAGS
58 .addr $0000 ; STDERR_FILENO::BUFFER
61 .error "Assertion failed"
64 .res (MAX_FDS - 3) * .sizeof(FD)