From 63a39369dc857fdb83ba9c2c2746c8166307fb82 Mon Sep 17 00:00:00 2001 From: Matt Burke Date: Thu, 16 May 2019 22:12:40 +0100 Subject: [PATCH] VAX8200: Hardware core test (EVKAA) now passing --- VAX/tests/VAX_MINIMUM_DIAGS.dsk | Bin 1228800 -> 1228800 bytes VAX/tests/vax-diag_test.ini | 11 ++++++++++- VAX/vax820_bi.c | 3 +++ VAX/vax820_uba.c | 32 ++++++++++++-------------------- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/VAX/tests/VAX_MINIMUM_DIAGS.dsk b/VAX/tests/VAX_MINIMUM_DIAGS.dsk index c1e360f2085ed39c810706787fa6e11040b49dc4..705ca6162bc8d56749232d2606dc0b06c653cfb3 100644 GIT binary patch delta 62955 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 delta 291 zcmZo@@NQ`E-f)~{^FtPS=7|YXlQ@)w1N?m)6@cKwnH5tUV)9?lwcNa2aRJ*&MmF;U z3=9naC$n%xPv+y6o2diGc;AmOa_OL zWoh#)H&5QpEIWBFpZ4Shd^}7JN4GOJar|Gr-CzNm8FQN&XPX*Vn;LhU8c&-VZ<`ul Rn;L(cnn0VH;4(F#Speb#PPYI6 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; }