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
NAME .EXT BLKS LENGTH ATTR NAME .EXT BLKS LENGTH ATTR
ATTRIB 40 4909 COPY 69 8489
DELETE 39 4824 DIR 55 6815
EDIT 58 7240 FIXMAP 52 6498
HDCOPY 48 5994 HEXOBJ 34 4133
IDISK 63 7895 FORMAT 62 7794
LIB 82 10227 OBJHEX 28 3337
RENAME 20 2346 SUBMIT 39 4821
SYSTEM.LIB 24 2849 FPAL .LIB 74 9125
ASXREF 35 4294 BAUD 16 1799
DUPL 61 7565 INSERT.ERR 66 8192
NEWFIL 183 23023 LINK 105 13074
LOCATE 120 15021 T 2 29
TYPE 5 416
1603/4004 BLOCKS USED
DIRECTORY OF :F0:SAILX.SYS
NAME .EXT BLKS LENGTH ATTR
ASMAC .TMP 1 0
ASXREF 35 4239
ATTRIB 38 4682
BINOBJ 28 3399
COPY 65 8042
DELETE 37 4506
DIR 46 5733
OLDIE 56 6999
FORMAT 49 6093
HEXOBJ 35 4281
IDISK 50 6239
LIB 82 10227
LINK 105 13074
LINK .OVL 37 4578
LOCATE 120 15021
OBJHEX 27 3284
RENAME 21 2487
SUBMIT 38 4629
FPAL .LIB 71 8712
PLM80 .LIB 45 5615
SYSTEM.LIB 24 2846
ICE80 82 10174
ICE80 .OV0 31 3763
ICE80 .OV1 35 4234
ICE80 .OV2 10 1106
LIST 19 2178
EDIT 80 9949
EDIT .MAC 4 272
ASM80 107 13374
ASM80 .OV0 20 2321
ASM80 .OV1 19 2280
ASM80 .OV2 18 2091
ASM80 .OV3 188 23679
TYPE .OBJ 4 362
TYPEA 3 211
TYPE .LST 44 5494
TYPE .REL 4 323
TYPE 3 215
TYPE .OLD 11 1197
TYPE .LNK 4 323
TYPE .MA 20 2315
TYPE .BAK 20 2339
DISK .BAK 10 1083
DISK .OBJ 3 187
DISK .LST 34 4138
DISK 2 120
DISK .LNK 2 119
FRANCE.OBJ 22 2582
DISK .REL 3 170
DISK .TR 13 1427
ISK .REL 3 167
SCAN1 6 551
2058/4004 BLOCKS USED
Update the MDS-800 page with pictures of the boards, drives, and power supplies in this system and a detailed list of the configuration. (8/11/21, done)
Make sure that the diskette drive pressure pads are in place. (8/10/21, Yes they are)
Get a known working bootable double-density ISIS-II diskette. Done.
Investigate getting a Kryoflux, Catweasel, or Greaseweasel board so we can make images of the diskettes without a working system.
Find a boot EPROM listing. We have the Monitor 2.0 listing.
Fill 3000h-3fffh with zeros, try to boot, and look at 3000h-3fffh. If the contents changed, then the diskette controller is reading the diskette. (8/10/21, no change to the zeros, so it is not reading the diskette.
Look at the diskette controller status register at 78h to see if the drive ready bit is on. (8/10/21, Yes for both diskette drives)
forjack842 said that we could load an image of the first four tracks of a diskette into RAM, then load a little program to cause the diskette controller to write the image to diskette. That should make a bootable diskette.
m.vale suggested using his IMG2MDS utility, of course this will only work if the drive / controller is Ok but then if it isn’t then a boot disk from anyone won’t work anyway. https://www.youtube.com/watch?v=XonRevJNwek&t=1137s and https://www.youtube.com/watch?v=uCHvWm5drHc&t=9s