| plan 9 kernel history: overview | file list | diff list |
1990/0329/gnot/screen.c (diff list | history)
| 1990/0329/sys/src/9/gnot/screen.c:4,9 – 1990/0330/sys/src/9/gnot/screen.c:4,10 (short | long | prev | next) | ||
| 1990/03091 | #include "dat.h" #include "fns.h" #include "io.h" | |
| 1990/0330 | #include "ureg.h" | |
| 1990/03091 | #include "gnot.h" | |
| 1990/0329/sys/src/9/gnot/screen.c:201,209 – 1990/0330/sys/src/9/gnot/screen.c:202,237 | ||
| 1990/0329 | duart[0].data = 0x02; } | |
| 1990/0330 | enum{ Kptime=200 /* about once per ms */ }; | |
| 1990/0329 | void | |
| 1990/03091 |
| |
| 1990/0330 | duartstarttimer(void) | |
| 1990/03091 | { | |
| 1990/0330 | Duart *duart; char x; duart = DUARTREG; duart[0].ctur = (Kptime)>>8; duart[0].ctlr = (Kptime)&255; duart[0].is_imr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA|IM_CRDY; x = duart[1].scc_sopbc; } void duartstoptimer(void) { Duart *duart; char x; duart = DUARTREG; x = duart[1].scc_ropbc; duart[0].is_imr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA; } void duartintr(Ureg *ur) { | |
| 1990/03091 | int cause, status, c; Duart *duart; | |
| 1990/0329/sys/src/9/gnot/screen.c:212,217 – 1990/0330/sys/src/9/gnot/screen.c:240,256 | ||
| 1990/03091 | /* * I can guess your interrupt. */ | |
| 1990/0330 | /* * Is it 0? */ if(cause & IM_CRDY){ kproftimer(ur->pc); c = duart[1].scc_ropbc; duart[0].ctur = (Kptime)>>8; duart[0].ctlr = (Kptime)&255; c = duart[1].scc_sopbc; return; } | |
| 1990/03091 | /* * Is it 1? */ | |