Re: Altairs and Disk Drives
- "Stephen L" <shlafferty@...> wrote:
> --- Those Foley mainframes with their integrated drives are > interesting.This message thread caught my eye today, as did the mention of my name. I'm sorry I don't participate in these various discussions very often, but I monitor some on occasion. I like to say "I let my Web site and its documents do all the talking". My apologies if my comments below cover previous discussions.
> I take it that they used MITS DOS? I keep hearing that some old 360K
> drives may work with some controllers. Herb Johnson
> has mentioned using
> Versafloppy-II controllers. Of course, it's all about mating the
> controller with the particular OS.....
I don't merely "mention" SD Systems S-100 Versafloppy II controllers. In fact I sell them. In addition, for some years now, I've had a number of people who have bought them, provide detailed, technical documentation and code on how to USE them. That material is on my Web site, has been for years.
There's a set of documents in particular by John Monahan, who actually worked on these decades ago. He bought a few and worked on them again, some years ago. He described in detail, byte by byte, CPU cycle by cycle, the issues of using these controllers with 8080 and Z80 processors. He provides source code for format, read and write - it's free for download.
The core problem of use, relevant to MITS 8080 owners, is this. How can a 2Mhz CPU, keep up with all the data in real time from the floppy diskette, through the read head? Since double-density formats have twice the data, that increases the difficulty. Most say it's simply not possible to manage double-density with a 2MHZ 8080.
Even with a floppy disk controller chip (some controllers did not use those chips, the VF II uses a WD1795), you still have to move bytes into memory as fast as they come in. John describes ways to do some of this. John went on to set up his own Web domain, S100computers.com, and may have more information there.
There's additional code and commentary on my Web page, from half a dozen people; plus a smattering of code from SD System's "SDOS", a copy of CP/M as was common in the era. (But SDOS relied on the SDS ROM, which was specific to the SDS hardware. It's a dead end.) Those interested in the technical stuff may find this material useful.
"Mating the controller with the OS" is generally about writing what amounts to a BIOS (read and write a sector) and in some cases modifying what amounts to a BDOS (operating system calls to "BIOS"), for various versions of operating systems. YOu also need "format" and "boot". (Possibly a "sysgen".) It's tough work at the binary level, and any pre-CP/M OS (or disk-based BASIC) would need its own set of changes to accomplish a change of floppy hardware.
The great achievement of Kildall in CP/M 2.0 forward, was to complete the isolation of hardware support into the BIOS and free the CP/M OS of those dependencies. But that was also aided by the emergence of floppy disk controller chipsets, and slightly faster CPU's. Those established enough consistency among the hardware, to permit that isolation. In short, faster CPU's and the WD chipset, didn't need tricky code to make the controllers work, and they all worked the same anyway.
Meanwhile, the old hardware was generally not "retrofitted" with new controllers and boards - it was simply superseded completely, or used as "original" while it continued to do its job. [Don't get mad at me for stating history.] So there's not much of a trail of "retrofitted" controllers. All I could reasonably do, to provide support for use of these controllers, is to provide those interested at all with other people's work, to use them again. Again, that work has been available for years on my Web site.
- regarding herb's post below, i remember the days of writing disk drivers for my 8800B. it still had a 2MHz 8080 and it had the same old MITS disk controller. timing out the read loop, i think it took 31.5 microseconds to run the loop, and a new byte came from the controller every 32 microseconds. you snooze, you lose.
i also remember some crazy read code that came from extended basic, or DOS, or CP/M, or somewhere, that read two bytes at a time from the controller. it did not check the "ready" flag for every byte, it just checked the flag, read a byte, added a couple of NOP's for timing, then it just read another byte. after the second byte, it looped back to the beginning and checked the flag again. dangerous code. a stray microsecond here or there, and you were screwed.
in any case, unless your controller has at least a one sector read buffer (whatever that sector size might be), single density is probably as good as you'll get on a 2MHz system with the original MITS disk controller.
--- In email@example.com, "thinkpast" <hjohnson@...> wrote:
> The core problem of use, relevant to MITS 8080 owners, is this. How can a 2Mhz CPU, keep up with all the data in real time from the floppy diskette, through the read head? Since double-density formats have twice the data, that increases the difficulty. Most say it's simply not possible to manage double-density with a 2MHZ 8080.
> Herb Johnson