With the Superbrains on hold for a while, due to me getting fed up with them (grrr!), it's time for another "save the old computer from the dump" thread.
This time we have an Exidy Sorcerer, which fell into my lap totally unexpectedly from its previous owner who'd had it from new. It's equipped with a Liveport FDM 180 hard sectored disk drive and should boot into CP/M. Also, a BASIC cartridge that plugs into a slot on the right hand side of the machine, which is encased in a modified ("hacked up" would be nearer the mark) 8-track cartridge case. It boots to the monitor, but no further - and on boot the monitor checks the RAM and gives a value for RAMTOP, a system variable that indicates where the user RAM ends. It is affected by the amaount of memory installed and whether or not a ROM pack is plugged in. The memory map has RAM from 0000-RAMTOP, then above that are plug in ROMs, the monitor, video RAM, character set ROM, graphics characters. I think the upper RAM is not DRAM. When there's no DRAM, the monitor uses the screen ram for its stack.
So. This machine was upgraded in a homebrew sense so that it's got a full 64K of memory. The upgrade entailed piggybacking RAM chips and a few logic chips, plus lots and lots of patch wires. I do have the instructions for this mod, though, so I should be able to work out the schematic.
I started discussing it on VCF: http://www.vcfed.org/forum/showthread.p ... y-Sorcerer
Please save me the effort of retyping all that stuff by reviewing the thread. It is mostly about the disk unit, though; but we'll return to it in a moment.
The first thing I found out was that there was no DRAM operable, with RAMTOP reported as FFFF (apparently a dead givaway!), but this turned out to be a shorted tantalum capacitor pulling the 12v line low. Poxy things! I pulled it and the monitor started reporting a proper RAMTOP value (DFFF), but it would not boot, either to BASIC or the floppy drive.
A documented failure of the BASIC cartridge is bit rot in the ROMs, so I put it to one side and started looking at the floppy drive. The Sorcerer has an S-100 bus for its expansion port, so the floppy drive has a combined S100 interface and drive controller onboard, all done in discrete logic. To boot to CP/M you power them up, insert a boot disk and enter GO BC00 at the monitor prompt.
Interesting, it is like the disk unit has built in ROM that is overlaid on the RAM like the BASIC cartridge. I couldn't see any ROMs on the drive's interface, apart from two 16 pin ICs with labels on them: "3E" and "4E". I pulled one of the labels and discovered they are Signetics N82S126N PROMs:
http://pdf1.alldatasheet.com/datasheet- ... S126N.html
These are 256x4 ROMs which give 256 bytes for the Sorcerer's disk boot code.
As mentioned on the VCF thread, I also spotted a DIP switch that appeared to set the location of the ROM in the Sorcerer's address space. This makes sense as you might need to move it around if you had specific amounts of memory available (I mean, non standard amounts).
As supplied, I think the ROM resides at DE00 (the DIP switch spells out the value DE in binary) but when I looked I only saw a partial set of data. I tried to adjust the DIP switch and moved the ROM to a lower address - 5C00 - and looking at that it appeared that the drive's boot ROM is intact. The quick ones amongst you will spot the discrepancy between the start of the boot ROM at DE00 and the monitor's boot vector (BC00). I think this is due to the instructions being written for a 48k Sorcerer.
I have dismantled the cartridge slot and fitted the ICE. It reports a memory map like this:
Code: Select all
OK ===> md 0000000000000000111111111111111122222222222222223333333333333333 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOOOOWWOW 0000000000000000111111111111111122222222222222223333333333333333 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
With the drive unit installed the map is different, as we might expect:
Code: Select all
OK ===> md 0000000000000000111111111111111122222222222222223333333333333333 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOOOOOWWOW 0000000000000000111111111111111122222222222222223333333333333333 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF