Wednesday, July 22, 2020

Progress on 3174 restoration, beginning check out of my TEST mode for 3174 substitute, and fighting Hercules weirdness

PREPARING THE GOTEK FOR ATTACHMENT TO THE IBM 3174 CONTROLLER

The Gotek is a floppy disk emulator box that uses a USB drive to hold diskette images and serves them up over the 34 wire IDC connector used by PCs for floppy drives. The firmware that comes with the Gotek is inadequate to handle the needs of the IBM 3174 controller, but the open source FlashFloppy code can replace the standard firmware.

In order to flash a new version of firmware into the STM32 processor inside the Gotek, I needed to set up the drive and connect it via a USB-TTL Serial adapter, then use the ST loader software to write the new firmware. The Gotek comes with locations for header pins to use the serial adapter to reflash code, but it is shipped with holes on the PCB. I had to first solder in header strips before I made the connections. They are shown inside the red circled area below.


I then  installed the covers but had access to the header pins for my flash update connections. One jumper provides 3.3V to the flash chip on the board for reprogramming. Tx and Rx pins were connected by cables to my USB Serial device, and the drive power connector was used to provide +5V to the unit.


I did the wiring, plugged in my USB serial adapter, then started the ST imaging software. It was straightforward to select the .hex file with the new firmware image and write it to the board. I knew it worked properly because upon power-up the board displays F-F to indicate that FlashFloppy is the active firmware.

I set up the USB drive with the diskette images (Control and Utility) that the 3174 Controller needs for its operation. I can see that the Gotek sees the two, numbered as 0 and 1. They can be selected by the buttons on the front of the Gotek drive. 

I have one more hardware modification to make to the Gotek, soldering a diode across two of the 14 pins on the header strips in the upper middle of the picture above. That provides a drive ready signal when this drive (S1) is selected by the 3174. 

I must wait until the PCB card edge to 34 pin IDC adapter arrives, so that it can be hooked up and accessed for IML of the controller. I expect this Monday evening.

TESTING BEGINS ON THE TEST MODE FOR 3174 SUBSTITUTE

IBM's 3174 Controller provides a suite of tests that can be requested by an attached terminal. Some help test the terminal starting the tests, others examine the controller or other terminals it is handling. These are invoked by holding the ALT key and pushing the TEST key. 

The status line (Operator Information Area) should switch to show TEST in columns 3 to 6, the screen is cleared and simple commands issued on the terminal invoke the various tests. It also has a menu based system that can be invoked to select the tests.

The general format of the commands are /T,S,1,2 where T is the test number, S is a subtest for those that have multiple functions, and the remainder are parameters for those commands that require them. For example, a test might need the specific hardware group (HG) and port number (PN) to localize the test to one device.

I made changes throughout Andrew Kay's oec code to implement a portion of the test functionality. Many tests pertain to internal implementation details or hardware components of the real 3174 that don't have relevance for the oec 3174 substitute. However, I can provide some of the tests with simulated results. The main purpose here is to replicate the experience of using test mode. 

To test, I have to fire up a copy of MVS 3.8 on the Hercules mainframe emulator and connect to it with my 3178 terminal using oec, all before I can put it into test mode and debug. I discovered a few small issues as it initialized, but I was unable to connect to MVS at all which frustrated further testing. 

HERCULES - WTF

Hercules runs on my Windows 10 laptop and has been acting increasingly erratic. Tonight, multiple tries to start up Hercules resulted in spurious permission errors, each time on different files that represent virtual 370 peripherals. 

I also saw alerts that a file TUNTAP32.DLL was not found, which I have to deal with. The result of all of these errors was that I couldn't get the virtual mainframe to come up and wait for the tn3270 connection from my testing setup. 

Google searches don't show errors similar to his newer than 2010 in the early days of running Hercules on Windows 7. Therefore this isn't a known widespread issue but also not a known issue with a quick fix. 

No comments:

Post a Comment