mirror of
https://github.com/simh/simh.git
synced 2026-03-02 09:47:40 +00:00
Merge branch 'KDP' of https://github.com/simh/simh into KDP
This commit is contained in:
@@ -660,10 +660,6 @@ typedef struct pdp_dib DIB;
|
||||
#define IOLN_XU 010
|
||||
#define IOBA_DMR (IO_UBA3 + 0764000) /* DMR11 */
|
||||
#define IOLN_DMR 010
|
||||
#define IOBA_DUP (IO_UBA3 + 0760300) /* DUP11 */
|
||||
#define IOLN_DUP 010
|
||||
#define IOBA_KMC (IO_UBA3 + 0760540) /* KMC11 */
|
||||
#define IOLN_KMC 010
|
||||
#define IOBA_CR (IO_UBA3 + 0777160) /* CD/CR/CM */
|
||||
#define IOLN_CR 010
|
||||
#define IOBA_RY (IO_UBA3 + 0777170) /* RX211 */
|
||||
|
||||
@@ -961,6 +961,12 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */
|
||||
{0017550}, {0070} }, /* PC11 reader - fx CSR, fx VEC */
|
||||
{ { "PTP" }, 1, 1, 0, 0,
|
||||
{0017554}, {0074} }, /* PC11 punch - fx CSR, fx VEC */
|
||||
{ { "KMC" }, 1, 2, 0, 0,
|
||||
{0000540}, {0540} }, /* KMC11 - fx CSR, fx VEC */
|
||||
{ { "DUP0" }, 1, 2, 0, 0,
|
||||
{0000300}, {0300} }, /* DUP11 sync - fx CSR, fx VEC */
|
||||
{ { "DUP1" }, 1, 2, 0, 0,
|
||||
{0000310}, {0310} }, /* DUP11 sync - fx CSR, fx VEC */
|
||||
#else
|
||||
{ { "QBA" }, 1, 0, 0, 0,
|
||||
{017500} }, /* doorbell - fx CSR, no VEC */
|
||||
|
||||
@@ -599,6 +599,8 @@ typedef struct pdp_dib DIB;
|
||||
#define INT_V_RC 17
|
||||
#define INT_V_DMCRX 18
|
||||
#define INT_V_DMCTX 19
|
||||
#define INT_V_KMCA 20
|
||||
#define INT_V_KMCB 21
|
||||
|
||||
#define INT_V_PIR4 0 /* BR4 */
|
||||
#define INT_V_TTI 1
|
||||
@@ -644,6 +646,8 @@ typedef struct pdp_dib DIB;
|
||||
#define INT_RC (1u << INT_V_RC)
|
||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||
#define INT_KMCA (1u << INT_V_KMCA)
|
||||
#define INT_KMCB (1u << INT_V_KMCB)
|
||||
#define INT_PIR4 (1u << INT_V_PIR4)
|
||||
#define INT_TTI (1u << INT_V_TTI)
|
||||
#define INT_TTO (1u << INT_V_TTO)
|
||||
@@ -692,6 +696,8 @@ typedef struct pdp_dib DIB;
|
||||
#define IPL_RC 5
|
||||
#define IPL_DMCRX 5
|
||||
#define IPL_DMCTX 5
|
||||
#define IPL_KMCA 5
|
||||
#define IPL_KMCB 5
|
||||
#define IPL_PTR 4
|
||||
#define IPL_PTP 4
|
||||
#define IPL_TTI 4
|
||||
|
||||
@@ -440,14 +440,14 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */
|
||||
{ { NULL }, 1, 2, 0, 8,
|
||||
{012400} }, /* KW11W */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* DU11 */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* DUP11 */
|
||||
{ { "DUP0", "DUP1" },1, 2, 8, 8 }, /* DUP11 */
|
||||
{ { NULL }, 1, 3, 0, 8,
|
||||
{015000, 015040, 015100, 015140, }}, /* DV11 */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* LK11A */
|
||||
{ { "DMC0", "DMC1", "DMC2", "DMC3" },
|
||||
1, 2, 8, 8 }, /* DMC11 */
|
||||
{ { "DZ" }, 1, 2, 8, 8 }, /* DZ11 */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* KMC11 */
|
||||
{ { "KMC" }, 1, 2, 8, 8 }, /* KMC11 */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* LPP11 */
|
||||
{ { NULL }, 1, 2, 8, 8 }, /* VMV21 */
|
||||
{ { NULL }, 1, 2, 16, 8 }, /* VMV31 */
|
||||
|
||||
@@ -29,7 +29,24 @@
|
||||
** We don't implement buffer flushing.
|
||||
*/
|
||||
|
||||
#include "pdp11_kdp.h"
|
||||
#if defined (VM_PDP10) /* PDP10 version */
|
||||
#include "pdp10_defs.h"
|
||||
|
||||
#elif defined (VM_VAX) /* VAX version */
|
||||
#include "vax_defs.h"
|
||||
|
||||
#else /* PDP-11 version */
|
||||
#include "pdp11_defs.h"
|
||||
#endif
|
||||
|
||||
#define KMC_RDX 8
|
||||
#define DUP_RDX 8
|
||||
|
||||
extern int32 IREQ (HLVL);
|
||||
extern int32 tmxr_poll; /* calibrated delay */
|
||||
extern int32 clk_tps; /* clock ticks per second */
|
||||
extern int32 tmr_poll; /* instructions per tick */
|
||||
|
||||
#include "sim_tmxr.h"
|
||||
|
||||
#define DF_CMD 0001 /* Print commands. */
|
||||
@@ -40,8 +57,6 @@
|
||||
#define DF_TRC 0040 /* Detailed trace. */
|
||||
#define DF_INF 0100 /* Info */
|
||||
|
||||
extern int32 int_req;
|
||||
|
||||
//t_stat sync_open(int* retval, char* cptr)
|
||||
//{
|
||||
// return SCPE_OK;
|
||||
@@ -291,7 +306,9 @@ DEBTAB kmc_debug[] = {
|
||||
|
||||
/* KMC11 data structs: */
|
||||
|
||||
DIB kmc_dib = { IOBA_KMC, IOLN_KMC, &kmc_rd, &kmc_wr, 2, IVCL (KMCA), VEC_KMCA, {&kmc_rxint, &kmc_txint} };
|
||||
#define IOLN_KMC 010
|
||||
|
||||
DIB kmc_dib = { IOBA_AUTO, IOLN_KMC, &kmc_rd, &kmc_wr, 2, IVCL (KMCA), VEC_AUTO, {&kmc_rxint, &kmc_txint} };
|
||||
|
||||
UNIT kmc_unit = { UDATA (&kmc_svc, 0, 0) };
|
||||
|
||||
@@ -327,13 +344,15 @@ DEVICE kmc_dev =
|
||||
1, KMC_RDX, 13, 1, KMC_RDX, 8,
|
||||
NULL, NULL, &kmc_reset,
|
||||
NULL, NULL, NULL, &kmc_dib,
|
||||
DEV_UBUS | DEV_DEBUG, 0, kmc_debug
|
||||
DEV_UBUS | DEV_DISABLE | DEV_DIS | DEV_DEBUG, 0, kmc_debug
|
||||
};
|
||||
|
||||
/* DUP11 data structs: */
|
||||
|
||||
DIB dup0_dib = { IOBA_DUP, IOLN_DUP, &dup_rd, &dup_wr, 0 };
|
||||
DIB dup1_dib = { IOBA_DUP + IOLN_DUP, IOLN_DUP, &dup_rd, &dup_wr, 0 };
|
||||
#define IOLN_DUP 010
|
||||
|
||||
DIB dup0_dib = { IOBA_AUTO, IOLN_DUP, &dup_rd, &dup_wr, 0 };
|
||||
DIB dup1_dib = { IOBA_AUTO, IOLN_DUP, &dup_rd, &dup_wr, 0 };
|
||||
|
||||
UNIT dup_unit[MAXDUP] = {
|
||||
{ UDATA (&dup_svc, UNIT_ATTABLE, 0) },
|
||||
@@ -1248,7 +1267,8 @@ t_stat dup_reset(DEVICE* dptr)
|
||||
// }
|
||||
// firsttime = FALSE; /* Once-only init done now. */
|
||||
//}
|
||||
return SCPE_OK;
|
||||
|
||||
return auto_config (dptr->name, (dptr->flags & DEV_DIS)? 0: 1 ); /* auto config */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1262,7 +1282,7 @@ t_stat kmc_reset(DEVICE* dptr)
|
||||
kmc_sel4 = 0;
|
||||
kmc_sel6 = 0;
|
||||
|
||||
return SCPE_OK;
|
||||
return auto_config (dptr->name, (dptr->flags & DEV_DIS)? 0: 1 ); /* auto config */
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -103,6 +103,8 @@ extern DEVICE xu_dev, xub_dev;
|
||||
extern DEVICE ke_dev;
|
||||
extern DEVICE kg_dev;
|
||||
extern DEVICE dmc_dev[];
|
||||
extern DEVICE kmc_dev;
|
||||
extern DEVICE dup_dev[];
|
||||
extern UNIT cpu_unit;
|
||||
extern REG cpu_reg[];
|
||||
extern uint16 *M;
|
||||
@@ -171,6 +173,9 @@ DEVICE *sim_devices[] = {
|
||||
&dmc_dev[1],
|
||||
&dmc_dev[2],
|
||||
&dmc_dev[3],
|
||||
&kmc_dev,
|
||||
&dup_dev[0],
|
||||
&dup_dev[1],
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -239,6 +239,10 @@
|
||||
RelativePath="..\PDP11\pdp11_io_lib.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\PDP11\pdp11_kdp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\PDP11\pdp11_ke.c"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user