2 ; 2000-05-17, Ullrich von Bassewitz
3 ; 2014-05-28, Greg King
5 ; int __fastcall__ _osmaperrno (unsigned char oserror);
6 ; /* Map a system-specific error into a system-independent code. */
15 @L1: cmp ErrTab-2,x ; Search for the error code
16 beq @L2 ; Jump if found
21 ; Code not found, return EUNKNOWN
30 ldx #$00 ; High byte always zero
36 .byte 1, EMFILE ; Too many open files
37 .byte 2, EINVAL ; File is open
38 .byte 3, EINVAL ; File not open
39 .byte 4, ENOENT ; File not found
40 .byte 5, ENODEV ; Device not present
41 .byte 6, EINVAL ; File not input
42 .byte 7, EINVAL ; File not output
43 .byte 8, EINVAL ; Filename missing
44 .byte 9, ENODEV ; Illegal device
45 .byte 20, EBUSY ; No sector header
46 .byte 21, EBUSY ; No sync mark
47 .byte 22, EIO ; No sector data
48 .byte 23, EIO ; Checksum error
49 .byte 24, EIO ; Decode error
50 .byte 25, EIO ; Verify error
51 .byte 26, EACCES ; Write protected
52 .byte 27, EIO ; Checksum error
53 .byte 28, EIO ; Write overrun
54 .byte 29, EBUSY ; Disk ID mismatch
55 .byte 30, EINVAL ; Command not recognized
56 .byte 31, ENOSYS ; Command not implemented
57 .byte 32, EINVAL ; Command too long
58 .byte 33, EINVAL ; Invalid write filename
59 .byte 34, EINVAL ; No file given
60 .byte 39, ENOENT ; System file not found
61 .byte 49, EACCES ; Invalid format
62 .byte 50, ESPIPE ; Record not present
63 .byte 51, ENOSPC ; Overflow in record
64 .byte 52, ENOSPC ; File too large
65 .byte 60, EBUSY ; Write file open
66 .byte 61, EINVAL ; File not open
67 .byte 62, ENOENT ; File not found
68 .byte 63, EEXIST ; File exists
69 .byte 64, EINVAL ; File type mismatch
70 .byte 65, ESPIPE ; No block
71 .byte 66, EINVAL ; Illegal track or sector
72 .byte 67, EIO ; Illegal system track or sector
73 .byte 70, EBUSY ; No channel
74 .byte 71, EIO ; BAM error
75 .byte 72, ENOSPC ; Disk full
76 .byte 73, EACCES ; DOS version mismatch
77 .byte 74, ENODEV ; Drive not ready
78 .byte 75, EIO ; Format error
79 .byte 77, EINVAL ; Illegal partition
80 .byte 78, EIO ; Bad system area
82 ErrTabSize = (* - ErrTab)