VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators
This commit is contained in:
parent
d0e3d2252a
commit
bfe87ed1c5
17 changed files with 80 additions and 22 deletions
|
@ -105,7 +105,15 @@
|
||||||
bit bucket.
|
bit bucket.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined (VM_VAX) /* VAX version */
|
||||||
|
#include "vax_defs.h"
|
||||||
|
extern int32 int_req[IPL_HLVL];
|
||||||
|
#define DMASK 0xFFFF
|
||||||
|
|
||||||
|
#else /* PDP-11 version */
|
||||||
#include "pdp11_defs.h"
|
#include "pdp11_defs.h"
|
||||||
|
extern int32 int_req[IPL_HLVL];
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DT_NUMDR 8 /* #drives */
|
#define DT_NUMDR 8 /* #drives */
|
||||||
#define DT_M_NUMDR (DT_NUMDR - 1)
|
#define DT_M_NUMDR (DT_NUMDR - 1)
|
||||||
|
@ -273,10 +281,6 @@
|
||||||
CLR_INT (DTA)
|
CLR_INT (DTA)
|
||||||
#define ABS(x) (((x) < 0)? (-(x)): (x))
|
#define ABS(x) (((x) < 0)? (-(x)): (x))
|
||||||
|
|
||||||
extern uint16 *M; /* memory */
|
|
||||||
extern int32 int_req[IPL_HLVL];
|
|
||||||
extern UNIT cpu_unit;
|
|
||||||
|
|
||||||
int32 tcst = 0; /* status */
|
int32 tcst = 0; /* status */
|
||||||
int32 tccm = 0; /* command */
|
int32 tccm = 0; /* command */
|
||||||
int32 tcwc = 0; /* word count */
|
int32 tcwc = 0; /* word count */
|
||||||
|
@ -634,7 +638,7 @@ return;
|
||||||
void dt_newfnc (UNIT *uptr, int32 newsta)
|
void dt_newfnc (UNIT *uptr, int32 newsta)
|
||||||
{
|
{
|
||||||
int32 fnc, dir, blk, unum, relpos, newpos;
|
int32 fnc, dir, blk, unum, relpos, newpos;
|
||||||
uint32 oldpos;
|
t_addr oldpos;
|
||||||
|
|
||||||
oldpos = uptr->pos; /* save old pos */
|
oldpos = uptr->pos; /* save old pos */
|
||||||
if (dt_setpos (uptr)) /* update pos */
|
if (dt_setpos (uptr)) /* update pos */
|
||||||
|
@ -645,7 +649,7 @@ dir = DTS_GETMOT (uptr->STATE) & DTS_DIR;
|
||||||
unum = (int32) (uptr - dt_dev.units);
|
unum = (int32) (uptr - dt_dev.units);
|
||||||
if (oldpos == uptr->pos)
|
if (oldpos == uptr->pos)
|
||||||
uptr->pos = uptr->pos + (dir? -1: 1);
|
uptr->pos = uptr->pos + (dir? -1: 1);
|
||||||
blk = DT_LIN2BL (uptr->pos, uptr);
|
blk = (int32)DT_LIN2BL (uptr->pos, uptr);
|
||||||
|
|
||||||
if (dir? DT_QREZ (uptr): DT_QFEZ (uptr)) { /* wrong ez? */
|
if (dir? DT_QREZ (uptr): DT_QFEZ (uptr)) { /* wrong ez? */
|
||||||
dt_seterr (uptr, STA_END); /* set ez flag, stop */
|
dt_seterr (uptr, STA_END); /* set ez flag, stop */
|
||||||
|
@ -791,7 +795,7 @@ else uptr->pos = uptr->pos + delta;
|
||||||
if (((int32) uptr->pos < 0) ||
|
if (((int32) uptr->pos < 0) ||
|
||||||
((int32) uptr->pos > (DTU_FWDEZ (uptr) + DT_EZLIN))) {
|
((int32) uptr->pos > (DTU_FWDEZ (uptr) + DT_EZLIN))) {
|
||||||
detach_unit (uptr); /* off reel? */
|
detach_unit (uptr); /* off reel? */
|
||||||
uptr->STATE = uptr->pos = 0;
|
uptr->STATE = 0, uptr->pos = 0;
|
||||||
unum = (int32) (uptr - dt_dev.units);
|
unum = (int32) (uptr - dt_dev.units);
|
||||||
if ((unum == CSR_GETUNIT (tccm)) && (CSR_GETFNC (tccm) != FNC_STOP))
|
if ((unum == CSR_GETUNIT (tccm)) && (CSR_GETFNC (tccm) != FNC_STOP))
|
||||||
dt_seterr (uptr, STA_SEL); /* error */
|
dt_seterr (uptr, STA_SEL); /* error */
|
||||||
|
@ -864,7 +868,7 @@ if (DT_QEZ (uptr)) { /* in end zone? */
|
||||||
dt_seterr (uptr, STA_END); /* end zone error */
|
dt_seterr (uptr, STA_END); /* end zone error */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
blk = DT_LIN2BL (uptr->pos, uptr); /* get block # */
|
blk = (int32)DT_LIN2BL (uptr->pos, uptr); /* get block # */
|
||||||
|
|
||||||
switch (fnc) { /* at speed, check fnc */
|
switch (fnc) { /* at speed, check fnc */
|
||||||
|
|
||||||
|
@ -876,7 +880,7 @@ switch (fnc) { /* at speed, check fnc *
|
||||||
|
|
||||||
case DTS_OFR: /* off reel */
|
case DTS_OFR: /* off reel */
|
||||||
detach_unit (uptr); /* must be deselected */
|
detach_unit (uptr); /* must be deselected */
|
||||||
uptr->STATE = uptr->pos = 0; /* no visible action */
|
uptr->STATE = 0, uptr->pos = 0; /* no visible action */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Read
|
/* Read
|
||||||
|
@ -1142,6 +1146,8 @@ return auto_config (0, 0);
|
||||||
|
|
||||||
/* Device bootstrap */
|
/* Device bootstrap */
|
||||||
|
|
||||||
|
#if defined (VM_PDP11)
|
||||||
|
|
||||||
#define BOOT_START 02000 /* start */
|
#define BOOT_START 02000 /* start */
|
||||||
#define BOOT_ENTRY (BOOT_START + 002) /* entry */
|
#define BOOT_ENTRY (BOOT_START + 002) /* entry */
|
||||||
#define BOOT_UNIT (BOOT_START + 010) /* unit number */
|
#define BOOT_UNIT (BOOT_START + 010) /* unit number */
|
||||||
|
@ -1191,6 +1197,7 @@ static const uint16 boot_rom[] = {
|
||||||
t_stat dt_boot (int32 unitno, DEVICE *dptr)
|
t_stat dt_boot (int32 unitno, DEVICE *dptr)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
extern uint16 *M; /* memory */
|
||||||
|
|
||||||
dt_unit[unitno].pos = DT_EZLIN;
|
dt_unit[unitno].pos = DT_EZLIN;
|
||||||
for (i = 0; i < BOOT_LEN; i++)
|
for (i = 0; i < BOOT_LEN; i++)
|
||||||
|
@ -1201,6 +1208,15 @@ cpu_set_boot (BOOT_ENTRY);
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
t_stat dt_boot (int32 unitno, DEVICE *dptr)
|
||||||
|
{
|
||||||
|
return SCPE_NOFNC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Attach routine
|
/* Attach routine
|
||||||
|
|
||||||
Determine 12b, 16b, or 18b/36b format
|
Determine 12b, 16b, or 18b/36b format
|
||||||
|
@ -1235,7 +1251,7 @@ if ((sim_switches & SIM_SW_REST) == 0) { /* not from rest? */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uptr->capac = DTU_CAPAC (uptr); /* set capacity */
|
uptr->capac = DTU_CAPAC (uptr); /* set capacity */
|
||||||
uptr->filebuf = calloc (uptr->capac, sizeof (uint32));
|
uptr->filebuf = calloc ((size_t)uptr->capac, sizeof (uint32));
|
||||||
if (uptr->filebuf == NULL) { /* can't alloc? */
|
if (uptr->filebuf == NULL) { /* can't alloc? */
|
||||||
detach_unit (uptr);
|
detach_unit (uptr);
|
||||||
return SCPE_MEM;
|
return SCPE_MEM;
|
||||||
|
@ -1279,7 +1295,7 @@ else if (uptr->flags & UNIT_11FMT) { /* 16b? */
|
||||||
uptr->hwmark = ba;
|
uptr->hwmark = ba;
|
||||||
} /* end elif */
|
} /* end elif */
|
||||||
else uptr->hwmark = fxread (uptr->filebuf, sizeof (uint32),
|
else uptr->hwmark = fxread (uptr->filebuf, sizeof (uint32),
|
||||||
uptr->capac, uptr->fileref);
|
(size_t)uptr->capac, uptr->fileref);
|
||||||
uptr->flags = uptr->flags | UNIT_BUF; /* set buf flag */
|
uptr->flags = uptr->flags | UNIT_BUF; /* set buf flag */
|
||||||
uptr->pos = DT_EZLIN; /* beyond leader */
|
uptr->pos = DT_EZLIN; /* beyond leader */
|
||||||
uptr->LASTT = sim_grtime (); /* last pos update */
|
uptr->LASTT = sim_grtime (); /* last pos update */
|
||||||
|
@ -1352,7 +1368,7 @@ if (sim_is_active (uptr)) { /* active? cancel op */
|
||||||
if (tccm & CSR_IE)
|
if (tccm & CSR_IE)
|
||||||
SET_INT (DTA);
|
SET_INT (DTA);
|
||||||
}
|
}
|
||||||
uptr->STATE = uptr->pos = 0;
|
uptr->STATE = 0, uptr->pos = 0;
|
||||||
}
|
}
|
||||||
if (uptr->hwmark && ((uptr->flags & UNIT_RO) == 0)) { /* any data? */
|
if (uptr->hwmark && ((uptr->flags & UNIT_RO) == 0)) { /* any data? */
|
||||||
sim_printf ("%s%d: writing buffer to file\n", sim_dname (&dt_dev), u);
|
sim_printf ("%s%d: writing buffer to file\n", sim_dname (&dt_dev), u);
|
||||||
|
|
|
@ -255,6 +255,8 @@ typedef struct {
|
||||||
|
|
||||||
/* Interrupt assignments; within each level, priority is right to left */
|
/* Interrupt assignments; within each level, priority is right to left */
|
||||||
|
|
||||||
|
#define INT_V_DTA 0 /* BR6 */
|
||||||
|
|
||||||
#define INT_V_DZRX 0 /* BR5 */
|
#define INT_V_DZRX 0 /* BR5 */
|
||||||
#define INT_V_DZTX 1
|
#define INT_V_DZTX 1
|
||||||
#define INT_V_HK 2
|
#define INT_V_HK 2
|
||||||
|
@ -279,6 +281,7 @@ typedef struct {
|
||||||
#define INT_V_TDRX 6
|
#define INT_V_TDRX 6
|
||||||
#define INT_V_TDTX 7
|
#define INT_V_TDTX 7
|
||||||
|
|
||||||
|
#define INT_DTA (1u << INT_V_DTA)
|
||||||
#define INT_DZRX (1u << INT_V_DZRX)
|
#define INT_DZRX (1u << INT_V_DZRX)
|
||||||
#define INT_DZTX (1u << INT_V_DZTX)
|
#define INT_DZTX (1u << INT_V_DZTX)
|
||||||
#define INT_HK (1u << INT_V_HK)
|
#define INT_HK (1u << INT_V_HK)
|
||||||
|
@ -302,6 +305,7 @@ typedef struct {
|
||||||
#define INT_TDRX (1u << INT_V_TDRX)
|
#define INT_TDRX (1u << INT_V_TDRX)
|
||||||
#define INT_TDTX (1u << INT_V_TDTX)
|
#define INT_TDTX (1u << INT_V_TDTX)
|
||||||
|
|
||||||
|
#define IPL_DTA (0x16 - IPL_HMIN)
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
#define IPL_HK (0x15 - IPL_HMIN)
|
#define IPL_HK (0x15 - IPL_HMIN)
|
||||||
|
|
|
@ -39,6 +39,7 @@ extern DEVICE uba_dev;
|
||||||
extern DEVICE clk_dev;
|
extern DEVICE clk_dev;
|
||||||
extern DEVICE tmr_dev;
|
extern DEVICE tmr_dev;
|
||||||
extern DEVICE tti_dev, tto_dev;
|
extern DEVICE tti_dev, tto_dev;
|
||||||
|
extern DEVICE dt_dev;
|
||||||
extern DEVICE td_dev;
|
extern DEVICE td_dev;
|
||||||
extern DEVICE tdc_dev;
|
extern DEVICE tdc_dev;
|
||||||
extern DEVICE cr_dev;
|
extern DEVICE cr_dev;
|
||||||
|
@ -65,6 +66,7 @@ DEVICE *sim_devices[] = {
|
||||||
&tmr_dev,
|
&tmr_dev,
|
||||||
&tti_dev,
|
&tti_dev,
|
||||||
&tto_dev,
|
&tto_dev,
|
||||||
|
&dt_dev,
|
||||||
&td_dev,
|
&td_dev,
|
||||||
&tdc_dev,
|
&tdc_dev,
|
||||||
&dz_dev,
|
&dz_dev,
|
||||||
|
|
|
@ -297,6 +297,8 @@ typedef struct {
|
||||||
|
|
||||||
/* Interrupt assignments; within each level, priority is right to left */
|
/* Interrupt assignments; within each level, priority is right to left */
|
||||||
|
|
||||||
|
#define INT_V_DTA 0 /* BR6 */
|
||||||
|
|
||||||
#define INT_V_DZRX 0 /* BR5 */
|
#define INT_V_DZRX 0 /* BR5 */
|
||||||
#define INT_V_DZTX 1
|
#define INT_V_DZTX 1
|
||||||
#define INT_V_HK 2
|
#define INT_V_HK 2
|
||||||
|
@ -320,6 +322,7 @@ typedef struct {
|
||||||
#define INT_V_TDRX 6
|
#define INT_V_TDRX 6
|
||||||
#define INT_V_TDTX 7
|
#define INT_V_TDTX 7
|
||||||
|
|
||||||
|
#define INT_DTA (1u << INT_V_DTA)
|
||||||
#define INT_DZRX (1u << INT_V_DZRX)
|
#define INT_DZRX (1u << INT_V_DZRX)
|
||||||
#define INT_DZTX (1u << INT_V_DZTX)
|
#define INT_DZTX (1u << INT_V_DZTX)
|
||||||
#define INT_HK (1u << INT_V_HK)
|
#define INT_HK (1u << INT_V_HK)
|
||||||
|
@ -342,6 +345,7 @@ typedef struct {
|
||||||
#define INT_TDRX (1u << INT_V_TDRX)
|
#define INT_TDRX (1u << INT_V_TDRX)
|
||||||
#define INT_TDTX (1u << INT_V_TDTX)
|
#define INT_TDTX (1u << INT_V_TDTX)
|
||||||
|
|
||||||
|
#define IPL_DTA (0x16 - IPL_HMIN)
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
#define IPL_HK (0x15 - IPL_HMIN)
|
#define IPL_HK (0x15 - IPL_HMIN)
|
||||||
|
|
|
@ -40,6 +40,7 @@ extern DEVICE mba_dev[MBA_NUM];
|
||||||
extern DEVICE clk_dev;
|
extern DEVICE clk_dev;
|
||||||
extern DEVICE tmr_dev;
|
extern DEVICE tmr_dev;
|
||||||
extern DEVICE tti_dev, tto_dev;
|
extern DEVICE tti_dev, tto_dev;
|
||||||
|
extern DEVICE dt_dev;
|
||||||
extern DEVICE td_dev;
|
extern DEVICE td_dev;
|
||||||
extern DEVICE tdc_dev;
|
extern DEVICE tdc_dev;
|
||||||
extern DEVICE cr_dev;
|
extern DEVICE cr_dev;
|
||||||
|
@ -69,6 +70,7 @@ DEVICE *sim_devices[] = {
|
||||||
&tmr_dev,
|
&tmr_dev,
|
||||||
&tti_dev,
|
&tti_dev,
|
||||||
&tto_dev,
|
&tto_dev,
|
||||||
|
&dt_dev,
|
||||||
&td_dev,
|
&td_dev,
|
||||||
&tdc_dev,
|
&tdc_dev,
|
||||||
&dz_dev,
|
&dz_dev,
|
||||||
|
|
|
@ -311,6 +311,8 @@ typedef struct {
|
||||||
|
|
||||||
/* Interrupt assignments; within each level, priority is right to left */
|
/* Interrupt assignments; within each level, priority is right to left */
|
||||||
|
|
||||||
|
#define INT_V_DTA 0 /* BR6 */
|
||||||
|
|
||||||
#define INT_V_DZRX 0 /* BR5 */
|
#define INT_V_DZRX 0 /* BR5 */
|
||||||
#define INT_V_DZTX 1
|
#define INT_V_DZTX 1
|
||||||
#define INT_V_HK 2
|
#define INT_V_HK 2
|
||||||
|
@ -334,6 +336,7 @@ typedef struct {
|
||||||
#define INT_V_TDRX 6
|
#define INT_V_TDRX 6
|
||||||
#define INT_V_TDTX 7
|
#define INT_V_TDTX 7
|
||||||
|
|
||||||
|
#define INT_DTA (1u << INT_V_DTA)
|
||||||
#define INT_DZRX (1u << INT_V_DZRX)
|
#define INT_DZRX (1u << INT_V_DZRX)
|
||||||
#define INT_DZTX (1u << INT_V_DZTX)
|
#define INT_DZTX (1u << INT_V_DZTX)
|
||||||
#define INT_HK (1u << INT_V_HK)
|
#define INT_HK (1u << INT_V_HK)
|
||||||
|
@ -356,6 +359,7 @@ typedef struct {
|
||||||
#define INT_TDRX (1u << INT_V_TDRX)
|
#define INT_TDRX (1u << INT_V_TDRX)
|
||||||
#define INT_TDTX (1u << INT_V_TDTX)
|
#define INT_TDTX (1u << INT_V_TDTX)
|
||||||
|
|
||||||
|
#define IPL_DTA (0x16 - IPL_HMIN)
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
#define IPL_HK (0x15 - IPL_HMIN)
|
#define IPL_HK (0x15 - IPL_HMIN)
|
||||||
|
|
|
@ -48,6 +48,7 @@ extern DEVICE clk_dev;
|
||||||
extern DEVICE tmr_dev;
|
extern DEVICE tmr_dev;
|
||||||
extern DEVICE tti_dev, tto_dev;
|
extern DEVICE tti_dev, tto_dev;
|
||||||
extern DEVICE fl_dev;
|
extern DEVICE fl_dev;
|
||||||
|
extern DEVICE dt_dev;
|
||||||
extern DEVICE tdc_dev;
|
extern DEVICE tdc_dev;
|
||||||
extern DEVICE cr_dev;
|
extern DEVICE cr_dev;
|
||||||
extern DEVICE lpt_dev;
|
extern DEVICE lpt_dev;
|
||||||
|
@ -78,6 +79,7 @@ DEVICE *sim_devices[] = {
|
||||||
&tti_dev,
|
&tti_dev,
|
||||||
&tto_dev,
|
&tto_dev,
|
||||||
&fl_dev,
|
&fl_dev,
|
||||||
|
&dt_dev,
|
||||||
&tdc_dev,
|
&tdc_dev,
|
||||||
&dz_dev,
|
&dz_dev,
|
||||||
&vh_dev,
|
&vh_dev,
|
||||||
|
|
|
@ -341,6 +341,8 @@ typedef struct {
|
||||||
|
|
||||||
/* Interrupt assignments; within each level, priority is right to left */
|
/* Interrupt assignments; within each level, priority is right to left */
|
||||||
|
|
||||||
|
#define INT_V_DTA 0 /* BR6 */
|
||||||
|
|
||||||
#define INT_V_DZRX 0 /* BR5 */
|
#define INT_V_DZRX 0 /* BR5 */
|
||||||
#define INT_V_DZTX 1
|
#define INT_V_DZTX 1
|
||||||
#define INT_V_HK 2
|
#define INT_V_HK 2
|
||||||
|
@ -364,6 +366,7 @@ typedef struct {
|
||||||
#define INT_V_TDRX 6
|
#define INT_V_TDRX 6
|
||||||
#define INT_V_TDTX 7
|
#define INT_V_TDTX 7
|
||||||
|
|
||||||
|
#define INT_DTA (1u << INT_V_DTA)
|
||||||
#define INT_DZRX (1u << INT_V_DZRX)
|
#define INT_DZRX (1u << INT_V_DZRX)
|
||||||
#define INT_DZTX (1u << INT_V_DZTX)
|
#define INT_DZTX (1u << INT_V_DZTX)
|
||||||
#define INT_HK (1u << INT_V_HK)
|
#define INT_HK (1u << INT_V_HK)
|
||||||
|
@ -386,6 +389,7 @@ typedef struct {
|
||||||
#define INT_TDRX (1u << INT_V_TDRX)
|
#define INT_TDRX (1u << INT_V_TDRX)
|
||||||
#define INT_TDTX (1u << INT_V_TDTX)
|
#define INT_TDTX (1u << INT_V_TDTX)
|
||||||
|
|
||||||
|
#define IPL_DTA (0x16 - IPL_HMIN)
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
#define IPL_HK (0x15 - IPL_HMIN)
|
#define IPL_HK (0x15 - IPL_HMIN)
|
||||||
|
|
|
@ -48,6 +48,7 @@ extern DEVICE clk_dev;
|
||||||
extern DEVICE tmr_dev;
|
extern DEVICE tmr_dev;
|
||||||
extern DEVICE tti_dev, tto_dev;
|
extern DEVICE tti_dev, tto_dev;
|
||||||
extern DEVICE rlcs_dev;
|
extern DEVICE rlcs_dev;
|
||||||
|
extern DEVICE dt_dev;
|
||||||
extern DEVICE tdc_dev;
|
extern DEVICE tdc_dev;
|
||||||
extern DEVICE cr_dev;
|
extern DEVICE cr_dev;
|
||||||
extern DEVICE lpt_dev;
|
extern DEVICE lpt_dev;
|
||||||
|
@ -77,6 +78,7 @@ DEVICE *sim_devices[] = {
|
||||||
&tti_dev,
|
&tti_dev,
|
||||||
&tto_dev,
|
&tto_dev,
|
||||||
&rlcs_dev,
|
&rlcs_dev,
|
||||||
|
&dt_dev,
|
||||||
&tdc_dev,
|
&tdc_dev,
|
||||||
&dz_dev,
|
&dz_dev,
|
||||||
&vh_dev,
|
&vh_dev,
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
#define STOP_BOOT 12 /* reboot (780) */
|
#define STOP_BOOT 12 /* reboot (780) */
|
||||||
#define STOP_UNKNOWN 13 /* unknown reason */
|
#define STOP_UNKNOWN 13 /* unknown reason */
|
||||||
#define STOP_UNKABO 14 /* unknown abort */
|
#define STOP_UNKABO 14 /* unknown abort */
|
||||||
|
#define STOP_DTOFF 15 /* DECtape off reel */
|
||||||
#define ABORT_INTR -1 /* interrupt */
|
#define ABORT_INTR -1 /* interrupt */
|
||||||
#define ABORT_MCHK (-SCB_MCHK) /* machine check */
|
#define ABORT_MCHK (-SCB_MCHK) /* machine check */
|
||||||
#define ABORT_RESIN (-SCB_RESIN) /* rsvd instruction */
|
#define ABORT_RESIN (-SCB_RESIN) /* rsvd instruction */
|
||||||
|
|
|
@ -99,7 +99,8 @@ const char *sim_stop_messages[] = {
|
||||||
"Software done",
|
"Software done",
|
||||||
"Reboot request failed",
|
"Reboot request failed",
|
||||||
"Unknown error",
|
"Unknown error",
|
||||||
"Unknown abort code"
|
"Unknown abort code",
|
||||||
|
"DECtape off reel"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Dispatch/decoder table
|
/* Dispatch/decoder table
|
||||||
|
|
|
@ -229,6 +229,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_ry.c"
|
RelativePath="..\PDP11\pdp11_ry.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_tc.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_td.c"
|
RelativePath="..\PDP11\pdp11_td.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -233,6 +233,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_ry.c"
|
RelativePath="..\PDP11\pdp11_ry.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_tc.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_td.c"
|
RelativePath="..\PDP11\pdp11_td.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -238,6 +238,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_ry.c"
|
RelativePath="..\PDP11\pdp11_ry.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_tc.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_td.c"
|
RelativePath="..\PDP11\pdp11_td.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -238,6 +238,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_ry.c"
|
RelativePath="..\PDP11\pdp11_ry.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_tc.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_td.c"
|
RelativePath="..\PDP11\pdp11_td.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -813,7 +813,7 @@ VAX730_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\
|
||||||
$(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\
|
$(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\
|
||||||
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_HK.C,\
|
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_HK.C,\
|
||||||
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
||||||
$(PDP11_DIR)PDP11_DUP.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
$(PDP11_DIR)PDP11_TC.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
||||||
.IFDEF ALPHA_OR_IA64
|
.IFDEF ALPHA_OR_IA64
|
||||||
VAX730_OPTIONS = /INCL=($(SIMH_DIR),$(VAX730_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
VAX730_OPTIONS = /INCL=($(SIMH_DIR),$(VAX730_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
||||||
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_730=1")
|
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_730=1")
|
||||||
|
@ -844,7 +844,7 @@ VAX750_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\
|
||||||
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_HK.C,\
|
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_HK.C,\
|
||||||
$(PDP11_DIR)PDP11_RP.C,$(PDP11_DIR)PDP11_TU.C,\
|
$(PDP11_DIR)PDP11_RP.C,$(PDP11_DIR)PDP11_TU.C,\
|
||||||
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
||||||
$(PDP11_DIR)PDP11_DUP.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
$(PDP11_DIR)PDP11_TC.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
||||||
.IFDEF ALPHA_OR_IA64
|
.IFDEF ALPHA_OR_IA64
|
||||||
VAX750_OPTIONS = /INCL=($(SIMH_DIR),$(VAX750_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
VAX750_OPTIONS = /INCL=($(SIMH_DIR),$(VAX750_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
||||||
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_750=1")
|
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_750=1")
|
||||||
|
@ -875,7 +875,7 @@ VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\
|
||||||
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\
|
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\
|
||||||
$(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\
|
$(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\
|
||||||
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
||||||
$(PDP11_DIR)PDP11_DUP.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
$(PDP11_DIR)PDP11_TC.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
||||||
.IFDEF ALPHA_OR_IA64
|
.IFDEF ALPHA_OR_IA64
|
||||||
VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
||||||
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_780=1")
|
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_780=1")
|
||||||
|
@ -906,7 +906,7 @@ VAX8600_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\
|
||||||
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\
|
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\
|
||||||
$(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\
|
$(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\
|
||||||
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
$(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
|
||||||
$(PDP11_DIR)PDP11_DUP.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
$(PDP11_DIR)PDP11_TC.C,$(PDP11_DIR)PDP11_IO_LIB.C
|
||||||
.IFDEF ALPHA_OR_IA64
|
.IFDEF ALPHA_OR_IA64
|
||||||
VAX8600_OPTIONS = /INCL=($(SIMH_DIR),$(VAX8600_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
VAX8600_OPTIONS = /INCL=($(SIMH_DIR),$(VAX8600_DIR),$(PDP11_DIR)$(PCAP_INC))\
|
||||||
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_860=1")
|
/DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_860=1")
|
||||||
|
|
10
makefile
10
makefile
|
@ -970,7 +970,7 @@ VAX = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c ${VAXD}/vax_io.c \
|
||||||
${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \
|
${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \
|
||||||
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
|
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
|
||||||
${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_cr.c \
|
${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_cr.c \
|
||||||
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c
|
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_dt.c ${PDP11D}/pdp11_io_lib.c
|
||||||
VAX_OPT = -DVM_VAX -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS}
|
VAX_OPT = -DVM_VAX -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT} ${VIDEO_CCDEFS} ${VIDEO_LDFLAGS}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1010,7 +1010,7 @@ VAX730 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
|
||||||
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
|
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
|
||||||
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
||||||
${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c \
|
${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c \
|
||||||
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_dup.c ${PDP11D}/pdp11_io_lib.c
|
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_tc.c ${PDP11D}/pdp11_io_lib.c
|
||||||
VAX730_OPT = -DVM_VAX -DVAX_730 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
VAX730_OPT = -DVM_VAX -DVAX_730 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1025,7 +1025,7 @@ VAX750 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
|
||||||
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
||||||
${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c \
|
${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c \
|
||||||
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
||||||
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c
|
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_tc.c ${PDP11D}/pdp11_io_lib.c
|
||||||
VAX750_OPT = -DVM_VAX -DVAX_750 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
VAX750_OPT = -DVM_VAX -DVAX_750 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1040,7 +1040,7 @@ VAX780 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
|
||||||
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
||||||
${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c \
|
${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c \
|
||||||
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
||||||
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c
|
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_tc.c ${PDP11D}/pdp11_io_lib.c
|
||||||
VAX780_OPT = -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
VAX780_OPT = -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1055,7 +1055,7 @@ VAX8600 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
|
||||||
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
|
||||||
${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c \
|
${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c \
|
||||||
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_dup.c \
|
||||||
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_io_lib.c
|
${PDP11D}/pdp11_td.c ${PDP11D}/pdp11_tc.c ${PDP11D}/pdp11_io_lib.c
|
||||||
VAX8600_OPT = -DVM_VAX -DVAX_860 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
VAX8600_OPT = -DVM_VAX -DVAX_860 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue