Wang LOCI-2A Restoration 2021
It turns on, but doesn't respond to any key presses. The 1501A board at the front of the calculator card cage decodes all of the key presses, so we should check the cable connections to the keyboard and the 1501A.
Alex measured the power consumption at 1.4 Amps with a 121.5 VAC line voltage. The transformer is currently wired for a 115 VAC line voltage. We will consider rewiring it for a 125 VAC line voltage.
The fifth, eighth, and tenth Nixies have the 4 number randomly illuminated. The seventh Nixie has the 1 number randomly illuminated. The ninth Nixie is not illuminated. The 1401A board decodes between two and four BCD bits to determine if a number segment in a Nixie should be displayed. Since we see some numbers randomly displayed in some of the Nixies we likely have some diodes or transistors that are failing on the 1401A board. We should be able to measure the voltage drop across the diodes and transistors on the 1401A board to find the failing components. The transistors are S16393 parts and the diodes are 1N764 parts. The data sheets that I found say that the 1N764 is a Zener diode. Zener diodes are usually used for a voltage reference, and not as part of an input to a NAND gate. We have a spare 1401A board with one bad Nixie. If the spare 1401A board works we can use a Nixie from the bad 1401A to make a complete working one.
We tried the 1401A Nixie display board in the LOCI-2AC and it still had the same bad behavior. The spare 1401A worked OK in the LOCI-2AC except for the Nixie tube that we borrowed to fix the 1401A from the LOCI-2AC. We swapped one Nixie tube from the 1401A from the LOCI-2A into the spare 1401A, and installed it in the LOCI-2A.
We tried the 1501 Input Decoder Control for the Card Reader and Teletype board in the LOCI-2AC and it worked OK. We put it back in the LOCI-2A.
We tried the 1405A Miscellaneous Shift Pulse and Control board in the LOCI-2AC, and it responded to the PRIME key, but nothing else. We tried the spare 1405A in the LOCI-2AC. It worked OK so we installed it in the LOCI-2A. Now the LOCI-2A is showing signs of life.
All of the math functions are misbehaving. The register-to-register functions are picking up and dropping bits.
The W-register to S-register and S-register to W-register functions for all 16 S-registers look like they all work OK.
The LOCI-2 Applications & Instruction Manual includes lots of examples and descriptions of how the calculator works.
We connected the card reader. It has the same intermittent connections as on the LOCI-2AC. We cleaned the contact pads with a Scotchbrite. That improved the connections, but it still needs work. We tried cleaning the pads with DeOxIt. It made it better, but after close inspection we found that many of the little spring electrical contacts in the card reader are bent and not making good contact. I think that the contacts are soldered into the printed circuit board, so it would be painful to unsolder the contacts, straighten them, and solder them back in. We have a spare card reader that is in much better condition. We will clean that and see how that one works.
We did some investigation on the electrical characteristics of the W-Register on the LOCI-2AC. The details are here.
At this point the only thing that works reliably is addition and subtraction. Every other function has problems, and all of them use logarithms. The ANTI LOG function never stops, so if the LOCI can't calculate logs it will cause lots of problems. It looks like all 16 of the storage registers work. The storage registers are in core memory.
When we powered up the machine today the display was blank, other than the +/- Nixie. We tried the 1401A from the LOCI-2AC in this machine, and the display worked OK. So there is likely a problem in the DCN Counter or ER Counter on the 1401A board. We installed the 1401A board that was originally in this LOCI and most of the display worked. One Nixie tube had a halo around all of the digits. We had previously marked this Nixie tube as defective. The ninth Nixie was blank. We swapped it with tenth Nixie and now the ninth Nixie worked and the tenth was blank. So we have another bad Nixie tube. We swapped the tenth Nixie with one from the spare 1401A and it worked OK.
The seventh Nixie displays a 0 and a 4 when after PRIME is pressed. Entering any other number in this digit leaves the 4 displayed and adds the other number. The question is if the comparator is not working and is enabling more than one Nixie number, or if the 4-bit input data bus for this digit has a stuck bit. The register data is gated onto the comparator bus by some diode logic, so maybe we have a bad diode?
We cleaned the contact pads in the punched card reader with a smooth ScotchBrite, alcohol, and DeoxIt. After many tries we found that there were a lot of bent electrical contacts that were not making reliable connections to the contact pads. It is going to be a painful process to unsolder the contacts, reshape them, and solder them back in. We did the same cleaning process on the spare punched card reader, and it seems to be working OK. The calculator will not run a program so there are still issues to debug.
We investigated why some of the Nixies displayed more than one number. We found that wiggling the 1401A board would add or remove multiple numbers from many of the Nixies. We cleaned the tin finger-edge contacts with a white eraser. That improved the behavior. Further wiggling of the 1401A board improved the behavior. Wiggling the 1408A board changed the PROGRAM COUNTER and DECREMENT COUNTER displays change, so we have some more cleaning to do.
We cleaned all of the gold contacts in the socket connectors and sprayed with DeoxIT Gold G5, and cleaned all of the tin-finger contacts with a white eraser and DeoxIT D5. After reassembly the calculator behaves much better.
With AUTO DISP off and after PRIME so that the W register contains all zeros the W->A function does not change the contents of the W register. Executing the A->W function yields all 4s in the display, so the 1406A board probably has a stuck bit. We tried the 1406A board in the other LOCI and observed the same behavior with all 4s displayed after transferring all 0s to the A register. Looks like this one is the best to repair.
With the spare 1406A board installed, AUTO DISP off and after PRIME so that the W register contains all zeros the W->A function does not change the contents of the W register. Executing the A->W function yields all 3s in the display, so it looks like it has two stuck bits. The ERROR light also cannot be cleared.
Pressing the W->A button with AUTO DISP off will shift the digits out of the W register and into the A register. It also loops the output of the W register back into the input of the W register so you don't loose the contents of the W register. Pressing the W->A button with AUTO DISP on will shift the digits out of the W register and into the A register. We believe that it also loops the output of the A register back into the input of the W register so it displays the contents of the A register.
We could solder 20 wires onto the 1406A board so we can see the state of the 4 bit in each of the digits after the W->A button is pressed. (We probably could just look at the 4 bit for 10th digit to see if it got turned on by the W->A button press.) This would tell us if the problem is between the W register and the A register. With AUTO DISP on, all of the 4 bits are on. It is possible that the problem is between the A register and the W register. There should be some kind of gate, switch, or multiplexor that connects the A register to the W register. This part could have a failed diode and causing the stuck 4 bit. Time to get out the DVM and measure the voltage drop in lots of diodes on the 1406A board.
The ERROR light does not go out when the CL ER button is pressed. The ERR flip-flop is on the 1403A board. We measured the voltage drop base to emitter and base to collector for both transistors in the flip-flop. The measurements were OK. We also measured the diodes on all of the inputs, and they were all OK. We put the 1403A board in LOCI #1, and the ERROR toggled when the CLEAR ERROR button was pressed, so it looks like the problem is not on the 1403A board. We looked at the schematics for the keyboard and 1501A decoder board to see if we could trace the signal from the key to the 1403A board. Unfortunately the CL ER button now toggles the ERR flip-flop. We will try it later to see if it is broken again.
The decimal point in the 7th position is always on slightly dimmer than the normal brightness. The decimal point in the 10th position does not go on. The pads for the 10th decimal driver transistor were lifted. We repaired the poor soldering, but it did not fix the decimal light. We desoldered the 10th decimal point neon light and found that one lead was broken at the back of the bulb. The break was at the surface of the glass, so it would be very difficult to repair. There are many poor quality repairs on the 1403A board.
The last time we tried the spare 1403A nothing was displayed. We tried it again today, and it works OK. We swapped the defective Nixies on the spare 1403A with the ones on the original 1403A and everything works OK.
We tested some of the math functions. Addition and subtraction don't work because of the stuck 4 bits in the A register on the 1406A board. We tested most of the remaining math functions and were surprised to see how many worked OK. We will continue testing next week.
The LOCI seems to work OK at power up, other than the 4 bit in the A register stuck at a 1 on the 1406A board. We will investigate that issue today. We localized the problem to the 1406A board by swapping the other two boards that we have. With AUTO DISPLAY on, if we press PRIME and then A->W, we see +.4400000000 displayed. The digits in the A register are serially shifted out of the LSB of the register and into the MSB of the W register and displayed on the Nixie tubes. This leads me to believe that the problem is in the flip-flop for the 4 bit in the second digit. The contents of the first digit would be corrupted when it is shifted through the second digit.
With AUTO DISPLAY on, if we press PRIME and then W->A we see +.4444444444 displayed. In this case the zero digits in the W register are shifted out the LSB and into the MSB of the A register. as they pass through the (broken) second digit the 4-bit would be turned on, and then shifted back into the W register.
We checked the forward and backward voltage drop between base and collector and base an emitter of the transistors that make up the A register. The 24th transistor that we tested was completely open instead of showing the normal about 1.0V drop. The transistors are in pairs to make a flip-flop for each BCD bit in a digit. There are 4 pairs of transistors in a column to make a digit, and 10 columns to make the A register. We didn't know if the 1 bit was near the card edge side or the top side of the board. The open transistor was in the second pair from the top, so that means that the 1 bit is near the card edge and the 8 bit is near the top of the board. We harvested a 2N3638A transistor from a non-Wang board we had in the museum's lab space, replaced the open transistor, and now this LOCI can add and subtract.
We tested the other functions like multiply, divide, square, square root, etc. and they all seem to work OK. We tried running Diagnostic #1 from a punched card. Some of the digits entered into the W register were incorrect. We removed the punched card, closed the card reader, and stepped the program. All of the lights for the program code should be on for each step. We periodically found a light off indicating a bad electrical connection in the card reader. We unlatched the card reader cover and squeezed the cover repeatedly to improve the electrical connection. After many squeezes all of the lights stayed on. The program failed at a later step, so we repeated the squeezing. After a failure at step 41 we found that the squeezing would not reliable fix the problem. We closely inspected the electrical contacts for step 41 and found two that were bent and barely making contact. We will need to disassemble the card reader to bend the contacts back into shape. All of this is on the spare card reader. The card reader that came with this LOCI has lots of contacts that are bent and need to be repaired. A project for another Saturday.
The LOCI seems to work OK at power up. We tested all of the math functions and all yield reasonable results.
We swapped the card reader with LOCI #1 because it is more reliable. After a little fiddling with the card reader, Input Test #1 runs OK from a punched card. We will eventually need to disassemble and repair the card reader from LOCI #1 and the spare card reader. Both have bent electrical contacts that read the cards.
We punched the card for Input Test #2. This test continues testing the W and A registers by entering patterns of numbers, transferring them to the A register, and then transferring them back to the W register. If all is OK then the entered number should not change. Input Test #2 runs OK.
We punched the card for Test #3 Input and Accumulator. This test does further testing of the W and A registers by entering patterns of numbers, transferring them to the A register, and then transferring them back to the W register. It adds some addition and subtraction tests. The results in the display didn't show what we expected. We looked at the code for the test and found errors in the program listing. The Comments section shows what should be in the display should, but but many times it was wrong. For example it said in the comment that it should display a 16, and it should be 1b to show that it should display a 1 and a blank Nixie. We joked about sending a note to Wang so they could correct the manual. We finally decided that Test #3 is working OK.
Next week we will punch cards and run more diagnostic tests to see if there is anything in the calculator that is misbehaving.
We gave a presentation on the LOCI-2 to Providence Geeks last Wednesday. The presentation went well, the LOCI-2 worked OK, there was lots of interest, and lots of good questions.
We punched diagnostic #4, Accumulator test. I made one error on step 32 where I punched a 13 instead of a 33. Fortunately all it took to fix was punching the 20 hole. There was one misread that was fixed by cleaning a contact pad in the card reader. The test runs OK.
We punched diagnostic #5, L-Register test. The test runs OK.
We punched diagnostic #6, Storage Register test. It gets to step 10 OK. At Step 11 it enters a 6, and then should execute a STORE instruction. I think that the intent is for the program to go the subroutine at step 60, so maybe it is missing the entering a 0 step? In any case this isn't working, so debugging it will be our project for next week.
We continued debugging diagnostic #6, Storage Register test. This diagnostic has a subroutine at step 60 with a RESTORE instruction at the step 72. The STORE instruction at step 12 should branch to the step that is in the W register, according to the program step 60. The program only puts a 6 in the W register. After some digging we found that the STORE only uses the left two digits of the W register. Since all of the digits in the W register start as zeros putting a 6 in the first digit is the same as entering a 60 and saves one program step. Clever! In any case it is not branching to step 60, it just goes to the next sequential instruction.
The STORE instruction (op code 64) saves the contents of the PC register (on the 1408A board) in the PCS register (on the 1408A board), the DC register (on the 1408A board) in the DCS register (on the 1408A board), and then copies the contents of the W register (on the 1402A board) into the PC register (on the 1408A board). This will jump to a subroutine. At the end of a subroutine is a RESTORE instruction (op code 65) which exchanges the contents of the PCS and the PC register, copies the contents of the DCS to the DC register. This will return to the instruction step after the STORE instruction. Unfortunately the STORE instruction just goes to the next sequential instruction so it is not putting the contents of the W register into the PC register. The RESTORE instruction looks like it is working for the PC/PCs but not for the DC/DCS.
We tried replacing the 1408A board that holds most of the logic related to the STORE instruction. There was no change in the behavior, so we put the original board back in. We tried the 1501A board from LOCI#1, and now the STORE instruction works OK. We need to repair the 1501A boards from LOCI#2 and the one in the spares kit has a broken transistor that needs to be replaced.
We tried diagnostic #6, Storage Register test, with the borrowed 1501A board in place. The results were exactly as described in the manual. By single stepping through the test program we found that the diagnostic repeatedly tests storage registers 0-3 instead of testing all storage registers 0-15. We need to punch a new diagnostic card and replace the PRIME instructions in the subroutine with CLEAR W instructions so it will test all of the storage registers. We manually tested the storage registers and they all work OK.
Next Saturday we can check the diodes and transistors on the 1501A board to see if we can find a defective part and repair the board. We also need to replace a physically broken 2N404 transistor on the spare 1501A board and see if it works OK. The 1501A board in LOCI#1 seems to work OK, but needs additional testing. We could also make a new punched card for diagnostic #6, Storage Register test, with a CLEAR W instruction replacing the PRIME instructions in the subroutine.
We bought some spare Nixie tubes on eBay for about $10 each. These were manufactured by Burroughs, but have the same part number and look identical. The spare 1401A board has two bad Nixie tubes, so we can replace those and still have some spares. We tested the Nixies in LOCK #2. Three are just a little pink, and two are orange like the others in the LOCI. We replaced the two defective Nixies in the space 1401A board, and will save the other three Nixies for spares.
We replaced a mechanically damaged 2N404 transistor at the lower left corner of the spare 1501A board with a NOS spare that was donated a few months ago. We ran diagnostics #1-#6 on LOCI#2, and they all worked OK. After being turned on for several hours it started misbehaving. Looks like we have more debugging to do.
The 1501A board from LOCI#2 will not execute the STORE instruction. We looked at the schematic for this board, and there are 11 FD1684 diodes in the STORE decoding circuit. Unfortunately there are no reference designators on the schematics, or silkscreen on the board, so finding the bad diodes is going to take LOTS of manual testing. We got part way through the diode testing, and have not found any bad ones yet.
The white diodes with a black band (white with yellow-blue-brown on another 1501A board) have a 0.33V drop, so they are probably made from germanium. The FD1684 black diodes with a yellow band have a 0.83V drop and are probably made from silicon. We can likely substitute just about any modern silicon signal diode for the FD1684 diodes. The transistors in the inverter circuits are 2N3638 have a 0.9V drop and are probably silicon.
We tested the voltage drop in all 384 diodes in the function decoder circuits. All were OK, but some had a voltage drop around 0.83V, a few were as high as 1.3V. We measured the base-emitter and base-collector voltage drop in the 64 transistors in the inverter circuits. One of the transistors, the one at the lower left corner, had an open base-emitter. We replaced the transistor with one harvested from a scrap board. We ran diagnostic #6 and found that the RESTORE instruction still does not work.
Next week we will see if can correlate the signals on the base of the transistors with the individual instructions to make sure that they all work. We will make a chart that shows which transistor inverts which instruction signal. If no transistor sees a signal when we execute the STORE instruction then the problem is in the diode decoder circuit. Otherwise the problem is in the diode circuit that generates the individual control signals from the STORE signal.
The plan for today is to map the transistors on the 1501A board to the individual key presses or instructions. When we find the transistor for the STORE function we can determine if the function decoder diodes, the transistor, or the output diodes are at fault. The Wang documentation doesn't tell us where the components are on a board.
We continued mapping the individual key presses and instructions to transistors. We got diverted by a donated AlphaServer and work on the Intel SDK-85, so we didn't get too far.
We continued mapping the individual key presses and instructions to transistors. We had lots of visitors today, so we make much progress. We demonstrate the calculator to several very interested visitors.
We continued mapping the individual key presses and instructions to transistors. Almost done, should finish next week.
We continued mapping the individual key presses and instructions to transistors. We made a spreadsheet that maps the function to transistor numbers, so we could map more information to a given transistor.
We continued mapping the individual key presses and instructions to transistors. We filled in the spreadsheet that maps the function to transistor numbers.
It looks like the BCD "10" switch on the keyboard is not working reliably. For example if you enter a 33 you actually get a 23.
On the 1501A from LOCI #1, the +6 pull-up for the inverters is +3.91V, and the -12V pull-down for the decoder diodes is -10.41.
BCD Opcode signals are active negative and go to -6V. The STORE instruction is Opcode 64, so 40, 20, 10\, 4, 2\, 1\
We replaced the 2N3638 transistor on the 1501A board that does the STORE instruction with one harvested from another board. The STORE instruction shows no signal activity when the instruction is executed. We need to check the signal on the base of the 2N3638 transistor, and if it is active compare it to the signal on the collector of the transistor. This could indicate that the replacement transistor is bad. If there is no signal on the base of the transistor, then one of the operation code decoder diodes is bad.
What has been replaced or repaired:
1401A board, Register Decoder and Display (1/14/21)