Saturday, June 8, 2024

More failures found and repaired on card; almost ready to put back into the machine

FAILED TRANSISTORS IN SLT MODULES FOUND, MODULES REPLACED

The circuit in the 3819 card requires a first transistor to conduct in order to block the second power transistor from powering the lamp. These transistors are provided as SLT modules, hosting four transistors per 361497 module. IBM's informal name for this module is FTX meaning four transistors. 

At least one transistor on each module was damaged by the power incident when the tantalum filter capacitor shorted the 48V to ground. This is a very common SLT module, which you can find on many SLT cards. I extracted two from a donor card in my stockpile, I think it was a card from a communications controller but it may have been a tape drive part; all that matters is that it had working FTX modules.

I pulled out the bad modules from the defective 3819 card and installed the spare parts. I put the card in my testing jig but I still had some circuits that were illuminated in the absence of a control input signal. At that point I began checking the continuity of traces on the card to see why my transistors weren't conducting. 

Defective modules removed

BURNED/BROKEN GROUND TRACES INSIDE CARD

I found that the emitters of the transistors, which were supposed to be connected to ground (pin D08), were floating on many of the circuits. The traces inside the card had acted as a fuse to protect the power supplies by evaporating so there was no ground for the shorted tantalum to dump voltage into. 

There aren't that many pins on the card that are connected to the main (D08) ground, so I just added some wires on the back of the card to restore connectivity. This mostly worked, as I discovered in the subsequent bench testing. 

Jumper wires to restore ground connectivity

TESTING STATUS AS OF THE END OF THE WORKDAY 

My test jig had multiple power supplies, giving me +3, +6, +12 and +48 so that I could put the card through its paces. The 12V supply runs through an incandescent lamp whose other lead is connected to a card output pin. The lamp should not be lit unless the input pin associated with that circuit is pulled down to ground. When the input is grounded, the bulb should glow brightly. 

I had borrowed a good 284 transistor from one of the circuits to replace the shorted transistor I had discovered earlier. Thus, we have one of the eight circuits which will not drive a lamp. The expectation is that the other seven should work properly.

All did except for one circuit where the lamp was lit regardless of the input pin state. This fifth circuit uses input pin D13 to control a lamp or solenoid on pin B13. This is wired to the File Ready lamp and will indicate that a disk is spinning and ready to use in the internal disk drive. 

I will dig into this failure when I get back to the shop and correct it. I do have enough parts to make six circuits work, unfortunately, the circuits working are 2-4 and 6-8 but I need 3-8 to match the wiring to the lamps and solenoids. I don't want to rewire the backplane of the 1130, so any changes I make will still be on this 3819 card.

Since the machine has a total of three of these cards to control various solenoids and lamps, I don't want this card to migrate to the other card's slots since it is repaired to work as necessary in its current location. The other two slots (B4 and B5) make use of the first circuit which is the one I cannibalized to replace the burned out 284 transistor on another circuit. The repaired card will not work properly in B4 or B5). 

Found two failed components on the 3819 card

OPERATED THE CARD ON THE BENCH TO CHECK OUT ITS FUNCTION

I plugged the card into my SLT card test jig and hooked it up to its voltages - +3, +6, +48V and then +12V through the indicator lamps it will drive. I quickly noticed that the +3 and +6 supplies were being fed voltage from the 48V source, so I shut down and proceeded to check parts without power.

By comparison, I tested another 3819 card from the machine and it worked just fine. No strange flow of 48V to the other power rails and it worked properly. I had a spare 12V bulb I wired to a +12V supply and hooked to an output pin. When I pulled the input pin to ground, the bulb illuminated. High resistance between all the rails, as should be the case. 

FIRST DISCOVERY - ONE OF THE EIGHT POWER TRANSISTORS WAS A DEAD SHORT

I was testing diode voltages of the transistors when I came to this one which was completely shorted between all three leads. I removed the offending transistor, which was made by Fairchild and is marked 284-6516 - obscure IBM internal code. The schematic also lists this as an IBM 284 transistor, which is equally useless in purchasing parts since those are private IBM numbers. 

I didn't find any of those transistors in my stockpile of old SLT cards, but fortunately this particular 3819 card is only connected to six outputs, so that two circuits were spare. I can grab one of the spare transistors and move it over to the location where the failed part was removed, thus this card can be used in slot D5 going forward (once all other faults are found and repaired).

SECOND DISCOVERY - DEAD SHORT ON TANTALUM CAPACITOR FOR 48V RAIL

The capacitor for the 48V supply is a dead short to the ground pins that go back to the indicator lamps on the console panel. I remembered that a team restoring an 1130 in Europe encountered exactly this failure. The result is that they saw 48V out on the lamps not the 12V that should be observed, and they found that some ground traces on the backplane at the socket for the bad card had been evaporated by overcurrent. 


I have many spare tantalum capacitors from my old IBM SLT cards, so that is easy to replace. I will have to carefully check the traces on the card itself as well as on the backplane at socket D5 and make suitable repairs. 

ONCE REPAIRED, WILL BE FULLY BENCH TESTED BEFORE REINSERTION

I will use my bench supplies with their overcurrent protection capabilities and ensure that everything works properly with this card, circuit by circuit for the seven circuits that will be useable. 

Friday, June 7, 2024

Finding commonality in the two 1130 misbehaving lights

LOOKING AT LOGIC DIAGRAMS SHOWS THE TWO ARE DRIVEN BY A SINGLE CARD

The lamp driver for the KB Select lamp and the Parity lamp are both on a 3819 card in slot D5 of gate A, compartment C1. My first thought then was that the card was not properly inserted or bad, thus I looked into the card design to see how two failures might occur at the same time on the card.  

SCHEMATIC OF 3819 STUDIED

The schematic for the card contains eight identical drivers, each can sink 300ma of current at 48V, roughly 15W. They are used to power the lamps on the console plate on the left of the keyboard, as well as solenoids in the keyboard, typewriter and disk drive. 

One of eight circuits on the card


One of eight circuits on the card


Looking at the detailed schematic of the card, there are not many common elements that could cause two of the circuits to fail simultaneously. The lamps are illuminated, so we know that the transistor on the right is not conducting to ground, letting the +48V reach the output pin and thus the lamp. 

For the right transistor to be cut off the transistor on the left must be conducting. The base of the left transistor goes independently in each of the eight circuits. The +3 and +48V supply have to be connected on the card as well for these results to happen. If the +6V supply is missing, then the right transistor can't conduct in any case and the lamps would remain on. 

TRACING SOURCE FOR THE TWO LAMP DRIVERS

The KB Select signal comes from an inverter at A-C1 D3 which gets its signal from A-C1 E2, all of which are on the same backplane as the lamp driver card at D5. The Parity Check signal comes from gate B, compartment A1, card J3 across a cable that runs from B-A1 compartment connector at A7 to A-C1 compartment connector at N6. Thus no commonality that would suggest a cabling or trace fault. 

OUR COMMON CANDIDATES

We might have a trace that failed for the +6V pin in the 3819 card. Similarly, we might have a bad trace in the board that doesn't deliver +6V to the D5 socket. Ground failure would also produce the symptoms, either on the 3819 card or at the socket. If grounds at D04, D05 and D08 are not the same, it might explain the results.  Finally it is possible that +3 supply pin could influence the behavior. Cracked traces around the socket are also possible, although the input signals are too far apart to be likely to run next to each other. 

NEXT STEPS

I have to put the scope on the driving signals at D5, pins B03 (KB Select) and D09 (Parity) to see if they are at logic low or high. 

I will also check voltages at D5 socket and ground continuity. 

Another check is to swap the card with another 3819 from the machine. 



SSM 1053 Repairs complete

NEW PLASTIC LID FINISHED AND INSTALLED

I had laser cut a thick acrylic cover to fit atop the 1053 console printer (typewriter) lid, as a substitute for the missing part that would have been on the machine has delivered from IBM. I glued two acrylic blocks there the springs will hold the cover in place, notched them for the spring to fit into, and put the cover on the typewriter lid. 

FINAL TESTING OF THE 1053

I tested the operation of the typewriter with all the rotation positions (-5 to +5) in both upper and lower case, both to ensure that they select properly and to check that no extra tension is applied to the tilt and rotate metal tapes that might lead to future failure. 

I also did a quick check of the space, carrier return and tab functions from the front buttons. The typewriter appears to be ready to resume operation at the System Source Museum atop the IBM 1130 system. 


VCF 1130 early testing shows substantial portions working well

LAMP TEST SHOWS QUITE A FEW BULBS ARE DEAD

The lamp test switch illuminates all the lights on the display panel, allowing quick identification of bulbs that need replacement. I didn't list everything on this first test, but did see that the T6 bulb is out as well as a block of four bits in the SBR register. There were other holes in the display but I have at least eight bulbs that can be used - the ones in the customer engineer row - then will figure out how to source additional ones. 

SINGLE STEP TESTING OF EXECUTION SHOWED THAT A LOT OF THE CPU WORKS

In single step mode, I can step the machine through each of the T clock cycles and watch it process instructions as the instruction cycle state changes. This looked very good - it grabbed data from memory, interpreted it as a one word instruction so it processed both the I1 state and then the E1 state to execute it. 

There can still be many failures in the machine, as this is far from an exhaustive test, but the primary clocks, states and run control are working correctly. I was very encouraged by this.

SPURIOUS LAMPS LIT ON CONSOLE PLATE

I saw the Parity Check lamp and the Keyboard Select lamps illuminated upon power up and all through the single step operation. I suspect these are errors related to driving the lamps and not the actual condition registered, which will really help narrow down the cause. 

I say this because if we had a parity error, the machine would have forced a stop condition and I could not have single stepped as I did. Further, the keyboard did not unlock, which it would have if the keyboard were really selected. 

CHECKED ALL PUSHBUTTONS AND CE SWITCHES FOR CONDUCTIVITY

I did check the operation of all the pushbuttons on the console plate, the rotary mode switch and the six CE toggle switches under the front cover, using a VOM to test resistance and operation. They worked correctly. 

NEXT UP - INVENTORY CHECK OF SLT CARDS AND GOOD SEATING

I listed all the SLT cards that should be in each card cage (SLT compartment) of the machine. I will go through each compartment, making sure all is in order. I will pull each card to check its type if I don't recognize it from other examples. For each card, I will verify that it is pushed into place on the SLT board (backplane). 

I suspect that I might have a few issues with cards that either came loose or where removed and not properly reinserted during the long rest this machine had in the warehouse. 

The most common issues I find when restoring 1130 systems are:

  • Cards or connectors not inserted properly or in wrong slot
  • Failed trace on backplane that requires wirewrap jumper
  • Failed SLT card
  • Oxidation causing switches to not make good connections
The rate of SLT card failures is quite low, in my experience. Trace failures occur one to a few times in each machine I have restored, so this more common. Oxidation and card insertion issues are the most common failures and fortunately the easiest by far to correct. 

Wednesday, June 5, 2024

Toying with idea suggested by another restorer; plug in peripheral replacements for 1130 systems

THE 1130 REQUIRES PERIPHERALS FOR EFFECTIVE DEMONSTRATIONS

The entire design of the IBM 1130 system is centered on batch processing, thus a machine which primarily reads punched cards in, processes things and produces printed output on a line printer. Several of the museums which have 1130 systems do not have the reader and printer, or they are not working, nor do they have the keypunches and supplies on hand to use these systems as they were intended. 

In spite of its disk based monitor system (DMS2) the software is itself constructed around the concept of reading job control languages and other data from card readers, producing output on line printers, card punches, plotters and other devices. The console printer (typewriter) is a secondary kind of device that was generally not used very often compared to the continuous use of the readers and printers. 

CONCEPT OF A REPLACEMENT

The basic idea from this restorer is to inject card images from a PC based file but using the physical card reader on their system. This works when you have a mostly working peripheral but does not solve the issue for museums that lack working readers and printers.
To accomplish this without needing the IO boxes, my approach would be to connect to the 1130 at its cable connector for the missing peripherals. The replacement would appear to be the physical card reader or line printer as far as the 1130 system was concerned, but would instead use modern file systems and storage devices to hold the pretend punched cards and to record the pretend paper output. 

HOW IT WOULD WORK FOR A 1442 CARD READER REPLACEMENT

The 1442 card reader/punch is a complex beast but as far as the 1130 cable connection is concerned, it is much simpler. There are approximately 65 signals on the cable between the device and the 1130. These are in categories:
  • 12 rows of card data from reading the current column
  • 12 rows of card data to be punched in the current column
  • 12 rows of confirmation signals of what was punched in the current column
  • Four 'CB' pulses at points during one feed cycle
  • Read emitter pulse that each of 80 columns is ready to be read
  • Hopper empty, Stacker full and Cover open microswitches
  • Card entering punch station signal
  • Two Incremental Drive pulses indicating movement of card in punch station
  • Two punch 'CB' pulses for each of 80 columns
  • Trigger feed, read or punch
  • Busy status
  • Select alternate stacker
  • Motor controls
  • Pushbuttons (Start, Stop, Non-Process Runout) and lights (Power, Ready, Check and other errors)
The replacement device will generate the appropriate CB and emitter pulses at the proper timing when the device has been requested to do a feed, read or punch. It will present the state of the 12 rows (holes) then emit a pulse to have the 1130 pick up the data. On punching, it will grab the 12 rows of data for each column to save on the replacement device, then echo back the value to indicate that the punching worked properly. 

Feed CB pulses, microswitches and other pulses generated by the replacement device will show the card moving through the 1442. Any lamps to be illuminated on a physical 1442 will be shown on our replacement device. We can send a pushbutton signal for Start, Stop and NPRO from the replacement device.

This will cause the controller logic in the 1130 to believe that it is controlling a physical 1442 and that successful reading and punching of cards has taken place. All works normally for the 1130 system. 

The data that will be passed into the 1130 upon reading or captured from the 1130 upon punching is stored recording all 12 rows of data for each of 80 columns, thus ensuring it handles any kind of binary as well as Hollerith format. The data is stored compatibly to the format used by the DeckView program written by Brian Knittel as part of his IBM 1130 simulator, thus these files can be interchanged between simulators and the real 1130. Deckview will show the 029 keypunch glyph on the top of the card image when viewing a card, in addition to the actual holes punched. 

A USB memory stick with a card file having a specified name can be inserted into the replacement box, just as a stack of cards would be placed onto the input hopper of the physical 1442. Once must supply blank card images on the USB stick the same way that an operator must load blank cards before doing an output only job. Any punching will update the cards just as would occur with an actual 1442, since programmers can read certain columns of a card and then punch data in different columns immediately afterwards. The restriction is that punching must start in column 1 so the data being read has to be in higher column numbers. 

Physically I envision this as a small model of a 1442 with a USB slot on top for the input hopper. It would have the lights and pushbuttons that look like the physical reader. Perhaps the USB card would have a 3D printed cover that looked like a stack of cards. 

Image copyright The National Museum of Computing, UK

A companion application would look like an 029 keypunch and allow creating and editing cards in the files. The files on the USB stick might be named hopper, stacker1 and stacker2. 

HOW IT MIGHT WORK FOR AN 1132 PRINTER REPLACEMENT

The 1132 uses 120 spinning print wheels that have 48 character positions around their perimeter, all wheels moving together continuously. When a user starts a print operation, the 1132 raises a signal when each new character is about to move in front of the ribbon and paper. It also sends a bit pattern that represents the particular character which is arriving. 

The printer hardware waits a fixed period of time, allowing the software on the IBM 1130 to read that bit pattern then set up a hardware scan buffer in memory with a 1 bit for every print column that contains the character that is arriving. This buffer is fixed in locations 32 to 39, which covers the 120 columns plus the final bit is used to let the printer detect when the software had not finished setting up those bits in the buffer before physical printing began. 

When the software was interrupted due to a new character arriving on the wheel, once it grabs the character code it should turn off the final bit in the hardware buffer. Once the software has set all the bits in the buffer for columns containing that character, it turns on the final bit. The printer would fetch the eight words of the buffer one by one to select the columns it will print; if the final word's final bit is not a 1, the controller logic in the 1130 takes the printer out of ready and signals a 'scan check' error condition. 

Our replacement will model a wheel rotating at the 150 rpm so that each character takes a bit over 8.3 milliseconds to arrive. Thus when commanded to start a print by one of the signal wires begin activated, we will send the interrupt signal every 8.3 ms and encode the proper character bit pattern on eight wires. The 1130 delays for 1.78 ms to allow the preparation of the hardware scan buffer before it begins sending the buffer words to the printer. 

The printer is sent 16 bits representing one word of the buffer plus a eight print group lines that tell us which of the eight buffer words we are receiving from the 1130. We use this to insert the character into any column where a 1 bit has arrived from the buffer. When we have processed the final word of the eight from the buffer, we have completed adding this character to the print line we are building up. 

Thus when the print gate signal is activated, we clear our print line in the replacement device, begin sending the print wheel characters every 8.3 ms and receive the buffer words for each character to insert into the columns of the print line. When the print gate signal is dropped, because the print line has been completed, we capture that line and go back to waiting.

The paper movement is generated by one of two signal wires from the IBM 1130. clutch or interposer, which either cause a one line space of the paper or start the paper skipping up. Our replacement device will emulate the carriage control tape of the printer, which is a paper band with twelve columns along the length representing printer channels 1 through 12 although this printer only works with 1 to 6, 9 and 12. The band is taped into a loop and is mounted on the physical 1132. 

The printer can be set for either 6 lines per inch or 8 lines per inch spacing. The carriage control tape will move at 60 or 80 positions per second while skipping, thus our replacement device sends the carriage pulse once each 12.5 or 16.67 milliseconds representing the movement of one line. Spacing down one line takes the same time as during a skip. 

Our replacement device will have a carriage control tape stored in it, with holes in the columns and enough rows to emulate the longest paper length. Typically forms have 66 lines on them, but could have about 90 when in high density (6 lpi) mode. We track where we are on the continuous loop tape and send the proper hole bits for channels 1, 2, 3, 4, 5, 6, 9 and 12 for each row (line). 

In general, it is up to the software to determine when to stop skipping. When the interposer signal is dropped we stop at the next line (row) of the simulated tape. We capture a blank line for each row/line we pass as the printer spaces or skips. The carriage restore button, however, skips until it finds the next hole in channel 1 of the tape. This is done by the 1132 hardware thus we must pad blank print lines down to the point where we have a hole in channel 1, rather than waiting for the software to stop the skip. 

This replacement device will communicate over a USB serial link to software that runs on a personal computer. The software on the PC or Mac will be capture the output into an ASCII file. That software will also transmit a carriage control tape image down to the replacement device in order to control skipping and carriage restore operations. 

It is common for programs to overprint with an 1132, that is to send multiple lines of print without spacing or skipping the carrier to move the paper. This has to be addressed somehow in the captured file. Also, we need to show the fold lines of the paper which is traditionally a bit above the point where the carriage control tape has a hole in channel 1, as that is the top of the form. 

I envision generating the output of the printer in postscript. It would be output to a printer attached to the device. The device would need to have a button to flush a page to see the last lines since the postscript would still be building up the page image, but that would be labeled as Carriage Restore just as on the physical 1132. 

 If I had used a standard ASCII file it cannot show the results of overprinting, instead showing only the last line printed before a space or skip. A tradition with printing on the 1132 is to watch for a hole in channels 9 or 12, which indicates the last printable line of a form, then skip to another channel before the next print operation. Thus, we can detect this pattern and do something to indicate the first line of a page such as a line of a character that doesn't exist on the 1132 print wheel. 

The viewing program could graphically set pixels for each line printed, thus showing what overprinting would look like on physical paper. It also can show perforation lines at the fanfold. Optionally it could introduce tinting to represent greenbar paper, where alternating stripes of green and white are on the paper before it is loaded into the printer. 

OTHER OPTIONS AND THOUGHTS

1 - A physical card reader, e.g. a Documation reader, could be combined with the 1442 replacement device so that actual punched cards can be read by the 1130 system. That plus the postscript based modern printer attached as the 1132 replacement would give the closest recreation of operating a batch mainframe system. 

2 - Rather than implementing these at the connectors, which requires the 1130 to have controller logic installed for each peripheral you are emulating, a design could be attached which intercepts the XIO instructions and manages core memory, interrupts and device status words, bypassing any actual device controller logic in the system. 

This requires about 76 signals to be connected onto the SLT (mother)boards but allows emulation of any device that can be installed on an 1130, not just the devices which were installed on the specific 1130 machine. The bonus is that I have already created the FPGA logic to do this as part of my SAC Emulator box I developed years ago to use with my own IBM 1130. This therefore would have the least development work involved; mainly I have to clean up the Python based GUI and make it more rugged. 

Sunday, June 2, 2024

More testing of the cycle steal (DMA) core memory loader

NOT HAPPY WITH TRIGGER AND STOP OF THE CYCLE FROM THE ARDUINO

I discovered that the logic wasn't doing what I expected - wait to trigger until the Arduino request line (ArdReq) goes high, emit a done line (ArdDone) to the Arduino, then go back to idle when the ArdReq line is dropped. 

I did spot the reason for the flaw and believed that a very simply change would fix it. I worked out a mod I could make to the board, cutting one trace and adding a wire between a couple of other pins. I applied this bodge to the board and tested again. The start and stop of the cycle steal was now reliable and just as I intended.

CHECKING THAT ADDRESS AND DATA EMITTED TO 1130 ONLY DURING A CYCLE

I hooked up some wires to address and data pins on the board, as they would be raised by the Arduino before commanding each cycle steal. I then monitored what was done to the wires that will be connected to the 1130 circuitry. 

Since the gates driving the 1130 are open collector, intended to interface with the different voltage levels of SLT versus TTL, I also put in some pullup resistors so that I could observe the actual logic state of these output pins. 

I worked through all of them, ensuring that I would present the address and data correctly to the 1130 system. I also verified that control output lines -CSLevel0Request and -FileGateEntry were asserted (pulled low by open collector gates) at the proper time during a cycle steal.  

CHECKED OPERABILITY OF THE TTL LOGIC WITH SLT CIRCUIT INPUT SIGNALS

Since SLT logic has a different voltage scheme with an on state nominally +3V and off nominally 0V, while TTL has +5 and 0 for its nominal values, I wanted to be certain that a valid SLT logic level would be detected properly by my TTL logic gates. 

I did not find a complete set of lowest valid high and highest valid low voltages, but IBM did specify the 'transition' voltages where a rising signal switches from 0 to 1 and where a falling signal switches from 1 to 0. These are 0.3 and 1.8V respectively.  Thus I can expect SLT to give me something below 0.3 when low and above 1.8 when high.

SLT operates only by sinking current, as far as the input of the next gate is concerned, not the actual voltage level. If the output voltage is low enough to cause a current to flow from the next gate input down through the output to ground, then it is at logic low. Any other condition is logic high. Thus an open circuit is a valid high as far as SLT is concerned, with 0V present. 

The typical gate output of SLT is formed by a transistor whose base is tied to ground and whose collector is the output. A pullup resistor, often 5K, brings the collector up to +3V when the transistor is not switched on. The germanium transistor has a diode junction voltage of about 0.3V, thus when turned on it appears to be at roughly 0.3V. 

That means my TTL gates will see about 0.3V when the driving SLT gate is in the low state and about 3V when the gate is in the high state. If the SLT gate is also driving other circuits then resistor divider effects could lower the sensed voltage somewhat, but it is going to be well north of 2V for any practical case. 

Going in the other direction, an open collector TTL gate could sink perhaps 8ma to near ground level, which is certainly enough to pull the junction of diodes inside an SLT gate down to zero volts as they have resistors on the order of 2K pulling the junction up and about 5K pulling down and therefore only need a bit over 2ma of current sinking. 

Even considering the non-zero output because of the diode voltage of the TTL transistors, SLT is implemented with -3V and +6V rails plus a few diodes such that the voltage at the base of the SLT inverting transistor is below its threshold even when the inputs are a bit above 0.  This means that our TTL open collector gates can easily inject a logic low into an SLT circuit. 

Thus, I checked whether my TTL gates would work properly with inputs down to 2V for logic high and with inputs a bit above 0.3 for logic low. The specification for most 74LSxx gates is a minimum of 2V for logic high input and a maximum of 0.7V for a logic low, which fits nicely with the expected situation. My circuit breadboard tool has a variable supply allowing me to adjust the voltage being fed into my circuits, seeing them detect properly with 2V and 0.7V levels presented on their inputs. 

FINAL BOARD DESIGN SENT TO THE FABRICATION HOUSE

I worked carefully on the board, cleaning up traces, adding extensive ground planes and improving the silkscreen legends. Now that the logic is working as desired, I uploaded the design to JLCPCB.com and will wait for the final boards to arrive in a week or so.