]> git.sur5r.net Git - cc65/commitdiff
New module from Stefan Haubenthal
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 4 Jan 2004 21:24:37 +0000 (21:24 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 4 Jan 2004 21:24:37 +0000 (21:24 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2870 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/apple2/Makefile
libsrc/apple2/oserrlist.s [new file with mode: 0644]

index f392569eaf99d9de0c4eb181f017752ca28e2b83..4c9761dd5d06fa1182a2a358833b62cf2c3cfb3c 100644 (file)
 # Object files
 
 OBJS=  _scrsize.o      \
-       break.o         \
-       cclear.o        \
-       cgetc.o         \
-       chline.o        \
-       clrscr.o        \
-       color.o         \
-       cputc.o         \
-       crt0.o          \
-       ctype.o         \
-       cvline.o        \
+       break.o         \
+       cclear.o        \
+       cgetc.o         \
+       chline.o        \
+       clrscr.o        \
+       color.o         \
+       cputc.o         \
+       crt0.o          \
+       ctype.o         \
+       cvline.o        \
         get_ostype.o    \
         getenv.o        \
         joy_stddrv.o    \
-       kbhit.o         \
+       kbhit.o         \
         mainargs.o      \
+        oserrlist.o     \
         randomize.o     \
-       read.o          \
-       revers.o        \
+       read.o          \
+       revers.o        \
         systime.o       \
         sysuname.o      \
         tgi_mode_table.o\
-       wherex.o        \
+       wherex.o        \
                wherey.o        \
-       write.o
+       write.o
 
 #--------------------------------------------------------------------------
 # Drivers
diff --git a/libsrc/apple2/oserrlist.s b/libsrc/apple2/oserrlist.s
new file mode 100644 (file)
index 0000000..2375d9b
--- /dev/null
@@ -0,0 +1,76 @@
+;
+; Stefan Haubenthal, 2003-12-24
+; Ullrich von Bassewitz, 18.07.2002
+;
+; Defines the platform specific error list.
+;
+; The table is built as a list of entries
+;
+;       .byte   entrylen
+;       .byte   errorcode
+;       .asciiz errormsg
+;
+; and terminated by an entry with length zero that is returned if the
+; error code could not be found.
+;
+
+        .export         __sys_oserrlist
+
+;----------------------------------------------------------------------------
+; Macros used to generate the list (may get moved to an include file?)
+
+; Regular entry
+.macro  sys_oserr_entry         code, msg
+        .local  Start, End
+Start:  .byte   End - Start
+        .byte   code
+        .asciiz msg
+End:
+.endmacro
+
+; Sentinel entry
+.macro  sys_oserr_sentinel      msg
+        .byte   0                       ; Length is always zero
+        .byte   0                       ; Code is unused
+        .asciiz msg
+.endmacro
+
+;----------------------------------------------------------------------------
+; The error message table
+
+.rodata
+
+__sys_oserrlist:
+               sys_oserr_entry         $01, "Invalid MLI function code number"
+               sys_oserr_entry         $04, "Incorrect parameter count"
+               sys_oserr_entry         $25, "Interrupt table full"
+               sys_oserr_entry         $27, "I/O error"
+               sys_oserr_entry         $28, "No device connected"
+               sys_oserr_entry         $2B, "Write protected"
+               sys_oserr_entry         $2E, "Disk switched"
+               sys_oserr_entry         $2F, "No disk in drive"
+               sys_oserr_entry         $40, "Invalid pathname syntax"
+               sys_oserr_entry         $42, "Too many files open"
+               sys_oserr_entry         $43, "Bad reference number"
+               sys_oserr_entry         $44, "Bad pathname"
+               sys_oserr_entry         $45, "Volume not mounted"
+               sys_oserr_entry         $46, "File not found"
+               sys_oserr_entry         $47, "File already exists"
+               sys_oserr_entry         $48, "Disk full"
+               sys_oserr_entry         $49, "Directory full"
+               sys_oserr_entry         $4A, "Incompatible ProDOS version"
+               sys_oserr_entry         $4B, "Unsupported storage type"
+               sys_oserr_entry         $4C, "End of file"
+               sys_oserr_entry         $4D, "Position past EOF"
+               sys_oserr_entry         $4E, "Access denied"
+               sys_oserr_entry         $50, "File already open"
+               sys_oserr_entry         $51, "File count bad"
+               sys_oserr_entry         $52, "Not a ProDOS disk"
+               sys_oserr_entry         $53, "Parameter out of range"
+               sys_oserr_entry         $55, "Too many devices mounted"
+               sys_oserr_entry         $56, "Bad buffer address"
+               sys_oserr_entry         $57, "Duplicate volume name"
+               sys_oserr_entry         $5A, "Damaged disk free space bit map"
+        sys_oserr_sentinel      "Unknown error"
+
+