VAX420: Added ROM patch to correct boot problem on MicroVAX 3100 M10/M20

This commit is contained in:
Matt Burke 2019-05-08 01:02:54 +01:00
parent 0dff31427f
commit 650cfd4864
5 changed files with 16422 additions and 16401 deletions

Binary file not shown.

24
VAX/ka41a_patch.com Normal file
View file

@ -0,0 +1,24 @@
$!
$! This procedure patches KA41A.BIN (V1.6) Boot ROM image to work under
$! the SIMH simulator
$!
$ PATCH /ABSOLUTE /NEW_VERSION /OUTPUT=KA41A.BIN KA41A_ORIG.BIN
!
! Test D - NVR
!
! - This appears to be a bug in the ROM code, which
! causes an endless loop if the NVR is not initialised.
! The subroutine loops until a particular value is found
! in the SIE register however the SIE is a constant and
! never matches the expected value. There are no other
! exit conditions from this loop. The KA41-D V1.0 ROM
! has the same subroutine however the loop is exited
! when the expected value is not found in the SIE.
!
REPLACE/INSTRUCTION 0284C = 'BNEQ 0000280E'
'BNEQ 0000285B'
EXIT
!
UPDATE
EXIT
$

View file

@ -1022,9 +1022,6 @@ if (*rom == 0) { /* no boot? */
#if defined (VAX_41A) || defined (VAX_41D)
rom_wr_B (ROMBASE+4, sys_model ? 2 : 1); /* Set Magic Byte to determine system type */
#endif
#if defined (VAX_41A)
rom_wr_B (ROMBASE+7, 8); /* ROM goes into endless loop without this? */
#endif
for (i = 0; i < OR_COUNT; i++) /* unmap all option ROMs */
or_unmap (i);
for (i = 0; (cdptr = sim_devices[i]) != NULL; i++) { /* loop over all devices */

View file

@ -1,9 +1,9 @@
#ifndef ROM_vax_ka41a_bin_H
#define ROM_vax_ka41a_bin_H 0
/*
VAX/vax_ka41a_bin.h produced at Wed May 24 01:30:06 2017
from VAX/ka41a.bin which was last modified at Wed May 24 00:30:06 2017
file size: 262144 (0x40000) - checksum: 0xFECBAC7B
VAX/vax_ka41a_bin.h produced at Wed May 8 00:58:51 2019
from VAX/ka41a.bin which was last modified at Wed May 8 00:41:29 2019
file size: 262144 (0x40000) - checksum: 0xFECBAD2E
This file is a generated file and should NOT be edited or changed by hand.
*/
#define BOOT_CODE_SIZE 0x40000
@ -654,7 +654,7 @@ unsigned char vax_ka41a_bin[] = {
0x55,0x78,0x02,0x55,0x55,0xD0,0x55,0x81,0xF5,0x54,0xF3,0xAA,0x8F,0x00,0x02,0x9F,
0x3C,0x00,0x0B,0x20,0xD4,0x51,0xF0,0x02,0x06,0x02,0x51,0xF0,0x02,0x02,0x02,0x51,
0xF0,0x01,0x08,0x01,0x51,0xB0,0x51,0x9F,0x38,0x00,0x0B,0x20,0xB0,0x8F,0xD8,0x00,
0x9F,0xBC,0x00,0x0B,0x20,0x91,0x9F,0x07,0x00,0x04,0x20,0x08,0x12,0xC0,0xF0,0x8F,
0x9F,0xBC,0x00,0x0B,0x20,0x91,0x9F,0x07,0x00,0x04,0x20,0x08,0x12,0x0D,0xF0,0x8F,
0xD0,0x00,0x00,0x00,0x02,0x08,0x9F,0xAB,0x00,0x0B,0x20,0xBA,0x3E,0x05,0x00,0x00,
0x3B,0x04,0x00,0x3B,0x08,0x00,0x3B,0x0C,0x00,0x3B,0x10,0x00,0x17,0x14,0x00,0x17,
0x18,0x01,0x07,0x1C,0x01,0x1F,0x20,0x01,0x0C,0x24,0x00,0x63,0xFF,0x00,0x00,0xC0,

View file

@ -46,7 +46,7 @@ struct ROM_File_Descriptor {
{"VAX/ka410.bin", "VAX/vax_ka410_bin.h", 262144, 0xFEDA0B61, "vax_ka410_bin"},
{"VAX/ka411.bin", "VAX/vax_ka411_bin.h", 262144, 0xFECB7EE3, "vax_ka411_bin"},
{"VAX/ka412.bin", "VAX/vax_ka412_bin.h", 262144, 0xFED96BB4, "vax_ka412_bin"},
{"VAX/ka41a.bin", "VAX/vax_ka41a_bin.h", 262144, 0xFECBAC7B, "vax_ka41a_bin"},
{"VAX/ka41a.bin", "VAX/vax_ka41a_bin.h", 262144, 0xFECBAD2E, "vax_ka41a_bin"},
{"VAX/ka41d.bin", "VAX/vax_ka41d_bin.h", 262144, 0xFECB8513, "vax_ka41d_bin"},
{"VAX/ka42a.bin", "VAX/vax_ka42a_bin.h", 262144, 0xFED8967F, "vax_ka42a_bin"},
{"VAX/ka42b.bin", "VAX/vax_ka42b_bin.h", 262144, 0xFECBB2EF, "vax_ka42b_bin"},