📄 trapmon0.c
字号:
/* * 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 \n" "trap #15 ; return control to Mon2000"); } break; case SYS_write: { int i; for( i=0; i<p3; i++ ) { asm volatile ( "ldi r0, #2 \n" "ldi r1, #15 ; load Ctrl-O (ASCII 15) \n" "trap #15 ; write Ctrl-O for quoting purposes" ); asm volatile ( "ldi r0, #2 \n" "ldb r1, %0 \n" "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;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -