518 lines
25 KiB
C
518 lines
25 KiB
C
/* pdp11_mscp.h: DEC MSCP and TMSCP definitionsn
|
|
|
|
Copyright (c) 2001-2008, Robert M Supnik
|
|
Derived from work by Stephen F. Shirron
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of Robert M Supnik shall not be
|
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|
in this Software without prior written authorization from Robert M Supnik.
|
|
|
|
24-Oct-12 MB Added working map base address
|
|
09-Jan-03 RMS Tape read/write end pkt is longer than disk read/write
|
|
20-Sep-02 RMS Merged TMSCP definitions
|
|
*/
|
|
|
|
#ifndef PDP11_MSCP_H_
|
|
#define PDP11_MSCP_H_ 0
|
|
|
|
/* Misc constants */
|
|
|
|
#define UID_DISK 2 /* disk class */
|
|
#define UID_TAPE 3 /* tape class */
|
|
|
|
/* Opcodes */
|
|
|
|
#define OP_ABO 1 /* b: abort */
|
|
#define OP_GCS 2 /* b: get command status */
|
|
#define OP_GUS 3 /* b: get unit status */
|
|
#define OP_SCC 4 /* b: set controller char */
|
|
#define OP_AVL 8 /* b: available */
|
|
#define OP_ONL 9 /* b: online */
|
|
#define OP_SUC 10 /* b: set unit char */
|
|
#define OP_DAP 11 /* b: det acc paths - nop */
|
|
#define OP_ACC 16 /* b: access */
|
|
#define OP_CCD 17 /* d: compare - nop */
|
|
#define OP_ERS 18 /* b: erase */
|
|
#define OP_FLU 19 /* d: flush - nop */
|
|
#define OP_ERG 22 /* t: erase gap */
|
|
#define OP_CMP 32 /* b: compare */
|
|
#define OP_RD 33 /* b: read */
|
|
#define OP_WR 34 /* b: write */
|
|
#define OP_WTM 36 /* t: write tape mark */
|
|
#define OP_POS 37 /* t: reposition */
|
|
#define OP_FMT 47 /* d: format */
|
|
#define OP_AVA 64 /* b: unit now avail */
|
|
#define OP_END 0x80 /* b: end flag */
|
|
|
|
/* Modifiers */
|
|
|
|
#define MD_EXP 0x8000 /* d: express NI */
|
|
#define MD_CMP 0x4000 /* b: compare NI */
|
|
#define MD_CSE 0x2000 /* b: clr ser err */
|
|
#define MD_ERR 0x1000 /* d: force error NI*/
|
|
#define MD_CDL 0x1000 /* t: clr data lost NI*/
|
|
#define MD_SCH 0x0800 /* t: supr cache NI */
|
|
#define MD_SEC 0x0200 /* b: supr err corr NI */
|
|
#define MD_SER 0x0100 /* b: supr err rec NI */
|
|
#define MD_DLE 0x0080 /* t: detect LEOT */
|
|
#define MD_IMM 0x0040 /* t: immediate NI */
|
|
#define MD_EXA 0x0020 /* b: excl access NI */
|
|
#define MD_SHD 0x0010 /* d: shadow NI */
|
|
#define MD_UNL 0x0010 /* t avl: unload */
|
|
#define MD_ERW 0x0008 /* t wr: enb rewrite */
|
|
#define MD_REV 0x0008 /* t rd, pos: reverse */
|
|
#define MD_SWP 0x0004 /* b suc: enb set wrp */
|
|
#define MD_OBC 0x0004 /* t: pos: obj count */
|
|
#define MD_IMF 0x0002 /* d onl: ign fmte NI */
|
|
#define MD_RWD 0x0002 /* t pos: rewind */
|
|
#define MD_ACL 0x0002 /* t avl: all class NI */
|
|
#define MD_NXU 0x0001 /* b gus: next unit */
|
|
#define MD_RIP 0x0001 /* d onl: allow rip NI */
|
|
#define MD_SPD 0x0001 /* d avl: spin-down */
|
|
|
|
/* End flags */
|
|
|
|
#define EF_LOG 0x0020 /* b: error log */
|
|
#define EF_SXC 0x0010 /* b: serious exc */
|
|
#define EF_EOT 0x0008 /* end of tape */
|
|
#define EF_PLS 0x0004 /* pos lost */
|
|
#define EF_DLS 0x0002 /* cached data lost NI */
|
|
|
|
/* Controller flags */
|
|
|
|
#define CF_RPL 0x8000 /* ctrl bad blk repl */
|
|
#define CF_ATN 0x0080 /* enb attention */
|
|
#define CF_MSC 0x0040 /* enb misc msgs */
|
|
#define CF_OTH 0x0020 /* enb othr host msgs */
|
|
#define CF_THS 0x0010 /* enb this host msgs */
|
|
#define CF_MSK (CF_ATN|CF_MSC|CF_OTH|CF_THS)
|
|
|
|
/* Unit flags */
|
|
|
|
#define UF_RPL 0x8000 /* d: ctrl bad blk repl */
|
|
#define UF_CAC 0x8000 /* t: cache write back */
|
|
#define UF_WPH 0x2000 /* b: wr prot hwre */
|
|
#define UF_WPS 0x1000 /* b: wr prot swre */
|
|
#define UF_SCH 0x0800 /* t: supr cache NI */
|
|
#define UF_EXA 0x0400 /* b: exclusive NI */
|
|
#define UF_WPD 0x0100 /* b: wr prot data NI */
|
|
#define UF_RMV 0x0080 /* d: removable */
|
|
#define UF_WBN 0x0040 /* t: write back NI */
|
|
#define UF_VSS 0x0020 /* t: supr var speed NI */
|
|
#define UF_VSU 0x0010 /* t: var speed unit NI */
|
|
#define UF_EWR 0x0008 /* t: enh wr recovery NI */
|
|
#define UF_CMW 0x0002 /* cmp writes NI */
|
|
#define UF_CMR 0x0001 /* cmp reads NI */
|
|
|
|
/* Error log flags */
|
|
|
|
#define LF_SUC 0x0080 /* b: successful */
|
|
#define LF_CON 0x0040 /* b: continuing */
|
|
#define LF_BBR 0x0020 /* d: bad blk repl NI */
|
|
#define LF_RCT 0x0010 /* d: err in repl NI */
|
|
#define LF_SNR 0x0001 /* b: seq # reset */
|
|
|
|
/* Error log formats */
|
|
|
|
#define FM_CNT 0 /* b: port lf err */
|
|
#define FM_BAD 1 /* b: bad host addr */
|
|
#define FM_DSK 2 /* d: disk xfer */
|
|
#define FM_SDI 3 /* d: SDI err */
|
|
#define FM_SDE 4 /* d: sm disk err */
|
|
#define FM_TAP 5 /* t: tape errors */
|
|
#define FM_RPL 9 /* d: bad blk repl */
|
|
|
|
/* Status codes */
|
|
|
|
#define ST_SUC 0 /* b: successful */
|
|
#define ST_CMD 1 /* b: invalid cmd */
|
|
#define ST_ABO 2 /* b: aborted cmd */
|
|
#define ST_OFL 3 /* b: unit offline */
|
|
#define ST_AVL 4 /* b: unit avail */
|
|
#define ST_MFE 5 /* b: media fmt err */
|
|
#define ST_WPR 6 /* b: write prot err */
|
|
#define ST_CMP 7 /* b: compare err */
|
|
#define ST_DAT 8 /* b: data err */
|
|
#define ST_HST 9 /* b: host acc err */
|
|
#define ST_CNT 10 /* b: ctrl err */
|
|
#define ST_DRV 11 /* b: drive err */
|
|
#define ST_FMT 12 /* t: formatter err */
|
|
#define ST_BOT 13 /* t: BOT encountered */
|
|
#define ST_TMK 14 /* t: tape mark */
|
|
#define ST_RDT 16 /* t: record trunc */
|
|
#define ST_POL 17 /* t: pos lost */
|
|
#define ST_SXC 18 /* b: serious exc */
|
|
#define ST_LED 19 /* t: LEOT detect */
|
|
#define ST_BBR 20 /* d: bad block */
|
|
#define ST_DIA 31 /* b: diagnostic */
|
|
#define ST_V_SUB 5 /* subcode */
|
|
#define ST_V_INV 8 /* invalid op */
|
|
|
|
/* Status subcodes */
|
|
|
|
#define SB_SUC_IGN (1 << ST_V_SUB) /* t: unload ignored */
|
|
#define SB_SUC_ON (8 << ST_V_SUB) /* b: already online */
|
|
#define SB_SUC_EOT (32 << ST_V_SUB) /* t: EOT encountered */
|
|
#define SB_SUC_RO (128 << ST_V_SUB) /* t: read only */
|
|
#define SB_OFL_NV (1 << ST_V_SUB) /* b: no volume */
|
|
#define SB_OFL_INOP (2 << ST_V_SUB) /* t: inoperative */
|
|
#define SB_AVL_INU (32 << ST_V_SUB) /* b: in use */
|
|
#define SB_WPR_SW (128 << ST_V_SUB) /* b: swre wlk */
|
|
#define SB_WPR_HW (256 << ST_V_SUB) /* b: hwre wlk */
|
|
#define SB_HST_OA (1 << ST_V_SUB) /* b: odd addr */
|
|
#define SB_HST_OC (2 << ST_V_SUB) /* d: odd count */
|
|
#define SB_HST_NXM (3 << ST_V_SUB) /* b: nx memory */
|
|
#define SB_HST_PAR (4 << ST_V_SUB) /* b: parity err */
|
|
#define SB_HST_PTE (5 << ST_V_SUB) /* b: mapping err */
|
|
#define SB_DAT_RDE (7 << ST_V_SUB) /* t: read err */
|
|
|
|
/* Status invalid command subcodes */
|
|
|
|
#define I_OPCD (8 << ST_V_INV) /* inv opcode */
|
|
#define I_FLAG (9 << ST_V_INV) /* inv flags */
|
|
#define I_MODF (10 << ST_V_INV) /* inv modifier */
|
|
#define I_BCNT (12 << ST_V_INV) /* inv byte cnt */
|
|
#define I_LBN (28 << ST_V_INV) /* inv LBN */
|
|
#define I_VRSN (12 << ST_V_INV) /* inv version */
|
|
#define I_FMTI (28 << ST_V_INV) /* inv format */
|
|
|
|
/* Tape format flags */
|
|
|
|
#define TF_9TK 0x0100 /* 9 track */
|
|
#define TF_9TK_NRZ 0x0001 /* 800 bpi */
|
|
#define TF_9TK_PE 0x0002 /* 1600 bpi */
|
|
#define TF_9TK_GRP 0x0004 /* 6250 bpi */
|
|
#define TF_CTP 0x0200 /* TK50 */
|
|
#define TF_CTP_LO 0x0001 /* low density */
|
|
#define TF_CTP_HI 0x0002 /* hi density */
|
|
#define TF_3480 0x0300 /* 3480 */
|
|
#define TF_WOD 0x0400 /* RV80 */
|
|
|
|
/* Packet formats - note that all packet lengths must be multiples of 4 bytes */
|
|
|
|
/* Command packet header */
|
|
|
|
#define CMD_REFL 2 /* ref # */
|
|
#define CMD_REFH 3
|
|
#define CMD_UN 4 /* unit # */
|
|
/* 5 *//* reserved */
|
|
#define CMD_OPC 6 /* opcode */
|
|
#define CMD_MOD 7 /* modifier */
|
|
|
|
#define CMD_OPC_V_OPC 0 /* opcode */
|
|
#define CMD_OPC_M_OPC 0xFF
|
|
#define CMD_OPC_V_CAA 8 /* cache NI */
|
|
#define CMD_OPC_M_CAA 0xFF
|
|
#define CMD_OPC_V_FLG 8 /* flags */
|
|
#define CMD_OPC_M_FLG 0xFF
|
|
|
|
/* Response packet header */
|
|
|
|
#define RSP_LNT 12
|
|
#define RSP_REFL 2 /* ref # */
|
|
#define RSP_REFH 3
|
|
#define RSP_UN 4 /* unit # */
|
|
#define RSP_RSV 5 /* reserved */
|
|
#define RSP_OPF 6 /* opcd,flg */
|
|
#define RSP_STS 7 /* modifiers */
|
|
|
|
#define RSP_OPF_V_OPC 0 /* opcode */
|
|
#define RSP_OPF_V_FLG 8 /* flags */
|
|
|
|
/* Abort packet - 2 W parameter, 2 W status */
|
|
|
|
#define ABO_LNT 16
|
|
#define ABO_REFL 8 /* ref # */
|
|
#define ABO_REFH 9
|
|
|
|
/* Avail packet - min size */
|
|
|
|
#define AVL_LNT 12
|
|
|
|
/* Erase packet - min size */
|
|
|
|
#define ERS_LNT 12
|
|
|
|
/* Erase gap - min size */
|
|
|
|
#define ERG_LNT 12
|
|
|
|
/* Flush - 10 W status (8 undefined) */
|
|
|
|
#define FLU_LNT 32
|
|
/* 8 - 15 *//* reserved */
|
|
#define FLU_POSL 16 /* position */
|
|
#define FLU_POSH 17
|
|
|
|
/* Write tape mark - 10W status (8 undefined) */
|
|
|
|
#define WTM_LNT 32
|
|
/* 8 - 15 *//* reserved */
|
|
#define WTM_POSL 16 /* position */
|
|
#define WTM_POSH 17
|
|
|
|
/* Get command status packet - 2 W parameter, 4 W status */
|
|
|
|
#define GCS_LNT 20
|
|
#define GCS_REFL 8 /* ref # */
|
|
#define GCS_REFH 9
|
|
#define GCS_STSL 10 /* status */
|
|
#define GCS_STSH 11
|
|
|
|
/* Format packet - 8 W parameters, none returned */
|
|
|
|
#define FMT_LNT 12
|
|
#define FMT_IH 17 /* magic bit */
|
|
|
|
/* Get unit status packet - 18 W status (disk), 16W status (tape) */
|
|
|
|
#define GUS_LNT_D 48
|
|
#define GUS_LNT_T 44
|
|
#define GUS_MLUN 8 /* mlun */
|
|
#define GUS_UFL 9 /* flags */
|
|
#define GUS_RSVL 10 /* reserved */
|
|
#define GUS_RSVH 11
|
|
#define GUS_UIDA 12 /* unit ID */
|
|
#define GUS_UIDB 13
|
|
#define GUS_UIDC 14
|
|
#define GUS_UIDD 15
|
|
#define GUS_MEDL 16 /* media ID */
|
|
#define GUS_MEDH 17
|
|
#define GUS_UVER 23 /* unit version */
|
|
|
|
/* Disk specific status */
|
|
|
|
#define GUS_SHUN 18 /* shadowing */
|
|
#define GUS_SHST 19
|
|
#define GUS_TRK 20 /* track */
|
|
#define GUS_GRP 21 /* group */
|
|
#define GUS_CYL 22 /* cylinder */
|
|
#define GUS_RCTS 24 /* RCT size */
|
|
#define GUS_RBSC 25 /* RBNs, copies */
|
|
|
|
/* Tape specific status */
|
|
|
|
#define GUS_FMT 18 /* format */
|
|
#define GUS_SPEED 19 /* speed */
|
|
#define GUS_MENU 20 /* menu */
|
|
#define GUS_CAP 21 /* capacity */
|
|
#define GUS_FVER 22 /* fmtr version */
|
|
|
|
#define GUS_UIDD_V_MOD 0 /* unit model */
|
|
#define GUS_UIDD_V_CLS 8 /* unit class */
|
|
#define GUS_RB_V_RBNS 0 /* RBNs/track */
|
|
#define GUS_RB_V_RCTC 8 /* RCT copies */
|
|
|
|
/* Unit online - 2 W parameter, 16 W status (disk or tape) */
|
|
|
|
#define ONL_LNT 44
|
|
#define ONL_MLUN 8 /* mlun */
|
|
#define ONL_UFL 9 /* flags */
|
|
#define ONL_RSVL 10 /* reserved */
|
|
#define ONL_RSVH 11
|
|
#define ONL_UIDA 12 /* unit ID */
|
|
#define ONL_UIDB 13
|
|
#define ONL_UIDC 14
|
|
#define ONL_UIDD 15
|
|
#define ONL_MEDL 16 /* media ID */
|
|
#define ONL_MEDH 17
|
|
|
|
/* Disk specific status */
|
|
|
|
#define ONL_SHUN 18 /* shadowing */
|
|
#define ONL_SHST 19
|
|
#define ONL_SIZL 20 /* size */
|
|
#define ONL_SIZH 21
|
|
#define ONL_VSNL 22 /* vol ser # */
|
|
#define ONL_VSNH 23
|
|
|
|
/* Tape specific status */
|
|
|
|
#define ONL_FMT 18 /* format */
|
|
#define ONL_SPD 19 /* speed */
|
|
#define ONL_MAXL 20 /* max rec size */
|
|
#define ONL_MAXH 21
|
|
#define ONL_NREC 22 /* noise rec */
|
|
#define ONL_RSVE 23 /* reserved */
|
|
|
|
#define ONL_UIDD_V_MOD 0 /* unit model */
|
|
#define ONL_UIDD_V_CLS 8 /* unit class */
|
|
|
|
/* Set controller characteristics packet - 8 W parameters, 10 W status */
|
|
|
|
#define SCC_LNT 32
|
|
#define SCC_MSV 8 /* MSCP version */
|
|
#define SCC_CFL 9 /* flags */
|
|
#define SCC_TMO 10 /* timeout */
|
|
#define SCC_VER 11 /* ctrl version */
|
|
#define SCC_CIDA 12 /* ctrl ID */
|
|
#define SCC_CIDB 13
|
|
#define SCC_CIDC 14
|
|
#define SCC_CIDD 15
|
|
#define SCC_MBCL 16 /* max byte count */
|
|
#define SCC_MBCH 17
|
|
|
|
#define SCC_VER_V_SVER 0 /* swre vrsn */
|
|
#define SCC_VER_V_HVER 8 /* hwre vrsn */
|
|
#define SCC_CIDD_V_MOD 0 /* ctrl model */
|
|
#define SCC_CIDD_V_CLS 8 /* ctrl class */
|
|
|
|
/* Set unit characteristics - 2 W parameter, 16 W status - same as ONL */
|
|
|
|
#define SUC_LNT 44
|
|
|
|
/* Reposition - 4 W parameters, 10 W status */
|
|
|
|
#define POS_LNT 32
|
|
#define POS_RCL 8 /* record cnt */
|
|
#define POS_RCH 9
|
|
#define POS_TMCL 10 /* tape mk cnt */
|
|
#define POS_TMCH 11
|
|
/* reserved 12 - 15 */
|
|
#define POS_POSL 16 /* position */
|
|
#define POS_POSH 17
|
|
|
|
/* Data transfer packet - 10 W parameters (disk), 6W parameters (tape),
|
|
10 W status (disk), 12W status (tape) */
|
|
|
|
#define RW_LNT_D 32
|
|
#define RW_LNT_T 36
|
|
#define RW_BCL 8 /* byte count */
|
|
#define RW_BCH 9
|
|
#define RW_BAL 10 /* buff desc */
|
|
#define RW_BAH 11
|
|
#define RW_MAPL 12 /* map table */
|
|
#define RW_MAPH 13
|
|
/* 14 *//* reserved */
|
|
/* 15 *//* reserved */
|
|
|
|
/* Disk specific parameters */
|
|
|
|
#define RW_LBNL 16 /* LBN */
|
|
#define RW_LBNH 17
|
|
#define RW_WBCL 18 /* working bc */
|
|
#define RW_WBCH 19
|
|
#define RW_WBAL 20 /* working ba */
|
|
#define RW_WBAH 21
|
|
#define RW_WBLL 22 /* working lbn */
|
|
#define RW_WBLH 23
|
|
#define RW_WMPL 24 /* working map */
|
|
#define RW_WMPH 25
|
|
|
|
/* Tape specific status */
|
|
|
|
#define RW_POSL 16 /* position */
|
|
#define RW_POSH 17
|
|
#define RW_RSZL 18 /* record size */
|
|
#define RW_RSZH 19
|
|
|
|
/* Error log packet header */
|
|
|
|
#define ELP_REFL 2 /* ref # */
|
|
#define ELP_REFH 3
|
|
#define ELP_UN 4 /* unit */
|
|
#define ELP_SEQ 5
|
|
#define ELP_FF 6 /* fmt,flg */
|
|
#define ELP_EVT 7 /* event */
|
|
|
|
#define ELP_EV_V_FMT 0 /* format */
|
|
#define ELP_EV_V_FLG 8 /* flag */
|
|
|
|
/* Port last failure error log packet - 6 W status */
|
|
|
|
#define PLF_LNT 24 /* length */
|
|
#define PLF_CIDA 8 /* ctrl ID */
|
|
#define PLF_CIDB 9
|
|
#define PLF_CIDC 10
|
|
#define PLF_CIDD 11
|
|
#define PLF_VER 12 /* ctrl version */
|
|
#define PLF_ERR 13 /* err */
|
|
|
|
#define PLF_CIDD_V_MOD 0 /* ctrl model */
|
|
#define PLF_CIDD_V_CLS 8 /* ctrl class */
|
|
#define PLF_VER_V_SVER 0 /* swre ver */
|
|
#define PLF_VER_V_HVER 8 /* hwre ver */
|
|
|
|
/* Disk transfer error log packet - 18 W status */
|
|
|
|
#define DTE_LNT 48
|
|
#define DTE_CIDA 8 /* ctrl ID */
|
|
#define DTE_CIDB 9
|
|
#define DTE_CIDC 10
|
|
#define DTE_CIDD 11
|
|
#define DTE_VER 12 /* version */
|
|
#define DTE_MLUN 13 /* mlun */
|
|
#define DTE_UIDA 14 /* unit ID */
|
|
#define DTE_UIDB 15
|
|
#define DTE_UIDC 16
|
|
#define DTE_UIDD 17
|
|
#define DTE_UVER 18
|
|
#define DTE_D2 23
|
|
#define DTE_D3 24
|
|
#define DTE_D4 25
|
|
|
|
/* Disk specific status */
|
|
|
|
#define DTE_SCYL 19 /* cylinder */
|
|
#define DTE_VSNL 20 /* vol ser # */
|
|
#define DTE_VSNH 21
|
|
#define DTE_D1 22 /* dev params */
|
|
|
|
/* Tape specific status */
|
|
|
|
#define DTE_RETR 19 /* retry */
|
|
#define DTE_POSL 20 /* position */
|
|
#define DTE_POSH 21
|
|
#define DTE_FVER 22 /* formatter ver */
|
|
|
|
#define DTE_CIDD_V_MOD 0 /* ctrl model */
|
|
#define DTE_CIDD_V_CLS 8 /* ctrl class */
|
|
#define DTE_VER_V_SVER 0 /* ctrl swre ver */
|
|
#define DTE_VER_V_HVER 8 /* ctrl hwre ver */
|
|
#define DTE_UIDD_V_MOD 0 /* unit model */
|
|
#define DTE_UIDD_V_CLS 8 /* unit class */
|
|
#define DTE_D2_V_SECT 8
|
|
#define DTE_D3_V_SURF 0
|
|
#define DTE_D3_V_CYL 8
|
|
|
|
/* Host bus error log packet - 8 W status */
|
|
|
|
#define HBE_LNT 28
|
|
#define HBE_CIDA 8 /* ctrl ID */
|
|
#define HBE_CIDB 9
|
|
#define HBE_CIDC 10
|
|
#define HBE_CIDD 11
|
|
#define HBE_VER 12 /* ctrl version */
|
|
#define HBE_RSV 13 /* reserved */
|
|
#define HBE_BADL 14 /* bad address */
|
|
#define HBE_BADH 15
|
|
|
|
#define HBE_CIDD_V_MOD 0 /* ctrl model */
|
|
#define HBE_CIDD_V_CLS 8 /* ctrl class */
|
|
#define HBE_VER_V_SVER 0 /* ctrl swre ver */
|
|
#define HBE_VER_V_HVER 8 /* ctrl hwre ver */
|
|
|
|
/* Unit now available attention message - 10 W status, same as
|
|
first 10 W of status from get unit status
|
|
*/
|
|
|
|
#define UNA_LNT 32
|
|
|
|
#endif
|