diff options
Diffstat (limited to 'libgloss/m32r/trapmon0.c')
-rw-r--r-- | libgloss/m32r/trapmon0.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/libgloss/m32r/trapmon0.c b/libgloss/m32r/trapmon0.c deleted file mode 100644 index 44bf6a5..0000000 --- a/libgloss/m32r/trapmon0.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Mon2000 Trap handler (syscall interface). - * - * This trap handler is linked into the mon2000 libgloss (libmon). - */ -#include <reent.h> -#include "syscall.h" - -int __trap0 (int function, int p1, int p2, int p3, struct _reent *r) -{ - int rc = 0; - - switch (function) { - case SYS_exit: - /* loop so GDB can't go past system exit call */ - while (1) { - asm volatile (" - ldi r0, #0 - trap #15 ; return control to Mon2000"); - } - break; - - case SYS_write: - { - int i; - - for( i=0; i<p3; i++ ) { - asm volatile (" - ldi r0, #2 - ldi r1, #15 ; load Ctrl-O (ASCII 15) - trap #15 ; write Ctrl-O for quoting purposes" ); - - asm volatile (" - ldi r0, #2 - ldb r1, %0 - trap #15 ; write character to console" - : /* no outputs */ - : "m" (((char*)p2)[i])); - } - - rc = p3; /* return number of chars written */ - break; - } - - default: - rc = 0; - break; - } - - return rc; -} - - |