Intel Intelec MDS-800 Restoration
The +24VDC and -5VDC power supplies in the 8" disk drive chassis don't work. The two very large resistors in series with the pass transistors for the +24VDC supply gave off a cloud of smoke, so the pass transistors are likely shorted. It is also possible that the crowbar circuit on the +24VDC supply tripped, overloaded the supply, and smoked the resistors.
The system was missing the DB-37 to Centronics cable that connects the MDS-800 chassis to the diskette drive chassis. Lou made one from a parallel printer cable according to the Intel schematics. Unfortunately there are two possible diskette cables, one for single-density drives and one for double-density drives. Lou had to move a few wires to convert the single-density cable to a double-density cable. The system would still not boot ISIS-II after fixing the cable, so more debugging is necessary.
We used two laboratory power supplies to supply the +24VDC and -5VDC for the diskette drives. With the lab supplies connected to the disk chassis drive 0 is selected at boot, the head solenoid is activated, and the head is stepped to track 0. That is really good progress.
We can see the ready, track 0, index, separated data and separated clock signals on the diskette controller board, but it will not boot ISIS-II. This could be due to a hardware problem, or a bad boot diskette.
We have been getting lots of helpful suggestions from the experts on the intel-devsys Usenet group.
The Youtube video at https://www.youtube.com/watch?v=fH3LTZzj-sc&t=689s has lots of ideas about debugging the diskette controller.
We toggled in the two instruction program in the screenshot below and ran it. With the diskette out Status Register A contains 18h. This means that the diskette controller is double-density and the controller is present. With the diskette in the drive Status Register A contains 1Dh, so the new bit is Drive 0 Ready.
The ISIS-II bootloader gets read into RAM starting at 3000h. We filled RAM addresses 3000h-3fffh with zeros, and tried to boot ISIS-II. After a reset we looked at the contents of 3000h-3fffh and it was still zeros. That means that the diskette controller did not read the diskette and didn't transfer anything to RAM.
We looked at the 74164 shift register A8. The input on pin 9 is 8 MHz, with the system tying to boot so the head is loaded, we saw 1 MHz on all of the output pins. This was a failure mode in the YouTube video, but not with ours.
In the example below from the video it shows that the low order bit of the diskette controller status register contains a 0 which means that the drive is not ready. Our's contained 18h, so that failure mode from the YouTube video also did not exist with ours.
After trying to boot ISIS-II with two different diskettes the Read Result byte contains 0Eh, so that means Address Error, Seek Error, and CRC error.
We created an IOPB for a Recalibrate and the head went to track 0. The Read Result byte contains 00h, so no errors.
We tried a seek IOPB. The Read Result byte contains 0Eh, so that means Address Error, Seek Error, and CRC error.
We are now speculating that a Recalibrate command doesn't need any data from the diskette so that works OK. The Seek and the Read commands need to look at the track and sector addresses in the sector headers on the diskette, they are either not getting data or not interpreting the data, so the command doesn't work.
We swapped the diskette drives, but it didn't make any difference.
We looked at the deserializer A36 on the channel board. We can see activity on SE DATA IN/ and DATA SR STB when it tries to boot. We can also see data available on the four output pins.
We looked at A35 the Signetics 8233 Mux for the diskette data. The output pins are always low. The S0 and S1 control signals are almost always both high which will make the outputs always low. There is sometimes a little spike low on S0 so a bit of data shows on the output.
Roger Arrick will send us ISIS-II and CP/M double-density diskettes. That will be very helpful.
Lou was able to get ISIS-II to boot using a system diskette that contains the software that he wants to recover. There were some issues with a bad sector in the directory area that we will work on Saturday.
Lou tried booting ISIS-II from a different diskette and it worked! This was a little risky because it was the system diskette from his original project. Drive 1 is a little flaky. It looks like the Ready signal is not always getting to the floppy controller. Possibly the card edge connector on the top of the diskette controller that connects to the cable to the bulkhead on the back of the chassis. Needs investigating.
We were able to get Lou's source code files off his diskette by using the Format command in Debug mode to copy the diskette, and then using the copy command to copy the files to the Console and capturing the files with a terminal emulator.
We need to use IMG2MDS to make new ISIS-II and CP/M diskettes. We also have ISIS-II and CP/M diskettes made by x on the way.
We received the CP/M 2.2 and ISIS v4.1 diskettes from Roger Arrick. Both booted OK. Thanks very much Roger.
Drive 1 was intermittently reporting disk ready. After tracing the signal back from the intrface board, through the connectors and cables,
the problem turned out to be the drive itself. There is a trimpot in the index hole detect sensor circuit that was dirty. Tweaking and adjusting solved the problem - again, thanks to Mr. Arrick and others for that hint. Current status: System functioning (on disk power supply life support) - boots several versions of ISIS and CP/M . We're on the lookout for an ICE 80.
Major progress! Mike and Lou have repurposed an old disk drive power supply (with the requisite +24, +5 and -5 rails) to replace the one Lou fried.
We were able to use the Intel wiring harness with a bit of detective work, but gave up 240V operation. That shouldn't be a problem since we don't think this system will be traveling overseas...but we think we could get 240V working with a mod to the transformer in the "new" supply.
We've kept the carcass of the old supply to scratch our archival itch.
Next up, some touch-up paint and maybe the high-speed paper tape reader.
Current status: 99.5% functional (no 240V), 95% assembled (disk drive cabinet needs to be screwed back together).
Lou finished reassembling the diskette drive chassis, so that is now complete.
Lou continued working on a program that will dump the text in all sectors of a diskette to the serial console. Since the source code files are usually stored in sequential sectors on the diskette this is an easy way to capture the contents of all of the text files even though the directory is damaged.
We booted ISIS V3.4, ISIS V4.1, and CP/M V2.2. Everything seems to work OK.
We will use this system to test the double-density diskette chassis that came with the MDS-II Model 230.
We tried to use the IMG2MDS program to write an image of a diskette to a physical diskette. The program that is supposed to change the serial console baud rate from 2400 to 19,200 actually changed it to 9,600 baud, so something is misbehaving with the baud rate generator. The first diskette that we dried would not format. They second diskette formatted OK, wrote the image to the diskette OK, but the diskette would not boot. We need to do some more debugging to get this to work.
The system would not boot from diskette. We cleaned all of the backplane and edge connectors with DEoxIT, but it did not improve the behavior.
We noticed that the RUN led does not stay on after you press the RESET button.
The ISIS-II boot sequence is:
Press the top of the BOOT switch
Press the RESET switch
The drive 0 select LED goes on, the diskette head is loaded, the head is retracted to track 0
The Interrupt 2 LED goes on
Press the Space Bar on the terminal
The Interrupt 2 LED goes out and the diskette head unloads
Press the bottom of the BOOT switch
The diskette head is loaded, the heads move a few tracks, and ISIS-II is loaded
Use the monitor to enter DB 78 32 00 30 DB 79 32 01 30 C3 00 00 at 4000h. This will give you the FDD status registers at 3000 and 3001.
Changing the last 3 bytes of the above code to C3 00 40 will loop the status register reads allowing the use of an oscilloscope to trace of drive select thru your drive zero, it's head load and data lines. Just reset to return back to monitor.
DB 78 in 78H ;read port
32 00 30 sta 3000H ; save at 3000H address
DB 79 in 79H
32 01 30 sta 3001H ; save that at 3001H
C3 00 40 jmp 0000H
The image below shows another method of looking at the diskette controller status register.
DIRECTORY OF :F0:ISIS41