1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)tsreg.h	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: /*
  10:  * TS11 controller registers
  11:  */
  12: struct  tsdevice {
  13:     u_short tsdb;       /* data buffer */
  14:     u_short tssr;       /* status register */
  15: };
  16: 
  17: /* Bits in (unibus) status register */
  18: #define TS_SC   0100000     /* special condition (error) */
  19: #define TS_UPE  0040000     /* Unibus parity error */
  20: #define TS_SPE  0020000     /* serial bus parity error */
  21: #define TS_RMR  0010000     /* register modification refused */
  22: #define TS_NXM  0004000     /* nonexistant memory */
  23: #define TS_NBA  0002000     /* need buffer address */
  24: #define TS_XMEM 0001400     /* Unibus xmem bits */
  25: #define TS_SSR  0000200     /* subsytem ready */
  26: #define TS_OFL  0000100     /* off-line */
  27: #define TS_FTC  0000060     /* fatal termination class */
  28: #define TS_TC   0000016     /* termination class */
  29: 
  30: #define TS_SUCC 000     /* successful termination */
  31: #define TS_ATTN 002     /* attention */
  32: #define TS_ALERT 004        /* tape status alert */
  33: #define TS_REJECT 06        /* function reject */
  34: #define TS_RECOV 010        /* recoverable error */
  35: #define TS_RECNM 012        /* recoverable error, no tape motion */
  36: #define TS_UNREC 014        /* unrecoverable error */
  37: #define TS_FATAL 016        /* fatal error */
  38: 
  39: #define TSSR_BITS   \
  40: "\10\20SC\17UPE\16SPE\15RMR\14NXM\13NBA\12A17\11A16\10SSR\
  41: \7OFL\6FC1\5FC0\4TC2\3TC1\2TC0\1-"
  42: 
  43: #define b_repcnt    b_bcount
  44: #define b_command   b_resid
  45: 
  46: /* status message */
  47: struct  ts_sts {
  48:     u_short s_sts;      /* packet header */
  49:     u_short s_len;      /* packet length */
  50:     u_short s_rbpcr;    /* residual frame count */
  51:     u_short s_xs0;      /* extended status 0 - 3 */
  52:     u_short s_xs1;
  53:     u_short s_xs2;
  54:     u_short s_xs3;
  55: };
  56: 
  57: /* Error codes in xstat 0 */
  58: #define TS_TMK  0100000     /* tape mark detected */
  59: #define TS_RLS  0040000     /* record length short */
  60: #define TS_LET  0020000     /* logical end of tape */
  61: #define TS_RLL  0010000     /* record length long */
  62: #define TS_WLE  0004000     /* write lock error */
  63: #define TS_NEF  0002000     /* non-executable function */
  64: #define TS_ILC  0001000     /* illegal command */
  65: #define TS_ILA  0000400     /* illegal address */
  66: #define TS_MOT  0000200     /* capstan is moving */
  67: #define TS_ONL  0000100     /* on-line */
  68: #define TS_IES  0000040     /* interrupt enable status */
  69: #define TS_VCK  0000020     /* volume check */
  70: #define TS_PED  0000010     /* phase-encoded drive */
  71: #define TS_WLK  0000004     /* write locked */
  72: #define TS_BOT  0000002     /* beginning of tape */
  73: #define TS_EOT  0000001     /* end of tape */
  74: 
  75: #define TSXS0_BITS  \
  76: "\10\20TMK\17RLS\16LET\15RLL\14WLE\13NEF\12ILC\11ILA\10MOT\
  77: \7ONL\6IES\5VCK\4PED\3WLK\2BOT\1EOT"
  78: 
  79: /* Error codes in xstat 1 */
  80: #define TS_DLT  0100000     /* data late */
  81: #define TS_COR  0020000     /* correctable data */
  82: #define TS_CRS  0010000     /* crease detected */
  83: #define TS_TIG  0004000     /* trash in the gap */
  84: #define TS_DBF  0002000     /* deskew buffer full */
  85: #define TS_SCK  0001000     /* speed check */
  86: #define TS_IPR  0000200     /* invalid preamble */
  87: #define TS_SYN  0000100     /* synchronization failure */
  88: #define TS_IPO  0000040     /* invalid postamble */
  89: #define TS_IED  0000020     /* invalid end of data */
  90: #define TS_POS  0000010     /* postamble short */
  91: #define TS_POL  0000004     /* postamble long */
  92: #define TS_UNC  0000002     /* uncorrectable data */
  93: #define TS_MTE  0000001     /* multitrack error */
  94: 
  95: #define TSXS1_BITS  \
  96: "\10\20DLT\17-\16COR\15CRS\14TIG\13DBF\12SCK\11-\10IPR\
  97: \7SYN\6IPO\5IED\4POS\3POL\2UNC\1MTE"
  98: 
  99: /* Error codes in xstat 2 */
 100: #define TS_OPM  0100000     /* operation in progress */
 101: #define TS_SIP  0040000     /* silo parity error */
 102: #define TS_BPE  0020000     /* serial bus parity error */
 103: #define TS_CAF  0010000     /* capstan acceleration failure */
 104: #define TS_WCF  0002000     /* write card fail */
 105: #define TS_DTP  0000400     /* dead track parity */
 106: #define TS_DT   0000377     /* dead tracks */
 107: 
 108: #define TSXS2_BITS  \
 109: "\10\20OPM\17SIP\16BPE\15CAF\14-\13WCF\12-\11DTP"
 110: 
 111: /* Error codes in xstat 3 */
 112: #define TS_MEC  0177400     /* microdiagnostic error code */
 113: #define TS_LMX  0000200     /* limit exceeded */
 114: #define TS_OPI  0000100     /* operation incomplete */
 115: #define TS_REV  0000040     /* reverse */
 116: #define TS_CRF  0000020     /* capstan response fail */
 117: #define TS_DCK  0000010     /* density check */
 118: #define TS_NOI  0000004     /* noise record */
 119: #define TS_LXS  0000002     /* limit exceeded statically */
 120: #define TS_RIB  0000001     /* reverse into BOT */
 121: 
 122: #define TSXS3_BITS  \
 123: "\10\10LMX\7OPI\6REV\5CRF\4DCK\3NOI\2LXS\1RIB"
 124: 
 125: 
 126: /* command message */
 127: struct ts_cmd {
 128:     u_short c_cmd;      /* command */
 129:     u_short c_loba;     /* low order buffer address */
 130:     u_short c_hiba;     /* high order buffer address */
 131: #define c_repcnt c_loba
 132:     u_short c_size;     /* byte count */
 133: };
 134: 
 135: /* commands and command bits */
 136: #define TS_ACK      0100000     /* ack - release command packet */
 137: #define TS_CVC      0040000     /* clear volume check */
 138: #define TS_IE       0000200
 139: #define TS_RCOM     0000001
 140: #define TS_REREAD   0001001     /* read data retry */
 141: #define TS_SETCHR   0000004     /* set characteristics */
 142: #define TS_WCOM     0000005
 143: #define TS_REWRITE  0001005     /* write data retry */
 144: #define TS_RETRY    0001000     /* retry bit for read and write */
 145: #define TS_SFORW    0000010     /* forward space record */
 146: #define TS_SREV     0000410     /* reverse space record */
 147: #define TS_SFORWF   0001010     /* forward space file */
 148: #define TS_SREVF    0001410     /* reverse space file */
 149: #define TS_REW      0002010     /* rewind */
 150: #define TS_OFFL     0000412     /* unload */
 151: #define TS_WEOF     0000011     /* write tape mark */
 152: #define TS_SENSE    0000017     /* get status */
 153: 
 154: /* characteristics data */
 155: struct ts_char {
 156:     long    char_addr;      /* address of status packet */
 157:     u_short char_size;      /* its size */
 158:     u_short char_mode;      /* characteristics */
 159: };
 160: 
 161: 
 162: /* characteristics */
 163: #define TS_ESS  0200        /* enable skip tape marks stop */
 164: #define TS_ENB  0100        /* ??? */
 165: #define TS_EAI  0040        /* enable attention interrupts */
 166: #define TS_ERI  0020        /* enable message buffer release interrupts */

Defined struct's

ts_char defined in line 155; used 6 times
ts_cmd defined in line 127; used 6 times
ts_sts defined in line 47; used 6 times
tsdevice defined in line 12; used 36 times

Defined macros

TSSR_BITS defined in line 39; used 1 times
TSXS0_BITS defined in line 75; used 2 times
TSXS1_BITS defined in line 95; used 1 times
TSXS2_BITS defined in line 108; used 1 times
TSXS3_BITS defined in line 122; used 1 times
TS_ACK defined in line 136; used 5 times
TS_ALERT defined in line 32; never used
TS_ATTN defined in line 31; never used
TS_BOT defined in line 72; used 1 times
TS_BPE defined in line 102; never used
TS_CAF defined in line 103; never used
TS_COR defined in line 81; never used
TS_CRF defined in line 116; never used
TS_CRS defined in line 82; never used
TS_CVC defined in line 137; used 3 times
TS_DBF defined in line 84; never used
TS_DCK defined in line 117; never used
TS_DLT defined in line 80; never used
TS_DT defined in line 106; never used
TS_DTP defined in line 105; never used
TS_EAI defined in line 165; never used
TS_ENB defined in line 164; never used
TS_EOT defined in line 73; used 1 times
TS_ERI defined in line 166; never used
TS_ESS defined in line 163; used 2 times
TS_FATAL defined in line 37; never used
TS_FTC defined in line 27; never used
TS_IE defined in line 138; used 2 times
TS_IED defined in line 89; never used
TS_IES defined in line 68; never used
TS_ILA defined in line 65; never used
TS_ILC defined in line 64; never used
TS_IPO defined in line 88; never used
TS_IPR defined in line 86; never used
TS_LET defined in line 60; never used
TS_LMX defined in line 113; never used
TS_LXS defined in line 119; never used
TS_MEC defined in line 112; never used
TS_MOT defined in line 66; never used
TS_MTE defined in line 93; never used
TS_NBA defined in line 23; used 4 times
TS_NEF defined in line 63; never used
TS_NOI defined in line 118; never used
TS_NXM defined in line 22; never used
TS_OFFL defined in line 150; used 1 times
TS_OFL defined in line 26; used 3 times
TS_ONL defined in line 67; used 2 times
TS_OPI defined in line 114; never used
TS_OPM defined in line 100; never used
TS_PED defined in line 70; never used
TS_POL defined in line 91; never used
TS_POS defined in line 90; never used
TS_RCOM defined in line 139; used 3 times
TS_RECNM defined in line 35; never used
TS_RECOV defined in line 34; never used
TS_REJECT defined in line 33; never used
TS_REREAD defined in line 140; never used
TS_RETRY defined in line 144; used 2 times
TS_REV defined in line 115; never used
TS_REW defined in line 149; used 6 times
TS_REWRITE defined in line 143; never used
TS_RIB defined in line 120; never used
TS_RLL defined in line 61; used 1 times
TS_RLS defined in line 59; used 1 times
TS_RMR defined in line 21; never used
TS_SC defined in line 18; used 3 times
TS_SCK defined in line 85; never used
TS_SENSE defined in line 152; used 2 times
TS_SETCHR defined in line 141; used 2 times
TS_SFORW defined in line 145; used 2 times
TS_SFORWF defined in line 147; used 3 times
TS_SIP defined in line 101; never used
TS_SPE defined in line 20; never used
TS_SREV defined in line 146; used 3 times
TS_SREVF defined in line 148; used 1 times
TS_SSR defined in line 25; used 5 times
TS_SUCC defined in line 30; never used
TS_SYN defined in line 87; never used
TS_TC defined in line 28; used 1 times
TS_TIG defined in line 83; never used
TS_TMK defined in line 58; used 2 times
TS_UNC defined in line 92; never used
TS_UNREC defined in line 36; never used
TS_UPE defined in line 19; never used
TS_VCK defined in line 69; never used
TS_WCF defined in line 104; never used
TS_WCOM defined in line 142; used 4 times
TS_WEOF defined in line 151; used 4 times
TS_WLE defined in line 62; used 1 times
TS_WLK defined in line 71; used 1 times
TS_XMEM defined in line 24; never used
b_command defined in line 44; used 6 times
b_repcnt defined in line 43; used 5 times
c_repcnt defined in line 131; used 4 times

Usage of this include

Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1261
Valid CSS Valid XHTML 1.0 Strict