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. 

No comments:

Post a Comment