]> git.sur5r.net Git - cc65/blobdiff - libsrc/mouse/mouse_geterrormsg.s
New function mouse_geterrormsg()
[cc65] / libsrc / mouse / mouse_geterrormsg.s
diff --git a/libsrc/mouse/mouse_geterrormsg.s b/libsrc/mouse/mouse_geterrormsg.s
new file mode 100644 (file)
index 0000000..f4189af
--- /dev/null
@@ -0,0 +1,49 @@
+;
+; Ullrich von Bassewitz, 2004-11-07
+;
+; const char* __fastcall__ mouse_geterrormsg (unsigned char code);
+; /* Get an error message describing the error in code. */
+;
+
+        .include        "mouse-kernel.inc"
+
+
+.proc   _mouse_geterrormsg
+
+        cmp     #MOUSE_ERR_COUNT
+        bcc     L1
+        lda     #MOUSE_ERR_COUNT        ; "Unknown error"
+L1:     tay
+        ldx     #>msgtab
+        lda     #<msgtab
+        clc
+        adc     offs,y
+        bcc     L2
+        inx
+L2:     rts
+
+.endproc
+
+
+;----------------------------------------------------------------------------
+; Error messages. The messages are currently limited to 256 bytes total.
+
+.rodata
+
+offs:   .byte   <(msg0-msgtab)
+        .byte   <(msg1-msgtab)
+        .byte   <(msg2-msgtab)
+        .byte   <(msg3-msgtab)
+        .byte   <(msg4-msgtab)
+        .byte   <(msg5-msgtab)
+        .byte   <(msg6-msgtab)
+
+msgtab:
+msg0:   .asciiz         "No error"
+msg1:   .asciiz         "No driver available"
+msg2:   .asciiz         "Cannot load driver"
+msg3:   .asciiz         "Invalid driver"
+msg4:   .asciiz         "Mouse hardware not found"
+msg5:   .asciiz         "Invalid ioctl code"
+msg6:   .asciiz         "Unknown error"
+