📄 vt.c
字号:
#/* *//* * VT01 driver via DR11C to 11/20 */#include "../param.h"#include "../user.h"int vtflag;struct vtreg { int csr; int buf;};#define VTADDR 0167770#define RQINT 01#define BIENABL 040#define SEOF 0100000#define VTPRI 8vtopen(dev, flag){ if (!flag) u.u_error = ENXIO; else VTADDR->csr = BIENABL;}vtclose(){ VTADDR->buf = SEOF; VTADDR->csr =| RQINT;}vtwrite(){ register int c; int register count; while ((c=cpass()) >= 0) { retry: for (count=0; count<10; count++) if ((VTADDR->csr&RQINT)==0) { VTADDR->buf = c&0377; VTADDR->csr =| RQINT; goto contin; } spl5(); if (VTADDR->csr&RQINT) { vtflag++; sleep(VTADDR, VTPRI); } spl0(); goto retry; contin:; }}vtintr(){ VTADDR->csr =& ~RQINT; if (vtflag) { vtflag = 0; wakeup(VTADDR); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -