diff --git a/PDP11/pdp11_td.c b/PDP11/pdp11_td.c index a166ad73..8d05b26c 100644 --- a/PDP11/pdp11_td.c +++ b/PDP11/pdp11_td.c @@ -683,8 +683,8 @@ static REG td_reg[] = { { DRDATAD (XTIME, td_xtime,24, "tr set time"), PV_LEFT }, { DRDATAD (ITIME, td_itime,24, "init time"), PV_LEFT }, -#define RDATA(nm,loc,wd,desc) SRDATAD(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc) -#define RDATAF(nm,loc,wd,desc,flds) SRDATADF(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc,flds) +#define RDATA(nm,loc,wd,desc) STRDATAD(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc) +#define RDATAF(nm,loc,wd,desc,flds) STRDATADF(nm,td_ctlr[0].loc,16,wd,0,TD_NUMCTLR+1,sizeof(CTLR),REG_RO,desc,flds) { RDATA (ECODE, ecode, 16, "end packet success code") }, { RDATA (BLOCK, block, 16, "current block number") }, diff --git a/doc/simh.doc b/doc/simh.doc index 2d1ece88..8147f482 100644 Binary files a/doc/simh.doc and b/doc/simh.doc differ diff --git a/sim_defs.h b/sim_defs.h index 488cd630..79f1714c 100644 --- a/sim_defs.h +++ b/sim_defs.h @@ -586,9 +586,9 @@ struct REG { uint32 depth; /* save depth */ const char *desc; /* description */ BITFIELD *fields; /* bit fields */ - size_t str_size; /* structure size */ uint32 flags; /* flags */ uint32 qptr; /* circ q ptr */ + size_t str_size; /* structure size */ }; /* Register flags */ @@ -770,45 +770,45 @@ struct FILEREF { #if defined (__STDC__) || defined (_WIN32) /* Right Justified Octal Register Data */ -#define ORDATA(nm,loc,wd) #nm, &(loc), 8, (wd), 0, 1, NULL, NULL, 0 +#define ORDATA(nm,loc,wd) #nm, &(loc), 8, (wd), 0, 1, NULL, NULL /* Right Justified Decimal Register Data */ -#define DRDATA(nm,loc,wd) #nm, &(loc), 10, (wd), 0, 1, NULL, NULL, 0 +#define DRDATA(nm,loc,wd) #nm, &(loc), 10, (wd), 0, 1, NULL, NULL /* Right Justified Hexadecimal Register Data */ -#define HRDATA(nm,loc,wd) #nm, &(loc), 16, (wd), 0, 1, NULL, NULL, 0 +#define HRDATA(nm,loc,wd) #nm, &(loc), 16, (wd), 0, 1, NULL, NULL /* One-bit binary flag at an arbitrary offset in a 32-bit word Register */ -#define FLDATA(nm,loc,pos) #nm, &(loc), 2, 1, (pos), 1, NULL, NULL, 0 +#define FLDATA(nm,loc,pos) #nm, &(loc), 2, 1, (pos), 1, NULL, NULL /* Arbitrary location and Radix Register */ -#define GRDATA(nm,loc,rdx,wd,pos) #nm, &(loc), (rdx), (wd), (pos), 1, NULL, NULL, 0 +#define GRDATA(nm,loc,rdx,wd,pos) #nm, &(loc), (rdx), (wd), (pos), 1, NULL, NULL /* Arrayed register whose data is kept in a standard C array Register */ -#define BRDATA(nm,loc,rdx,wd,dep) #nm, (loc), (rdx), (wd), 0, (dep), NULL, NULL, 0 +#define BRDATA(nm,loc,rdx,wd,dep) #nm, (loc), (rdx), (wd), 0, (dep), NULL, NULL /* Arrayed register whose data is part of the UNIT structure */ #define URDATA(nm,loc,rdx,wd,off,dep,fl) \ - #nm, &(loc), (rdx), (wd), (off), (dep), NULL, NULL, 0, ((fl) | REG_UNIT) + #nm, &(loc), (rdx), (wd), (off), (dep), NULL, NULL, ((fl) | REG_UNIT) /* Arrayed register whose data is part of an arbitrary structure */ -#define SRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ - #nm, &(loc), (rdx), (wd), (off), (dep), NULL, NULL, (siz), ((fl) | REG_STRUCT) +#define STRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ + #nm, &(loc), (rdx), (wd), (off), (dep), NULL, NULL, ((fl) | REG_STRUCT), (siz) /* Same as above, but with additional description initializer */ -#define ORDATAD(nm,loc,wd,desc) #nm, &(loc), 8, (wd), 0, 1, (desc), NULL, 0 -#define DRDATAD(nm,loc,wd,desc) #nm, &(loc), 10, (wd), 0, 1, (desc), NULL, 0 -#define HRDATAD(nm,loc,wd,desc) #nm, &(loc), 16, (wd), 0, 1, (desc), NULL, 0 -#define FLDATAD(nm,loc,pos,desc) #nm, &(loc), 2, 1, (pos), 1, (desc), NULL, 0 -#define GRDATAD(nm,loc,rdx,wd,pos,desc) #nm, &(loc), (rdx), (wd), (pos), 1, (desc), NULL, 0 -#define BRDATAD(nm,loc,rdx,wd,dep,desc) #nm, (loc), (rdx), (wd), 0, (dep), (desc), NULL, 0 +#define ORDATAD(nm,loc,wd,desc) #nm, &(loc), 8, (wd), 0, 1, (desc), NULL +#define DRDATAD(nm,loc,wd,desc) #nm, &(loc), 10, (wd), 0, 1, (desc), NULL +#define HRDATAD(nm,loc,wd,desc) #nm, &(loc), 16, (wd), 0, 1, (desc), NULL +#define FLDATAD(nm,loc,pos,desc) #nm, &(loc), 2, 1, (pos), 1, (desc), NULL +#define GRDATAD(nm,loc,rdx,wd,pos,desc) #nm, &(loc), (rdx), (wd), (pos), 1, (desc), NULL +#define BRDATAD(nm,loc,rdx,wd,dep,desc) #nm, (loc), (rdx), (wd), 0, (dep), (desc), NULL #define URDATAD(nm,loc,rdx,wd,off,dep,fl,desc) \ - #nm, &(loc), (rdx), (wd), (off), (dep), (desc), NULL, 0, ((fl) | REG_UNIT) -#define SRDATAD(nm,loc,rdx,wd,off,dep,siz,fl,desc) \ - #nm, &(loc), (rdx), (wd), (off), (dep), (desc), NULL, (siz), ((fl) | REG_STRUCT) + #nm, &(loc), (rdx), (wd), (off), (dep), (desc), NULL, ((fl) | REG_UNIT) +#define STRDATAD(nm,loc,rdx,wd,off,dep,siz,fl,desc) \ + #nm, &(loc), (rdx), (wd), (off), (dep), (desc), NULL, ((fl) | REG_STRUCT), (siz) /* Same as above, but with additional description initializer, and bitfields */ -#define ORDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 8, (wd), 0, 1, (desc), (flds), 0 -#define DRDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 10, (wd), 0, 1, (desc), (flds), 0 -#define HRDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 16, (wd), 0, 1, (desc), (flds), 0 -#define FLDATADF(nm,loc,pos,desc,flds) #nm, &(loc), 2, 1, (pos), 1, (desc), (flds), 0 -#define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) #nm, &(loc), (rdx), (wd), (pos), 1, (desc), (flds), 0 -#define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) #nm, (loc), (rdx), (wd), 0, (dep), (desc), (flds), 0 +#define ORDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 8, (wd), 0, 1, (desc), (flds) +#define DRDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 10, (wd), 0, 1, (desc), (flds) +#define HRDATADF(nm,loc,wd,desc,flds) #nm, &(loc), 16, (wd), 0, 1, (desc), (flds) +#define FLDATADF(nm,loc,pos,desc,flds) #nm, &(loc), 2, 1, (pos), 1, (desc), (flds) +#define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) #nm, &(loc), (rdx), (wd), (pos), 1, (desc), (flds) +#define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) #nm, (loc), (rdx), (wd), 0, (dep), (desc), (flds) #define URDATADF(nm,loc,rdx,wd,off,dep,fl,desc,flds) \ - #nm, &(loc), (rdx), (wd), (off), (dep), (desc), (flds), 0, ((fl) | REG_UNIT) -#define SRDATADF(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds) \ - #nm, &(loc), (rdx), (wd), (off), (dep), (desc), (flds), (siz), ((fl) | REG_STRUCT) + #nm, &(loc), (rdx), (wd), (off), (dep), (desc), (flds), ((fl) | REG_UNIT) +#define STRDATADF(nm,loc,rdx,wd,off,dep,siz,fl,desc,flds) \ + #nm, &(loc), (rdx), (wd), (off), (dep), (desc), (flds), ((fl) | REG_STRUCT), (siz) #define BIT(nm) {#nm, 0xffffffff, 1} /* Single Bit definition */ #define BITNC {"", 0xffffffff, 1} /* Don't care Bit definition */ #define BITF(nm,sz) {#nm, 0xffffffff, sz} /* Bit Field definition */ @@ -816,36 +816,36 @@ struct FILEREF { #define BITFFMT(nm,sz,fmt) {#nm, 0xffffffff, sz, NULL, #fmt}/* Bit Field definition with Output format */ #define BITFNAM(nm,sz,names) {#nm, 0xffffffff, sz, names} /* Bit Field definition with value->name map */ #else -#define ORDATA(nm,loc,wd) "nm", &(loc), 8, (wd), 0, 1, NULL, NULL, 0 -#define DRDATA(nm,loc,wd) "nm", &(loc), 10, (wd), 0, 1, NULL, NULL, 0 -#define HRDATA(nm,loc,wd) "nm", &(loc), 16, (wd), 0, 1, NULL, NULL, 0 -#define FLDATA(nm,loc,pos) "nm", &(loc), 2, 1, (pos), 1, NULL, NULL, 0 -#define GRDATA(nm,loc,rdx,wd,pos) "nm", &(loc), (rdx), (wd), (pos), 1, NULL, NULL, 0 -#define BRDATA(nm,loc,rdx,wd,dep) "nm", (loc), (rdx), (wd), 0, (dep), NULL, NULL, 0 +#define ORDATA(nm,loc,wd) "nm", &(loc), 8, (wd), 0, 1, NULL, NULL +#define DRDATA(nm,loc,wd) "nm", &(loc), 10, (wd), 0, 1, NULL, NULL +#define HRDATA(nm,loc,wd) "nm", &(loc), 16, (wd), 0, 1, NULL, NULL +#define FLDATA(nm,loc,pos) "nm", &(loc), 2, 1, (pos), 1, NULL, NULL +#define GRDATA(nm,loc,rdx,wd,pos) "nm", &(loc), (rdx), (wd), (pos), 1, NULL, NULL +#define BRDATA(nm,loc,rdx,wd,dep) "nm", (loc), (rdx), (wd), 0, (dep), NULL, NULL #define URDATA(nm,loc,rdx,wd,off,dep,fl) \ - "nm", &(loc), (rdx), (wd), (off), (dep), NULL, NULL, 0, ((fl) | REG_UNIT) -#define SRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ - "nm", &(loc), (rdx), (wd), (off), (dep), NULL, NULL, (siz), ((fl) | REG_STRUCT) -#define ORDATAD(nm,loc,wd,desc) "nm", &(loc), 8, (wd), 0, 1, (desc), NULL, 0 -#define DRDATAD(nm,loc,wd,desc) "nm", &(loc), 10, (wd), 0, 1, (desc), NULL, 0 -#define HRDATAD(nm,loc,wd,desc) "nm", &(loc), 16, (wd), 0, 1, (desc), NULL, 0 -#define FLDATAD(nm,loc,pos,desc) "nm", &(loc), 2, 1, (pos), 1, (desc), NULL, 0 -#define GRDATAD(nm,loc,rdx,wd,pos,desc) "nm", &(loc), (rdx), (wd), (pos), 1, (desc), NULL, 0 -#define BRDATAD(nm,loc,rdx,wd,dep,desc) "nm", (loc), (rdx), (wd), 0, (dep), (desc), NULL, 0 + "nm", &(loc), (rdx), (wd), (off), (dep), NULL, NULL, ((fl) | REG_UNIT) +#define STRDATA(nm,loc,rdx,wd,off,dep,siz,fl) \ + "nm", &(loc), (rdx), (wd), (off), (dep), NULL, NULL, ((fl) | REG_STRUCT), (siz) +#define ORDATAD(nm,loc,wd,desc) "nm", &(loc), 8, (wd), 0, 1, (desc), NULL +#define DRDATAD(nm,loc,wd,desc) "nm", &(loc), 10, (wd), 0, 1, (desc), NULL +#define HRDATAD(nm,loc,wd,desc) "nm", &(loc), 16, (wd), 0, 1, (desc), NULL +#define FLDATAD(nm,loc,pos,desc) "nm", &(loc), 2, 1, (pos), 1, (desc), NULL +#define GRDATAD(nm,loc,rdx,wd,pos,desc) "nm", &(loc), (rdx), (wd), (pos), 1, (desc), NULL +#define BRDATAD(nm,loc,rdx,wd,dep,desc) "nm", (loc), (rdx), (wd), 0, (dep), (desc), NULL #define URDATAD(nm,loc,rdx,wd,off,dep,fl,desc) \ - "nm", &(loc), (rdx), (wd), (off), (dep), (desc), NULL, 0, ((fl) | REG_UNIT) -#define SRDATAD(nm,loc,rdx,wd,off,dep,fl,siz,desc) \ - "nm", &(loc), (rdx), (wd), (off), (dep), (desc), NULL, (siz), ((fl) | REG_STRUCT) -#define ORDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 8, (wd), 0, 1, (desc), (flds), 0 -#define DRDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 10, (wd), 0, 1, (desc), (flds), 0 -#define HRDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 16, (wd), 0, 1, (desc), (flds), 0 -#define FLDATADF(nm,loc,pos,desc,flds) "nm", &(loc), 2, 1, (pos), 1, (desc), (flds), 0 -#define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) "nm", &(loc), (rdx), (wd), (pos), 1, (desc), (flds), 0 -#define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) "nm", (loc), (rdx), (wd), 0, (dep), (desc), (flds), 0 + "nm", &(loc), (rdx), (wd), (off), (dep), (desc), NULL, ((fl) | REG_UNIT) +#define STRDATAD(nm,loc,rdx,wd,off,dep,fl,siz,desc) \ + "nm", &(loc), (rdx), (wd), (off), (dep), (desc), NULL, ((fl) | REG_STRUCT), (siz) +#define ORDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 8, (wd), 0, 1, (desc), (flds) +#define DRDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 10, (wd), 0, 1, (desc), (flds) +#define HRDATADF(nm,loc,wd,desc,flds) "nm", &(loc), 16, (wd), 0, 1, (desc), (flds) +#define FLDATADF(nm,loc,pos,desc,flds) "nm", &(loc), 2, 1, (pos), 1, (desc), (flds) +#define GRDATADF(nm,loc,rdx,wd,pos,desc,flds) "nm", &(loc), (rdx), (wd), (pos), 1, (desc), (flds) +#define BRDATADF(nm,loc,rdx,wd,dep,desc,flds) "nm", (loc), (rdx), (wd), 0, (dep), (desc), (flds) #define URDATADF(nm,loc,rdx,wd,off,dep,fl,desc,flds) \ - "nm", &(loc), (rdx), (wd), (off), (dep), (desc), (flds), 0, ((fl) | REG_UNIT) -#define SRDATADF(nm,loc,rdx,wd,off,dep,fl,siz,desc,flds) \ - "nm", &(loc), (rdx), (wd), (off), (dep), (desc), (flds), (siz), ((fl) | REG_STRUCT) + "nm", &(loc), (rdx), (wd), (off), (dep), (desc), (flds), ((fl) | REG_UNIT) +#define STRDATADF(nm,loc,rdx,wd,off,dep,fl,siz,desc,flds) \ + "nm", &(loc), (rdx), (wd), (off), (dep), (desc), (flds), ((fl) | REG_STRUCT), (siz) #define BIT(nm) {"nm", 0xffffffff, 1} /* Single Bit definition */ #define BITNC {"", 0xffffffff, 1} /* Don't care Bit definition */ #define BITF(nm,sz) {"nm", 0xffffffff, sz} /* Bit Field definition */