Friday, April 4, 2025
Running IBM disk diagnostic 309 against the Virtual 2315 Cartridge Facility - part 4
Running IBM disk diagnostic 309 against the Virtual 2315 Cartridge Facility - part 3
- Access Go is raised to request a disk seek
- several milliseconds pass
- Access Ready is dropped
- Access Go is dropped by the disk controller
- perhaps 10 milliseconds elapse
- Access Ready is raised
Tuesday, April 1, 2025
Running IBM disk diagnostic 309 against the Virtual 2315 Cartridge Facility - part 2
Feeling a bit more confident in the IBM 1130 core memory
CE STORAGE DISPLAY FUNCTION OF THE MACHINE
The machine has a few switches intended to be used by the Customer Engineer who services the system. One of them is Storage Display. When turned on, pressing Prog Start has the machine loop continuously through memory reading each word. If there were a parity error it would stop the scan, otherwise it just runs forever until you press Imm Stop to turn off the run flag.
SHOOK MACHINE AND THUMPED CORE MEMORY COMPARTMENT WHILE SCANNING
While running the Storage Display, I jerked the machine around on its casters and even thumped atop the gate and compartment holding the core memory. No parity errors were detected which comforts me. I had feared there were intermittent connections, similar to the few I have already resolved, that would show up as new parity issues.
Monday, March 31, 2025
Running IBM disk diagnostic 309 against the Virtual 2315 Cartridge Facility - part 1
Final parts arrived so I could finish up the Power Distribution Board and second 2310 Interface Board
2310 INTERFACE BOARD WAS WAITING FOR ONE SCREW TERMINAL PART
When that arrived, the second board was completed and is ready to install in another 1130 system. This board has a relay that routes the Unlock lamp signal depending on whether the Virtual 2315 Cartridge Facility (V2315CF) is set to real or virtual mode. When in real mode, the 13SD disk drive in the IBM 1130 controls the Unlock signal, connected directly through to the 1130 console Unlock lamp. In virtual mode, however, the logic in the V2315CF determines when Unlock should light or be extinguished.
OLD POWER DISTRIBUTION BOARD PCB MODIFIED AND COMPLETED
The Power Distribution Board lacked a 10 screw terminal connector, but also had the defect that shorted the battery power due to a KiCAD quirk. Finally, I didn't like the trace width for the power traces. These two issues are corrected in the new version of the PCB that is currently being fabricated by JLCPCB.com
I cut the grounding copper traces on the power signal that was incorrectly grounded, restoring the intended operation. I also used discrete wire on the bottom to bolster the current carrying capacity of the power traces. This gave me a usable board but I will swap the parts over to the new PCB once it arrives.
Repair of IBM 1130 core memory with failure of bit 13 inhibit in lower 4K
ROLE OF INHIBIT WIRES
Core memory consists of a memory plane for each bit in a word. X and Y address lines select one core in a 2D grid on that plane. A third wire passes through each core, which IBM sometimes refers to as a Z wire. It is a wire that passes through all the cores on that plane, however, whereas a one X and one Y wire only cross in a single core.
Core memory is read by sending current in one direction (we will call this the Read direction) in one X and one Y wire. That current will try to flip the magnetic field of the core to an orientation we will call 0. The same Z wire that is used for inhibit is also used to sense the value of the core; if the core being addressed as previously magnetized in the 1 orientation, the flip of the magnetic field will produce a pulse in the sense/inhibit wire. Thus, we find out what is in a word by setting its bits to 0. This is called destructive read.
To write into core memory, we reverse the current direction (now we call this the Write direction) in one X and one Y wire. Where they cross, the core involved will be flipped to the 1 orientation. If we don't want to set the bit to 1, but instead want it to be zero, then we have to inhibit the flip of the core.
Magnetic cores have a threshold current that must be reached for its orientation to flip (to either 0 or 1 orientation). The current in an X or a Y line is less than the threshold. Thus, all the cores along the X or Y wire are not flipped except for the one that receives current from BOTH X and Y.
If we send a current in the Read direction through the sense/inhibit wire, the net current in the core is now below the threshold and it doesn't flip. A Read direction current in the sense/inhibit line while we have a Write direction current in X and Y results in the core being set to (actually remaining) the 0 orientation. No inhibit, the core is set to 1 orientation.
For engineering reasons, the core stack in an IBM 1130 is divided into four sections of 2K bits each. The upper and lower 4K have their own circuitry. Within a 4K section, however, the current loss due to resistance in the sense/inhibit wire during inhibit would be too great if it passed through all 4096 cores. Therefore, one wire runs through 2048 cores and a second wire runs through the other 2048 cores. One end of each of the two wires are connected together (called the common).
During a read, the sense/inhibit wire ends are connected to a differential detector. When a core flips during a read, the pulse is detected across the two ends, even if the common connection to ground was not high quality.
The use of three wires for sense/inhibit is important to understand because the common point is wired to ground, so that the inhibit current flows through the two wires to ground. The driver for inhibit switches on a transistor to conduct current through a wire to the ground (common), while a mirror driver conducts to send current through the other wire to ground.
Sense both ends see +6V conducting through the drive transistors, if there is no ground then there will be no current flow. It is only with a good ground at the common point that a current flows through the sense/inhibit wires and can block the flipping of the core.
The connection point for the sense/inhibit wire triplet is on the top or bottom of the core stack, as shown in this diagram. We are concerned about inhibit for bit 13 in the lower 4K of the core stack. The connections are circled in green. The three wires from bit plane 14 come out on the A side (top of the stack when installed in the machine). These are on the right as viewed from the front of the core stack.
Along the edges of the PCB at the base of the core stack, the portion closest to the SLT board upon which the stack is mounted, there are small S clips where the sense/inhibit wires are soldered. Counting from the right edge, looking down on the top of the core stack, clips 16, 17 and 18 carry the bit 13 signals from the two senses wires and the common wire, respectively. The wire triplets are white, blue and black - black for the common point.
THE FLAW WE ARE FIXING
The common connection for bit 13 has much too high a resistance. The fault, as with all the others, is in the PCB sandwich at the base of the core stack, where it routes the signals to connector blocks that project pins through the SLT board for connection to the electronics. This lack of a low resistance path to ground causes the sense/inhibit wires to have essentially no current during a write cycle, allowing the bit to always flip to a 1 state.
THE FIX
Since the common wire is ultimately connected to ground in the electronics, I can just cut the black wire from the edge S clip, add additional wire length to it, and bring it up to solder onto a ground pin on the SLT board. This will restore the path for current to flow when we inhibit a bit during a write.
However, the wire broke off the common terminals at the edge of the core plane. I had to solder a new wire onto it, which I then routed to a ground point. The memory is starting to accrete many bodge connections to compensate for failing traces inside the core stack - although not within core planes.
TESTING CORE SHOWS THE ISSUE IS RESOLVED
I wrote all zeroes across memory and read them back successfully. I also wrote all ones and that was correctly retrieved. This whacks the latest mole, so that until the next one pops up, I can get back to the disk drive functionality diagnostic testing. I did run some code for a while, with one random parity check popping up. This leads me to suspect that there are more flaky connections in the stack.
Sunday, March 30, 2025
More 'whack a mole' - memory issues crop up; did fix a few things
CORRECTED TEMPORARY WIRING FOR V2315CF
![]() |
Yellow circles where I removed the thermal relief connections |
Saturday, March 29, 2025
Laptop parts swap completed; fault in V2315CF power distribution board
FOUND AN ERROR IN THE V2315CF POWER DISTRIBUTION BOARD
I was rewiring the Virtual 2315 Cartridge Facility (V2315CF) with the final versions of the power related equipment, doing a bench test with everything connected to sanity check the operation before it was installed on the IBM 1130.
The power from the battery (and its permanently connected charger/maintainer) is connected to the V2315CF power supply through a ride-thru timer module. This module is powered by the battery, but its trigger is the incoming 12V from the IBM 1130. As long as the 12V is arriving from the IBM 1130, the timer keeps the connection to feed into the V2315CF power supply.
When the 12V from the 1130 drops, the timer retains the connection of the battery to the V2315CF for about 40 seconds, which will be long enough for the V2315CF to do an emergency unload and writeback of a virtual cartridge file if it was loaded when system power failed.
I had the timer wired in, the battery, and the V2315CF power supply. I had not yet connected the charger/maintainer when I tried the first test. With no simulated 12V from the 1130, the timer had disconnected the battery from the V2315CF power supply. When I provided 12V to the timer to make it activate, a trace quickly burned through on the Power Distribution board I was testing.
Some checking uncovered the fact that when the relay activates, it connects the battery input directly to ground! It also connects it to the V2315CF power supply, but ground wins in this contest. That is not correct.
I opened the KiCad design files and discovered an unintended connection of the terminal block screw 10 to ground. I had tied all the ground screws together and marked that net as ground. However, when I drew the line from screw terminal 10 to the power supply input diode, KiCad helpfully added a dot to the wire it was crossing to connect it to ground. It was only because the ground symbol was close enough to the horizontal line from screw 10 that it assumed they should connect.
I guess I didn't notice that because all the other even numbered screws are actually ground connections - 2, 4, 6, and 8 - so this wasn't visually different. However, it does mean that the board is not usable. I did a quick fix and sent it out the JLCPCB to fab a new set.
THE SECOND LENOVO LAPTOP ARRIVED TODAY AND I DID THE PARTS SWAP
I had ordered a "used, good as new" Lenovo Ideapad L340 17IRH gaming laptop from them through Amazon. I opened up both of them and exchanged the SSD, the Intel Wifi/Bluetooth module, and the RAM card. I changed the RAM because the replacement laptop only had 16MB installed while my original was a 32MB machine.
The 'new' machine is working great. I tested all my node locked software, no issues. It did meet my primary goal, which was as expedient a repair as possible with minimum downtime from my more important project goals.
Console printer ready and diagnostic program now running
DIAGNOSIS OF THE MISSING -TWR CB RESPONSE SIGNAL
The power cable to the typewriter - an SMS paddle card plugged into the base of the IBM 1130 - supplies 115VAC for the typewriter motor, +12V and +48V. The 48V passes through three sequential microswitches, which IBM terms circuit breakers (CBs). These are actuated by cams or other moving parts to break the connection during the active portion of some typewriter operation and restore it as it finishes. It is wired to the 1130 logic as the -Twr CB Response signal.
CB2 rides on a cam on the end of one shaft that only rotates during a print cycle - when the typeball is going to be slammed against the ribbon and paper to produce a printed character. The connection opens at approximately 20 degrees of movement and closes again at 120 degrees, out of 180 degrees that this particular shaft turns in a single print cycle.
Printing begins when the selection solenoids are activated, simultaneously tripping the print cycle clutch. The solenoids that were activated release an arm from a hook so that it is NOT pulled down by the print mechanism. These arms pivot levers that ultimately produce the rotation and tilting of the typeball as it is set up for printing.
The purpose of CB2 is to prevent any additional selection solenoid activations during this time when the ball is rotating and tilting for the initially selected print character. After the 120 degree point, the golf ball is locked into position, ready to fly forward toward the ribbon. All the mechanical motion from 120 to 180 occurs without regard to the arms that might be selected for the next print character.
In order to achieve the fastest possible print speeds, the computer could now trigger a new set of solenoids to select the next character to be typed. The print cycle clutch would remain tripped and as the first print cycle ended at 180 degrees the mechanism would just continue on, pulling on the arms that were not selected for the second print character, rotating and tilting to a new position, and preparing the ball for typing.
The only way to achieve the 16.5 character per second max rate is to have selected the next character before the prior one has mechanically completed. The controller logic in the IBM 1130 is blocked from activating the selection solenoids (and triggering the print cycle clutch) when the circuit for -TW CB Response is opened by CB2. As soon as CB2 closes again, it can activate solenoids.
CB5 is activated by the operational section, which involves a set of clutches that turn a mechanism 180 degrees when the clutch is tripped. That rotation is converted into vertical movement of a plate on the rear of the typewriter. As the plate is moving, CB5 opens at about 15 degrees of the operational clutch rotation and closes again at 105 degrees.
There are two operational clutches, which convert the continually turning shaft motion into a rotation. One of them turns a full 360 degrees - it is used for carrier return and line feed activation. The other is the one connected to CB5, which makes just one 180 degree turn each time it is tripped.
The 180 degree clutch is connected to three different solenoid activated linkages - tab, backspace, and space - which cause it to rotate. In addition to tripping the 180 degree clutch, each linkage will move a pivot arm under that vertically moving plate at the rear of the typewriter. If the pivot arm is under the plate, it is pulled down during the clutch cycle. CB5 is pushed open by an arm of the vertically moving plate.
For example, the space linkage, when pulled down, rotates a spring loaded hook down to grab and twist the space torque bar, with the hook pulling off the torque bar partway through the hook's downward movement. It is designed to impart a short twist to the space torque bar, which pops a tooth out of a rack temporarily on the carrier. The coil spring has tensioned a cord that tries to pull the carrier rightward at all times. The tooth is what stops the carrier from movement, so the temporary removal of the tooth lets the carrier slip to the right one rack space.
The operational unit functions - space, tab, return, etc - are independent of printing characters. It is important to block a new request from activating while mechanical motion is underway on a previous one. We don't want to space to the right while simultaneously driving the carrier to the left margin in a return operation.
Thus CB5 keeps the 1130 controller logic from activating any solenoids to drive the 180 degree operational clutch by opening for a portion of the clutch rotation. A different mechanism blocks the controller while the indeterminately long functions of a carrier return or a tab movement take place. These depend on the position of the carrier when it starts, and on the column where a tab stop is set in the case of a tab movement. The +Twr CR-LF-T Intlk signal handles this, routing +12V when these long functions are active.
The final CB in this chain is CB7, which blocks typing while a shift of the ball is occurring. The Selectric typeball has two hemispheres with 44 characters each. On a typewriter used for normal office purposes, we have both capital (upper case) and lower case versions of the 26 letters. One hemisphere of the ball is the upper case side, the other hemisphere is for lower case. When switching between the cases, the ball must be twisted 180 degrees by the shift mechanism.
The controller logic in the IBM 1130 keeps track of which hemisphere is current in use. If the next character to be printed is located on the other hemisphere, the logic first triggers a shift cycle to turn the ball. Once this is done, the logic then triggers the selection for the actual character we want printed.
Thus two cycles are needed when shifting between upper and lower case, rather than one. This drops the printing rate of the typewriter - at worst case its maximum would be a bit over 10 characters per second if every other character was on the opposite hemisphere. This is faster than simply half of 16.5 because of the overlap afforded by the timing of the CB signal.
The solenoid that triggers a shift between hemispheres is fired, and while the shift mechanism does its 180 degree rotation from one position to the other, a cam causes CB7 to open at 15 degrees of rotation and close at 115 degrees. This holds off the activation of any character selection solenoid and thus holds off a print cycle while it is open. The choice of 115 degrees allows the maximum safe overlap of a print cycle with the preceding shift cycle, maximizing print speed of the console printer.
In addition to the task of blocking solenoid activation while at sensitive points of mechanical motion in the typewriter, the signal is used to set the end of operation latch in the logic. This happens with a rising edge of the -Twr CB Response signal, as the CB involved restores the connection to 48V. If the signal does not drop during a print, shift or other operation, then it won't be detected as a rise.
When the operation complete latch is set, it also raises the request for an interrupt on level 4. The 1130 will branch into the interrupt handler, check the device status for the console printer, reset the operation complete condition during the XIO Sense DSW it used for the check, and branch out to clear the interrupt level. This normally triggers software to issue the next XIO Write to print another character or request another movement from the typewriter.
When the operation complete latch is not triggered, we don't get an interrupt request and the software that is driving the printer will stall. That is precisely what was happening with the console printer in this case. I had to determine why we were not seeing the signal dip and rise.
CB5 which I worked near is associated with space, backspace and tab operations driven by the 180 degree operational clutch. It remains closed otherwise and the signal dip would be caused by CB2 for a character printing (and possible CB7 if the ball had to be shifted between cases before the typing). This strongly suggested that I had not mechanically misadjusted CB5 to cause the problem.
I checked the presence of 48V going through CB2, CB5 and CB7. I checked for continuity of the -Twr CB Response line from those CBs back through a signal SMS paddle card into the IBM 1130 logic for the console printer. No 48V getting to the logic backplane.
I decided to track it through the three CBs and then down the cable. That was when I noticed that the cam for the shift mechanism, driving CB7, was in the wrong position. It was holding the contacts open while the ball was at rest, not while it shifted hemispheres.
REPAIR AND SUCCESSFUL OPERATION RESTORED
I could rotate the cam relative to the shift mechanism itself, but it should be anchored in one position to achieve the make and break degree positions defined for the CB. Here it is oriented as it should be resting when we are not in a shift cycle.
I removed the circlip and washer to expose the screw that sets the cam in place. The screw inside was indeed very loose.
I hand cranked the machine through shift cycles, varying the position of the cam, until it achieved the make and break timings we need for good operation. I then locked it in place with a bit of gorilla glue so that it won't work loose again.
FIRING UP DIAGNOSTIC MONITOR AND DISK FUNCTION TEST 309
Using the core memory loader function on this system, I loaded the core memory I had saved when I started the diagnostic monitor and the disk function test diagnostic on an IBM 1130 simulator, held at the point where I could start it up to test the Virtual 2315 Cartridge Facility. The machine was paused between instructions of the diagnostic monitor, which I could then resume by pushing Prog Start on the 1130 console.
Setting the console entry switches (CES) to 0181 and pushing the interrupt request key (IRQ) on the 1130 keyboard will ask the diagnostic monitor to restart the 309 diagnostic in paused mode. Turning CES to 8100 and hitting IRQ will select the 1130 internal disk drive for testing. Flipping CES to C10C and hitting IRQ informs the diagnostic that we are aware it will write patterns on many disk sectors because this is a test cartridge, not a live customer cartridge. Turning CES to 4100 and hitting IRQ selects the tests to run (all of them) and then choosing 01C0 in the CES will start the diagnostic when we hit IRQ.
As the diagnostic 309 is restarted and paused, we will get a printed line each time we hit IRQ informing us that the CES value was received and passed to the diagnostic. The final IRQ with CES at 01C0 prints the start message for the diagnostic (START 0309) then various informational (and possibly error) messages printed as the tests are performed.
Friday, March 28, 2025
1053 Console Printer has capacitor replaced - motor now working well - one small issue to debug
MOTOR NOW RUNS AT FULL STRENGTH
With a proper value capacitor wired correctly to the motor, it now starts up crisply and can maintain torque through the printing and movement operations of the 1053. The results were all I hoped for, with clean typing, tabbing, carrier returns and other operations.
The replacement was close enough to the original equipment part used by IBM that it fits into the existing bracket and available space.
RAN HAND LOOP TO SEND COMMANDS - DISCOVERED INTERRUPT NOT RAISED
If I reset the 1130, which sets the initial state of all the flipflops in the machine to their starting state, I can fire off one command to the typewriter, which it performs well but only that one will be accepted. The typewriter controller logic should raise interrupt level 4, presenting an operation complete status in the DSW, but it did not occur.
The logic for a print cycle which culminates in the interrupt request looks at a signal from the typewriter (-Twr CB Response) to tell it that the machinery has completed its movement. It won't accept a new command until the prior one is over, to avoid jamming the machinery with conflicting movements of parts that might occur from overlapping operations.
The -Twr CB Response signal is a series of three microswitches that are normally closed, delivering +48V to the controller logic. When the typewriter is in motion during operations, one of these is opened for the portion of the motion that can't be interrupted by new requests. The logic looks for the -Twr CB Response signal to drop from 48V to 0, then return to 48V as the operation is completed.
I did a very quick check as I was preparing to leave the shop for the day, testing continuity from the pin where -Twr CB Response enters the logic compartment going back to one of the three microswitches. It should have shown continuity, but there was no connection registered by the ohmmeter.
I expect this to be a relatively simple issue to find and fix, when I return to the shop tomorrow. One of the three microswitches is right next to the capacitor mounting position, thus I might have disturbed something during my work.
REMAINING ISSUES TO BE RESOLVED - SPACE AND FRONT PANEL BUTTONS
The front panel buttons - Space, Tab and Return - fire the same operational unit clutches as the solenoids when an XIO instruction requests those movements. Therefore, since the XIO versions work properly, the failure is due to mechanical adjustment of the buttons and their linkages. I will address this later as it is not essential to running the disk diagnostics. Below is some background on how the adjustments are made.
The adjustments for these take place in two places and they interact. There is no process I can see other than trial and error to work out the best adjustment for each half of the mechanism.
A pivot on a bar fixed to the typewriter frame pulls on a cable - similar to the cables used to open automobile trunks or to adjust lawn mower carburetors - that sides inside a metal sheath. The other end of the cable is attached to a swing arm, spring loaded to its idle position, that will push down to trip the operational clutch release latch arm to trigger the desired function such as tab or carrier return.
I can adjust the positions of the cable, the swing arm, the pivot and by tweaking all, I get a positive release of the operational clutch release latch for a clean movement of the pivot at the front of the typewriter frame.
The faceplate of the console printer has the sixteen console entry switches attached to the top, some lever parts involved in setting and clearing tab stops, a display window that shows the left margin, current carrier column and right margin, and three rectangular pushbuttons marked Space, Tab and Return.
These three buttons are spring loaded to remain toward the front, with a foot on the rear of each button that will push on the pivot arm for the other mechanism. The front of the pivot arm has a screw whose head is contacted by the foot on the button. By turning the screw in or out, I can adjust the position of the pivot at rest and when the button is depressed.
The position of the button foot when it is unpressed, held out by the spring loading, isn't easy to see when the faceplate is installed on the front of the typewriter. This makes it challenging to set the screw on the pivot arm to a reasonable position that just touches the button at idle and also pulls the cable far enough to reliably trip the operational clutch release when the button is depressed.
Adding to the challenge, if the cable pulls on the swing arm too far, it can slide under the operational clutch release latch and get stuck in place, blocking both the operational function the clutch provides and preventing the button from being used again
The space movement of the console printer is triggered two independent ways. One is triggered by a cam at the end of each character print operation - this one works fine. The other is triggered by an operational clutch fired by either the solenoid or the front panel pushbutton. This is the one that didn't work.
The torque bar that lets the carrier be pulled forward one space is common to both methods. The rod coming from the print cycle mechanism will pull on the torque bar, with the length of the rod adjusted to make sure it activates the space when pulled but allows the carrier to stay locked on a column when it shouldn't be moving.
Another mechanism has multiple parts that rotate and then convert that into a downward pull on a small hook which pulls on the torque bar but slips off before its pull motion is complete. Slipping off is essential so that it doesn't hold the torque bar too long and allow the carrier to move more than one column to the right. On the other hand, the hook must engage with the torque bar and pull it far enough before the hook slips off, so that the torque bar is rotated enough to release the carrier reliably for its one space movement.
Several adjustments interact to get that arm to move the proper amount and slip off when the operational clutch for spacing is tripped. The clutch takes a 180 degree spin, in doing so it pulls down on a spring loaded lever that is coupled to the other parts that ultimately move the hook up and down. The hook is spring loaded to rest over the torque bar but the spring is light so that the hook can slip off the torque bar when it turns enough to release the carrier.
Lack of the ability for XIO to put in spaces will only impact me slightly with the diagnostics. The text of a message will be smooshed together without separation of words, but otherwise legible, because each letter printed will get its own space during the print cycle. Therefore this adjustment can be postponed until later, letting me proceed rapidly to the disk functionality diagnostic 309.
Thursday, March 27, 2025
IBM 1130 Console Printer - 1053 Selectric typewriter - it was the Run capacitor! Waiting for replacement part
COMMENT BY A FOLLOWER POINTED ME IN THE RIGHT DIRECTON FOR THE PROBLEM
The motor on the I/O Selectric Keyboardless Printer (the console printer of the 1130) was stalling in the middle of printing most characters as well as moving the machinery much slower than usual. I was planning to verify the voltage was correct but Merlin Skinner-Oakes, who read the blog entries about the printer behavior, suggested that I consider the Run capacitor if this was equipped with one.
Ordinary Selectric typewriters use shaded pole motors without capacitors, but on many of the printer models such as mine, IBM substituted an inductance motor with a capacitor that functions as both a start and a run capacitor. If that was bad or out of circuit, it would explain the weak start and lack of oomph.
CHECKING CAPACITOR ON THE 1053
I removed the wiring to the capacitor on the rear of the console printer chassis and tested it with a capacitance meter. This is a 4 mfd Sprague Chlorinol 330V capacitor designed for induction motors. It is bolted on the back of the frame with cardboard insulation around the electrodes. I removed the bracket then took off the insulation.
The issue was pretty clear as soon as I saw the capacitor without the insulation. The can was bulging out and deformed at the plate with the electrodes.
I checked it with my test gear and found it had a capacitance of about 0.1 nanofarad and was essentially a short circuit at 0.1 ohms across the terminals.
I purchased a 4 mfd run capacitor of almost the same dimensions, which will fit properly in the bracket and inside the typewriter. I should have it installed by Saturday and be able to verify that the console printer is back to 'console printing'.
Wednesday, March 26, 2025
Update on console printer, testing and other issues or activities
MOST 1130 DIAGNOSTIC PROGRAMS TOTALLY RELIANT ON TYPEWRITER WORKING
Most of the diagnostic programs run under the Diagnostic Monitor, a program that provides essential hosting and common services for each diagnostic. It is a powerful capability as it supports multiple concurrent diagnostic programs, providing time sharing that is otherwise unknown in the IBM 1130 system.
The normal operating software, Disk Monitor System, runs a single program at a time and is a card and printer oriented batch processing system. The Diagnostic monitor relocates diagnostic programs allowing them to stack in core memory, its supervisor will alternate providing processing time to each running diagnostic, and its user interface (console entry switches and typewriter) is designed to be shared across the diagnostics.
The Diagnostic Monitor logs the status of diagnostics with typed lines on the console printer (typewriter). As each stacked diagnostic is started, it is assigned a relative number that you use to direct the console entry switch (CES) setting and interrupt (IRQ button on keyboard) to a specific number. One can also direct a CES and IRQ to all running diagnostics, if it makes sense.
My disk functional test, diagnostic 309, depends on the Diagnostic Monitor. That first starts up, prints in initial message, then loads 309 and begins its operation. That is accompanied by a message on the console printer.
Each command given to 309, such as selecting which drive number to test, involves setting the CES and hitting IRQ. The monitor prints out the CES value passed to 309. There are three different CES entries needed to start 309 testing the drive inside the 1130, each of which must print first.
The diagnostic prints messages with status as it runs through its various tests, as well as printing more detailed error messages when an issue if detected. For each such printed message, diagnostic 309 calls the diagnostic monitor to do the typing and will not resume executing until the monitor reports completion of the output.
In other words, until the typewriter is working or I find a way to fool the diagnostic monitor, I am unable to run the disk function diagnostic 309. I therefore have to invest time working on the typewriter first, before I can finish the high priority work which is finalization of the Virtual 2315 Cartridge Facility.
TYPEWRITER SYMPTOMS AND INVESTIGATION
Any XIO instruction to type a character will cause the typewriter to begin printing. It rotates and tilts the typeball to the appropriate character position and then throws the ball forward into the ribbon and paper behind that. Starting from a known good condition when power is first turned on, I will see the typeball get partway through a print cycle and come to a halt. From that point, the motor of the typewriter is stalled.
I triggered a shift between lower case and upper case, which worked quite well. I did find a few characters, mostly those with minimum rotation and tilt, that would complete without the motor completely stopping. However, even those moved very slowly.
I can trigger a tab, a carrier return, and a backspace using an XIO command and I see them begin. The CR causes the motor to stall, but at least the mechanism begins to work. Curiously, the space command does not cause any spacing - no sign of any action at all. The front panel Space, Tab and Return buttons do nothing.
I have a good 48V voltage delivered to the typewriter, Most of the solenoids do appear to operate successfully since I start printing characters or doing non-print movements. The motor seems very weak and anemic, almost like it is receiving well below 115V. I do need to check the voltages for the motor, but the most likely suspect behind all of this poor behavior is solidifying IBM lubricants. That is, the oil and grease that I mostly flushed out with my clock oil remained in small quantities and is again binding the mechanisms.
LAPTOP PHYSICAL COLLAPSE
The primary laptop I use to work with the 1130, design code, and so forth is rapidly becoming a pile of broken parts. It is a Lenovo Ideapad with a 17" screen and i7 processor. A fatal flaw that I discovered which plagues these machines is failure of the hinges. About a year ago, the right hinge became stiff and hard to rotate when opening and shutting the lid. Six months ago, the screws tore out of the plastic case since the hinge would no longer rotate at all. Thus, the right side of the screen was detached, an ugly bit of metal stuck out, and I had to carefully move the lid to use the machine at all.
Nothing I did would free up the hinge. Internet searches turned up a litany of hinge failures, endemic in Lenovo machines that used this hinge design. Apparently they were not being repaired by the maker either, thus the owners had to buy a new laptop when the hinges froze.
About a week ago, the left hinge began to bind up as well, thus pushing apart the plastic on the body. The screen/lid now barely holds in place when I jockey it open and I am likely just weeks away from the screen cable tearing as the death knell for the system.
I have lots of software that is licensed to the ethernet MAC address, which would be a major pain to deal with if I just moved to a new laptop. Plus there is the joy of reinstalling and reconfiguring everything I have on this system.
BOUGHT ANOTHER OF THE SAME LAPTOP, WILL SWAP ETHERNET AND DISK
I found a used Ideapad 340 17IRH that Lenovo was selling and purchased it. I plan to swap the disk drive and the ethernet/wifi parts that contain the MAC address so that I can presumably keep working as if the PC hadn't fallen apart in my hands.
SLOWING WORK IN THE SHOP
This does slow work in the shop, as I have to baby the laptop and take extra time before doing simple things like loading a new FPGA bitstream, loading code in the 1130 core memory, or connecting to the debug serial output of the Virtual 2315 Cartridge Facility.
BOUGHT A MOTORCYCLE LIFT TO RAISE 1130 BOXES UP IN THE AIR
Some work I do on the IBM 1130 required me to lie on the floor on pads while I awkwardly worked on objects that were 6 to 14 inches above the ground, but deep inside the box. Trying to solder wires while on my back looking up is annoying, too.
I located a motorcycle lift that has a platform which is 87 inches wide and 27 inches deep. It can lift up to 1000 pounds getting those pesky lower areas up where I can comfortably work on them from a chair. An IBM 1130 is 29" deep and 58" wide in its basic configuration and 88" wide with the expansion frame added.
That may appear to be an inch or two too large for the lift, however it rolls on heavy casters that are offset inside those dimensions. Thus the 1130 models will fit on the lift. The basic configuration is around 750 pounds and the full machine with expansion hits 1000 pounds.
When I showed up at Harbor Freight to pick up the box, which the online manual shows comes in pieces that are bolted together by the purchaser, I expected I can get it into the trunk of my Tesla, with the rear seats down to allow the box to slide back far enough.
I discovered that the motorcycle lift was shipped in a crate for handling with a forklift. The crate was eight and a half feet deep, with tall wood strips across the bottom to raise the crate off the ground to permit the forklift to get under it. The weight was heavily skewed to one end.
Thus, the boxes width and height would fit in the Tesla trunk, but the wood blocks on the bottom made it impossible to slide it in easily. The depth was too long to fit with the trunk closed, even if we could have gotten it fully inside. Lastly, the wood blocks were arranged for the forklift to fit under with the crate extending side to side eight plus feet. If they had been at right angles, the forklift might have been able to drive the crate into the Tesla, but that wasn't the situation I faced.
Somehow we got the crate into the Tesla far enough to ensure that with the very heavy end inside, it wouldn't tip out. The trunk lid closed partway and I drove slowly and carefully out to my shop. Getting the crate in the car depending on the help of the forklift. With no forklift at the shop, I had to improvise to get it out all by myself.
Fortunately, the crate wood used by Harbor Freight is so thin and cheap that I could tear apart the crate with pliers, screwdrivers and my hands, no saws or heavy machinery. I took out sections of crate, removed the big wood blocks from underneath, and then pulled the various components of the lift out of the crate one by one.
The final piece, which was still around five feet long, I was able to slide inside the crate until it was ready to tip down to the ground. I had to pull it far enough out that it didn't pivot up and strike the inside of my car, so there was quite a bit of tugging and lifting of weight involved towards the end.
In the end though, through sheer stubbornness, I persevered. I had the parts all on the ground outside the shop and put it together out there. I then collected all the crate parts, broke them down to more manageable sized pieces, drove it over to my condo and got it all in the dumpster that sits under the garbage chute in the building.
I rolled the lift into the shop where it waits for the next time I need to get access tbo the lower part of an 1130 box. Currently, the typewriter that I have to work on sits at the upper portion of the machine, but it won't be long before I want to get this on the lift and ready to raise and lower.
PREPARING NICE LOOKING ENCLOSURE FOR VIRTUAL 2315 CARTRIDGE FACILITY
I drew up a design for an enclosure that will sit inside the IBM 1130, accessibly by lifting the top grey cover to the right of the typewriter. Inside it I will mount the main box, the power distribution board, the time delay relay, the power supply and angle the main box up so its face is tilted where the operator can best see it with the 1130 cover open.
The enclosure will be constructed of black opaque acrylic. I ordered the acrylic sheets in roughly the proper sizes but have developed laser cutter files to cut the precise outlines and various holes I will need.
FINISHING PRODUCTION VERSIONS OF MY PCBS FOR THE FACILITY
As I receive the final components from Digikey, I am building the final versions of everything with the goal of having a full final version of the Virtual 2315 Cartridge Facility working on the VCF's 1130 system, plus a second unit ready to install on the System Source Museum's 1130.
Saturday, March 22, 2025
Ready to run disk functionality diagnostic (309) but 1130 console printer not working
LOADED 309 DIAGNOSTIC PROGRAM VIA CORE MEMORY LOADER
I set up the diagnostic on an IBM 1130 simulator then dumped the contents of core to a file. My core memory loader add-on to the 1130 makes use of that file to load core memory of the physical 1130 system with the same data as was in the simulator. It does this via a terminal program on a PC that communicates over a USB cable to the feature in the 1130. The program sends each line of the dumped memory file to the core loader, paced by prompts from the loader.
STARTED THE DIAGNOSTIC ON THE 1130 WITH THE TEST DISK READY TO ACCESS
A test disk image was loaded via the Virtual 2315 Cartridge Facility and the disk drive spun up. When the File Ready light came on, I set up the console entry switches to begin the diagnostic. A code is set in the console entry switches and the IRQ key on the keyboard is pressed to enter each request.
The diagnostic monitor program that hosts the diagnostic will first print out the code received via the interrupt request (IRQ). The typeball turned slightly and froze. No letter was typed and the typewriter was unresponsive to button presses on the front panel.
Since diagnostics and the diagnostic monitor communicate status and results via typed messages, this blocked use of the diagnostic. When I get time back in the workshop I will figure out the issue and correct it so that the console printer is working again.
Friday, March 21, 2025
New PCBs arrived, building them for two Virtual 2315 Cartridge Facilities in final form
PCBS FROM FAB ARRIVED
I had what I believe are the final versions of the 2310 Interface Board, Power Distribution Board and the dress faceplate. The faceplate was a purely cosmetic remake. The 2310 Interface Board added a relay and changed the circuits for lighting the 1130 console Unlock lamp. The Power Distribution Board had additional terminal connections to improve the wiring to the time relay that keeps the Virtual 2315 Cartridge Facility (V2315CF) powered up from the battery after the 1130 system power drops.
BUILDING THE FINAL VERSIONS OF THE TWO BOARDS
I believed I had all the components on hand in order to assemble two final versions of the two PCBs, one set for the Vintage Computer Federation InfoAge museum's 1130 and one for the System Source Museum's 1130 I had previously restored.
I had almost completely built the boards but discovered I was missing a couple of screw terminal parts. A four wire block is used on the 2310 Interface Board, but one of the two boards is missing the block. Both of the Power Distribution Boards are missing 10 wire blocks. I expect a shipment from Digikey with the 10 wire blocks by Monday. I had to put in an order for the 4 wire block, as I clearly messed up.
A BIT OF WORK LEFT TO COMPLETE ON THE BOARDS
In addition to the screw terminal blocks, I have to insert 24 gold plated pins into one of the 2310 Interface Boards - the cable from the IBM 1130 controller logic plugs into these pins. Then, I have to solder in the wire harness whose end plugs into the 13SD internal disk drive of the 1130. I ran out of time today to finish this work up - plus I am short the terminal blocks.
FINISHING UP PYTHON UTILITY PROGRAMS FOR USERS OF V2315CF
I wrote some short programs under Python that deal with the virtual cartridge image files. The V2315CF format for a cartridge image has a header which includes a cartridge identifier and a text description. IBM 1130 software uses a cartridge identifier, consisting of four hex digits, which can be any value between 0x0001 and 0x7FFF.
Program convert1130.py will take a disk image in the format used with the IBM 1130 simulators, requests a cartridge identifier and description from the user and produces a new file in the V2315CF format.
Program convert2315.py opens a disk image from the V2315CF and produces a disk file in the format to be used by the IBM 1130 simulators. It lists the header information on the input file while doing the conversion.
Program listcartridges.py is pointed at a folder on a PC. It will look at all files in that folder that are in the V2315CF file format, listing the file name, cartridge identifier and description for each valid file.
Program showsector.py will open a V2315CF disk image file then ask the user for the cylinder, head and sector that they want to display. The program lists the 321 hex words of the sector.