Saturday, September 30, 2023

New rear cover built for the IBM 1130


After some uncertainty surrounding the 'railroad mechanical' issues, the package arrived Tuesday night. Inspecting the part shows me that I might have specified a heavier gauge of metal as there is a bit of flexing of this, but for its purpose as a rear cover it will be fine. 


I had designed a mounting method, but had to dig a bit to find the pages where I wrote this all up. Next step was to round up the hardware I had bought for the mounting. I then assembled the mounts on the door and rear of the 1130's display pedestal. 

I am definitely not happy with the mounting method or the way it looks using those parts. Right now I am working out some 3D printed parts to use for an improved mounting system, mixed with a bit of new hardware. 


First coat was a good primer for galvanized finishes. When this had dried I put on a normal primer as a base and let that dry well. The last step was the color coat, which I tried to get close to the IBM Classic Gray color. 

I thought it was acceptable for its location on the back of the machine. Once I have the final mounting hardware the cover will be put onto the machine. 

Sunday, September 24, 2023

Not sure what is happening with the rear cover I ordered for the 1130


Basically is a rectangle of galvanized metal with a few drill holes and some slots for ventilation. It was produced and the shipment was listed as September 17th with an arrival forecast of tomorrow (Sept 25th). I did notice that the UPS tracking never listed any updates to the progress except for the pickup event, but I remained hopeful that it would arrive.

Today when I logged onto to check the tracking info, there was a message that due to a 'railroad mechanical issue' the package is delayed. The date of the delay is the 17th but it wasn't posted until the 24th and there is no updated delivery estimate. All I know for certain is that I won't have the door tomorrow to paint and install on the 1130 this week. 

UPS tracking shows a delay indication with no new estimate. I have to believe that this is a UPS foul up and that the maker of the rear door was only notified today of some vague railroad mechanical issue.  

This is intriguing. Could be a train derailment, the train car could have burned, the locomotive broke down and the cars need to be shunted to a new engine. The forklift could have crushed a set of packages during unloading. The door could have closed on the packages ripping the labels off so they don't know where to route them. Possibilities are endless. 

Quick work while waiting on parts or other items needed for 1130 restoration tasks plus a bit of 1130 work


The machine being restored had a broken rotate tape when it arrived. Fortunately I have spare parts in the correct size for both that and the tilt tape. These are very frequently broken when someone hand rotates the type ball in a machine that is gummed up, snapping the metal tape. It can even happen in a properly lubricated machine, although the mainsprings inside tend to wind the tape up or let it out safely. 

Since the carrier slides along shifts from left to right, moving the typeball to the column where a character can be printed, IBM needed a clever mechanism to move parts inside the carrier to make the ball tilt and rotate. They designed thin metal tape ribbons that attach to both sides of the carrier, with the tape passing over pulleys on each side of the typewriter frame. 

Thus a tape runs from the right side of the carrier to the right pulley, returns underneath the carrier to the left side pulley, rotates over that pulley and is threaded from the left side of the carrier into a component that moves the ball. A lever attached to the left pulley will move it left or right an amount that pulls on or releases the component in the carrier to tilt or rotate. 

When a character to print is selected, the mechanism inside the bottom of the typewriter frame will set up the amount of lever movement corresponding to how much tilt or rotate this tape should apply. During a print cycle the lever is moved to its desired position, the type element assumes its tilt and rotate, then the ball is locked in place and forced forward against the ribbon and paper. 

The tilt tape only has the left side lever to move the carrier component to one of four tilt levels based on the T1 and T2 bits of the print command. The rotate tape has an additional lever on the right in addition to the left lever that selects one of eleven rotation positions based on the R1, R2, R2A and R5 bits. The right side lever pulls hard enough to spin the ball an entire 180 degrees, exposing the other hemisphere. This is how the upper and lower case is implemented on the typewriter, by moving the right lever out or in. 

The rotate mechanism is a wheel at the bottom of the shaft connected to the type element (ball). It has a mainspring inside to preload it allowing for a quick rotation as tape is loosened. Tightening the tape by moving the levers out will of course spin the wheel one way, but when the levers move inward releasing tension the spring causes the wheel to snap around in the opposite direction just as fast. 

A slot in that wheel accepts the anchor tab on the rotate tape and the tape is wound around the wheel in a channel keeping it securely in place. This slot is down inside the carrier and under the upper nylon wheel that implements tilt movements, so hard to see or get to. 

Tilt is implemented by a nylon rotary cam on the which rotates around the type element shaft independently of the shaft rotation from the other tape. As this upper partial wheel rotates it moves levers that lift the typeball up or down to one of four positions. A strong spring will pull the ball to the home tilt position and the levering of the tilt tape pulley outward is what moves the tilt mechanism to the other three tilt positions. 

On the right end of the carrier is a hole with a screw threaded vertically through its opening. The tilt and rotate tapes have circular fittings on the end which are placed in this hole and through which the screw is threaded. This anchors the other end of each tape to the carrier. 

it is tedious work to get the rotate tape T shaped end in the slot on the wheel, less so to fit the tilt tape round end in the more accessible nylon tilt wheel. but threaded the new tapes onto the machine, around the pulleys and properly tensioned. 


There is a third tape in this printer which is not found in most Selectric typewriters. There is an option to have dual color ribbons for printing, where the length of the ribbon is divided in half vertically with one color on the top half and another color on the bottom half. This is almost always red and black. Just like the tilt and rotate mechanisms, a tape running over pulleys is necessary to have the fixed mechanisms on the typewriter body cause a movement of some part inside the carrier. 

During a print shaft cycle, while the ball is tilting, rotating and ultimately hammering forward, the ribbon lift mechanism will move the ribbon up in front of the point where the character on the typeball will strike. On monocolor typewriters, a lever on the carrier sets whether this lift positions the upper, middle, or lower section of the ribbon in front of the character, plus one setting will stop the ribbon from moving between character and paper (Stencil mode). 

On the dual color model, the lift mechanism will raise the ribbon to either the center of the top half or the center of the bottom half, thus printing with that color ink. Instead of a metal tape, this part of the machine uses a clear plastic tape that is attached to the carrier and runs over pulleys to a mechanism that will pull on the tape or release it to cause the lift mechanism inside the carrier to move correspondingly. 

This attaches to a fixed point near the front right side of the carrier, is routed to the right and around a fixed position pulley, then routes to the left side passing undeneath the carrier. On the left are a pair of pulleys, routing each side of the tape down to a final pulley controlled by two solenoids. The solenoids select which of two positions the final pulley takes, thus moves the carrier lift mechanism to its two positions. 

This ribbon is truly unobtainium, I have never seen spare parts listings for this tape. The number of dual color and I/O Selectric machines in the wild is quite limited and they are not available as parts donor machines. Thus I have to create one myself.

I will need two attachment end, basically small rings that fit over an attachment point on the carrier. I will need to make a plastic tape of the correct strength, width and length. Finally, the attachment ends must be put on the tape. I believe this will be done by folding the end of the tape through the hole in the ring and using the proper plastic adhesive (or heat) to form a loop. This is a future task. 


I received a partially damaged and incomplete plotter several years ago from a friend. The cylinder on which the paper moves and the pen draws upon was dented in. In addition, it was missing its pen assembly. 

On this plotter, a cylindrical structure is connected to the traveling arm that moves left and right across the width of the drum, that arm moving the pen left or right. The drum rotates to move the paper up or down under the pen. Finally the cylindrical structure has the pen mounted inside and, using a solenoid, will either lift the pen up off the paper or let a spring push it down to make marks. 

Calcomp designed and manufactured this plotter under its own label as the Calcomp 565 but also allowed mainframe manufacturers to relabel it under their own logo. One use was on the Eliot computers, but the important such rebadging was IBM selling this as the 1627 plotter. It was originally sold with the IBM 1620 computer, but carried forward and offered on the IBM 1130 as well. 

The pen solenoid (and the inserts for ballpoint and fillable ink pens) were kept in a separate wooden box near the plotter and generally attached only when the plotter was going to be used. As a result many of the plotters became separated from their pens and solenoid as they were taken out of service. The box and its contents didn't look like a computer part which meant the box was far more likely to be trashed and lost forever than the plotter. 

Thus many plotters in private or museum hands do not have their solenoid and pens. No plot can be made as a result and they sit as shelf queens on exhibit. Finding a box for sale is extraordinarily unlikely and uncommon, particularly with multiple plotter owners chasing this elusive part. 

The pen assembly is a cylindrical body with two contact pins near the bottom. It is inserted into the plotter arm which supplies electrical connections to the pins. Inside the assembly is a solenoid coil that will attract a metal slug when it is powered. This slug moves upward when the solenoid is activated. The slug is hollow and the inner channel holds the pen that will do the drawing. 

A spring in the cap at the top of the pen assembly pushes the pen and the slug downward so that it is in contact with the paper on the drum. When activated the solenoid pulls the pen up off the paper, thus allowing movement of the pen to a new position with drawing. The programmer turns the solenoid on and off to set the pen on or above the paper. 

There were a variety of pen inserts that fit into the slug, ranging from different colored ball point types to fluid filled fountain pen types. For my purposes I would be happy with just a single working pen and of course the entire solenoid assembly that goes with it. I have waited for years to find such an assembly.

A few days ago I spotted, on eBay, a Calcomp part for sale called a cutter assembly. It didn't mention the model 565 but visually it had an almost identical pen assembly. I looked at the pictures carefully. There were no online mentions of this kit nor documents I could read, but I took a gamble and bought it. 

Instead of a pen insert inside the slug, this has inserts with diamond tips, very fine, which will slice foil under control of the plotter. The top cap is different from the pen assembly, as it rotates to four fixed positions that match the direction of slicing of the cutting tips. One turns the cap to the direction that cutting will occur, uses the plotter moving only in that axis, and changes it again to cut along the other axis. 

I verified that the solenoid and slug part is the same. It reacted properly to current to move the cutter tip up or let it drop. I fits exactly into the moving arm of the Calcomp 565/IBM 1627 plotter. 

My task now is to make pens to fit inside the slut instead of the cutter tips. I could either stick with the existing cap, ignoring the rotation as the pen does not need to be aligned to the direction of motion, or I can have a cap manufactured to be identical to the Calcomp part. I suspect that I will be able to cut down and seal a ballpoint pen insert and fit it in a sleeve that in turn sits inside the slug. Doing the pen work is a future project since the 1130 restoration is the highest priority right now 

To make my plotter fully functional requires the drum to be repaired/replaced. Because it is made from soft aluminum, when it was forced back to its cylindrical shape, the areas that had been bent the most were stretched (a very malleable metal) and thus it seems highly unlikely I can restore it to a cylinder whose deviations from perfect radius are small enough to not snag the pen or distort plots. 

The drum has pins on each side to accept pin feed paper. These have a conical shape and are riveted to the drop with a spacing that matches available pin feed paper. I have not found a source for the pin feed rivets so that even if I manufacture a drum the correct shape and dimensions getting it to have the pins will be an extra challenge. This is a task for the future, not for now.


I have two Documation punched card readers, an M1000 and M600 which read at 1000 and 600 cards per minute respectively. The M1000 is used as my card archiving system, letting me read decks and capture the data into files. The M600 could be made into a reader attaching to an IBM 1130, through some conversion circuitry that would make it appear as a 2501 card reader to the CPU. If not, I can sell this to someone looking to do card archiving. 

The card reader uses air blowers and vacuum to separate the cards in the hopper, grabbing only one by suction and pushing it into the rollers where it will move through the machine. This is very tolerant of swollen cards or roughened edges that would be impossible to feed through an IBM card reader which uses a machined throat and moving knives to force each card into the machine. 

As a card is moved through various rollers from the input hopper to the output stacker, it passed in front of a set of twelve vertically mounted photocells that are aligned for the 12 rows of a standard punched card. These will read the holes to grab the data but the machine needs to know when it is at each of the eighty column positions of the card.

This is accomplished by a fine toothed wheel that rotates along with the card movement. A magnetic sensor detects the pulse as each tooth moves by and this will drive various counters to determine the position of the card. As the light is first blocked by the leading edge of the incoming card, the timers start. Driven by the sensor pulses, it counts until the solar cells are positioned in the middle of card column one. This is based on the number of sensed teeth per inch of card travel.  

My M600 reader began to be flaky and then failed completely. The symptom was that the reader fed three cards into the stacker and reported a Pick error. To handle misfeeds, the mechanism tries three times to pick a card, each time watching to see the light of the photocells blocked by the incoming card. If this does not occur, it decides that cards are not feeding and raises the Pick error. 

Without the timing pulses, the circuits that would see the leading edge pass were not activated, thus the correctly fed cards just passed through the machine without detection. I discovered this was caused by the lack of timing pulses and checked the sensor. Initially, it resumed working after I did a bit of probing around but eventually it failed again. 

The issue was a continuity break. I had hoped it was a break in the cable from the sensor up to the reader electronics, but I found that it was deep inside the sensor itself. Even after chopping and cutting away the plastic I could not get close enough to find and repair a break. The spare parts are no longer available, of course. Further, there are not full specs for the impedance, pulse strength. and pole pattern that would be helpful to find an exact substitute. I could measure the diameter and other physical specs. 

I decided to try a sensor used to drive tachometers in vehicles, because it was at least mechanically compatible with the original sensor. I mounted it in the reader and soldered it to the electronics cage connector. The pole gap from the teeth of the wheel was set to the original sensor spec. 

There may be problems if the sensor has an impedance quite different from the original one, requring me to change some components in the reader electronics to match properly. I could also have problems if the signal is too strong or too weak with the pole close enough to detect one and only one tooth at a time. These are solvable with some additional circuitry such as amplifiers or attentuators. 

When I next get time I will finish adjusting the reader to pass cards and look at how this sensor works in the machine. Hopefully I can get it to read cards. The sensor drives a Schmidt Trigger circuit thus it shouldn't be extremely sensitive to shape of the incoming signal. We just need the pulse to be high enough to flip the trigger circuit then the rest state be low enough to flip it back, with the duration of the generated pulse long enough to trigger the counting circuits. 


Testing vacuum tubes can be done to compare them to the characteristic curves provided by the tube manufacturer. This provides far more information that a simple conductance meter or a good/bad light that are typically found on tube testers. This is more akin to transistor curve tracers and can spot faults that are not apparent with the simple testers. 

uTracer is a tool developed by a Phillips Electronic research scientist, Ronald Dekker and sold as a kit, I built one of these and mounted it inside an old traditional tube tester. It communicates over USB to a PC running a graphical user interface that controls the testing and displays the various curves. 

I discovered a modification designed by Stephan Lafferty to provide better heater (filament) power, which I also built. The uTracer has some weaknesses in accurately driving the filament voltages for the tubes, which this precision heater supply eliminates. 

After I finished assembling the heater board my first tests showed it was not working. The design leverages a buck regulator board from China and I was not getting output from that board. I tried a couple of other boards but had the same results. Stereo microscope examination of my build showed that all the solder joints are correct, no shorts and everything seemed okay. At that point I had put it aside. 

The buck regulator has its feedback pin controlled by Stefan's heater board logic rather than the circuit built into that regulator board. The design by Stefan has the builder remove a resistor to disable the on board feedback and tack a wire to the control chip feedback pin to receive signals from his logic. 

Stefan specified a regulator using the XL4005 chip to convert with a 300KHz PWM frequency and source up to 5A current to the filaments. Back when I built the heater board, eBay only had XL4015 based buck regulators. I couldn't find any based on the XL4005. Both types of boards supported 5A current and seemed very similar so I proceeded to use the board with the newer chip.

I realized when I picked up the heater board project bin during an idle moment that I should look deeper at the two types of control chips. Two key differences exist between XL4005 and XL4015. The latter chip operates at a slower 180KHz which by itself might be tolerable, but its feedback pin voltage set point is 1.25V instead of the 0.8V for the pin of the XL4005 chip. Thus the heater logic to control the regulator was producing the wrong voltage level causing the buck converter to fail to deliver the heater power.

This time when I searched online I found XL4005 based regulators, looking just like the original board from Stefan's design. I ordered it and am expecting it in soon. Again, not a high priority project but when it arrives, if the heater board works, then I will build a better front panel and finish up my tracer.


IBM repair engineers (CEs) had a tool that would provide additional lights for status display and switches to control some peripherals offline without tying up the computer to which they were normally attached. Thus IBM did not have to equip each peripheral shipped with the additional monitoring and testing panel instead temporarily attaching this tool that might be shared across many customer installations. 

This box attached to connectors inside the peripherals it supported. Among others, it was used with the 1050 console of the 360/30, the 2501, 2520, 1442, 1443, 1016, 2671, 2701, and the devices supported by the 2821 controller including 1403 printers and 2540 card readers. It typically sat on top of one of the mainframe or controller boxes, with a small hook to attach to the top vent grill. 

Overlay sheets were provided for each device it supported. They slid in front of the bank of 90 lights, arranged into 15 columns and 6 rows. Thus the meaning of a particular light depended on the peripheral it was wired to, even though that light is always wired to a specific pin of the connectors on this tool. 

The tool also provides 7 momentary and 21 two position toggle switches plus a five position rotary switch. A cue card sits below the switches to indicate their use for each peripheral. 

The tool is powered in one of two ways, depending upon the peripheral to which it attaches. If fed 24V AC, its internal power supply creates the voltages needed for the lamp drivers and lamps. Otherwise, the peripheral feeds in +3V DC and +12V DC and the internal power supply is not used. I tested this both ways to be sure that it works properly.

My testing involved using Lamp Test to verify that all bulbs lit up. Quite a few did not. As I moved them around I found that only about half the bulbs I had were working. However, they worked properly when moved to any of the 90 positions. I also tested the connector pins to light the lamps, verifying that 3V on that pin would cause its associated light to glow. 

The switches are simply bare contacts brought out on the connectors to the peripherals. No debouncers or other electronics attached to them. Many of the switches shared the same common pin for the armature, but had unique normally-open and normally-closed pins assigned. I validated all the switches. 

Initially I found the Reset switch was bad but was able to repair it with an appliation of Deoxit. 

I truly don't know what I will do with this. It could be handy to wire to various signals of an 1130 or peripheral under test, but not very essential at all. I may just sell this to another collector. 

Friday, September 22, 2023

Plan for partial verification of disk drive controller logic; 1053 Console Printer frozen linkage found and fixed


Because the disk heads are essentially irreplaceable and the constant risk of a head crash looms, I will not be allowing the heads to be loaded onto the surface of an actual disk cartridge. Longer term I will use a Virtual 2315 Cartridge Facility which electronically emulates the disk cartridge and injects the signals into the head electronics in lieu of the actual head riding on the surface.

That facility is not ready but I want to test as much as I can while the 1130 is in my shop. I will therefore make use of the part of the facility that is already wired into the machine, which blocks the head solenoid from lowering the heads and lets me lie to the electronics to claim the heads are down. 

The drive will spin up with a cartridge inserted, then when it gets to speed it will attempt to load the heads. I block that action but can then assert they are down. The drive electronics should switch into the Ready state, which lights the Ready lamp on the console. 

At this point I can test that the controller logic correctly shows when the drive is ready and when it is not ready, via the Device Status Word (DSW) I can read with a CPU instruction. Since the drive is spinning, the controller logic should be seeing the Index Marker and Sector Markers that pass by sensors on each rotation. The outcome of that will be the sector number in the DSW advancing through the four sector numbers per rotation. 

With the drive in Ready status, it should perform the head movement (seek) operations properly. Initially the DSW should show the arm is in the Home position. Issuing an XIO instruction to seek to a given cylinder should cause the controller logic to command the drive to move the arm radially towards the center of the disk cartridge, or outwards towards the Home position. 

I can observe that the controller logic correctly sets and clears the Busy status in the DSW while the arm is moving. Then when it is finished the Operation Complete bit needs to be visible in the DSW. 

I will be unable to test any disk read operation since the heads are not riding on a disk surface reading bits. However, I suspect I can do some debugging of a disk write operation, since the drive should be merrily flipping the magnetic fields with the head assuming it is on the surface. I can hook a scope to the head cable and see the bit patterns.

If I can see the bits being 'written' I can validate that all the formatting logic works properly. I will write a pattern of words that let me test that it can access memory properly to fetch or put away words. In order to successfully write a sector, the controller logic must:

  • Sets the busy condition in the DSW
  • Turn on the erase head when the drive reaches the beginning of the sector we specified
  • write a long pattern of zero bits that will allow the read to synchronize properly
  • write a special pattern to indicate the start word that establishes start of word
  • writes the 1130 data words plus the four bit error checking code
  • writes the proper number of words to the sector before ending
  • switches off the erase head before the next sector arrives
  • signals operation complete at the end of the write


Since I can't test a disk read without either risking the heads on a real cartridge or using my Virtual 2315 Cartridge Facility, I can't test that process. In order for the controller logic to successfully complete a read, it must:

  • Set the busy condition
  • wait until the targeted sector is approaching the disk head
  • synchronize the bit cells by reading the long sequence of 0 bits
  • detect the word alignment to finish synchronizing
  • read each word from the head pattern, separating data bits from clock bits
  • read the error check bits and validate the integrity of each word
  • store the word into main memory
  • advance the word pointer into memory
  • stop at the commanded number of words
  • signals operation complete at the end of the read

I realized that I could issue the XIO Read command just to see the busy condition go on, the drive wait in vain for bits to be detected and then for the next sector mark to arrive which should trigger a Data Error condition in the DSW. This would at least check out a portion of the read circuitry.


The unique elements added to a Selectric typewriter to turn it into a computer attached I/O (Input Output) Selectric include a number of microswitches that detect when the typewriter is performing various mechanical actions that preclude issuing new character print or movement commands. These are combined to form the signal TWR CRLFT INTLK which is indicates that carrier return, line feed or tab operations are underway as these are all relatively long operations compared to the time to print an individual character. 

In addition the signal TWR CB RESPONSE indicates when various commanded actions are complete enough to allow the typewriter to accept a new command. To maximize throughput of the printer, each action was studied to determine when it is safe to accept a new solenoid activation even though the mechanism is still moving. 

For printing characters, a revolution of the print shaft takes place during which the amount of tilt and rotate are set, the ball moves to the proper character, and then the ball is thrown forward to strike the raised ribbon in front of the paper and then returns to the rest position. If the typewriter completes the entire rotation and comes to rest, the startup time to fire off the next rotation results in a slower rate of typing. 

If the computer sends the codes for the next character to type before the print shaft comes to a stop, it will just keep turning into the new rotation and produce the maximum rate of 15.5 characters typed per second. Thus the TWR CB RESPONSE signal is given before rotation is complete so that the computer can feed new print requests at the full speed. 

One of the microswitches involved in these signals is activated by the long lever that triggers a tab. This lever runs across the width of the typewriter and activates a latch on the rear of the carrier to cause it to lock open, the carrier is then pulled rightward by the wound up mainspring until a tab set pin is encountered during motion that releases the latch. The left side of the lever pushes down on a linkage that locks the microswitch on until the carrier stops moving when it is released. Thus this is the tab motion interlock portion of the TWR CRLFT INTLK signal. 

The linkage slides downward in a slot and pivots slightly along with a smaller pivoting lock plate that holds the switch activated during motion. This had been so gummed up that it wasn't pushing down. It kept the tab lever from fully rotating thus not latching the carrier to move forward. I had to work some of my Nye #80 clock oil into the slot and pivot points, wiggling the parts gently, until it freed up.  That will now allow for a consistent and correct tab action. 

Tuesday, September 19, 2023

Donor IBM Selectric 1 purchased; rear cover on its way here


The corrosion of the print shaft, which the carrier slides along while typing, tabbing, spacing or returning, is too heavy to sand off and still have reliable operation. I need a new one, which I will take from another typewriter of the same era and size. 

The 1053 is a version of the IBM Selectric 1 (original), which came in several widths. The one used with the 1053 has a platen whose rubber is 13" wide, providing support for roughly 11 1/2 inch wide lines with the end stops set as wide as possible. I located some used Selectric 1 typewriters, picked those with the same platen width and with a visually uncorroded print shaft after inspecting pictures. 

One seller listed with a Make an Offer button but had the system set up to autoreject any offer other than the Buy It Now price. They didn't pretend to look over the offer and make a decision, they had the system set up to bounce any offer. Even though that machine would have been the same total price including shipping as other listings, I refuse to reward those who game the system and don't intend to seriously look at any offer below their list. I therefore bought a different unit and expect it in a week or so.

The process from that point is to disassemble the shaft, which normally involves disconnecting the tilt and rotate tapes as well as the cord that powers all carrier left-right movement. On this machine, one of the tapes was already broken anyway and I would have had to do part of this work without touching the print shaft. 

This shaft is cylindrical in cross section and the carrier has plastic bushings that the shaft fits through, and which allow the carrier to move along the shaft. A lengthwise slot in the print shaft engages with the mechanism on the carrier that lifts the typeball and ribbon up and swings the ball forward to print. Thus, the shaft rotates once for each character printed, powering the ball and ribbon mechanisms. Meanwhile. the movement mechanisms - space, backspace, tab and carrier return - slide the carrier along the print shaft in the desired direction and for the intended distance. 

Because the carrier is able to move from one side of the typewriter to the other, it is hooked on both sides to a cord that wraps around a pulley powered by a mainspring and wound up by the operational shaft during a carrier return. The forward operations are powered by the unwinding of the mainspring. The cord attaches to the sides of the carrier in a very straightforward manner, then runs through pulleys on the sides of the machine and then around the mainspring pulley. 

The character to be printed is powered by rotation and tilting of the ball mechanism, using one metal tape to select one of four tilt increments of the ball and another tape to select one of five rotation steps in either the clockwise or counterclockwise direction. Thus we can select any of 11 rotations and four tilts to choose which of the 44 characters on a hemisphere of the typeball to face the platen when we print ne character. 

The ball can be rotated 180 degrees to the other hemisphere by an upshift or a downshift operation, which moves one of the metal tapes to one of two ranges. Within each range the tape offers the 11 rotation positions. A shift operation takes one machine cycle, separate from the cycle needed to print a character. 

The two metal tapes attach to the carrier on each side and then run around a set of pulleys on the side of the typewriter, so that the tape moves the same distance as the carrier during motion, then one of the end pulleys is levered to impart the extra movement of the tilt, rotate and shift action. The rotate tape has round end that is fitted into a rotary cam under the carrier and winds around the cam before being threaded though the pulleys on both sides of the machine and hooked to a fixed position on the carrier. The tilt tape has an easier connection to a more accessible rotary part under the carrier. 


The cover was shipped yesterday and is due to arrive by the end of day on Monday 9/25. There is some painting and assembly of mounting hardware before I can install it on the rear of the 1130 display pedestal. 

Wednesday, September 13, 2023

Rear cover fabrication for IBM 1130 display pedestal


I discovered a new service,, which does laser cutting and other CNC work, powder coating and seems pretty handy for creating replacement parts. I uploaded by design file for the rear door of the display pedestal that sits above the console printer. 

For under $30 they would cut it from galvanized steel and ship it to me. I place the order today and expect it in about a week. I will comment on the quality and service once it arrives and I install it on the 1130. This rear door has louvers for ventilation, just as the official IBM part offers, with holes for a mounting method I worked out. 

Sunday, September 10, 2023

Finishing up restoration of museum 1130, can install the virtual cartridge facility later at its home


The 1130 has been sitting idle for months now while I fought with toolchains to try to get my design to testing. I am confident that my logic for the design will be relatively easy to debug and get working,  as I have done this for Xerox Alto and Altair/Pertec disk drives quite successfully. 

The problems were with uusable Xilinx toolchain program under Windows 11 and then after a switch to Intel/Altera, with a maddening inability to create a working bootloader to get Linux to run on the board where my FPGA logic is already partly debugged. These were the issues that chewed up weeks and weeks. 

Originally I believed that the value to the owner of having the working Virtual 2315 Cartridge Facility was so high, making their machine far more useful to exhibit. Enough so that I focused solely on the new facility and left the machine sitting patiently in my workshop. 

However, I feel unhappy that it is not back in the hands of the owner already and increasingly frustrated that my problems with the bootloader and having such an impact on the restoration. Therefore, I resolved to instead get the 1130 ready to go back in full working order but prior to having the new facility.


Since I have a working IBM 1130 of my own, I will also modify it to use the virtual cartridge facility, then do all the debugging on my own system until it is ready to install elsewhere. I will build more than one copy of the facility, so that it can be made available to other machines once it works here. 


I have already installed the modification that allows the heads to remain safely above the disk surface while the drive believes it is working, so that installation of a fully debugged Virtual 2315 Cartridge Facility involves mounting a box, battery for data protection, interface logic board and installing some wire wrap to the drive electronics. 

I am happier doing this on site at its home rather than holding up the machine during the debugging. I can fly up with the parts and do the install and checkout locally. That assumes the owners want to pay for the boards, box, battery and other parts involved in the facility, since I am not charging any labor or markup. 


The tasks remaining before the IBM 1130 system can be returned to its owner are:

  1. Finish and install the new cover for the rear of the pedestal display panel
  2. Finish testing console typewriter device controller logic
  3. Finish repairing the 1053 console printer
  4. Do partial testing of the built in disk drive controller logic
I have a design for a painted plexiglass cover for the rear of the display panel - I just need to bring my supplies to the local Makerspace and use their laser cutter, then finish up in the shop.

I had designed and built a substitute for the 1053 console printer which plugs into the IBM 1130 and will let me fully debug the controller electronics. It captures the solenoid activations and converts them to the proper typeball character, with accurate timing of the feedback signals to the 1130 electronics. This supports tabs, carrier returns, back and forward space, dual color ribbon selection and the front panel buttons that sit on the physical 1053 including tab set and clear. 

I should be able to run the full 1053 diagnostics and verify that the printout is what will be seen later when the physical typewriter is back in the machine.

The typewriter is still gummed up and the main shaft that the carrier slides left and right along is corroded and binding. If I can repair the existing shaft I will otherwise I will find a donor from another Selectric I typewriter of the same width. Then it is a matter of adjustments and testing to get this working as it should before remounting it atop the 1130. 

The disk drive has very precious heads, which I am worried about damaging by attempting to fly them on a disk pack. Even with the most careful cleaning and assessment of both heads and cartridge platters, there is the risk of a crash. 

Instead I intend to test as much as I can without the heads actually loading down on the disk surface. I will use the wiring and mechanical change I made for the Virtual 2315 Cartridge Facility. This will let the drive go to Ready status if there are no bad circuits inside the drive itself. With the drive Ready but safely leaving the heads well above the surface, I can check the Sector and Index marks, seek operation and other aspects of the drive electronics but of course won't be able to read any data. 

This means that I can check out a significant portion of the driver controller logic but not everything. The real solution for the drive is the facility that I will get working once I blast through the concrete wall obstacle of the bootloader generation. 

I may be able to view the waveforms being generated for a write to the disk, further vetting the state of the machine, but to successfully do a read I need to inject the bitstream from my FPGA. Unless I can think of some super clever solution that does not require the facility, which would let me test the remaining circuitry related to reading. There might be a tiny FPGA project that makes a fixed stream after seeing a sector mark, suitable to verify that the fixed stream is read properly by the 1130, for example. 

Thursday, September 7, 2023

User interface test verification part 28


I began to dig through the binary objects that were generated by my failed U-boot make process and one that worked successfully, hoping to find a clue as to the problem Looking at the header of the object provides a few bits of information, such as a fixed validation word, version, flags, length of the program in 32 bit words, checksum of the program, the entry point to begin execution, and some areas used during execution.

Two variations between the good and bad preloader objects I noticed. First, the entry point to begin executing the preloader was x0007EA00 for the good code and xF000E320 for the failing code. Second, the program length for the bad code was 3A2C while the good code had a length of 2540. 

The way that the boot process works in the Cyclone V processor at a cold reset is to execute some flash code that fetches the preloader and executes it. The chip has 64KB of onboard RAM initially mapped to the high 64KB address for the processor - 0xFFFF0000 to 0xFFFFFFFF - where the preloader will be stored.  Of that space, the top 4K is reserved as the stack and buffer area, leaving 60KB for the preloader to fit, minus a bit for CRC, header and other fields. 

The good object has a length of x2540 32 bit words, which is 9,536 decimal. Since there are four bytes in a 32 bit word, this corresponds to a size of 38,144 bytes. The failing object has a length of x3A2C words, which is 14,892 decimal. Converting to bytes, that is 59,568, stored starting at xFFFF0050 and running to xFFFFE900 which even with the four byte CRC will just fit in the space. I am assuming that the minimized device tree blob (DTB) is included in the object. If not, then there is definitely not enough room for the DTB to fit adjacent to the preloader code. 

Understanding the entry point took more work. This is the address that the boot rom code will branch to once the preloader is loaded into the upper 4K space - the onchip RAM. Neither of these values is in the range of xFFFF0050 to xFFFFF000 where the code is placed. However, the technical reference manual for the Cyclone V chip indicates that when the ROM passes control to the preloader it has mirrored the onchip RAM to address 0. Thus, the 64KB of on chip RAM is accessible at both 0xFFFF0000-0xFFFFFFF and 0x00000000-0x0000FFFF which is still not consistent with those entry point addresses. 

Nothing in the memory map is at address 0x0007EA00 which is the start point of the working preloader. The range from 0x00010000 to 0x00100000 is marked as unused. If the only anomaly was the 0xF000E320 start address I would assume the flaw was in the process of building the image and setting the entry point address. However, with an address on the properly working preloader to also appear invalid, there is something here that doesn't make sense that I must resolve before doing more debugging.