DISK DRIVE EMULATION
My logic is now reliably establishing the link between the Arduino and 1130 fpga, thus my focus turns to ensuring that the initial seek loads all eight sectors of cylinder zero to the fpga. There is quite a bit of logic to debug in all this. I will start with the protocol itself for a seek message to the Arduino. Next, if the state in the Arduino is correct, I will verify that the eight cache load transactions proceed properly and result in eight buffers with the appropriate contents.
First, I debugged the logic that loads the entire virtual disk cartridge from flash into the ramboard. With that working properly and the contents verified, I moved on to test the ability of the fpga and Arduino to get each cylinder down into the hardware after a seek. The fpga was configured to indicate the steps in the protocol sequence on the seven segment display, allowing me to quickly see where the fpga side believed it was and compare that to what the Arduino thinks is happening.
What I discovered is that the reliable link establishment went flaky after the SD card shield and ramboard had been active a while. Not sure if I have hardware that is failing to put the MISO line back in high impedance when it stops transmitting or some logical state corruption of the SPI hardware, but something is causing problems.
First I made some changes that ensure the SPI hardware has its status and inbound byte cleared before we start sending data, but that had no effect. I backed off on the speed of the SPI link, cutting it in half in order to see if the link behaved any better. Another diagnostic mechanism I added was adding signals to the seven segment display to show the state of the SPI process as well as the current step in the protocol for the machine.
With all of that and the scope configured to trigger on the clock pulse train while overlaying the MOSI and MISO lines, it was clear that MISO is not driving up from the ground state, thus delivering zero values back to the Arduino. There was a short on the ramboard which was pulling down the line, quick work to fix.
The link partly works - but data flow up to the Arduino on MISO is unreliable. I believe this is due to the 3.3V logic levels from the fpga on this line which don't have the noise immunity and wide tolerance that a 5V signal would have. The Arduino is operating with 5V logic levels and thus can misread the fpga logical 1 level as a 0. The solution is a logic level upconverter, a simple matter to whip up and join the logic level downconverter that scales the 5V incoming signals down to the fpga's 3.3V domain.
IO SELECTRIC REHABILITATION
I began the slow and careful process of reassembly of the typewriter mechanism, after which I can make all the adjustments which I disturbed by the removal. I do have a couple of parts to replace or repair.
A member of the golfball typewriters forum suggested a way I can rescue the mainspring which has a broken end. Heating the metal will remove the temper, allowing me to bend it into the hook shape that secures it in the housing.
A spring broke, but it looks pretty normal - should be easy to find a close enough match. I just won the paper bail (hold-down) handle on ebay, to replace the handle that was snapped off, and expect that part within a week.
I have the operational shaft in place, but not adjusted at all yet. The rotate tape needs some work - it seems to have slipped off the pulley inside the carrier - but this appears straightforward. I continued to lubricate and work out any crud or corrosion in every moving linkage or wheel, getting everything loose and moving properly.
The rotate tape is a very fiddly and frustrating attachment, as it requires one hand to hold the ball mount rotated to the point where the tape attachment is visible, a second hand to hold the ball mount tilted to loosen the tilt tape out of the way, a third hand to position the springy rotate tape where it needs to be, and a fourth hand to push the tape end into its slot. Having only two hands, I am not doing so well at this but will keep at it until it is reattached and properly threaded.
I am using some surgical clamps to stand in for two of the required 'hands', which helps quite a lot but doesn't quite suffice to make the reattachment easy. I think I will need to unthread it completely, start it from the front and then continue threading around the pulley and out. I am not sure if the rotate spring is broken or working correctly, so that has to be investigated while I have the rotate tape disconnected.
Saturday I received the replacement paper bail handle and installed it - a perfect fit. The rotate spring is in good shape but the rotate tape still needs to be installed into the carrier and routed through the pulleys on the sides of the machine.
The carrier return cable popped off the carrier but was reattached without much trouble, once I discovered what post it mated with underneath the carrier. Given that, I could install the twin cable systems - carrier return and escapement movement - then lock the beveled gear on the mainspring shaft. However, during the struggles with this, the end of the rotate tape that had been attached came loose. Drat.
Prior to threading the rotate tape AGAIN, I will reinstall the shift pulley mechanism to have this ready for adjustments. As well as juggling the six other hands that are needed to get the two cords - for escapement and carrier return - threaded and properly tensioned. The latter is the issue, as there is a spring loaded pulley that will pop off if not held under some tension, while two pulleys are kept loose and turned, the several other pulleys that the cords run through must keep the cord in their grooves, the teeth of some gears must mesh, and a couple of other simultaneous thrusts too tedious to describe are also applied. Four people would have trouble keeping all these simultaneous actions coordinated.
I begin working through all the adjustments for the typewriter mechanism at this point, while hooking up the demonic tapes/cords, getting the mechanism ready to test out under power.
DIGITAL GAME MUSEUM
Priorities for the site include providing a much better donations page, correcting a few small errors, switching to a better theme and appearance, and then adding content. The test system is almost online - a few adjustments to the firewall to allow testers to access this from outside, and one more pass to be sure the content matches the live site.
The firewall modifications are made but we don't have a faithful copy of the production site yet. Soon this will be in place and testing can begin. The permi ssions we have to the main site aren't sufficient to copy down all the contents but we should have this fixed by Tuesday or Wednesday after a scheduled meeting of museum staff and volunteers.
However, the donation page is almost revamped - the top priority task for the museum - and will be activated soon. We can continue testing various changes to the existing site without having our test server fully operational.