Tuesday, November 19, 2024

Assessing a location for the Virtual 2315 Cartridge Facility interface board

MOST COMPONENTS SOLDERED ON INTERFACE BOARD

I had a few hours in the workshop in between time spent with family visitors. I soldered on the connectors, installed the pins that allow me to hook up the cable connector from the 1130 controller logic, soldered on a cable that plugs into the disk drive, and a few other components. I still need to install the voltage regulator, resistors and capacitors. 

TESTED CABLE ROUTING AND MOUNTING POINT FOR BOARD

I had to find a potential location for the interface board where the cables from the disk drive, 1130 controller logic and emulator box can be routed simply and neatly. I did find a good spot, as you can see from the temporary mount with cable ties. 

I will drill and tap for the mounting screws along the left side of the interface board then work out a mount point for the right side. 

Parts arrived to build Virtual 2315 Cartridge Facility interface board

PCB ARRIVED ALONG WITH THE PARTS

This board is the interface between the IBM 1130 disk controller logic, the 2310 disk drive and the modified RK-05 Emulator that together form the Virtual 2315 Cartridge Facility. The cable from the CPU that normally would plug into the disk drive will plug into this new board. A cable attached to this new board will plug into the disk drive. A pair of ribbon cables connect this board to the RK-05, passing most of the signals between 1130 and disk while processing all the data related signals inside the emulator.


FINISHING UP THE FPGA AND C CODE TO BEGIN TESTING

In order to start testing with the 1130 and disk drive, my modifications to George Wiley's RK-05 Emulator must be installed. The 2310 disk drive differs from the DEC disk drives in quite a few ways. As well, my notion of a hybrid of real disk drive plus emulator is unique. 

I will do some final simulations of the FPGA logic before installing it on the FPGA chip in the emulator. The emulator FPGA works hand in hand with a Raspberry Pi Pico that manages the SD Card where the cartridge images are stored, thus there are some Pi side C code changes needed.

Saturday, November 16, 2024

Still testing substitute 5806223 card to support 1627 plotter on the IBM 1130

AFTER ERROR OF MISSING PULLUP, STILL HAVE ERRONEOUS BEHAVIOR

The card was producing the 1.9 ms and 50 ms output pulses now. More importantly, the interrupt level 3 request (IL3) was not incorrectly high before commands were issued. I saw the busy status emitted when the XIO Sense Device was issued.

What was wrong was the behavior of both busy and IL3. I saw the flipflop turn on, emitting IL3, when I requested a Drum Up move. However, the line dropped after 100 ms when it should have been latched on until an XIO Sense Device with bit 15 was issued. 

This is incorrect on three levels. First, the flipflop should not turn off by itself. Second, the timing suggests that even though I was issuing one of the 1.9 ms actions, the other pair of timers produced two 50 ms actions; the Drum and Carriage movement commands should create two 1.9 ms intervals. Third, the intervals, whether 50 or 1.9, have no path that should reset the IL3 flipflop.

There might be a short between wires, since this was a very bodged prototype, or a bad gate, but in any case the behavior is incorrect. I will check this further when I get back from a family trip early next week. 

Thursday, November 14, 2024

More testing of 5806223 replacement card and redesign to eliminate donor card requirement

CONVERTING THIS TO A DIRECT SLT CARD CONNECTOR ON THE PCB

I found some spring contact parts that would allow me to make a compatible end on my PCB that would slide into the card compartment and mate with the pins in the socket there. This did require some very careful measurement of IBM SLT cards to understand all the dimensions 

I implemented the pads onto which I will solder the contacts. The result will look very much like the original IBM end of an SLT card. I then need a 3D printed cover similar to IBM's black molded plastic part that protects the contacts and guides the card into the slot when it is inserted. 



The spacing of SLT pins in the card slot is .125" or 3.175mm. The connectors will fit easily in that spacing and are about the same width, length and height as the ones IBM uses. 

The plastic cover on the end of a card has grooves to slide over guides in the SLT board (backplane) at each card slot. It has notches to ensure the card can't be inserted rotated 180 degrees. It has .1"x.1" square openings that the SLT board pins slide into. 

I will need to design these covers and print them. I have time since the parts and PCBs will take a week or so to arrive. 

TESTING TO UNDERSTAND WHY INTERRUPT LEVEL 3 WAS ON INITIALLY

I did find that often the 1130 would power up with a level 3 request active. My design should initialize correctly and only drive the request after a plotter command has been executed. I took the card out and put it on the bench, reproducing the erratic IL3 behavior. 

The big breakthrough was while I was redesigning the card to feature an SLT connector. I spotted an error in part of the reset logic for the flipflop that drives the IL3 request. 

A gate will reset the flipflop either when the 1130 system reset signal is active or when an XIO Sense Device with bit 15 set is issued to area 5 (the plotter address). The signal for the latter case passes through an inverter. I realized that the inverter was a 74LS05, an open collector inverter, thus it should have had a pullup resistor on its output but it did not. 

I did a bodge change to the board on the bench and verified the correct functionality. I placed the card back into the 1130 and indeed the IL3 does not come on spuriously. I don't want to spend too much time working on the old design, when I will soon have the integrated SLT connector on the updated board. 

Disk drive bolted back inside IBM 1130 - without additional people

SPENT TIME MEASURING, VISUALIZING MOVEMENTS AND PLANNING STRATEGIES

The disk drive won't slide in from the front nor the back as the vertical height of the drive is larger than the vertical gap to the upper frame rails. Sliding from the side would require removal of CE transformer and usage meter boxes to open up the gap.

After I unbolted the transformer and meter boxes, I lowered them out of the path of the disk drive. I still had an issue because the height from the lowest to the highest part of the drive is too large, even tilting the drive as I slide it in to get over the frame stands that it has to bolt onto. To deal with this, I took the upper sheet metal off the drive to lower the height.

Transformer and meter box relocated

When I attempted to slide the drive in from the side, I found that a plastic bar that anchors the cartridge receiver tilt mechanism was about 3/4" too high to clear the left frame rail even with tilting. 

I had to admit to myself that the only way the drive would get inside the frame is to be lowered from above, exactly the situation that should force me to have a second person or some kind of a crane/lift. 

Inspiration struck. I have a board that is of appropriate size that I could use to sit the disk drive on top of the 1130 frame. If I slid the board backwards then it would pivot down and the drive would start to slide to the front but inside the 1130. Holding the front of the drive near its mounting spot, I could pull the rest of the board out and lower the rear of the drive to its mounting spots. 


BOARD METHOD IMPLEMENTED, DRIVE BOLTED DOWN

The method worked almost as well as I envisioned it. A bit more cumbersome to hold the drive from sliding too far forward while also pulling out a board and lowering the rear, but it did do the job. 


The bottom of the drive has four threaded studs that fit into holes on frame supports. I added the bolts and nuts to secure it down. To wrap up, I put the sheet metal parts back onto the drive. 

threaded stud with rubber donut on left side of picture


NEXT STEPS

When I get back into the shop, I will replace the CE transformer and usage meters to their proper positions and put the tops of the machine back on. 
  • I have to connect the AC power, the Run switch and the Unlock lamp to the front of the drive. 
  • The rear has a set of DC power connections to reattach for +3, -4, +6 and +48V. 
  • A duct for cooling air entering the rear of the drive will be reattached to a frame member
  • The run switch bracket must be attached
  • The faceplate will be remounted in front of the drive opening
  • Normally the signal cable from the CPU would be plugged into the drive's card cage
Since this will run with the Virtual 2315 Cartridge Facility emulator sitting between the 1130 and the disk drive, the connector going into the drive will come from the facility. I am still waiting for the PCB fab house and parts suppliers for what I need to make that drive connection. 

Monday, November 11, 2024

Another possibility for eliminating need for donor SLT cards when making substitute cards

SMT SPRING CONTACTS MIGHT ALLOW ME TO MAKE PCBS WITH INTEGRAL SOCKETS

I found some gold plated spring contacts that are .098" wide and solder onto a PCB pad. They can be set side by side to form the 12 connections on each side of an SLT connector. Their height above the PCB will create a .257" width between the two sides of the card. Since the SLT backplane (board) pins are spaced at .25", this should give a decent fit with adequate quality connection. 

I ordered some and will experiment to see how they work with real SLT boards. This is easier than having wires running from PCB pads to a standalone connector which must be anchored somehow to the PCB (see earlier post). 

Sunday, November 10, 2024

Wrapping up disk drive work, ready to install back in the IBM 1130

VERIFIED WRITE LOGIC AND WRITE CLOCK OUTPUT

The 2310 drive is formally called the 13SD and had the project name Ramkit. It is installed inside an IBM 1130 as its internal disk drive, as well as in a standalone cabinet labeled the IBM 2310, with one or two drives per cabinet. 

The 13SD produces a 720 KHz clock that it sends to the controller logic in the 1130 when the drive is switched to write mode. The controller logic controls a Write Data line based on the state of the clock signal. The clock pulse is sent by a constant 1 emitted during one half of the clock, whereas during the other half of the clock cycle the data value of 1 or 0 is transmitted.

Any time the Write Data line is 1, a flipflop reverses state which flips the magnetic orientation at the head. This writes a pulse on the disk surface. I verified the 720KHz signal was correct and that the flipflop toggles any time the Write Data line is set to 1. 

The recording scheme on this disk drive, like many, alternates clock pulses with data. Each half of the 720KHz clock cycle is called a bit cell. The first bit cell is always a 1, so it always records a pulse by flipping the magnetic field. The second bit cell records a pulse if the data bit is 1, otherwise it does NOT flip the field and no pulse is written. 

When writing a sector, the controller will send a preamble of a fixed duration of 0 data bits. That is, every clock cycle has a pulse in the clock bit cell and no pulse in the data bit cell. When reading, the drive will synchronize itself during the preamble so that it can tell the difference between clock and data bit cells. This will be important when data bit values of 1 are read later, as it comes in from the read head as a stream of pulses that must be separated. This synchronization is analogous to a phase locked loop. 

The drive, because it is in step with the alternation of clock and data bit cells that were written previously, can steer the clock pulses out one signal wire (Read Clock) and steer a pulse out a second signal wire (Read Data) when the data bit cell had a pulse. This helps the controller logic in the 1130 know that the absence of a pulse is a data value of 0, since the next clock pulse arrives with no pulse incoming on the Read Data line. On the other hand, if a pulse arrives on the Read Data line then we know the data value was 1. 

CHECKED SIGNAL VOLTAGES PRESENTED TO RK-05 EMULATOR HARDWARE

The RK-05 emulator has interface chips to read signals from the 13SD drive and from controller logic in the 1130. It also has chips to write signals to the drive and the controller logic. It acts as a relay station for many signals. For example, when the 13SD produces a Sector Mark pulse, it is passed along through the emulator to the 1130 controller logic. 

Reading and writing activities involve passing the 720KHz clock through to the controller logic, but not passing the signals to activate read or write on to the 13SD. Instead, the emulator produces a stream of pulses on Read Clock and Read Data signal lines to the controller logic, just as would have been emitted by the drive if its heads were really reading the disk cartridge. These come from DRAM in the emulator which holds the data that would be on a 2315 disk cartridge. 

For a write operation, the Write Data line from the controller logic, emitted in coordination with the 720KHz coming from the disk drive, will stop at the emulator. The incoming data bits will be captured and used to update the DRAM image of a disk cartridge.

When the disk drive first spins up, the emulator transfers the 1MB of content for a 2315 cartridge from an SD card to the DRAM where it is available for reading and writing. When the drive is switched off, the updated contents of DRAM are written back to the SD card. The format of the file on the SD card matches that used by the IBM 1130 simulators, which makes it relatively easy to create or update virtual 2315 cartridges. 

We have all the signals and behavior we need from the disk drive in order to work, in concert with the emulator, to perform exactly like the 13SD drive with a physical 2315 cartridge for each disk image on the SD card. 

PUT ALL COVERS BACK ON

I put everything back together, removing temporary wires, and installing all covers. The drive is ready to insert inside the IBM 1130. It is bolted to four spots on the frame, sitting on the right side of the 1130 as viewed from the front. A swinging door on the front of the 1130 is opened to gain access to the drive. A blue handle is pulled down to allow a 2315 disk cartridge to be pushed into the drive or removed.

The handle is then returned to its upright position and the Run switch on the drive is turned on. A lamp on the main panel of the 1130 indicate when the drive is unlocked, allowing the blue handle to be pulled down. The drive must not be spinning, otherwise the drive is locked. Another lamp on the main panel indicates when the drive is able to be accessed - File Ready - which turns on about 100 seconds after the Run switch is activated with a cartridge inside. 

The drive has a set of wires delivering 115VAC to power the motors. Another set of wires feeds the +3, -3, +6 and +48V DC power to the rear of the machine. A signal cable is normally connected from the 1130 controller logic to the backplane of the disk drive. However, this cable connects to the disk emulator, and a cable from the emulator is plugged into the13SD drive instead. Lastly, wires connect to the Run switch, Disk Unlock lamp and File Ready lamp. These will all be attached once the drive is bolted into place. 



PREPARED TO LIFT INTO THE 1130 WHEN I GET A HELPER

The drive weighs quite a bit and is bulky. It has to be lowered into the frame of the 1130 until the four bolts enter holes in support beams for the disk drive. The weight is therefore about two to three feet away from the body as the drive is lowered and raised in the frame opening, which introduces quite a lever arm that amplifies the effect of the weight on the people holding it. 

I will have to wait until someone relatively strong accompanies me to the workshop so that the two of us can lift the disk drive off the rolling lift table and insert it into its place inside the 1130 frame. Once is is sitting on its supports, I can do all the other work solo. 



DESIGNING INTERFACE BOARD AND CABLING TO USE RK-05 EMULATOR AND DRIVE

The RK-05 Emulator that I am leveraging as the core of my Virtual 2315 Cartridge Facility has two forty pin IDC style ribbon cables, one of which will interface with the IBM 1130 controller logic and the other will interface with the 13SD disk drive. Neither the 1130 nor the 13SD use IDC 40 pin connectors, so I will build an interface board to connect everything together. 

The signal interface from the 1130 controller logic is a cable with an SLT card connector on the end. This has the 24 pins of any SLT card and fits into one card slot on the backplane of the 13SD. Normally that cable with connector would be plugged into the 13SD. 

My board will feature two of the IDC 40 pin connectors, a set of header pins that match the card connector from the 1130 controller logic, and will have another cable with SLT card connector that is plugged into the 13SD. This puts the emulator in between the 1130 controller logic and the drive. A few additional connections will provide access to the Run switch and the state of the Disk Unlock lamp. 

Those two latter connections are either at 48V or 0, depending on their logical condition. The voltages are not safe to connect to the emulator. The interface board will have two level shifter circuits to convert the 48V signal into a TTL level output in order to feed it into the emulator. 

I have yet to finalize the shape of the interface board, nor the exact location where it will be mounted inside the IBM 1130.