Thursday, October 31, 2024

Start capacitor and air filter arrived and put into the 1130's internal disk drive; began building 1627 card

START CAPACITOR ADDED INTO BLOWER MOTOR CIRCUIT

Since I replaced the blower motor with a similar but not identical one, the current start relay wasn't able to start the motor spinning. It should kick in momentarily then disconnect the start winding as the motor rotates up to speed. I found that I needed to introduce a couple of microfarads of capacitance into the start winding circuit to introduce enough phase shift to reliably start motor rotation. 

I added this 2.2uF capacitor in series between the start relay and the blower motor's start winding. It fires up nicely and reliably now. 

FILTER INSTALLED INSIDE PLENUM OF THE DISK DRIVE

This filter was close enough in size and appearance to be substituted into the drive. It is important that the air being forced into the disk cartridge and out across the disk heads is free of particles in the 3 micron and larger range as the heads fly at about that height over the disk surface. 


TESTING AIR FLOW WITH FILTER INSTALLED

Quite satisfied with air volume coming through the filter and out into the disk cartridge. 

PCBS ARRIVED - STARTING TO SOLDER ON PARTS TO BUILD THE CARD

I have installed all the components on the front of the PCB, but have 22 decoupling capacitors to solder onto the rear of the board to complete it. 

The board is well sized to sit atop the donor SLT double card where it will be attached. I took this picture after only having installed the voltage regulator that drops the +12V supply down to produce the 5V needed for all the 74LSxx chips. 


Once I finish the parts, the board has to be assembled onto the card. Two holes will be drilled to mechanically anchor the PCB. 

I will tack on some wires to the donor SLT card and solder the other end onto my PCB, completing the connections. 

I will put this on the testbench and power it with +12V which is the only 1130 supply voltage that it will use. I can then set up the input pins to put it through its paces. 


Wednesday, October 30, 2024

Installed 2501 controller cards in 1130, beginning debugging

FOUND ONE CARD WITH A BROKEN SOCKET PIN

A 3421 card, which is simply ten inverters, had one of its circuits failing when I tested it with the 1442 reader. I put it aside but need it now that I am adding in the last of the device controller logic groups, the one for the 2501 reader. I put it on the bench to verify the failure part, expecting that the issue would be a component on the card that needed replacement.

What I found instead was that the springy contact material inside the socket of the card had snapped off for one pin - the failing inverter's output. This card had a plastic socket cover that was mangled up, which apparently allowed the pin to be bent and damaged in a prior lifetime when it was inserted into the card compartment. 


These springy contacts are covered by a plastic shroud normally. I removed the shroud to assess and replace the contact. 

REPLACED THE SOCKET CONTACT PIECE

I took one of my junk SLT cards and removed the contact from it. Apparently these are soldered onto a pad on the PCB making up the SLT card, allowing me to neatly remove it and attach it to the 3421 card I am repairing. 

Salvaged contact from a junk SLT card

Contact soldered onto the repaired card

ODD BEHAVIOR WITH THE CONTROLLER CARDS IN PLACE

Bit 10 of the Accumulator (ACC) register and bits 10 and 11 of the Accumulator Extension (EXT) register were permanently on. I tried executing a shift instruction but the bit didn't turn off. I believe something is pulling down the output lines and of course the likely suspect is one of the couple dozen SLT cards inserted for the 2501 controller logic. 


Bits 1 and 3 in the EXT were loaded by an instruction, while the 10 and 11 are spurious output that stays fixed. 

Tuesday, October 29, 2024

More cleaning and checkout of 1130's disk drive; preparing to build my 1627 plotter controller card

REMOVING THICK SLUDGE INSIDE DISK DRIVE

I did some cleaning, discovering thick sludge coating the mechanism. This coating is strange, looking like a cross between the result of years in a heavy cigarette smoking environment and an airborne oily film. This may be a consequence of the mouse infestation but it is different from what I saw elsewhere in the 1130. 

CHECKING HEAD AND PLATTER ALIGNMENT

Because I was uncertain about the position of the lower arm I partially assembled the receiver that guides the cartridge into the drive and holds it in place. I then slid a cartridge in carefully while checking for clearance and alignment. 


You can see in the picture that a pivoting metal part will push the cartridge cover apart, exposing the platter and allowing the disk heads to enter on either side of the disk surface. I advanced slowly and looked at the alignment of the heads relative to the platter.


The heads are held apart so that the platter will slide between them, with a safe gap between the heads and the surface. The head loading solenoid will press the heads from the back, forcing them down onto the disk surface once the drive is rotating at full speed (1500 rpm). 


The cartridge was moved forward a bit more letting me see how the platter sits between the heads. All good so far. 


A closeup view verifies that they will not be rubbing on the disk surface when a cartridge is first inserted. This is also important as the virtual 2315 cartridge facility that will be installed on this machine will leave the heads up safely above the disk surface, while moving the arms in and out during disk accesses. We want them to never impact the disk surface, which the gap guarantees. 

ODD GUMMY RESIDUE ON DISK DRIVE HANDLE - HARD TO REMOVE

The front of the drive has a large blue handle that is swung down to place a cartridge into the drive and then rotated upward to lock it in place. The front of the handle has some gummy material that I am having difficulty removing. It smears around, like a mix of oil and tape adhesive. It is a bit like the residue sometimes left behind when a stick on label has fallen off of a surface but the glue remains. 

I spent about an hour attacking it with various cleaners such as isopropanol, 409 and Simple Green. The latter cleaner seems to loosen it a bit so that I can rub paper towels in one direction to pull off a layer at a time. It is not done but I expect that with some more elbow grease I will restore the handle to its normal glossy plastic surface, sans residue. 


INTEGRATION OF MY SUBSTITUTE 5806223 CARD FOR 1627 PLOTTER

Several museums have 1627 (or Calcomp) plotters, as do I, but none of us had the controller logic built into our machines. According to the ALDs, this is contained in a single SLT card (double slot sized), 5806223. In addition to the card, there will need to be a cable from the logic compartment to the SMS card interface which hosts some device connections - console printer, paper tape and 1627. 

I recreated the logic of the IBM SLT card using modern components and fit them onto a PCB which will fit atop a double sized SLT card. Two holes in the PCB will allow mounting hardware to attach it firmly to the SLT card which will host it. I provided pads on the edge of the PCB where wires will bridge the signals to the SLT card connector pins. 

WHILE WAITING FOR PCB, PREPARED THE HOST SLT CARD IT WILL MOUNT ON

I found a double size SLT card in my junk/donor pile that has traces to every single pin, important since the IBM card uses every single pin for something. It was also set up so that it will be easy to tack on a wire to the host card that carries the signal for my PCB sitting atop the card. 



I removed all the components on the card - saving them for future repairs or projects. 


The bare board still had patterns connecting pins to locations on the card where parts were installed, some of which might connect pins in a way I don't want. I therefore cut every trace to isolate the landing pads for all pins from the remainder of the card. 


When my PCB arrives, I will mark and drill the two holes that will mechanically hold my PCB on top of the now empty host card. The PCB will be built, mounted, and the bridge wires installed to connect the PCB to all the pins of the host card. I can then bench test this before doing a trial inside the 1130 to see if it will work properly to drive a 1627 plotter. 

Last controller logic to debug in VCF 1130 is the 2501 card reader circuitry - but no card reader here

MY PREFERENCE IS TO HAVE DEBUGGED ALL OF THE MACHINE BEFORE RETURN

Since the VCF has a 2501 reader in their museum, it is feasible that it will be restored in the future and connected to the 1130 again. For completeness sake in this restoration, I want to have everything working that could possibly be used in the future. 

The museum in New Jersey has an 1132 printer and a 2501 card reader, both of which are configured into this 1130 system. I completed testing of the 1132 printer logic, as well as the keyboard, console entry switches, and console printer. Once the disk drive is restored I will validate its controller logic which leaves only the 2501 that would be undone.

OPTIONS CONSIDERED

One possibility is to have the 2501 delivered to me in Florida where I can restore it then test the controller circuits. That would be expensive to hire a truck and drive it or to have a shipping company deliver it. 

A possibility is to defer the checkout until the future when the 2501 is restored and do the testing up in the museum in NJ. That separates me from much of my equipment and supplies that would be needed to test and repair parts, plus it involves an extended time away from home.

The choice I am leaning toward is to emulate the signals from the 2501 sufficiently to verify the operation of the controller logic. The interface is 26 inputs and 11 outputs. A few of them are unimportant - usage meter operation for example. I do have enough technical information to correctly emulate the timing of signals so that the controller believes it is dealing with a real 2501 card reader. 

EMULATION BROAD DESIGN

Parts of the testing are not timing sensitive and can be done immediately. Triggering the signal that the Start key was depressed, for example, should trigger the activation of the motor relay. Setting other signals should trigger the lighting of the indicator lamps for conditions such as Stacker Jam. 

The bulk of the testing would need to simulate very specific timing of signals. Whenever the motor is running, three pulses are emitted per revolution of the timing wheel at fixed degree points. These are related to the movement of cards in the machine and the time when certain photocells would detect light or dark. 

Emitter pulses are produced based on the timing of when a card edge is detected by a photocell and at a fixed frequency. The logic samples the state of the row photocells at specific times based on the emitter pulses.

When the feed and hopper solenoids are engaged the movement of a card will produce a change in the card lever 1 photocell in the pre-read station. It goes dark when a card is fed in from the hopper and it sees light when the card begins moving through the photocells (or when there is no card in the pre-read station). 

A simple device can produce the pulses from the timing wheel continuously. A second device could produce the emitter pulses and also control the row photocells to inject desired card contents. A third could produce the card lever 1 output based on timing from the issuance of feed and hopper solenoids. 

All of these could be combined in a single FGPA based board, one that had almost 40 input output pins. They could also be done with separate Arduinos or other simple microcontrollers. The key decision would be time to design and test, as well as availability on hand of the parts I need. 

Interfacing to the 1130 involves open collector gates to drive the 26 inputs and due care connecting the outputs since IBM circuits can involve strange voltages outside the safe range of the inputs of the devices I might use to build the emulator. 

Technically, the pushbuttons (Start, Stop and NPRO) and a few reader microswitches (stacker full, hopper empty, cover open, and motor running) involve delivering +12V which is pulled down to -3V by the switch debouncer when the button is not pushed. I could use relays or other isolators for these inputs, but my first tests will inject the result into the controller logic after the debouncer circuit. Once the tests with the bypassed signals are over, I could verify the three debouncers easily.  

Monday, October 28, 2024

Cleaning disk drive heads and checking arm movement; repaired 5800000 spare card

GIVING THE 2310 DRIVE SOME ATTENTION AS I WAIT FOR PARTS

I am still waiting for the new start capacitor and air filter for the drive, plus waiting on the PCBs and components for the plotter controller card replacement. The drive is still filthy, requiring considerable cleaning before a cartridge would ever be inserted inside. 

I used some wipes and swabs to clean the disk heads. They had a coating of dirt that had to be removed, although the surface of the heads appears to be in good condition. 

The first pass wiped off quite a bit, but after some time I had reduced the dirt on the heads to more normal levels. They are still not clean enough to risk flying on a disk surface, but we will get there. 

First pass with isopropanol cleaning heads


I am a bit concerned that the head loading arms are touching the upper head but leave a sizeable gap to the lower head. Something is awry that must be diagnosed and corrected. 

REPAIRING A SPARES BOX 5800000 CARD

I had a 0000 card in my box of donor cards that I use to pull off components when repairing other cards. I put it on the bench and tested the behavior of the card; one input on one of the six gates was defective.

Each gate is on its own 361451 SLT module, so the repair is simple. Find which module handles the gate with the error, remove the module and put on a spare from another donor card. The work was quickly done and the card now tests out perfectly. It can be used in an 1130 system. 


Possible to bench test the 2310 disk drive (inside 1130 system)

DISK DRIVE HAS CE CONTROLS THAT ARE ACTIVE IF CONTROLLER CABLE REMOVED

The signal cable between the disk controller logic inside the 1130 and the disk drive proper can be removed. This allows the four switches to work, triggering movement of the disk arm and selecting between the two disk heads. 

The CE can then put a scope or logic analyzer on the data outputs to observe how the drive is reading data from the disk surface. It can also be used when the engineer aligns the heads so that they are positioned the same spot on a cartridge as any other 1130 system, ensuring interchangeability for cartridges between different 1130s. 

The drive must still have power connections. There is 115V to power the blower and spindle motors, but also the logic voltages of an 1130 system. It needs +3, -3, +6, +12 and +48V to operate. 

BENCH TESTING POSSIBLE WITH ENOUGH POWER SUPPLIES

I have plenty of power supplies on the workbench so that I can bring up the drive without any connection at all to an 1130 system. Power must be sequenced properly so that +48V is not applied until the three main logic voltages are correct and it must be removed before the others are switched off. This is the only caution for bench powering the drive.


Sunday, October 27, 2024

Blower air volume is excellent once I removed the nearly completely blocked old filter

DISK DRIVE FILTERS AIR TO EXCLUDE PARTICLES IN 125 MICROINCH RANGE

Because the heads fly as low as 125 microinches (3.2 microns) above the platter on a thin film of air, any particles larger than the flying height might drive the head down into the surface of the platter, potentially causing a head crash. IBM employs an almost HEPA-quality filter to ensure clean air enters the cartridge. 

The mice with their nests and urine have almost completely clogged the old filter, resulting in very little air flowing up into the cartridge. Once I removed the filter, the volume of air coming out was superb. The blower operates all the time that the IBM 1130 is powered on, thus it is blowing clean air into any cartridge placed in the drive and exhausting contaminated air out around the heads into the drive compartment. 



I will look for a replacement filter with decent filtering. HEPA filters down below 0.3 microns, ten times finer than the problematic particles for a disk drive. I am not sure I will get a filter as good as the original IBM part but it should do a good enough job filtering air. 

CLEARING DUST OUT OF CARTRIDGES 

The disk cartridges should have all the dust cleared from them before the heads try to load. To accomplish this, the cartridge should first be inserted into a drive but the run switch left off. The blower will be forcing air through the cartridge for all the time it sits in the drive even though the drive motor is off. 

After a suitably long time, the drive should be switched on but turned off before the heads load. Generally this is done with 60 second intervals of run switch activation. I however can block the head loading solenoid from attempting to lower the heads, thus it can spin as long as I want in that state. This will knock off any additional dust and get it out of the cartridge. 

Saturday, October 26, 2024

New motor start relay arrived, tested with the blower motor

HOOKED UP THE START RELAY AND TESTED THE BLOWER OPERATION

The new relay didn't pull in the contacts to connect the start winding - it appears it was set for a motor with a heavier draw. I went back to the original, which did pull in but the motor didn't turn when the start windings were energized.

The two sets of windings need enough of a phase difference to impart a starting torque on the motor. As the motor speeds up the current in the main winding declines enough to let the start relay disconnect the start winding. 

I grabbed all the unpolarized capacitors I had and put them in parallel to create a 1.45 uF capacitance. Putting this in series with the start winding did produce the results I wanted. The motor fired up and the start relay energized the start contacts for only a brief moment. The motor reliably started every time I tried it. 

I have ordered a ceiling fan start capacitor, 2.2 uF, which I will install in the disk drive. That should make the blower start every time. 

Friday, October 25, 2024

Adjusting the RK-05 Emulator to my design to emulate a 2310 disk (virtual 2315 disk cartridge)

INPUT AND OUTPUT SIGNAL REQUIREMENTS FIT WITHIN THE KIT'S DESIGN

Because I want this emulator to work with a physical 2310 disk drive, spinning a real cartridge and moving the disk arm, it has to sit between the controller logic in the IBM 1130 and the 2310 disk drive. This means that I need two copies of signals - controller side and disk side - which are routed or replaced by the logic in the FPGA.

Fortunately the 2310 disk interface is simpler, with fewer signals, than an RK-05 which gave me the ability to fit within the existing input and output circuits built onto the board of the RK-05 Emulator kit. In fact, I use all but one of the signals. There are enough of input type and enough of output type for my needs. For example, the sector and index pulses from the 2310 disk drive are inputs to the emulator and are then rebroadcast as outputs to the controller in the 1130. 

The emulator needs to see many of these signals in order to model what the disk drive would be doing if the heads were allowed to fly on the surface to read or write the cartridge in the drive. The sector pulses allow the emulator to rotate the virtual disk platter at the same rate as the physical cartridge is spinning. It watches requests to move the arm in or out and responds to the drive's ready signal when the movement is complete. 

The emulator watches the read gate and write gate signals, requests from the controller to read or write a particular sector on the disk cartridge. The emulator produces the clock and data pulses that would be detected by the disk's read head if the heads were actually down on the surface of the platter. Since we block them from going down, no signals arrive from the physical 2315 cartridge. Instead, we send the read and clock pulses to the controller at the same rate and timing as would occur from the real cartridge. 

For writing, we pass along the clock signal generated by the 2310 drive and let the controller modulate the write clock and data line based on that. Rather than passing it along to the drive to write on the real cartridge, we capture the bits written by the controller and update our cartridge image in DRAM on the RK-05 emulator board. 

MODIFYING THE KIT FOR INTERFACE DIFFERENCES BETWEEN DEC AND IBM

The IBM logic family is based on diode transistor logic (DTL) which means that an input to a gate actually doesn't care what the logic high voltage is, nor even require it. All that matters is that the input will pull current out of the gate down to a low voltage signal, typically logic low of ground voltage. 

The RK-05 has logic families that require a valid high voltage for logic high and a valid low for logic low. The interface chips driving signals to the DEC disk controller in lieu of the physical RK-05 drive are SN74LVC244 chips, which are octal tristate buffers that accommodate the different voltages of the DEC controller (5V) and the FPGA chip (3.3V). 

In part this is due to the DEC disk bus which has multiple RK-05 drives active on a single cable run, all remaining in high impedance mode until they are selected by matching their drive address. At this point, they either emit 5V or 0V to the controller. 

The DTL controller logic in the 1130 only needs to be pulled down to ground to activate it in logic low, otherwise it is left floating. This is best accomplished by the use of open collector gates, thus the voltages in the 1130 are irrelevant to the gate and the gate can operate at the FPGA 3.3V level. The SN74LVC244 chip on the board is a 20 pin SOIC footprint with the meaning of each pin already built into the traces of the PCB.

Fortunately, I found a chip, SN74BCT756, which is a 20 pin SOIC chip with the same pin assignments, one for one, as the original chip in the emulator kit. The new part requires 5V supply rather than the 3.3V of the original chip, requiring me to cut the 3.3V trace to pin 20 of the chip and add bodge wires to deliver 5V instead. 

RECREATING INTERFACE CONNECTOR BOARDS

The interface connector boards could be used as is, simply selecting the wires to connect to the controller logic and to the 2310 drive. Alternatively, I recreated the card from the Gerber files and modified it. First, I created two different cards, one for the drive and one for the controller. Each is customized to only route the signals appropriate for that destination. I also updated the silkscreen labels on the connector pads to reflect the new 2310 signal assignments. 

This would be simply for convenience since the cards from George Wiley will do the job albeit a bit awkwardly. I will finish the designs and see how it prices out. If I can pay a single shipping fee for both cards then it might be cost effective, but for the time being I will go with George's version, which I will order from him right away. 

Wednesday, October 23, 2024

Finished breadboard testing of 5806223 card replacement for controlling 1627 plotter on IBM 1130

VALIDATED THE PLOTTER READY CIRCUIT

The plotter interface has a -24V line that is sensed to determine if the plotter is connected and turned on. This is connected in a resistor voltage divider with +12V on the other end, producing either +12V or a negative voltage when the plotter is ready. 

I tested the output of my added circuitry which should be delivering safe voltages within the range of a TTL input gate - that is no more than 5V and within the voltage requirements of no more than .8 for low and no less then 2 for high. 

This worked properly in simulation, then checked out fine with twin power supplies and the same circuit on the breadboard. 

VALIDATED THE BEHAVIOR OF FLIPFLOPS AND RESET FOR COMMANDS

Each of the six plotter commands (move left, move right, paper up, paper down, pen up and pen down) set a flipflop to drive the 1627 which should be reset after the proper duration (1.9ms except then pen commands are 50ms).

I found that it wasn't resetting at the point I wanted, but when I made a change everything worked exactly as I desired. Schematic and PCB changed to implement this. 

VALIDATED THE BEHAVIOR OF RESPONSE FLIPFLOP AND INTERRUPT REQUEST

As soon as one of the interval timers goes active for a command, the busy line should go on which turns on the operation response flipflop. That drives the inverted request line for an interrupt on level 3. The flipflop is turned off by a Sense DSW with bit 15 of the B register set to 1. 

This all performed as intended, no changes needed. 

VALIDATED THE BEHAVIOR OF SENSE DSW OPERATIONS

A Sense DSW to our device (area code 5) should gate three status signals out to the IO bus, but leave it undisturbed otherwise. The signals are operation response, timer busy and plotter not ready. 

I installed the same chips and connections onto the breadboard and verified that this works as desired. 

LOCKED IN DESIGN AND SENT PCB OUT TO JLCPCB FOR MANUFACTURE

With this working properly to the best of my ability to test it without the actual 1130 system and 1627 plotter, I committed the design and uploaded it to JLCPCB where it will be fabricated. 

FINALIZED PARTS LIST AND ORDERED ON DIGIKEY

With a final design, I adjusted the cart I had set up in Digikey and ordered a set of components required to build one board. 

Tuesday, October 22, 2024

Continued breadboard testing of the logic for the replacement controller card for the 1627 plotter connected to an IBM 1130

ADJUSTED COMPONENTS TO ACHIEVE EXACT TIMING REQUIRED

The 1627 plotter requires that the signal lines to command movement of the carriage and the drum be pulled low for specific lengths of time and that the controller maintain the busy state until the plotter is (probably) done with its motion(s). The duration is 1.9ms for the trigger and another 1.9ms until the busy condition goes away. 

The commands to put the pen down on the paper or to raise the pen above the paper surface require a longer trigger and take more time to complete. These two signals need 50ms for trigger and another 50ms to cover the rest of the  mechanical motion. 

I tweaked the capacitor and resistor values until I could see the durations I wanted on my oscilloscope. The shorter duration is achieved on a 74ls122 with a 330 nF capacitor and 18K resistor. The long duration for pen movement requires a 10 uF capacitor and 22K resistor. 

DISCOVERED A MISTAKE IN MY UNDERSTANDING OF THE 74LS122 CHIP BEHAVIOR

The pins for attaching the external timing components are labeled R/Cext, Rint and C so I incorrectly assumed that the resistors go between R/Cext and Rint. That is not correct, Rint is only connected if using the internal resistance rather than an external resistor. Instead, the resistor is attached between R/Cext and the VCC pins. 

WHAT IS VALIDATED AND WHAT REMAINS TO TEST

Pulses are produced reliably and for correct durations. The flipflop that is set when the pulses start is reset at the end of the first duration (1.9 or 50ms), just as with the IBM designed controller card. The triggering only occurs if the bit for that signal is on in the B register when the machines sees an XIO Write for Area 5 and it is clock stage T6. 

I need to put together the logic with a flipflop that is set for Operation Response, to request an interrupt on level 3 and to be reset only when the CPU issues an XIO Sense DSW with B register bit 15 set. 

Also, whenever an XIO Sense DSW is executed, I need to gate the various conditions properly onto the IO Bus so they are visible to the programmer. The busy condition should be passed to bit 14, the operation complete status should be passed to bit 0 and bit 15 should be raised anytime the plotter is not turned on.

The detection of when the plotter is turned on involves receiving the -24V supply voltage from the 1627, which goes through a resistor divider network up to a +12V supply inside the 1130. Thus, when the plotter is not turned on, the circuit sees 12V but drops to a negative voltage when the plotter outputs its -24V. I worked out circuitry to convert this to safe voltages, either near zero or somewhere a bit under 5V when the plotter is not turned on. I have to verify this to be certain that my logic chips won't be damaged by voltages outside of safe ranges. 


Built the RK-05 emulator, hardware basis for the virtual 2315 cartridge facility

RECEIVED A VERY NICELY PUT TOGETHER KIT FROM GEORGE WILEY

The RK-05 kit comes with all the challenging parts already installed on the boards, so that assembly is mostly soldering in connectors, nuts and switches.  It didn't take long to finish and how I can begin to test with my modified code to use this as a virtual 2310 disk drive. 

Monday, October 21, 2024

Repaired an SLT card (5603819) that had known faults

TWO OF EIGHT CHANNELS ON THE 3819 CARD WERE NOT WORKING PROPERLY

This is a card that was a spare but during testing I found that two of the eight identical channels were not working correctly. The circuits amplify a signal to drive up to 300ma of current at voltages of over 48V. It is used for solenoids in devices such as the console printer/typewriter as well as for large indicator lamps on the 1130 console.

FOUND BAD COMPONENTS BY TESTING ON THE BENCH

I set up my SLT testing workbench and plugged in the card. I verified what I had recorded from the earlier investigation - the circuit with B12 input to D10 output as well as the circuit with B02 input and D06 output were failing with the output always low. 

I worked my way through the card, using the schematic and comparing from time to time with the properly working channels. My first look at the schematic did not show a single component that would account for both failures. I checked each part in the circuit and watched its behavior as the input was toggled between 0 and 3V. 

It became apparent that the first transistor of the pair in a circuit was failing for both of the problem circuits. The first transistors are implemented on an SLT module 361497 which just consists of four transistors. The card has two of these modules and indeed one of the transistors in each module was bad. For the circuit driving output D06, the transistor that was bad was connected to pins 12, 1 and 2 while for the other (D10) circuit, it was a transistor on the other module at pins 10, 9, and 11. 

I verified the nonworking status using the diode checker function of my multimeter, then carefully removed the SLT modules from the card. With the module out it was even more obvious that the transistors had failed. 

PULLED TWO 361497 MODULES FROM A DONOR SLT CARD

I have a supply of old SLT cards I picked up on eBay and which I use as a source of components for failed parts. I pulled the two modules off after I checked that they seemed functional using the diode tester of the multimeter. Confirming that the module, off card, also appeared good, I was ready to install them on the 3819 board. I could have set up the curve tracer and double checked the transistor but I chose to move forward and just test the 3819 once these were in place.

SOLDERED ON THE TWO REPLACEMENT MODULES AND TESTED THE CARD

I subjected the card to a full test of all eight channels, since they all go through the modules that were replaced. They were all functional. The card is now ready to be used in a system. 

Two replaced modules along the bottom

KEEPING REMOVED MODULES WITH NOTES ON THEIR DEFECTS

I kept the two modules, each with one of the four transistors not working, as there may be a future situation where the bad transistor is not used on the SLT card. I also have a good module I had removed during an earlier repair session that turned out to not be the cause of the malfunction, so it is available for any repair. 

Investigated blower motor startup - start relay is defective

DETACHED AND OPENED THE START RELAY

I removed the relay and opened it up to see the mechanism. The contacts are clean and make good connection when manually pushed down. The coil appears intact and I saw no obvious issues.

Relay with cover removed

A split phase AC motor is manufactured with two windings, one for the main operation of the motor and the second just for starting. A single phase motor won't rotate on its own because the oscillating magnetic field is symmetric thus imparting no rotation to the magnet in the rotor. Three phase motors don't have this issue as the magnetic field rotates due to the phase differences on the three power legs. 

The start winding should have a magnetic field that is out of phase with the main winding, which would cause rotation of the combined field and begin the rotation of the motor. The motor used by IBM uses a technique called resistance start, where the start winding has a higher resistance than the main winding. 

The effect of this resistance and the different inductance of the windings means that the current in the start winding is out of phase with the main winding. Due to the higher resistance, however, the winding will heat up thus the start winding must be disconnected once the motor gets nearly up to speed. 

The start relay is in series with the main winding. As the motor is first energized, the current is relatively high in the main winding, causing the coil to close the contacts. The contacts connect the start winding so that the rotation can be forced to begin. As the motor speeds up the current in the main winding declines until the coil in the start relay drops out, disconnecting the start windings. 

Start relay is K4

POSSIBLE DEFECTS CAUSING FAILURE TO START

It is possible that the relay is defective, failing to close the contacts to start the motor. Since I changed the motor to one that superficially appeared compatible, it may be due to differences in the motor itself. I will verify the relative resistance of the two windings as I just assumed that the color code from the same manufacturer (Robbins & Myer) is the same between motors. The current in the motor may not be as high leading to inability of the coil to close. The design may require a start capacitor to add additional phase delay in the start windings, if the difference in resistance isn't enough. 

WATCHED OPERATION OF THE RELAY

The relay was erratic - sometimes failing to connect the starting winding, sometimes clicking quickly and achieving a good start, and sometimes locking the starting winding on leaving the motor to spin slowly. 

I adjusted what I could inside, also burnished the contacts to be certain they had good low resistance. The relay continued its undependable operation. I imagine that the reason the original blower motor had an open connection was due to thermal damage as this relay cooked the start winding. 

BUYING SIMILAR START RELAY FROM EBAY

The part on the disk drive was 91252-1613 which I didn't find anywhere, however there was a 91252-1616 on eBay for under $20 delivered so I took the gamble. The difference in model number means something - likely the current specifications for activation and dropout - but I couldn't locate any material online that would explain the differences. 

At worst case, I will need to pick up some kind of universal or adjustable motor current start relay but that wouldn't fit in the same space and look the same. Hopefully my purchase will make things work properly.

BLOWER BACK IN DRIVE 

The blower motor itself is working well. I installed it into the disk drive so that once the start relay issue is revolved the drive will be ready for further testing. 

Sunday, October 20, 2024

Received replacement motor, installed it on the disk drive for the VCF 1130 system

MOTOR ARRIVED - ESSENTIALLY IDENTICAL EXCEPT FOR A SHAFT EXTENSION

The used motor I found on ebay was the same frame size and the rotation speed was within 1%. It has an extension on it, supposedly because it was used in a Bell and Howell 16mm projector. My first activity was to figure out how to remove the extension and end up with a shaft the same length and compatible with the blower rotor. 

Turns out the shaft itself is quite a bit longer. In addition, the ends bulge out a bit on the IBM version thus the mounting bracket that grabs onto the rubber bushings isn't a perfect fit for the new motor. 

I was able to bend the mounting bracket enough to hold onto the new motor. The longer shaft just extends farther inside the blower cage but does not impact anything. This means I can use the motor as is in the disk drive. 

PREPARED REPLACEMENT WIRING HARNESS

The harness used in the disk drive had the wires inside a metal mesh ground shield and then wrapped with  black plastic. It is fairly long to reach from the AC distribution box at the front of the drive around to the rear where the motor is mounted to pull air in through the SLT card cage and force it through a HEPA level filter into the spinning cartridge. 

The replacement motor had much shorter leads. I spliced these onto the original longer leads and pulled the mesh up to cover the extra wire. I then used long heat shrink cable to cover and protect the harness. 


The motor has a center tapped winding, main and starter. The circuitry has a relay that initially supplies AC across both winding since the switch closes due to the high startup current flowing through the main winding. When the motor is at full speed, the current should have declined enough to drop out the relay and the starter winding. This is a split phase AC single phase motor. 

REINSTALLED ROTOR AND CAGE ONTO THE MOTOR

A rotor inside a cage pulls in the air and blows it out into the plenum of the disk drive where it feeds the filter. That is attached to the motor shaft that has a flat spot, using a setscrew to lock it on. This was checked to ensure it would spin freely without rubbing on the cage. The SLT compartment on the drive has a filter on its front and a duct on the side which is the inlet to the blower rotor cage. 

BLOWER ASSEMBLY INSTALLED ON THE DRIVE

This was bolted into place and then the wiring reattached to the AC distribution box per the schematic. The filter and plenum cover went on so that I could verify a good flow of air when the drive turned on. The plenum is an open space in the bottom of the drive that is fed by the blower motor. It has a HEPA style filter installed at its outlet, which is oriented to the top of the drive.

The outlet feeds air inside the 2315 cartridge that was inserted into the disk drive. This blows out of the cartridge in the rear where the disk arm enters. Thus any particles are blown out of the drive and away from the surface where the disk heads will fly. A 90 second relay is included in the drive that allows the blower air to clean out the cartridge for that length of time before the drive attempts to lower the heads to the surface of the disk platter. 

Blower motor in place under disk drive

FIRST TEST TO VERIFY AIR FLOW

The blower motor runs any time there is AC power to the disk drive - in other words whenever the IBM 1130 system is turned on. I just needed to connect 120VAC to the drive to test the blower. I heard some noise but didn't feel air flowing out. The rotor wasn't turning. The motor didn't start turning.

I unmounted the assembly to work more easily with it. Turning on power again, I gave the rotor a twist and the motor was running just fine. The issue is with the start circuit. This uses a relay that should energize to turn on the start winding and then turn it off when the motor is at speed. 

I suspect the old motor winding burned out due to the start relay keeping it in circuit all the time. It is now failing to turn on the start winding thus the motor does not begin to spin. 

Start relay for the blower motor

It appears that the relay has an adjustment screw to control when the contacts disconnect because current in the main winding has dropped due to full speed operation. I may try to adjust this and test it, but the fall back is to buy a new starter relay. 

Saturday, October 19, 2024

Unplanned three day trip to visit the System Source Museum for their IBM 360 exhibit grand opening

SSM HAS A 360-20 SYSTEM THAT THEY BUILT A NEW GALLERY AROUND

This is a complete system, with the model 20 CPU, a 2203 printer, 2560 MFCM card reader/punch, a 2501 card reader, two 2311 disk drives and four 2415 tape drives. It will be restored and operated but as a UK built machine for the European market it requires three phase 380V at 50Hz, not currently available in the building. 

They had an excellent event for the public at the opening of the gallery, with food, drinks and good conversations among all the visitors. In addition to the S/360, the gallery has the IBM 1130 and other IBM systems such as a Series 1 and System 36 - all of those restored and operating.

INSTALLED NEW IMPROVED MEMORY LOADER ON THE IBM 1130

I brought up my new version of the memory loader, which exploits the cycle steal (DMA) feature of the 1130 to store much faster than the previous version. Writing all zeros to 8K words of core takes a touch over two seconds, for example. Typical programs are loaded in minutes. 

HELPING WITH THEIR NEW CDC 160 SYSTEM

The museum acquired a CDC 160 system, designed by Seymour Cray, from the auction of Paul Allen's Living Computer Museum collection. The card reader would blow a fuse immediately and one of the display digits wasn't working properly. Bob Rosenbloom and I took on both of these in some spare time this morning.

The card reader had a bit of damage from mice chewing insulation, easily repaired, and the motor was frozen due to solidified lubricants. The motor was the cause of the fuse blowing. We used Nye oil and quickly the motor was spinning well again. The reader now spins up and the control functions operate - all that can be done without it hooked to the mainframe. 

The display problem ended up being tracked to a bad armature on a relay used to decode three binary bits into one of 8 incandescent lamps that produced the decimal digit on the display. New ones are easy to acquire so this issue will be put to bed as soon as the replacement relay is plugged into the rack. 

Tuesday, October 15, 2024

Designed replacement 5806223 card - device controller logic for the 1627 plotter attached to an IBM 1130

BASED ON BREADBOARDING TESTS, I DEVELOPED A COMPLETE SCHEMATIC

I tested my plan to use monostable oscillator chips to get the same behavior as IBM's AC triggered gates. IBM uses these, which emit a short pulse at the falling edge of one signal as long as the enabling signal is also on. This allows IBM to interface to external devices without the challenges of metastable behavior that can occur with clocked digital electronics.'

The IBM gate emits the pulse and it turns a flipflop on or off, with no clock on the flipflop and no relationship to the 1130 system clock. In addition to its use with signals outside the 'clock domain', it is also widely used to activate flipflops in many situation inside the CPU logic. 

Its primary use on this card is to set flipflops for particular bits that were set by the user as part of their XIO Write instruction. The gate uses the bits as the enabling input, and the falling edge that activates it is from a NAND gate that turns on (goes low) when we have an XIO Write to Area 5 (the plotter) at clock step T6. 

The controller logic uses pairs of single shots in series, which emit a low signal for a fixed duration. For movement of the pen on the paper, the first SS fires for 2.5 ms when its input goes low. As its output goes low for that first SS, it sets the busy condition. The inverted (high) output of the first SS is hooked to the second SS, so that when the first SS time period expires, the output goes low and triggers the second SS for another 2.5 ms. 

As the second SS goes low, it triggers an AC gate to reset the that held the pen motion bits. The low state of the second SS also drives the busy status of the plotter. When the second SS interval expires, the busy condition goes off; the falling edge triggers another AC gate to turn on a flipflop called Response. When Response is on, it drives a request for an interrupt on level 3. 

As you can see, the design depends very heavily on these falling edge detecting gates. I know that the monostable oscillator (single shot) chips have multiple control inputs one of which can act as an enable. Thus, using the 74LS122 with the B bit as the enable and the NAND gate for the XIO write as the trigger will produce a pulse in the range of 30-35ns if enable is high when the trigger edge drops. 

I also made use of 74LS74 flipflops but not in the clocked style they are normally used. I used the asynchronous set input to turn them on when my 74LS122 produces its pulse, and use the async clear input to turn them off when the second SS expires. This takes up more real estate than modern combinatorial gates and flipflops, but it behaves as the IBM circuit does. There is a NAND gate for the XIO Write, a 74LS122 to act as the AC trigger gate, and a 74LS74 flipflop that is set by the pulse from the trigger. 

FAIRLY DENSE BOARD - 22 INTEGRATE CIRCUITS PLUS PASSIVE COMPONENTS

Surface mount chips give me two flipflops per package and four NAND gates per component, but 74LS122 is its own chip. Overall I need ten chips for the single shots, plus four chips for the flipflops. The remainder are the gates that detect when an XIO Sense DSW is issued to feed the appropriate status bits, to detect the XIO Write when we are commanded to move the plotter, and all the other functions. 

The movement commands set for flipflops for up, down, left and right. These use the pair of SS with 2.5ms timing. In addition, the programmer can raise the pen off the paper or lower it down. Those operations take two more flipflops and their own pair of SS since they require 50ms per SS due to the slower mechanical motion. The four SS with fixed times (2.5 or 50ms) require an external resistor and capacitor for each to determine the timing. The SS acting as AC gates operate without external components. 

The 1627 is driven by a 12V signal that is normally high, but pulled to ground for the 2.5 or 50ms of the first SS in a pair. This trips circuitry inside the 1627 to advance the stepper motors one position. This board has open collector gates to drive those signals, with pullup resistors hooked to the 12V power rail. The outputs to the IBM 1130 are inverted logic signals -Req IL3, -DSW Bit 0, -DSW Bit 14 and -DSW Bit 15. These are pulled low by open collector gates on this board. The pullup is done in the 1130 not on this card so no resistors are needed for those outputs.

The design checks for a powered up plotter by sensing the -24V supply from the device. This is hooked to a resistor voltage divider with the upper end hooked to +12V. Thus, the condition being sensed is either 12V if the plotter is turned off or a negative voltage if it is turned on. Modern gates don't like such voltages, so I whipped up a circuit that produces either 5V or barely negative. Using a diode and current limiting resistance ensure that the gate sensing this won't be damaged by the presented voltages on its input. 

Finally, the 5V logic chips on the board are powered by a LVDO voltage regulator that drops the 12V input on the card down to the 5V we require. 

MECHANICAL CONNECTION - SACRIFICIAL DOUBLE WIDE SLT CARD

The double wide SLT card is 3" high and 3.25" wide, with its twin 2x12 sockets that plug into the backplane. My PCB is a bit smaller and will mount atop a card that has been cleared of components and readied for attachment. Small jumpers are soldered to the PCB and the connectors of the board. 

FINALIZING THE PCB LAYOUT WHILE I BREADBOARD AND TEST THE DESIGN

I am mostly done laying out the PCB with the circuitry. When I am comfortable that it will work properly I will send it out to the fab to make five boards. During the wait I will buy all the SOIC-14 sized ICs and other components to solder on the board. 

I will continue to put together DIP sized chips to verify each part of the design before committing to build the cards, using my breadboard testing gear and monitoring timing on the scope. 

Monday, October 14, 2024

Fixed pins on backplane allowing card insertion; working with another museum on a replacement card for 1627 plotters

BENT PINS STRAIGHTENED ENOUGH TO LET THE SLT CARD SNAP INTO THE SOCKET

I worked on the pins slightly and was able to insert the card properly into the slot that had the damage. I was worried that the pins might have broken off but I did manipulate them as gently as I could, as few times, which ultimately succeeded. This resolves one of the mechanical issues that was outstanding for the restoration. 

1627 PEN PLOTTER CONTROLLER LOGIC IS ONE SLT CARD - 5806223 - THAT NOBODY HAS

I know of two museums that have plotters but lack the card that interfaces it to the 1130. I too have a 1627 (needing restoration) but lack the card. This was the subject of recent conversations with peers restoring systems in Europe.

The 6223 card is a double card, taking two slots vertically on the backplane. The ALD pages identify the functionality of the card, which should be relatively easy to replace. Ideally the solution will plug into the same backplane slots as the IBM card, with bonus points if it has a compatible appearance. 

This logic makes use of the IBM edge triggered (what they call AC trigger) gates and flipflops, which don't have any modern equivalent gate. I am exploring various circuits using (relatively) modern TTL gates that might fit in the footprint of the 6223 card. Another option is to use a mini FPGA board, several of which will fit with room to spare. This allows room for some interface circuits to deal with the 12V, -3V, -24V and other funky signal voltages present when working with the 1130 and 1627. 

I began breadboarding and testing circuits using 74LS121 monostable oscillators (one shots) to act as the IBM edge triggered gates, turning 74LS74 flipflops on and off. I will continue to build out the circuit using these SSI and MSI TTL devices, then try to fit them all within the area of the 6223 card surface using surface mount chips. If that works I can whip up a PCB design and order the parts. 

The FPGA version is much easier, the only challenge is keeping the height of the FPGA board small enough so that the card can fit side by side with ordinary SLT cards in the gate. 


Sunday, October 13, 2024

Mechanical work on VCF 1130 today

TESTING DEVICE CONTROLLER LOGIC WHEN I FOUND DAMAGE TO THE BACKPLANE

I pulled a card and couldn't insert it into the backplane reliably, so when I inspected I found that two pins were bent. The plastic cover over the card end had cracked and had other damage that led to this. While I bent them back correctly to the eye, cards still won't snap in. This will be fun, I can see. 


I will continue to adjust the pins and work on getting the card to seat properly. I replaced the plastic cover from a spare SLT card, manually marking the card number. Hopefully I will get everything repaired. 

FINALLY REMOVED BLOWER CAGE FROM MOTOR SHAFT

The blower motor which produces the high volume of air through a HEPA level filter to float the recording heads over the disk platter was not working. I identified that one of the wires to the motor was an open circuit. Dismounting the motor from the drive was easy, but the blower cage and rotor was almost welded to the motor shaft. 

The removal of the setscrew should have allowed the rotor to slide off, but it was almost beyond my ability to get it off.  Since the hub was inside the rotor cage, a traditional pulley would not fit inside. I had to partially disassemble the motor to be able to put enough torque on the shaft to help dislodge it.

I had to scrape some corrosion off the end of the shaft and use clock oil in order to get it to move better. Finally with some vice grips on the hub and lots of effort, I got the shaft to come out. Now the motor needs to be repaired or replaced. 



LOOKING FOR EASY FIX FIRST

I was hoping that I had a break in the wires, as they were shielded inside woven metal and an outer plastic cover. Alas, I confirmed that the break is inside the motor. All my inspections failed to uncover an obvious point of the failure, thus there is no hope of a surgical fix. 



THINK I FOUND A CLOSE MATCH ON EBAY TO REPLACE THE DEAD MOTOR

The motor was built by Robbins & Myer. The data plate show that it is a single phase motor, 1/30 horsepower, turning at 3450 RPM. The frame type is F26 which indicates the physical dimensions of the motor and shaft. 




I looked on eBay and found a very similar motor advertised. It is the same frame type F26, spins at 3350 RPM which is close enough as this only moves air. The other difference I see is the type is KP whereas the disk drive motor is KS. I suspect the difference in speed is the reason the type varies.
 



According to the listing, this was pulled from a Bell & Howell 16mm projector, but is working. It appears to be a nice drop in replacement and I should receive it within the week. 

Friday, October 11, 2024

2310 emulation write module rewritten and successfully simulated

BUS WRITE STEPS THROUGH A FEW STATES WHEN THE WRITE GATE IS ACTIVATED

Write gate signal starts a write. The erase and write heads are turned on and the drive begins sending out the 720 KHz  clock as it is writing each bit cell. This should continue for the remainder of the sector. The state machine stages are idle, preamble, sync word, data write, and postamble. 

The preamble is 250 microseconds of zero bit values written to the drive. Each bit value is recorded with one clock bit and one data bit each in a 720 nanosecond interval. Recording a bit is accomplished by reversing the flux of the write head. Thus in each clock bit interval the flux is reversed, but in the data interval it only reverses if the bit value is 1, otherwise the flux remains unaltered. 

The preamble is thus 250 us of alternating flux reversal and no flux reversal (writing zero bits). The drive synchronizes a kind of phase locked loop to the clock bits during the preamble thus it can know which pulse is a clock bit and which pulse is a data bit value of 1. The drive and the controller logic now sees clearly delineated clock and data bits, but the controller must also know which bit cell is the start of each word on the disk. 

The sync word serves this purpose. A flux reversal during the data interval signals a 1 bit and the end of the preamble. The 1130 architecture is 16 bit words, but the 2310 writes these on disk as 20 bits, the first 16 are the data and the next four are a check pattern to detect errors reading the disk. Every time a 1 data value is written in the word, a two bit counter is stepped. 

The goal is that the counter will be at zero at the end of a valid word. Thus if a word already has four, eight, twelve or sixteen bits that are 1, the four check bits are written as 0000. However, if the two bit counter is not yet zero, the drive will write a 1 bit and bump the counter until it reaches zero. Thus with three bits that are 1, the check bits are 1000. With two bits in the word that are 1, the check bits are 1100. With one bit that is 1, the check bits are 1110. 

The sync stage will write 11110 which is for a word of 0000000000000001 with the check pattern 1110 appended. Following this the controller is synchronized on the start of each word - the next bit cell is the first bit of data word 1 of the sector and the state machine moves to the data stage.

In the data stage, we collect the bit values coming from the controller into groups of 16, then absorb and validate the four check bits. This 16 bit value is written to the DRAM of the emulator and we start with the next word. A sector on the 2310 is up to 321 words long, so we loop while counting words. If the write gate is dropped by the controller (writing a short sector) then we move immediately to the final postamble stage, otherwise we move there are the count of 321 is completed.

The postamble writes more words of zero until we reach the end of the sector. Once the new sector arrives the state machine goes back to idle and waits for a new write gate signal. 

TRICKY PART IS DEALING WITH THE CHECK BITS WHICH ARE NOT STORED ON DRAM

The configuration values for the emulator are set for 16 bit words, which ignores the 4 check bits that occur after each word. In the RK-05, there are no check bits after each word so the logic of the emulator is directly based on bit and word counts for a sector. A checksum word follows all the data words on the RK-05, a different and improved error detection scheme from that of the 2310. 

I have to introduce separate action that does not step certain counters during the final four bit cells, while ensuring that the emulator doesn't stop the read or write prematurely because it thinks all the bits have arrived correctly. For example, the emulator calculates a sector as 5, 136 bit cells long, not counting preamble, sync or postamble. 

If you use the bit cell duration of 1.4 microseconds with that value, you would consider a sector complete at 7.19 milliseconds. However, we really need 8.99 milliseconds because of all the check bits. Adding in the duration of the sector pulse before the read/write begins, the time for the sync word and the 250 us of preamble, you are up almost 9.4 ms out of the nominal 10 ms duration of a sector. The postamble at the nominal rotation speed would consist of almost 460 zeroes - around 638 milliseconds. 

SIMULATION RUN AND ALL TIMINGS AND BEHAVIORS VERIFIED

l completed a version that ignores the check bits written by the disk controller logic in the 1130 system. That seemed to grab the data properly. I then added an ECC testing circuit that would turn on a ECC_error latch during the write and leave it on until the next write begins. It will be routed out to the Fault indicator on the front panel. 

Thursday, October 10, 2024

no hurricane damage at workshop and home

HURRICANE MILTON PASSED OVER US, THE CENTER ABOUT TEN MILES NORTH

My home had no water entering or other damage. The condo buildings had one palm tree knocked down, falling into an empty visitor's parking spot. Electricity and water remained on throughout the storm. It was less noisy inside than the hurricanes of two years ago. When the eye was overhead and everything got quiet, I was able to walk the dog. 

I drove to my workshop where I verified that not one drop of water entered under the regular or rolling door, the building was undamaged and the air conditioning remained on. This is good news, even if I did spend an hour lifting boxes of paper and other items from the floor to protect them from possible water damage, plus spreading covers over machinery and special documentation. 


Redesigned the sector and index pulse generator module - either uses real drive pulses or generates emulated pulses

GOAL OF MODIFICATION

I want a setting for the emulator where it can pass along the pulses from the physical 2310 drive in the IBM 1130, as well as operating without a drive by producing its own pulses. With a physical drive switched on, the disk arm will seek at the same time that the emulator virtually seeks. 

The disk controller logic in the IBM 1130 is wired to the physical 2310 drive, but the emulator is also tapped into the signals. Thus, when the controller tells the real disk arm to move forward one track, the emulator will see that and also advance the virtual track number itself. 

The disk controller sees the sector and index pulses, which it uses to determine when to turn on the read or write electronics of the physical drive. The emulator is passing along the physical drive's pulses so that both are in lock step. Thus when the controller sees it has entered the desired disk sector, it begins to read the clock and data lines from the physical drive (for a read) or controls the write data line when writing to the physical drive.

The heads are mechanically blocked from lowering onto the spinning disk surface of the physical drive. However, the controller is sent a signal that the heads have loaded and the drive becomes ready for access. 

As the write data line is modulated, the head is trying to record on the disk but it is very far above the platter and has no effect. The emulator is tapping this signal, however, capturing the bit pattern to write onto our virtual disk cartridge in the DRAM of the FPGA. 

As the drive enables the heads to sense the clock and data pulses from the spinning platter, no signal is detected since the head is too far above the surface. The emulator injects the signals into the line as if the disk head amplifier had read them, thus giving the 1130 and its disk controller the stream of bits it would have seen if using the physical disk in its traditional way. 

I set up a control signal, real_sectors, that tells this module whether to shadow the physical drive or to produce its own pulses. I might connect this to a switch on the RK-05 emulator or make it a configuration parameter. 

MADE CHANGES AND SIMULATED TO VERIFY OPERATION

The simulation shows perfectly shaped and timed pulses generated in both cases - real drive or emulated. My last remaining design task is to finish the sector write logic, where we capture the data being written from the 1130 to the drive. The emulator logic appears to correctly model the disk drive in all aspects. 

The top level module that ties together all the functional modules must be changed since we have different signals connected to a 2310 than to an RK-05. The various functional modules have changes in their input-output which have to be reflected and meshed together. 

The software in the Raspberry Pi needs updating to reflect our 2310 specific functionality. Too, I want to make use of the disk format files from simH versions of the IBM 1130, which likely differ from the RK-05 format files used by George Wiley's emulator. 

Wednesday, October 9, 2024

Seek logic simulated for 2310 emulation, modified version of George Wiley's RK-05 emulator

SEEK DIFFERENCES BETWEEN 2310 AND RK-05

The RK-05 seek interface sends a cylinder number and pulses a strobe signal, after which the drive either responds with an address accepted or an invalid address response signal. The timing for when the seek ends varies and another can be accepted is different from the 2310 as well. 

The 2310 seek interface sends a direction, a step size and pulses a go signal. The step is one or two tracks and direction is forward or reverse. The drive reports an access-ready signal and a home signal. Home informs the controller that the arm is at track 0, the outer edge of the disk platter. Access ready goes off 5 ms after the access go pulse is sent and turns back on 10 ms after that, to reflect the 14.6 ms max time for arm movement. 

Thus, the controller logic in the IBM 1130 will take a request for a relative movement of some number of tracks and convert it into multiple commands to the disk, using 1 and 2 track movements, until it is complete. If the arm reaches 0 and the command attempts to move in reverse, the arm remains at 0. Similarly, if the request for movement attempts to move the arm past 202, the last track, the arm remains at 202. 

The RK-05 emulator turns on an LED indicator called 'on cylinder' as part of its seek emulation. I decided to use that inversely, as a seek in process indicator. To convert the action to human timescale, my logic turns on the indicator for a quarter second after each seek action. Since the 2310 moves in bursts of 1 or 2 tracks, it will go on steady on longer movements. A full seek across the cartridge can be 1.5 seconds long, but a one to two track movement is 15ms and the LED will be on for 250ms. 

MODIFIED LOGIC AND SIMULATED SUCCESSFULLY

The logic is substantially different than for the RK-05. I simulated it with various conditions to verify both the behavior and the timing of every action. I was very pleased with the results and consider this part complete. 

Monday, October 7, 2024

Design decisions for 2310 disk emulator concerning sector and index pulses

MODIFYING GEORGE WILEY'S RK-05 EMULATOR FOR 2310 EMULATION

The RK-05 disk is derived from the IBM 2310, but with quite a few changes and improvements, such as ability to issue a seek in one command to any cylinder, double capacity, and use of sector checksum instead of word by word check bits. 

I have been simulating my changes and making good progress on the changes. Read emulation is complete and I am working on the write emulation. I had modified the sector and index generation module, successfully simulating it, but now I am considering changes to the module. 

ORIGINAL DISK EMULATOR OBJECTIVE CONCERNING SECTOR/INDEX AND SEEKS

My approach for the disk emulator I designed from scratch used the physical disk drive as the source of the sector and index pulses. It blocked the disk heads from loading down on the disk surface but otherwise let the drive accept and execute every command. Thus the user would hear the whirl of the disk plus the grunting of the disk arm as it seeks in and out. 

The RK-05 emulator is a complete substitute for a drive - it is attached to the controller without any physical disk present. That has big advantages except that it doesn't give the sounds and senses of my original design. 

ALTERNATIVES I AM CONSIDERING

I am therefore considering a rewrite of the sector and index generation module. I see three alternatives:

  1. Go back to my original approach and rely on the physical drive for the pulses
  2. Use the current generation module, which means the physical drive stays turned off
  3. Create a hybrid that uses the physical drive but has an option for pure simulation
HURRICANE HEADING TOWARDS ME WHICH IS LIMITING MY SHOP TIME

Hurricane Milton will pass by me later this week, which means that I have had lots of preparation to do. I moved all the outdoor furniture from my balcony and am securing the common areas of the condo since, I am a COA board member. We are stocking on some food that doesn't require refrigeration or power. In the worst of the past hurricanes we only had a six hour power outage one time, but I have to prepare just in case. 

Finally, I went through the workshop and moved up off the ground all items that might be damaged by water. There is no record of flooding in the building that houses my workshop, but even water blown in under the doors by hurricane force winds would be an issue. 

My shop has several dozen six foot tables where most supplies, equipment and tools are located, but there are a few things I stored under tables. Most at risk are the boxes of printer and typewriter paper, blank cards and paper tape rolls. I also have many padded blankets from the move out here that I use when I am kneeling or lying on the ground working inside machinery - these must be moved up.