Added boot from console floppy support to the VAX780 simulator (Changed console floppy device name from RXC to CS)
This commit is contained in:
parent
798d1239f1
commit
e0225c336a
3 changed files with 10 additions and 5 deletions
|
@ -389,6 +389,7 @@ typedef struct {
|
||||||
#define BOOT_RL 2
|
#define BOOT_RL 2
|
||||||
#define BOOT_UDA 17
|
#define BOOT_UDA 17
|
||||||
#define BOOT_TK 18
|
#define BOOT_TK 18
|
||||||
|
#define BOOT_CS 64
|
||||||
|
|
||||||
/* Function prototypes for virtual memory interface */
|
/* Function prototypes for virtual memory interface */
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,7 @@ static struct boot_dev boot_tab[] = {
|
||||||
{ "RQC", BOOT_UDA, 1 << 24 },
|
{ "RQC", BOOT_UDA, 1 << 24 },
|
||||||
{ "RQD", BOOT_UDA, 1 << 24 },
|
{ "RQD", BOOT_UDA, 1 << 24 },
|
||||||
{ "TQ", BOOT_TK, 1 << 24 },
|
{ "TQ", BOOT_TK, 1 << 24 },
|
||||||
|
{ "CS", BOOT_CS, 0 },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -652,6 +653,7 @@ t_stat vax780_boot_parse (int32 flag, char *ptr)
|
||||||
char gbuf[CBUFSIZE];
|
char gbuf[CBUFSIZE];
|
||||||
char *slptr, *regptr;
|
char *slptr, *regptr;
|
||||||
int32 i, r5v, unitno;
|
int32 i, r5v, unitno;
|
||||||
|
uint32 ba;
|
||||||
DEVICE *dptr;
|
DEVICE *dptr;
|
||||||
UNIT *uptr;
|
UNIT *uptr;
|
||||||
DIB *dibp;
|
DIB *dibp;
|
||||||
|
@ -669,7 +671,9 @@ if ((dptr == NULL) || (uptr == NULL))
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
dibp = (DIB *) dptr->ctxt; /* get DIB */
|
dibp = (DIB *) dptr->ctxt; /* get DIB */
|
||||||
if (dibp == NULL)
|
if (dibp == NULL)
|
||||||
return SCPE_ARG;
|
ba = 0;
|
||||||
|
else
|
||||||
|
ba = dibp->ba;
|
||||||
unitno = (int32) (uptr - dptr->units);
|
unitno = (int32) (uptr - dptr->units);
|
||||||
r5v = 0;
|
r5v = 0;
|
||||||
if ((strncmp (regptr, "/R5:", 4) == 0) ||
|
if ((strncmp (regptr, "/R5:", 4) == 0) ||
|
||||||
|
@ -694,12 +698,12 @@ for (i = 0; boot_tab[i].name != NULL; i++) {
|
||||||
if (strcmp (dptr->name, boot_tab[i].name) == 0) {
|
if (strcmp (dptr->name, boot_tab[i].name) == 0) {
|
||||||
R[0] = boot_tab[i].code;
|
R[0] = boot_tab[i].code;
|
||||||
if (dptr->flags & DEV_MBUS) {
|
if (dptr->flags & DEV_MBUS) {
|
||||||
R[1] = dibp->ba + TR_MBA0;
|
R[1] = ba + TR_MBA0;
|
||||||
R[2] = unitno;
|
R[2] = unitno;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
R[1] = TR_UBA;
|
R[1] = TR_UBA;
|
||||||
R[2] = boot_tab[i].let | (dibp->ba & UBADDRMASK);
|
R[2] = boot_tab[i].let | (ba & UBADDRMASK);
|
||||||
}
|
}
|
||||||
R[3] = unitno;
|
R[3] = unitno;
|
||||||
R[4] = 0;
|
R[4] = 0;
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
tti console input
|
tti console input
|
||||||
tto console output
|
tto console output
|
||||||
rx console floppy
|
cs console floppy
|
||||||
todr TODR clock
|
todr TODR clock
|
||||||
tmr interval timer
|
tmr interval timer
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ MTAB fl_mod[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
DEVICE fl_dev = {
|
DEVICE fl_dev = {
|
||||||
"RXC", &fl_unit, fl_reg, fl_mod,
|
"CS", &fl_unit, fl_reg, fl_mod,
|
||||||
1, DEV_RDX, 20, 1, DEV_RDX, 8,
|
1, DEV_RDX, 20, 1, DEV_RDX, 8,
|
||||||
NULL, NULL, &fl_reset,
|
NULL, NULL, &fl_reset,
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
|
|
Loading…
Add table
Reference in a new issue