glitch
Veteran Member
I acquired a pair of Digiac 4500s in a recent equipment pick-up. Digiac made a bunch of educational/training hardware and this is another product in the same vein. The main bit of the 4500 is a 22-slot sized S-100 chassis with a 12-slot backplane and drive bays in the front. There's one 5.25" half height floppy, a blanking plate for another, and a switch matrix. The switch matrix is used to induce faults in the system. I suppose the idea is that instructors set the faults and students have to figure it out, using the large remote front panel you can attach to the thing.
The sad part of the story is, the previous owner died, and the person responsible for the estate threw out all of the documentation (I'm told it was complete, with classroom sets). There was a disk jammed in the floppy drive, but it turned out to be a moldy single-sided, double-density MS-DOS formatted floppy unrelated to the system. I have cause to get it up and going with CP/M as a friend wants a S-100 chassis for a particular project, and this is the one on hand that best suits his requirements (size, I/O, slots, integral drive bays, et c.). So, I started with disassembling the ROMs in the CPU board.
Boy, what a trip! This thing is set up to have separate student and instructor modes, from what I can tell, and has a third option for talking to a mystery I/O device that I don't have. I suspect student mode was intended for use with a printing terminal -- it makes great effort in processing backspaces to preserve what might already be there. There are checks and traps around most of the monitor code that prevents the "student" sections from getting into the "instructor" sections, without physically disassembling the chassis and adjusting some internal DIP switches on the CPU card. But, today I got far enough into my disassembly that I was fully into reverse-engineering the command table and the subroutines for each command function. I found that B appeared to boot the disk controller in the machine.
After digging far enough into the floppy boot code, it started looking kind of familiar. Turns out the Digiac controller is a modified/improved/cloned/compatible...or whatever...SD Systems VersaFloppy II. Of course, our own John Monahan has written an extensive test facility for the VF2. Since this system is Z80 based, I decided to give it a go. After patching up the console I/O for the Digiac "instructor" console (it runs at 9600 BPS, vs 1200 BPS), I organized it into a "load format" file -- you paste it into the monitor and it loads using the monitor's C command (Change memory, I suppose). The monitor is very clunky, everything works off of 0x0000 -- from what I've reverse engineered there's no way to set a starting address, either to change or to display!
Anyhow, I loaded it, jumped in, and it worked perfectly! I had confirmed the controller was somewhat operative by putting a single-sided, single-density Cromemco CDOS disk in and hitting B -- it locked the machine up, but I could see the first sector of Track 0 in memory, in the sector buffer. But, with John's VF.COM program loaded, I could not only do double density, but I could also read double-sided drives (controller has a FD1795). So, that's all excellent news!
The next step is of course to start building a CP/M for the system.
Here are some pictures of my setup:
Full Imgur album: http://imgur.com/a/sdo3E
The sad part of the story is, the previous owner died, and the person responsible for the estate threw out all of the documentation (I'm told it was complete, with classroom sets). There was a disk jammed in the floppy drive, but it turned out to be a moldy single-sided, double-density MS-DOS formatted floppy unrelated to the system. I have cause to get it up and going with CP/M as a friend wants a S-100 chassis for a particular project, and this is the one on hand that best suits his requirements (size, I/O, slots, integral drive bays, et c.). So, I started with disassembling the ROMs in the CPU board.
Boy, what a trip! This thing is set up to have separate student and instructor modes, from what I can tell, and has a third option for talking to a mystery I/O device that I don't have. I suspect student mode was intended for use with a printing terminal -- it makes great effort in processing backspaces to preserve what might already be there. There are checks and traps around most of the monitor code that prevents the "student" sections from getting into the "instructor" sections, without physically disassembling the chassis and adjusting some internal DIP switches on the CPU card. But, today I got far enough into my disassembly that I was fully into reverse-engineering the command table and the subroutines for each command function. I found that B appeared to boot the disk controller in the machine.
After digging far enough into the floppy boot code, it started looking kind of familiar. Turns out the Digiac controller is a modified/improved/cloned/compatible...or whatever...SD Systems VersaFloppy II. Of course, our own John Monahan has written an extensive test facility for the VF2. Since this system is Z80 based, I decided to give it a go. After patching up the console I/O for the Digiac "instructor" console (it runs at 9600 BPS, vs 1200 BPS), I organized it into a "load format" file -- you paste it into the monitor and it loads using the monitor's C command (Change memory, I suppose). The monitor is very clunky, everything works off of 0x0000 -- from what I've reverse engineered there's no way to set a starting address, either to change or to display!
Anyhow, I loaded it, jumped in, and it worked perfectly! I had confirmed the controller was somewhat operative by putting a single-sided, single-density Cromemco CDOS disk in and hitting B -- it locked the machine up, but I could see the first sector of Track 0 in memory, in the sector buffer. But, with John's VF.COM program loaded, I could not only do double density, but I could also read double-sided drives (controller has a FD1795). So, that's all excellent news!
The next step is of course to start building a CP/M for the system.
Here are some pictures of my setup:
Full Imgur album: http://imgur.com/a/sdo3E