Thursday, December 19, 2024

Disk drive and Virtual 2315 Cartridge Facility accomplishments

NEW 48V BULB IN THE UNLOCK LIGHT WORKS PROPERLY

My bulbs came in and I inserted one in the IBM 1130. When powered up, the Unlock light will be lit indicating that the receiver can be opened to slide cartridges in and out of the drive. As soon as the Run switch is activated and the drive begins spinning, the Unlock light will extinguish and stay off until after the drive comes to a halt. 

VOLTAGE CHECKS BEFORE CONNECTING THE RK-05 EMULATOR TO 1130/2310 SIGNALS

I put a meter on all the signal lines that will be connected to the RK-05 emulator circuits to verify that they don't produce voltages that will cause problems for the interface circuitry in the emulator. I found three pins that recorded voltages around 6V, the rest are all 3V or less. 

Pin B13 from the disk drive is the Write Data and Clock signal, an input to the drive which is output by the emulator. The emulator uses an open collector driver gate which is insensitive to the fact that the pin has a pullup to 6V. 

Pin B03 from the 1130 controller logic is the Read Data input to the 1130, which is output by the emulator using a open collector driver gate. Again, it is a pullup voltage that won't affect the RK-05 circuits. 

Pin D10 from the 1130 controller logic is Write Gate output from the 1130, which is an input to the RK-05. I observed a voltage of just over 6V on the pin, which worries me because the SN74LVC244A chip has a specified range of 0 to 5.5V for its inputs and an absolute max, must avoid voltage of 6.5V. 

I am going to mull over whether I need to do anything for this signal or just hope that it doesn't overstress the level converter chip in the emulator. 

REPAIRED B12 PIN IN CONNECTOR TO 2310 DRIVE

After close examination with a microscope I could see the cause of the poor connectivity for the opening for B12. The connector uses individual sockets that have tabs which are bent inward to press against the pin when the connector is pushed onto the backplane. I can see this in all the other sockets but the one for B12 has its tabs pushed outward so that they don't contact the pin. 


Its hard to see to the sockets marked 2, 6 and 8 have tabs bent inward in the rectangular opening but socket 4 has flat sides. B12 is connected to socket 4.

I desoldered and carefully removed the socket from the connector shell, where I was able to gently reform the tabs on the socket to provide a reliable firm connection. 

Socket shell partly removed for B12

Socket shell with tabs not yet reformed inward

I then reinstalled the socket and soldered it up. Testing with the connector provided that the connection for B12 is now working properly. 

LOCATION BEING CONSIDERED TO MOUNT RK-05 EMULATOR BOX AND POWER SUPPLY


I will create a mounting so that this is accessible when the right side door of the 1130 is swung open. The interface card will sit behind it and a bit above. The power supply will be behind it against the housing for the peripheral cable connectors. 



During illness recovery time, building archiver logic to read 2315 cartridges on a Diablo drive and upload

DIABLO 33 DRIVE WITH STANDARD DENSITY HEAD ON HAND

The Diablo 33 drives were widely used for minicomputers and other systems, derived from the IBM 13SD (2310) disk drive developed for the IBM 1130 system. However, quite a few enhancements were included in these drives (and similar derivatives like DEC RK-05), including direct seek to a target cylinder and single command restore to home position.

The most important change that most implemented as to double the recording frequency, thus doubling bit density and cartridge capacity. On the IBM 1130 (13SD drive) the bit cell frequency is 720KHz, while the RK-05 and others use 1.44MHz. Thus a 2315 cartridge holds just 1MB at 720KHz but 2MB on the RK-05 (and others). 

The higher frequency uses a different recording/playback head, ceramic surface, while the IBM heads are chromed metal surfaces. The ceramic heads are more resistant to scratching from transient head/disk interference (such as a tiny dust particle slamming between head and disk), these can generally be cleaned well and put back into surface, whereas the metal surface slowly accumulates scratch lines until its aerodynamics are too spoiled for safe use. 

Diablo offered the model 33 in both standard and high density flavors, which are 720KHz and 1.44MHz bit cell rates. For the standard density they use chromed metal heads just like the IBM drive. I am fortunate enough to own a standard density model 33, although its heads had been badly scratched due to a crash before I acquired it.

I am now able to replace the heads with standard density heads in good enough condition to fly. Thus, I plan to use this drive as a means of reading and writing 2315 cartridges containing IBM 1130 software. 

ARCHIVER DESIGN BEING BUILT BASED ON DIGILENT ARTY A7 BOARD

I had a spare Arty A7 board, based on a Xilinx Artix 7 chip (xc7a35ticsg324-1L) and a 128MB DRAM. It has enough general IO connections to drive the Diablo for an archiving session, enough RAM to grab an entire 2315 cartridge in one pass, and a serial link over USB where I can send out the data once the archiving has completed. 

I am finalizing my testing of the DDR interface, ensuring I can reliably write and read to the RAM, before I move on to testing the rest of the design. The IP generation in Vivado provides an example program that does this satisfactorily, so I just loaded that into the board and watched the LEDs to see it perform. 

OVERALL LOGIC OF THE ARCHIVER

The archiver opens a serial port link to a remote host and waits for a simple command to start archiving. The drive comes ready with the arm at home (track 0) position. The logic will step through the 203 cylinders one by one, performing a one track seek between each. For each cylinder, it will step through both the top and bottom heads (two disk surfaces). For each head, it sequentially reads and saves sectors 0, 1, 2 and 3. 

The read logic will be set up when the target sector is approaching the read heads and given a read request. When the sector pulse from the drive arrives, the read gate is turned on and we begin to receive streamed bits on both read_data and read_clock lines. 

Every sector begins with a bit less than 200 bits of zero, which ensures the drive can correctly separate the clock and data pulses coming from the head and route them out on read_clock and read_data lines. The first nonzero bit is the sync word, a special value of 0x8000 that is used to identify where each 16 bit word begins. The 1130 stores words with the high order value labeled as b0 and the lowest order value at b15, thus the one bit coming in on read_data is for b0 of the sync word.

The actual data recorded on the cartridge is 20 bits long for each 16 bit 1130 data word, tacking on four error detection bits after b0 is read in. The stream of 20 bits is b15, b14, b13 . . . b0, e0, e1, e2 and e3. The error detection scheme is simple, based on counting how many one bits were received in each word. As long as the count of one bits received, after we accept all 20 bits from the disk head, is an even multiple of four, then we have a good word. Formally this is 0 modulo 4, implemented by the counter built from two bits so it is always modulo 4. 

The sync word has only a single one bit thus it needs to send three more to get our counter to 0b00 for a good status. Bits e0, e1 and e2 should be a value of 1 each, with the final e4 bit always a zero. We validate the sync word was properly formatted otherwise anything we try to extract in the sector will not be correct. The syncerror flag is raised if the error detection fails on the sync word. 

After each read_clock bit of 1, we see if a 1 bit comes in on read_data in the interval before the next read_clock bit. If it does, we saw a one value, otherwise the data value for this bit cell (combination of a clock pulse and either a data pulse for 1 or absence of a data pulse for 0) is a value of zero. In any case, after each read_clock pulse (1 bit arriving) we push the captured value into a shift register. 

Physically on the disk the low order data value arrives first, with b0 at the end, so we push into the shift register to produce an 1130 format value b0 to b15 once all 16 bit cells have arrived. Any time a one value was pushed into the shift register, we increment the error detection counter. This continues for the last four values, e0 to e3. After the 20th bit value was received, if the counter is not 0x00 (or rolled around to 0b00) we raise the ECCerror flag. 

The 16 bit value from the shift register is written to the ram and our word address bumps up by 1 (having started at 0). When we have read all 321 words - a full sector - we raise a done flag so that the archiver can advance to the next sector. 

Once all 203 cylinders are read and in RAM, we write the data values over USB serial link to a remote system where the data can be captured and postprocessed to build a virtual 2315 cartridge file. 

Tuesday, December 17, 2024

Fighting to get time in the shop; replacement light bulb arrived for Unlock lamp on 1130 console

ONE THING AFTER ANOTHER THIS SEASON

I had several visitors including my daughter and her fiancĂ©, as well as other family. In between, there are all the seasonal obligations to deal with. Nancy and I both caught upper respiratory infections while enjoying Disney's EPCOT with our daughter. Still mostly recovering but looking forward to a more normal schedule playing with old computers. 

RECEIVED REPLACEMENT INCANDESCENT BULB FOR UNLOCK LAMP

The colorful lamps on the 1130's console use incandescent bulbs behind frosted colored plastic rectangles. I have quite a few bulbs available for 12V and lower voltages, but a few of the lamps on the console are wired to 48V circuits such as the disk drive. Thus, they need a 48V bulb which I didn't have on hand.

The new 48V bayonet bulbs arrived today and I will replace the burned out bulb for the Unlock light. This illuminates when the drive is at rest, showing that the handle is unlocked. The operator can slide a disk cartridge into or out of the drive while this is lit. Once the Run switch is activated to turn on the drive, the handle locks and our bulb goes out. 

CONTENDING WITH ODIOUS BEHAVIOR OF A NORTON 360 UPGRADE

The new version that updated itself is much more active in its attempt to protect me. Overly so. When I run the Vivado toolchain to work on FPGA logic, it attempts to block several programs and hangs the start of simulation - claiming it is sending it for real time analysis in their labs. They way they do this leaves Vivado dead in the water, requiring me to kill a background task and restart. 

There is no straightforward way to tell the obnoxious software to not block the software, unlike the ability in the past to ask for a given program to be put on an exclusion list. The only way I could work with Vivado was to disable multiple of the Norton 'protection' services - three of them were involved in ruining the Vivado experience. 

The software now stomps through my system like hateful stormtroopers, interfering with many innocuous acts of trusted software. The change in aggressiveness is dramatic and I don't like it at all. 

Monday, December 16, 2024

Found narrower contacts for producing SLT cards, updated design and ordered new PCBs

ISSUES WITH THE CONTACT PARTS I ORIGINALLY SELECTED

The gold plated contacts I used for my double wide SLT card (a controller card for the 1627 Plotter) are wider than the IBM original parts. They make it hard to install them without shorting and there is some mechanical interference with the nylon covers unless they are just perfect.

I ordered a number of narrower contacts in order to satisfy myself that they will still provide good connectivity when the card is plugged into an SLT board slot, and that they accept the covers easily. I found one I really liked and conducted tests to ensure a good connection when plugged into a card slot.

NEW REVISION OF PCB TO ALIGN THESE CONTACTS IDEALLY

Using the mechanical drawings of the contacts, the 3D design of the nylon covers and the dimensions of original IBM boards, I came up with a pad design and placement that should allow for an easier construction without the risk of skewing that occurred with the prior contacts. 

The boards are being produced and a batch of fifty contacts are on their way as well. I hope to have the card connectors dialed in to my satisfaction once they arrive and are put together. When that is ready, I can mount all the parts for the 5806223 replacement card I am building to attach a plotter to my 1130. 

Virtual 2315 Cartridge Facility interface board connected and a number of tests performed

OVERVIEW OF THE FACILITY

The Virtual 2315 Cartridge Facility implements a virtual version of the 2315 disk cartridge that would be inserted into the disk drive in the IBM 1130. It works in hybrid mode with the disk drive, thus a physical 2315 is placed in the drive and spun while the data is provided by the facility. 

The drive spins the cartridge, the arms seek in and out as programs access the virtual cartridge - essentially everything the same except the heads don't fly down on the cartridge and the data is from the emulator. The timing as well as the physical sensations are just the same as if the heads were actually involved. 

This leverages the RK-05 Emulator designed by George Wiley, but with substantially rewritten logic to emulate a 2310 disk drive and to work in the hybrid mode which is unique to the Virtual 2315 Cartridge Facility. A micro SD card is inserted in the emulator box, containing the virtual 2315 disk cartridge contents. It is loaded into the facility and then waits for the physical disk drive to spin up.

An interface board intercepts the signals between disk drive and the IBM 1130 controller logic. The cable which is normally plugged into the disk drive instead plugs into the interface board. A cable wired to the interface board is plugged into the disk drive instead. The board also accepts two ribbon cables from the RK-05 Emulator box. Finally, it is powered from the 1130's 12V DC supply. 

In addition to the signals for the disk drive, we intercept two other switches on the disk drive. One of them indicates that the drive is unlocked to permit the introduction or removal of a 2315 cartridge. The other is the Run switch which is turned on to spin up the drive. 

The operation of the facility is straightforward. A micro SD card sits in the emulator box. When the emulator box has its switch toggled to activate the image, the cartridge image is read in to the emulator. With a real 2315 cartridge inserted in the drive, the Run switch is turned on. The motor starts spinning the cartridge. After 90 seconds, as long as the emulator had a virtual cartridge loaded, the drive believes it has loaded the heads onto the disk and it turns on the File Ready lamp.

The user operates the 1130 and runs software exactly as they would if the facility was not installed. When the user turns off the Run switch on the disk drive, the emulator will write back any changes to the virtual cartridge image on the mico-SD card at the same time that the real cartridge is slowing to a halt. Finally, the Unlock lamp comes on the 1130 console. 

INTERFACE BOARD INSTALLED INSIDE 1130 AND WIRED TO POWER AND SWITCHES

I tapped some holes in a support frame inside the 1130 and screwed the interface board into place. It also has wires from the DC 12V and ground, plus one wire each to the Disk Unlock switch on the drive and Unlock lamp on the machine console. 

The cable from the 1130 controller logic is plugged into the back of the interface board. A cable from the board is plugged into the card cage on the disk drive. Two ribbon cables are plugged into the board to connect it to the RK-05 Emulator box which is mounted on top of the disk drive, accessible by lifting the top cover of the 1130. The emulator box is also wired to the +12V power of the 1130, so that it only comes on when the 1130 is powered up. 

NEW VERSION OF PCB BEING FABRICATED

I improved the design in several ways. A mode switch was added, I did away with the sensing of the Run switch on the disk drive, and I added a circuit to light the Unlock lamp on the 1130 console when running in virtual mode. 

The PCB will have a tiny slide switch which sets the Virtual 2315 Cartridge Facility to either virtual or real mode. In real mode, the disk drive inside the IBM 1130 is active, producing the sector and index pulses as well as physically seeking the arm in and out. In virtual mode, the disk drive is purely emulated and the physical disk drive is not used at all. 

The Unlock lamp is a 48V bulb that is grounded by a microswitch in the disk drive whenever the solenoid is activated that allows the drive to be opened and a cartridge inserted. For the virtual mode, we will pull the line down to ground to cause it to light when the emulator box is ready to have a virtual 2315 image 'loaded' into the disk drive. 

TESTED END TO END CONNECTION TO THE RK-05 EMULATOR BOX

I probed the connections in the RK-05 emulator card and the other end of the signal at either the disk drive backplane pins or the 1130 controller logic backplane pins, depending on the signal. This ensured that the cabling and the interface board design was correct. 

I used the old PCB to verify the connectivity and will continue with it while waiting on the new board to be delivered - it has some bodge wiring and other changes to make it electrically identical to the new design. 

ONE ISSUE WITH A CONNECTOR TO BE RESOLVED

I have an intermittent contact on pin B12 of the connector that plugs into the 2310 (internal disk) drive. It appears that the connector's opening is a bit wide and the pin on the disk drive's SLT board is perhaps a bit narrow. Wiggling the connector causes the connection to drop in and out. I will work on this before I move on to actual testing of my logic and code for the RK-05 Emulator box, now the Virtual 2315 Cartridge Facility box. 


I circled the connector hole for B12. Visually it doesn't look any different but there is an issue with the connection for that pin to the hole. 

Thursday, December 12, 2024

2310 Disk power SMS card inserted into 1130; FPGA bitstream Virtual 2315 Cartridge Facility ready for testing

SMS POWER CARDS REQUIRE CHAMFERING OF LEADING EDGE TO INSERT PROPERLY

My design for SMS power cards to route the AC and certain other voltages to certain IBM 1130 system peripherals is in place and the drive blower motor is spinning up when system power is applied. The devices that use these cards are the internal 2310 disk drive, the 1053 console printer (typewriter), the 1627 plotter, the 1134 paper tape reader and the 1055 paper tape punch. All other peripherals receive power through the large IO cables that link them to the 1130. 

The card is .004" thicker than the IBM cards, which is just enough to make insertion of the card almost impossible. It is the cumulative friction pressure of the contacts across the 16 possible contact positions of an SMS card that lead to the difficulties. Because the contacts are spring loaded they would allow the card to fit were it not for the pressure required to get it started moving into the slot.

I used a rasp to chamfer the backside of the card at the edges that enter the card slots. It didn't take much material removal before I could press the card into the slot successfully. I will release the design of the cards on github allowing others to build them for various devices connecting into the 1130 system. The material of the IBM cards is fragile enough that these are often snapped off. 

FINALIZED GENERATION OF FPGA BITSTREAM FOR MODIFIED RK-05 EMULATOR BOX

I carefully updated the constraints file to ensure that all the signals were linked to the proper FPGA input/output pins. The original RK-05 Emulator developed by George Wiley uses signal names appropriate to the DEC RK-05 drives but I needed a different set of signals for my plans to support the IBM 2310 disk drive. 

I have a clean synthesis, placement, routing and bitstream generation of my design. This file can be downloaded into the RK-05 Emulator box, into the Lattice ICE40 FPGA contained in the box. 

WORKING ON COMPILATION OF THE C CODE FOR RASPBERRY PI PICO

The other active element in the RK-05 Emulator is a RPi Pico processor that runs code to interface with a microSD card, an LCD display and various lights and switches. It also links to the FPGA using an SPI link. The virtual 2315 disk cartridge is a roughly 1MB file on the microSD card inserted into the emulator box. When the Load/Unload switch is turned to Load, the Pico code reads in the file and writes its contents over SPI to the DRAM used by the FPGA for disk emulation. That switch, on the original RK-05 Emulator, is labeled Run/Unload but the function is modified in my design. 

Once the image is downloaded into the DRAM, the FPGA is informed that it has a valid image and can now act as a 2310 disk drive. The normal mode for my facility is to insert a dummy 2315 cartridge (an actual cartridge but the disk heads will not be loaded thus its real contents are ignored). When the Run switch on the IBM 1130 is activated, the 2310 drive spins up and eventually believes it has loaded the heads on the drive. This causes the File Ready lamp on the 1130 to illuminate and input-output can commence. 

When the Run switch on the 1130 is turned off, the real cartridge slows down and stops, meanwhile the Virtual 2315 Cartridge Facility code in the Pico will pull the image from the DRAM over the SPI link. This is written back to the file image on the microSD card, thus preserving all the changes written to the virtual disk cartridge while the 1130 system was accessing it. 

I have to put the C files onto a Pico system, compile the code, then perform testing to be comfortable that it will work properly with the FPGA. When that is complete, the code is loaded onto the Pico and the Virtual 2315 Cartridge Facility will be ready to test with the IBM 1130. 

Tuesday, December 10, 2024

Synthesized FPGA logic after cutting back on usage to fit within the device for the Virtual 2315 Cartridge Facility

FIRST TRIES AT GENERATING IMAGE FAILED DUE TO SIZE CONSTRAINTS

The device used in George Wiley's RK-05 Emulator, which is the base of my Virtual 2315 Cartridge Facility after substantial modifications, only had room for a bit more than 1000 LUTs (Look Up Tables, a fundamental unit in FPGAs) but my first attempt came in requiring over 1400.

TRIMMING SUCCESSFULLY WITHOUT COMPROMISING FUNCTIONALITY

George's emulator is quite flexible, supporting a range of DEC CPUs and controller cards that connect to an RK-05 disk drive. As such, it stores many key values in the header of the disk file, such as the length of the preamble of zero bits before the sync word. These are read from the microSD card by the Raspberry Pi Pico and sent over SPI link to the FPGA logic to customize its behavior.

The IBM 2310 disk drive has only one set of values for things such as the bitrate, preamble length, number of sectors, sector duration etc. I hard coded them into the FPGA which allowed me to strip out all the code that read them from SPI and passed them between functional parts of the FPGA design. This pulled the required LUT count below the maximum so that I could use the IceCube2 tool to place and route the design onto the FPGA chip being used. 

Thursday, December 5, 2024

Soldered components on the new version of the 2315 interface board

BUILDING THE BOARD 

This board has five connectors and a few other components on it. This sits in between the IBM 1130 and the disk drive, routing signals through the emulator box. 

A set of SLT backplane pins are the connector for the cable from the IBM 1130's disk controller logic; normally that cable inserts into the backplane of the disk drive. A cable coming from the board has a SLT card connector end that will plug into the disk drive. Two ribbon cables run to the emulator, a modified version of the RK-05 Emulator. Some wires connect to the 1130 main power and to the Run and Unlocked switches in the disk drive. 

A power supply regulator and two transistor interface circuits convert the 48V levels of the two disk drive switches to appropriate TTL logic levels before sending them to the emulator box. 

Replaced power paddle card for disk drive in IBM 1130

 NEW PCBS ARRIVED FOR IBM 1130 POWER CONNECTORS

The IBM 1130 uses a block of SMS card sockets, with a metal bar at the position of pin H to ensure that ordinary SMS paddle cards are blocked from insertion. The other positions of the socket are used for various power connections - 115VAC, 230 VAC, 12VDC, 48VDC,  and frame ground. These are used with the 1053, disk drive, 1134, 1055 and 1627 devices only.

This requires a special version of an SMS paddle card with a notch cut at position H. I designed the card and had it fabricated at JLCPCB.com, receiving it today. 

WIRED UP ONE PCB TO CONNECT THE DISK DRIVE INTO VCF IBM 1130

This card has the motor power lines connected 115 AC hot to CD, AC neutral to FG, and frame ground to KL. No other pins are used for the disk drive as it gets its signal ground and +48VDC through a different set of connections; this is strictly for the AC connections to the disk drive.


DIFFICULT TO FIT INTO THE SOCKET - INVESTIGATING THE CAUSE

I wasn't able to insert this into the socket. When I hold it up against the IBM paddle cards, for example the one for the 1053 Console Printer, I don't see any noticeable difference. I measured the thickness of the IBM card and then my card; mine is a bit thicker.

However, the difference is just .004" as the IBM card is .058" thick and my card is .062" by comparison. Holding the card diagonally so that only a small wedge enters, I was able to get it to slide in a bit. That implies that it should be possible to go in. The issue is the amount of force needed to spread the socket contacts and overcome the friction with my the pads. 

I will work with another of my PCBs, not the one with the wiring already attached, to determine how (or if) I can make the card slide in. At worst case I can try to sand or shave down the end that slides into the socket a bit. 

All simulations completed satisfactorily for the Virtual 2315 Cartridge Facility

VERY LIMITED TIME DUE TO FAMILY VISITS AND HOLIDAYS

However, I did grab time to work on the simulations of the FPGA logic for the emulator that will sit between the IBM 1130 disk controller logic and the internal disk drive, allowing it to operate in hybrid mode. I built more sophisticated testbenches and used them to scrutinize the operation and timing of everything in the design.

SIMULATIONS WORK EXACTLY AS EXPECTED NOW

The logic should give me exactly the behavior I want. When any 2315 cartridge is inserted into the internal disk drive (13SD) and a valid disk image on a micro SD card is inserted into the emulator box, the disk image will be read and written to by the IBM 1130 as the 13SD drive spins and moves the disk arm in and out. It will also work properly if the 13SD drive is not working, providing a fully virtual disk drive emulation. 

NEXT UP - CLEAN UP AND TEST THE C CODE FOR THE RASPBERRY PI PICO

I want the code to make use of the file format for disk files of the IBM 1130 Simulators so that disks can be moved between the virtual (simulator) and real 1130 system environments. The RK-05 Emulator upon which my facility is based has its own format for disk files, developed to support various DEC computer disk drives. These were derived from the IBM 13SD but have significant differences. 

Sunday, December 1, 2024

Rotation, sector and index pulse timings good, as is reading a sector; working on capturing a write to a sector now

COMPLICATIONS THAT HAD TO BE VERIFIED

The design can operate in one of two modes - virtual only or hybrid where it operates in conjunction with a spinning, operating disk drive. The logic varies in quite a few places depending on whether we are completely driven by incoming sector and index pulses from the disk drive or whether we are generating them. 

I wanted to check that even with jitter and speed variations, the hybrid mode would correctly produce the pulses and more importantly be in complete sync with the sector that is under the read/write heads. We have to pick up the proper sector's content to feed it to the 1130 during a read; for a write, we must be updating the proper sector's image in DRAM. 

The pulses could arrive in any relationship to the logic in the FPGA, which I tested by shifting the pulses generated in my test bench. It is easier for virtual mode, since the FPGA is producing the sector and index pulses itself. 

I very carefully checked all the emitted signals from the modules producing sector and index information. When this was as tested as I could achieve without real hardware, I moved on to test the process of reading a sector on disk. For this, the 1130 controller logic looks at the sector address, then raises the read gate signal when the appropriate sector pulse finishes in the targeted sector number. 

My testbench produced the stream of clock and data pulses that the 1130 controller logic expects from the disk drive. This is approximately 250 microseconds of alternating pulses, which are a 1 for the clock and an absence of a pulse to represent a bit of 0. The 250 us of zero bits allows the disk drive to sync up and learn  to separate data and clock bits, since they are simply sequential pulses or absence of pulses on the disk surface. 

At the end of the 250 us, a word is written with only the high order bit set - x1000 - which the controller logic uses to know when a new word is starting. This sync word is followed by a stream of pulses which represent up to 321 words of 16 data bits plus 4 check bits, delineated by the controller based on the sync word identifying where a new word begins. 

When the read logic was accurately generating the pulses in the proper timing, I could verify that the pulses delivered on the data and clock lines from the disk drive are correct. One aspect of my read logic is that it has to generate the four check bits for each word. Thus, after sixteen bits of data for a word is emitted, the next four bits are the check pattern that implements IBM's error checking algorithm.

The ECC is pretty simple - during the reading of each word, a two bit counter is advanced for every data bit that is a 1 value. The counter rolls over, so that after it saw three 1 bits, another 1 bit sets it to zero. Thus the counter is operating modulo four. After the sixteenth data bit, check bits are produced to bring the counter to zero. 

This means if we had 1, 5, 9, or 13 bits with a 1 value, the counter is at 1 and we generate a check pattern of 1110 which advances the counter so it reaches 0 at the end of the word. If we had 2, 6, 10 or 14 bits with a 1 value, the counter was at 2 and the check bit pattern of 1100 advances it back to 0. Having 3, 7, 11, or 14 bits with a 1 value gives a counter of 3 and the check bit pattern 1000 gets it back to 0. Words with 0, 4, 8 or 12 bits with a 1 value ends with a counter that is already 0, so the check bit pattern is 0000 since we don't have to advance the counter. 

For every 1130 data word - 16 bits - we write 20 bits onto disk in order to have the four check bits appended. The file containing the disk cartridge contents only saves the 16 bits per word, with our read logic generating check bits on the fly. If the controller logic doesn't end the 20 bit word with a counter value other than 0, it has detected a read error and flags the read as defective. 

I verified that this read logic worked in both hybrid and virtual modes. It appeared very solid, but needs testing on real hardware to be certain I have it correctly generating the bits. 

WRITE LOGIC INVOLVES A MIXED STREAM OF CLOCK AND DATA BITS

When the controller logic is writing to a sector, it is varying a single signal line. Whenever that signal is at logic low, a flux reversal is produced on the disk surface; if the signal is logic high, no flux reversal is produced, thus no pulse is on the disk. Timing is how you differentiate clock and data pulses, since they are a single stream on disk. 

The disk drive produces a 720 KHz oscillator signal that is fed to the disk controller logic in the 1130. When that signal is at logic low, we are writing the clock pulse which is always present. Thus, the combined signal line to the disk drive is low when the oscillator signal is low. When the oscillator signal is high, this is the time where we write a pulse for a data bit value of 1 or we do nothing to signify the data value is 0. 

My testbench had to produce the combined signal line that would come from the 1130 logic. It is fed by an oscillator we are generating in our write module. In hybrid mode, I plan to feed the actual 720KHz signal produced by the disk drive but in virtual mode, we generate the oscillator. 

I know the logic gates involved in toggling the combined signal line so I could reproduce their impact pretty faithfully. Bit counter E is on when we are in the check bits, thus this writes a pulse if check bits haven't set the counter to 0 yet. When bit counter E is off, we are writing the sixteen data bits of the word, emitting a pulse if the current bit value is 1. Finally, if -Write Clock Phase B (our oscillator signal) is low, we always produce a pulse for the clock. 

What happens in the real world is that there are delays in the oscillator signal from the disk to the controller, plus delays going through the logic gates, so the combined signal is not edge coincident with the oscillator coming from the disk or my write logic. This had to be simulated to be certain that my write logic would capture the intended data words coming from the 1130 to write onto the disk sector. 

In write mode, I have to follow the 250 us of zero bit values (clock pulse followed by no pulse), then detect the sync word so I could separate the clock from the data bits on the combined line. As well, I had to know when a new word began, just as the controller logic must determine when it is reading. 

When the oscillator signal is high, I open up a timing window but don't look too close to the signal edges. This protects me from the delays I mentioned two paragraphs above. During the window I open in the middle of the logic high portion of the oscillator, I look for a low value on the combined signal line. If I see one, I have captured a value of 1 for that data bit. 

The one and zero bit values are shifted into a register as they coming in from the 1130 controller logic. I keep the two bit counter based on bits with a value of 1. When the sixteenth bit was received, I capture the next four bits only to advance the two bit counter. At the end of the 20th bit, if the counter is not 0 then I have detected an ECC error. The register only had the first 16 bits shifted in, then it was written to the DRAM and the address advanced to the next word in the sector. 

I continue to grab words and store them sequentially in DRAM as the write from the 1130 continues. If we reach the next sector pulse while trying to write, an error is detected and reflected to the program requesting the disk write. As long as I am accurately producing the sector pulses as I capture bits from a read, my logic will work correctly with the disk controller. 

The test bench code to produce the combined signal line properly based on the oscillator signal value is complicated. Not only emitting the sync word so the controller logic is in sync with us, but skipping the check bits and properly delineating the completion of each 1130 data word. On top of that, I had to introduce some delays just to understand what that does to my write logic. 

I am not done yet with testing of the write logic. The test bench code is almost complete to my satisfaction, and I have adjusted some of the write logic already based on that simulation stream. I am going to take my time with this one as it is likely the most challenging part of the logic to get right. 

Friday, November 29, 2024

Believe the Virtual 2315 Cartridge Facility FPGA design is done, undertaking thorough simulations now

FPGA DESIGN RUNS IN GEORGE WILEY'S RK-05 EMULATOR BOX

The emulator was modified from providing virtual RK-05 disk drives into the facility that provides either a virtual or a hybrid 2310 (IBM 1130 internal) disk drive. Hybrid means the drive in the 1130 is spinning with a cartridge inserted, but the emulator is managing the flow of data to and from the 1130. Arm movements occur on the physical drive and are mirrored inside the emulator. 

The disk heads are not flying on the inserted cartridge, whose actual contents are ignored. Rather, an image on a micro SD card in the emulator is fed to the 1130 during disk reads and any writes from the 1130 are captured to update the image inside the emulator. 

COMPLETED LOGIC FOR THE FPGA DEVICE INSIDE THE EMULATOR

My design modified the Verilog built by George, adapting it to the way the 2310 disk drive works and introducing the hybrid mode. I believe it has implemented what I intended, but I need to very carefully simulate it as a first check that this is true. Once that is done I can begin testing on the IBM 1130 until it works as intended, compatibly and accurately. 

SIMULATIONS BEING RUN UNDER VIVADO TOOLCHAIN

I am using AMD's Vivado (originally from Xilinx) to simulate the various functions of my code. I intend to build this up function by function except for the two areas that are just too complex to model well in a simulation - operation of the SDRAM in the emulator box and the dialog over an SPI communications link from an application running in a Raspberry Pi Pico (also inside the emulator box). 

Sunday, November 24, 2024

Drat - error in my new PCB for 1627 controller card

STOPPED DEBUGGING THE BODGED CARD ON THE BENCH

Mostly the card was working correctly but I would continue to get flakey behavior that after investigation seems to be issues with the bench testing apparatus itself. The only issue that was still occurring was quite odd. 

When the system reset (DC Reset) would stop, the request for interrupt on level 3 (IL3) would immediately go on, but this was not because of any of the six movement commands being activated. If I monitored the DSW Bit 14 (busy) signal using a pullup resistor, the false triggering of the IL3 stopped! 

There is no logical connection between these other than possible shorts or power interactions through chips. It doesn't make sense from the design thus I had to ascribe it to an issue with the particular card I am testing - the bodged up one with jumper wires to the donor SLT card. 

BUILT NEW SLT CARD WITH INTEGRATED SLT CONNECTOR

I soldered all the components onto the new version of the card which has an integrated connector, avoiding the requirement for donor cards or jumpers. All the spring contacts are in place on the card so that it can connect to the pins in an SLT card socket, either on my bench tester or more importantly in an IBM 1130 card compartment. 


It was time to install the housings on the end of the cards. I have not completed the new 3D printed housings, but I pulled two off of the donor SLT card I had been using for the earlier instance of the plotter controller card. 

DISCOVERED BAD SPACING BETWEEN THE TWO CONNECTORS

One housing fit but the other will interfere with the first if I try to install it. I compared it to the spacing of a normal double width card and saw that my layout for the PCB was wrong!



You can see in the picture above that the left row of contacts lines up with the openings in the housing but the right row of contacts is over too far to the left. The width of the space between the connectors is too small in my card. I measured the spacing on an IBM double wide card and found that the middle of the contacts on either side should be .375" apart. 



In addition, there are small tabs on the IBM SLT card that lock the housings onto the card, so I should be implementing them as well. 




Back to the drawing board (well, back to KiCAD) and another round of PCB manufacturing. 

Various parts for recreation cards

3D MODEL FOR COVER ON MY REPLACEMENT SLT CARDS

Eric Schlaepfer sent me his files for a cover that he used when he created substitute SLT cards. He removed the spring clips from junk cards, rather than buy new ones like I did, but otherwise it is the same process to build a PCB that will have an SLT connector on its end. I will make one to assess it for possible changes - since my spring contacts are wider than the IBM part, it may be necessary to alter the design. 


You may recognize Eric from his work creating the Monster 6502, from his Tube Time social media presence on X or from his work with Curious Marc on various projects. 

SMS POWER PADDLE CARD IN PCB FABRICATION

I designed a card to use with the SMS power connections that the IBM 1130 utilizes to provide power to the 1053 Console Printer, 1627 Plotter, 1134 Paper Tape Reader, internal disk drive, and 1054 Paper Tape Punch. These have a tendency to snap. This card will allow museums and other 1130 owners to replace the connectors that are damaged. I produced ten of them, but will also share the design files on Github for those who need to make their own. 



Saturday, November 23, 2024

Disk drive reconnection and one issue

WIRED UP THE AC POWER CABLE TO THE DISK DRIVE

The AC power cable was reinstalled in the disk drive, with the ground wire connected to the AC box lug and the hot and neutral wires connected to their spot on terminal block TB4 inside the box. The cable runs back to an SMS power card that is plugged into the SMS power connectors that are used for the 1053 console printer, disk drive, 1134 paper tape reader, 1055 paper tape punch and 1627 plotter devices. 

HOOKED UP THE RUN SWITCH AND DISK UNLOCKED LAMP WIRING

When I tested the wires to determine which switch terminals each connected, I discovered that the switch was not working properly. It is a DPDT switch although only the Normally Open and Pole terminals are used. One of the two poles was not connecting to either the NO or the Normally Closed contacts.

I used Deoxit to spray inside the switch and exercise it until I restored a good low resistance connection when it is put in the ON position. The four wires from the switch were inserted into the terminal blocks on the front of the disk drive. A doubled set of wires from the Disk Unlock lamp on the main console was plugged into its spot on a terminal block. 

An end of a wire snapped off the pin connector that was plugged into a terminal block - but I soldered it back together easily. 

SMS POWER CARD SNAPPED OFF - SIGNS OF PRIOR DAMAGE AND BAD REPAIRS

I found that the card was snapped off at the fingers. One of the two finger sections showed signs of a prior break and a repair using some kind of liquid metal squeeze on material. It was also wrapped in black vinyl electrical tape, probably to keep the parts together.


This is the means of delivering 115VAC hot and neutral to the disk drive, as well as a good ground connection to the 1130 frame from the disk drive. I could directly wire this up, but that would not match the way that IBM connected the disk drive. 

DESIGNING NEW SMS POWER CARD TO BE FABRICATED

I fired up KiCad and began to design a compatible SMS power card. Once it is fabricated by JLCPCB I can use one to repair the disk drive connection and keep a few for other possible uses. I think the SSM museum could use one so I will send one to them. 

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. 


Evaluating possible SLT card socket to eliminate need for donor cards

ORDERED HOUSING THAT SHOULD BE COMPATIBLE WITH SLT BACKPLANES

Conor Krukosky had found a housing that appears to fit, as he has a long term project to create his own SLT cards. I ordered a couple of them so that I can do some experimenting. These are free hanging, which does mean I have some mechanical issues to content with in order to attach these to a PCB so it can be plugged in and out of the backplane socket. 



It would use thin wire-wrap (30 gauge) wire to span from PCB pads to the connector pins. I have to work out a good way to affix the housings on the end of the PCB in the correct spacing. The other issue with this methodology is that for a single size SLT card, the cost is about $13 for the connector and pins, not prohibitive for a few cards. 

For Conor's project to replace about 300 cards to repopulate his 1130, the costs add up especially when you add in the PCB cost plus the components to go on them. If you figure $40 per SLT card, which is probably low, then the cost for the 1130 card complement would be around $12,000. 


The IBM housing has features on the ends that key it so the card can't be inserted upside down into a card slot. I have to work out how the housing I just bought will work with the backplane keying, which might require some modification of the housing to make it fit. 


Saturday, November 9, 2024

Replacing the head connector required excavation to determine the coil wiring; successful conclusion

DUG OUT THE CONNECTOR TO FIGURE OUT WHICH WIRES GO TO EACH PIN

I know from the documentation about the wires from the SLT card compartment out to the female head connectors. There is a violet and a grey wire that goes to the two read/write coils, a red wire that goes to the erase coil, and a black wire that was not covered anywhere else. That wire hooked to the ground pins on the backplane.


The diagram for the wiring of the heads does not show the fourth wire - the ground connection. The only mention at all is the table above. 


However, from the head to the male connector, there is no documentation. I could figure out the pins because the connector is asymmetric, with two pins close together on one side and the other two spaced further apart. However, if I was not able to solder the pins then I would need to make a new connection and for that I would need to know how to identify the various coil connections.


I picked away at the plastic molded connector to expose the ends of the pins that were broken off as well as expose enough of the wires connected to those pins that I could confirm colors. It is good that I did, because the four wires I found in the connector were red, blue, white and white. These don't match the colors from the female connector. 


I found nothing at all about the wiring in the connector in the documentation for the 2310 drive which is also the internal drive on the IBM 1130. However, the heads are quite similar to the multiplatter 2311 drive that IBM introduced at about the same time. I looked over some documentation on that drive and found the head wiring that matched my connector.


It shows the four wires connected, unlike the documentation for the 2310 drive. I made some resistance measurements across the four wires hooked to the upper head, which was undamaged. I found no connectivity at all through the black wire to any of the other three, while the diagram above implies there is. I checked to the female connector for the damaged lower head and that too had no connection from the black wire to the pin on the connector. I removed one of the female connectors and could see that there is no connection at all to the fourth pin.


It was apparent that the black wire, hooked to ground, serves only as a cable shield up to the female connector. No such ground shield exists from the male connector to the head itself. That means that in the excavated male connector I was repairing, the blue wire was unused on this end and could be ignored. 

It was a painstaking process to solder the pins back on the two active positions where they had snapped off. Once I was certain that there was good connectivity, I covered the connector with Kapton tape and reinstalled it on the machine.


I tested from the backplane pins for the same resistances and connectivity, ensuring that my reattached female cable had good wire-wrap connections and that the entire path to the coils in the head was intact. 


HEADS BACK IN PLACE AND A VIDEO OF THE ARM MOVEMENTS




You can just see the two holes on the left side above the top head and below the bottom one that had pivot pins inserted. These allowed head loading plates to be pushed down onto the backs of the heads in order to force them down to fly 125 microinches above the spinning disk surface. 

The video I took shows the drive spinning, finishing up the 98 second delay before you can hear and see the head load solenoid snap closed. The solenoid is near the bottom left in the video, you may have to watch a second time to spot it. That would normally close the two heads around the spinning platter, but for safety reasons this is not done on this drive.

I then moved the arm forward and back in continuous mode, then stepped it in both 20 mil and 10 mil step sizes. You can see the backsides of the two detents, one for even and one for odd tracks. When moving in 10 mil steps, the detents alternate, whereas with 20 mil step the same detent is re-engaged after each movement.