diff --git a/VAX/tests/VAX_MINIMUM_DIAGS.dsk b/VAX/tests/VAX_MINIMUM_DIAGS.dsk index c1e360f2..705ca616 100644 Binary files a/VAX/tests/VAX_MINIMUM_DIAGS.dsk and b/VAX/tests/VAX_MINIMUM_DIAGS.dsk differ diff --git a/VAX/tests/vax-diag_test.ini b/VAX/tests/vax-diag_test.ini index 99d2957b..ae13610b 100644 --- a/VAX/tests/vax-diag_test.ini +++ b/VAX/tests/vax-diag_test.ini @@ -60,6 +60,7 @@ else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instructi :DIAG_VAX730 :DIAG_VAX750 :DIAG_VAX780 +:DIAG_VAX8200 :DIAG_VAX8600 echo Running Hardware Core Test (EVKAA) if not exist evkaa.exe echof "\r\nMISSING - Diagnostic '%~p0evkaa.exe' is missing\n"; exit 1 @@ -95,8 +96,16 @@ expect "DS> " send "ATTACH KA780 SBI KA0 yes yes 0 0\r"; go -q expect "DS> " send "ATTACH DW780 SBI DW0 3 5\r"; go -q goto Common +:VAX8200 +# VAX 8200 Diagnostic Supervisor Setup for EVKAB/C/D/E +#expect "DS> " send "ATTACH KA820 HUB KA0 4096 0\r"; go -q +#expect "DS> " send "ATTACH DWBUA HUB DW0 4 5\r"; go -q +# Extended tests failing so skipped for now +echof "\n*** Diagnostic Supervisor tests SKIPPED ***\n" +exit 0 + :VAX8600 -# VAX 11/8600 Diagnostic Supervisor Setup for EVKAB/C/D/E +# VAX 8600 Diagnostic Supervisor Setup for EVKAB/C/D/E expect "DS> " send "ATTACH KA780 ABUS KA0 yes yes 0 0\r"; go -q expect "DS> " send "ATTACH DW780 ABUS DW0 3 5\r"; go -q goto Common diff --git a/VAX/vax820_bi.c b/VAX/vax820_bi.c index 69d5c5dd..f75e8977 100644 --- a/VAX/vax820_bi.c +++ b/VAX/vax820_bi.c @@ -518,6 +518,7 @@ for (p = ®table[0]; p->low != 0; p++) { if ((pa >= p->low) && (pa < p->high) && p->read) return p->read (pa); } +MACH_CHECK (MCHK_BIERR); /* machine check */ return 0; } @@ -637,6 +638,8 @@ t_stat r; if (!ptr || !*ptr) return SCPE_2FARG; +if ((ptr = get_sim_sw (ptr)) == NULL) /* get switches */ + return SCPE_INVSW; regptr = get_glyph (ptr, gbuf, 0); /* get glyph */ if ((slptr = strchr (gbuf, '/'))) { /* found slash? */ regptr = strchr (ptr, '/'); /* locate orig */ diff --git a/VAX/vax820_uba.c b/VAX/vax820_uba.c index 0479acc2..f3276054 100644 --- a/VAX/vax820_uba.c +++ b/VAX/vax820_uba.c @@ -258,8 +258,7 @@ if (ofs >= UBAMAP_OF) { /* map? */ if (idx >= UBA_NMAPR) /* valid? */ return SCPE_NXM; *val = uba_map[idx] & UBAMAP_RD; - if (DEBUG_PRI (uba_dev, UBA_DEB_MRD)) - fprintf (sim_deb, ">>UBA: map %d read, value = %X, PC = %X\n", idx, *val, fault_PC); + sim_debug (UBA_DEB_MRD, &uba_dev, "map %d read, value = %X, PC = %X\n", idx, *val, fault_PC); return SCPE_OK; } @@ -364,8 +363,7 @@ switch (ofs) { /* case on offset */ return SCPE_NXM; } -if (DEBUG_PRI (uba_dev, UBA_DEB_RRD)) - fprintf (sim_deb, ">>UBA: reg %d read, value = %X\n", ofs, *val); +sim_debug (UBA_DEB_RRD, &uba_dev, "reg %d read, value = %X, PC = %X\n", ofs, *val, fault_PC); return SCPE_OK; } @@ -384,8 +382,7 @@ if (ofs >= UBAMAP_OF) { /* map? */ if (idx >= UBA_NMAPR) /* valid? */ return SCPE_NXM; uba_map[idx] = val & UBAMAP_WR; - if (DEBUG_PRI (uba_dev, UBA_DEB_MWR)) - fprintf (sim_deb, ">>UBA: map %d write, value = %X, PC = %X\n", idx, val, fault_PC); + sim_debug (UBA_DEB_MWR, &uba_dev, "map %d write, value = %X, PC = %X\n", idx, val, fault_PC); return SCPE_OK; } @@ -452,8 +449,7 @@ switch (ofs) { /* case on offset */ return SCPE_NXM; } -if (DEBUG_PRI (uba_dev, UBA_DEB_RWR)) - fprintf (sim_deb, ">>UBA: reg %d write, value = %X\n", ofs, val); +sim_debug (UBA_DEB_RWR, &uba_dev, "reg %d write, value = %X, PC = %X\n", ofs, val, fault_PC); return SCPE_OK; } @@ -616,8 +612,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ pbc = VA_PAGSIZE - VA_GETOFF (ma); /* left in page */ if (pbc > (bc - i)) /* limit to rem xfr */ pbc = bc - i; - if (DEBUG_PRI (uba_dev, UBA_DEB_XFR)) - fprintf (sim_deb, ">>UBA: 8b read, ma = %X, bc = %X\n", ma, pbc); + sim_debug (UBA_DEB_XFR, &uba_dev, "8b read, ba = %X, ma = %X, bc = %X\n", ba, ma, pbc); if ((ma | pbc) & 3) { /* aligned LW? */ for (j = 0; j < pbc; ma++, j++) { /* no, do by bytes */ *buf++ = ReadB (ma); @@ -649,8 +644,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ pbc = VA_PAGSIZE - VA_GETOFF (ma); /* left in page */ if (pbc > (bc - i)) /* limit to rem xfr */ pbc = bc - i; - if (DEBUG_PRI (uba_dev, UBA_DEB_XFR)) - fprintf (sim_deb, ">>UBA: 16b read, ba = %X, ma = %X, bc = %X\n", ba, ma, pbc); + sim_debug (UBA_DEB_XFR, &uba_dev, "16b read, ba = %X, ma = %X, bc = %X\n", ba, ma, pbc); if ((ma | pbc) & 1) { /* aligned word? */ for (j = 0; j < pbc; ma++, j++) { /* no, do by bytes */ if ((i + j) & 1) { /* odd byte? */ @@ -688,8 +682,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ pbc = VA_PAGSIZE - VA_GETOFF (ma); /* left in page */ if (pbc > (bc - i)) /* limit to rem xfr */ pbc = bc - i; - if (DEBUG_PRI (uba_dev, UBA_DEB_XFR)) - fprintf (sim_deb, ">>UBA: 8b write, ma = %X, bc = %X\n", ma, pbc); + sim_debug (UBA_DEB_XFR, &uba_dev, "8b write, ba = %X, ma = %X, bc = %X\n", ba, ma, pbc); if ((ma | pbc) & 3) { /* aligned LW? */ for (j = 0; j < pbc; ma++, j++) { /* no, do by bytes */ WriteB (ma, *buf); @@ -722,8 +715,7 @@ for (i = 0; i < bc; i = i + pbc) { /* loop by pages */ pbc = VA_PAGSIZE - VA_GETOFF (ma); /* left in page */ if (pbc > (bc - i)) /* limit to rem xfr */ pbc = bc - i; - if (DEBUG_PRI (uba_dev, UBA_DEB_XFR)) - fprintf (sim_deb, ">>UBA: 16b write, ma = %X, bc = %X\n", ma, pbc); + sim_debug (UBA_DEB_XFR, &uba_dev, "16b write, ba = %X, ma = %X, bc = %X\n", ba, ma, pbc); if ((ma | pbc) & 1) { /* aligned word? */ for (j = 0; j < pbc; ma++, j++) { /* no, bytes */ if ((i + j) & 1) { @@ -818,7 +810,7 @@ if ((uba_csr & UBACSR_TO) == 0) { uba_adap_set_int (); } sim_debug (UBA_DEB_ERR, &uba_dev, - ">>UBA: nxm error, ua = %X, PC = %X\n", ua, fault_PC); + "nxm error, ua = %X, PC = %X\n", ua, fault_PC); return; } @@ -830,7 +822,7 @@ if ((uba_biic.ber & BIBER_BTO) == 0) { uba_adap_set_int (); } sim_debug (UBA_DEB_ERR, &uba_dev, - ">>UBA: BI nxm error, ba = %X, PC = %X\n", ba, fault_PC); + "BI nxm error, ba = %X, PC = %X\n", ba, fault_PC); return; } @@ -841,7 +833,7 @@ if ((uba_csr & UBACSR_IMR) == 0) { uba_adap_set_int (); } sim_debug (UBA_DEB_ERR, &uba_dev, - ">>UBA: inv map error, ublk = %X\n", ublk); + "inv map error, ublk = %X\n", ublk); return; } @@ -886,7 +878,7 @@ void uba_adap_set_int () if (uba_csr & UBACSR_EIE) { uba_int = 1; sim_debug (UBA_DEB_ERR, &uba_dev, - ">>UBA: adapter int req, csr = %X\n", uba_csr); + "adapter int req, csr = %X\n", uba_csr); } return; }