📄 interrupt.h
字号:
#define handle_int(num) \{ \ switch(num) \ { \ case 21: \ handle_int21(); \ break; \ case 20: \ handle_int20(); \ break; \ } \}void handle_int21(){ char* str1; char str2[100]="\0"; char ch; int n; int max_strlen; switch(*greg8_addr(4)) /* ah */ { case 0x09: str1=cpu.ram+(cpu.sreg.ds<<4)+cpu.greg.dx; sscanf(str1,"%[^$]s",str2); printf("%s",str2); break; case 0x4C: hlt=true; break; case 0x0A: max_strlen=cpu.ram[(cpu.sreg.ds<<4)+cpu.greg.dx]; str1=cpu.ram+(cpu.sreg.ds<<4)+cpu.greg.dx+2; fgets(str2,max_strlen,stdin); n=strlen(str2); cpu.ram[(cpu.sreg.ds<<4)+cpu.greg.dx+1]=n; str2[n]='\n'; str2[n+1]='\0'; strncpy(str1,str2,n>max_strlen?max_strlen:n); break; case 0x02: printf("%c",*greg8_addr(2)); break; case 0x01: ch=getchar(); getchar(); *greg8_addr(0)=ch; break; default: break; }}void handle_int20(){ hlt=true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -