📄 dummy.c.svn-base
字号:
#include <stdio.h>#define BSPACE 0x08#define TSPACE 0x09#define CRETURN '\r'#define NLINE '\n'#define SPACE ' '#define WD 80#define LN 25#define TAB 8/* Misplaced - Place it where it should be*/extern unsigned csr_x;extern unsigned csr_y;extern unsigned attrib;extern unsigned short *textmemptr;/* End misplaced */extern void outportb(unsigned short _port, unsigned char _data);extern unsigned short *memsetw(unsigned short *s,\ unsigned short c, size_t n);void move_cs(void){ unsigned temp; temp = csr_y * 80 + csr_x; outportb(0x3D4, 14); outportb(0x3D5, temp >> 8); outportb(0x3D4, 15); outportb(0x3D5, temp);}void clear(void){ int i; unsigned blank; blank = 0x20 | (attrib << 8); csr_x = 0; csr_y = 0; for(i = 0; i < 25; i++) memsetw(textmemptr + i * 80, blank, 80); csr_x = csr_y = 0; move_cs();}/*void init_video(void){ vga_addr = (unsigned short *)0xB8000; clear();}*/int dummy(int c, FILE *stream){ if(c == BSPACE){ // Backspace if(csr_x == 0){ csr_x = WD; csr_y--; } else csr_x--; } else if(c == TSPACE){ //Tab if(csr_x > (WD - TAB)) csr_y++; csr_x %= WD; csr_x += TAB; } else if(c == CRETURN){ // Carriage Return csr_x = 0; } else if(c == NLINE){ // New Line csr_x = 0; csr_y++; } else if(c >= SPACE){ //Any character greater than space is printable memcpy(textmemptr + (csr_y * WD) + csr_x, \ &c, sizeof(int)); csr_x++; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -