|
|
1.1 ! root 1: ! 2: /* ! 3: * Provide about n microseconds of delay ! 4: */ ! 5: #define DELAY(n) { register int N = (n); while (--N > 0); } ! 6: ! 7: #define IOBASE 0xff000000 ! 8: #define PGSHIFT 10 ! 9: #define TBASE 0xff4000 ! 10: #define ATT_ADR 0xffff4000 /* Channel attention address */ ! 11: #define SCP_ADR 0xc06 /* System Conf. pointer address */ ! 12: #define TM_BSIZE (1024) /* Block size on Cypher */ ! 13: #define CYVEC 0x80 /* Cypher interrupt vector to TAHOE */ ! 14: #define RETRY 1000 ! 15: ! 16: ! 17: struct scp /* SYSTEM CONFIGUREATION POINTER */ ! 18: { ! 19: char sysbus ; /* width of system buss 0=8;1=16 */ ! 20: char nu1 ; ! 21: char pt_scb[4] ; /* pointer to ->SYSTEM CONFIGUREATION BLOCK */ ! 22: }; ! 23: ! 24: struct scb /* System conf. block */ ! 25: { ! 26: char sysblk; ! 27: char nu2; ! 28: char pt_ccb[4]; ! 29: }; ! 30: ! 31: struct ccb /* CHANNEL CONTROL BLOCK */ ! 32: { ! 33: char ccw ; /* 0x11 normal; 0x09 clear non_vect interrupt */ ! 34: char gate; /* This is "the" GATE */ ! 35: char pt_tpb[4] ; /* pointer to ->TAPE OPERATION BLOCK or MOVE BLOCK */ ! 36: }; ! 37: ! 38: ! 39: ! 40: struct tpb /* TAPE OPERATIONS PARAMETER BLOCK */ ! 41: { ! 42: long cmd ; /* COMMAND (input) */ ! 43: char control[2] ; /* CONTROL (input) */ ! 44: unsigned short count ; /* RETURN COUNT (output) */ ! 45: unsigned short size ; /* BUFFER SIZE (input/output) */ ! 46: unsigned short rec_over ; /* RECORDS/OVERRUN (input/output) */ ! 47: char pt_data[4] ; /* pointer to ->SOURCE/DEST (input) */ ! 48: char status[2]; /* STATUS (output) */ ! 49: char pt_link[4] ; /* pointer to INTERRUPT/PARAMETER BLOCK (input) */ ! 50: unsigned short unused[3]; ! 51: }; ! 52: ! 53: struct tpblk /* TAPE PARAMETER BLOCK for block move operation */ ! 54: { ! 55: long cmd ; /* COMMAND (input) */ ! 56: char control[2] ; /* CONTROL (input) */ ! 57: unsigned short count ; /* RETURN COUNT (output) */ ! 58: char source[4] ; /* pointer to source */ ! 59: char dest[4] ; /* pointer to Destination */ ! 60: unsigned short mask; /* Mask/Stat search */ ! 61: unsigned short intr[2]; /* Interrupt */ ! 62: unsigned short table[2]; /* table */ ! 63: unsigned short throttle; /* throttle word */ ! 64: }; ! 65: ! 66: ! 67: struct tmbuf ! 68: { char byte[TM_BSIZE]; ! 69: } cybuf; ! 70:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.