From e0225c336a5ab022dee9b90bbe31aa3ed9245c65 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 11 Apr 2013 08:45:07 -0700 Subject: [PATCH] Added boot from console floppy support to the VAX780 simulator (Changed console floppy device name from RXC to CS) --- VAX/vax780_defs.h | 1 + VAX/vax780_sbi.c | 10 +++++++--- VAX/vax780_stddev.c | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/VAX/vax780_defs.h b/VAX/vax780_defs.h index 5f00d0fc..8da9cc7b 100644 --- a/VAX/vax780_defs.h +++ b/VAX/vax780_defs.h @@ -389,6 +389,7 @@ typedef struct { #define BOOT_RL 2 #define BOOT_UDA 17 #define BOOT_TK 18 +#define BOOT_CS 64 /* Function prototypes for virtual memory interface */ diff --git a/VAX/vax780_sbi.c b/VAX/vax780_sbi.c index f9b02e51..1f86f824 100644 --- a/VAX/vax780_sbi.c +++ b/VAX/vax780_sbi.c @@ -123,6 +123,7 @@ static struct boot_dev boot_tab[] = { { "RQC", BOOT_UDA, 1 << 24 }, { "RQD", BOOT_UDA, 1 << 24 }, { "TQ", BOOT_TK, 1 << 24 }, + { "CS", BOOT_CS, 0 }, { NULL } }; @@ -652,6 +653,7 @@ t_stat vax780_boot_parse (int32 flag, char *ptr) char gbuf[CBUFSIZE]; char *slptr, *regptr; int32 i, r5v, unitno; +uint32 ba; DEVICE *dptr; UNIT *uptr; DIB *dibp; @@ -669,7 +671,9 @@ if ((dptr == NULL) || (uptr == NULL)) return SCPE_ARG; dibp = (DIB *) dptr->ctxt; /* get DIB */ if (dibp == NULL) - return SCPE_ARG; + ba = 0; +else + ba = dibp->ba; unitno = (int32) (uptr - dptr->units); r5v = 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) { R[0] = boot_tab[i].code; if (dptr->flags & DEV_MBUS) { - R[1] = dibp->ba + TR_MBA0; + R[1] = ba + TR_MBA0; R[2] = unitno; } else { 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[4] = 0; diff --git a/VAX/vax780_stddev.c b/VAX/vax780_stddev.c index f04da634..4e1d809a 100644 --- a/VAX/vax780_stddev.c +++ b/VAX/vax780_stddev.c @@ -25,7 +25,7 @@ tti console input tto console output - rx console floppy + cs console floppy todr TODR clock tmr interval timer @@ -405,7 +405,7 @@ MTAB fl_mod[] = { }; 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, NULL, NULL, &fl_reset, NULL, NULL, NULL,