VAX420: Added ROM patch to correct boot problem on MicroVAX 3100 M10/M20
This commit is contained in:
parent
0dff31427f
commit
650cfd4864
5 changed files with 16422 additions and 16401 deletions
BIN
VAX/ka41a.bin
BIN
VAX/ka41a.bin
Binary file not shown.
24
VAX/ka41a_patch.com
Normal file
24
VAX/ka41a_patch.com
Normal 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
|
||||||
|
$
|
|
@ -1022,9 +1022,6 @@ if (*rom == 0) { /* no boot? */
|
||||||
#if defined (VAX_41A) || defined (VAX_41D)
|
#if defined (VAX_41A) || defined (VAX_41D)
|
||||||
rom_wr_B (ROMBASE+4, sys_model ? 2 : 1); /* Set Magic Byte to determine system type */
|
rom_wr_B (ROMBASE+4, sys_model ? 2 : 1); /* Set Magic Byte to determine system type */
|
||||||
#endif
|
#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 */
|
for (i = 0; i < OR_COUNT; i++) /* unmap all option ROMs */
|
||||||
or_unmap (i);
|
or_unmap (i);
|
||||||
for (i = 0; (cdptr = sim_devices[i]) != NULL; i++) { /* loop over all devices */
|
for (i = 0; (cdptr = sim_devices[i]) != NULL; i++) { /* loop over all devices */
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#ifndef ROM_vax_ka41a_bin_H
|
#ifndef ROM_vax_ka41a_bin_H
|
||||||
#define ROM_vax_ka41a_bin_H 0
|
#define ROM_vax_ka41a_bin_H 0
|
||||||
/*
|
/*
|
||||||
VAX/vax_ka41a_bin.h produced at Wed May 24 01:30:06 2017
|
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 24 00:30:06 2017
|
from VAX/ka41a.bin which was last modified at Wed May 8 00:41:29 2019
|
||||||
file size: 262144 (0x40000) - checksum: 0xFECBAC7B
|
file size: 262144 (0x40000) - checksum: 0xFECBAD2E
|
||||||
This file is a generated file and should NOT be edited or changed by hand.
|
This file is a generated file and should NOT be edited or changed by hand.
|
||||||
*/
|
*/
|
||||||
#define BOOT_CODE_SIZE 0x40000
|
#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,
|
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,
|
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,
|
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,
|
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,
|
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,
|
0x18,0x01,0x07,0x1C,0x01,0x1F,0x20,0x01,0x0C,0x24,0x00,0x63,0xFF,0x00,0x00,0xC0,
|
||||||
|
|
|
@ -46,7 +46,7 @@ struct ROM_File_Descriptor {
|
||||||
{"VAX/ka410.bin", "VAX/vax_ka410_bin.h", 262144, 0xFEDA0B61, "vax_ka410_bin"},
|
{"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/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/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/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/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"},
|
{"VAX/ka42b.bin", "VAX/vax_ka42b_bin.h", 262144, 0xFECBB2EF, "vax_ka42b_bin"},
|
||||||
|
|
Loading…
Add table
Reference in a new issue