|
|
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.