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

Defined struct's

ts_char defined in line 159; used 10 times
ts_cmd defined in line 128; used 16 times
ts_sts defined in line 48; used 6 times
tsdevice defined in line 12; used 18 times

Defined macros

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

Usage of this include

Last modified: 1987-01-09
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 3778
Valid CSS Valid XHTML 1.0 Strict