From a0bdd14810716a113ffe2ee089ba09ab61775c35 Mon Sep 17 00:00:00 2001 From: Josh Dersch Date: Wed, 22 May 2019 10:16:57 +0200 Subject: [PATCH] Fix for VMS bootstrap (sanity check was violated, we now log the case rather than aborting). Fixed interrupt behavior (docs around the IE flag at init are vague -- looks like IE controls interrupts only during the initialization; afterwards interrupts are always enabled regardless.) V8 Research Unix now boots (tested on VAX-11/750). --- 10.02_devices/2_src/mscp_drive.cpp | 4 ++-- 10.02_devices/2_src/uda.cpp | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/10.02_devices/2_src/mscp_drive.cpp b/10.02_devices/2_src/mscp_drive.cpp index 64710f4..4d07a45 100644 --- a/10.02_devices/2_src/mscp_drive.cpp +++ b/10.02_devices/2_src/mscp_drive.cpp @@ -178,8 +178,8 @@ void mscp_drive_c::SetOnline() // Once online, the drive's type and image cannot be changed until // the drive is offline. // - type_name.readonly = true; - image_filepath.readonly = true; + // type_name.readonly = true; + // image_filepath.readonly = true; } // diff --git a/10.02_devices/2_src/uda.cpp b/10.02_devices/2_src/uda.cpp index 2bf9dcc..ff97897 100644 --- a/10.02_devices/2_src/uda.cpp +++ b/10.02_devices/2_src/uda.cpp @@ -682,8 +682,9 @@ uda_c::PostResponse( // // If this happens it's likely fatal since we're not fragmenting responses (see the big comment // block above). So eat flaming death. + // Note: the VMS bootstrap does this, so we'll just log the issue. // - FATAL("Response buffer 0x%x > host buffer length 0x%x", response->MessageLength, messageLength); + DEBUG("Response buffer 0x%x > host buffer length 0x%x", response->MessageLength, messageLength); } // @@ -798,7 +799,7 @@ uda_c::GetControllerClassModel() void uda_c::Interrupt(void) { - if (_interruptEnable && _interruptVector != 0) + if ((_interruptEnable || _initStep == InitializationStep::Complete) && _interruptVector != 0) { interrupt(); }