#include
#include /* ioperm() */
#include
int portbase = 0;
unsigned char dlines = 0; /* state of data lines */
unsigned char slines = 0; /* status lines */
unsigned char clines = 0; /* control lines */
/* enable: 0 disable line, 1 enable
* line, no: e.g. 'D', '7' */
void doline(int enable,char line,char no) {
int bit;
switch (line) {
case 'd': case 'D':
if (no>='0' && no<='7') bit = no-'0';
else {
puts("invalid line number");
return;
}
if (enable) dlines |= (1<='0' && no<='3') bit = no-'0';
else {
puts("invalid line number");
return;
}
if (bit != 2) enable = !enable;
if (enable) clines |= (1<