mirror of
https://github.com/simh/simh.git
synced 2026-01-26 04:01:38 +00:00
VAX420: Added ROM patch to correct boot problem on MicroVAX 3100 M10/M20
This commit is contained in:
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)
|
||||
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 */
|
||||
|
||||
32794
VAX/vax_ka41a_bin.h
32794
VAX/vax_ka41a_bin.h
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user