Steve Nickolas wrote:
Michael J. Mahon wrote:So that suggests that there is some little dance to be done to get the hardware character gererator SRAM loaded. Maybe it's as simple as hitting a softswitch... Sounds like some reverse engineering of SOS.Driver is needed.Definitely. Right now Star relies on loading SOS.KERNEL and SOS.DRIVER so that the tty font is set up and the data is loaded off disk, but it basically slows the boot process down for no real reason. Ideally I'd figure out what they're doing, and create a modified DOS 3.3 bootloader that, on a ///, will install the font and the two firmware images, etc., which the SOS.INTERP for Star does. Obviously the Sara emulator knows how this stuff is done, but as I recall it has no available source. MESS doesn't know it - it only loads the font successfully when the Emulation Disk is booted. Neither emulator seems to run even /// EZ Pieces correctly either (something I'd *really* consider the first and foremost app to get tested and running next to the ][ emulation mode xD, being that it is, in effect, AppleWorks for the ///). I think knowing more about the /// would not only be helpful to me, but to the authors of the two existing emulators. But it is a rather obscure machine despite its infamy, so I'm not surprised there isn't much info out there.
If it hadn't become infamous, there would probably have been a lot more development for it, and more details of its design would have "escaped" the cone of silence. ;-) $C00.$FFF is, as noted, a "staging area" for character set data to be transferred to the actual character generator SRAM. Data is moved from the $C00 area by an SOS IRQ service routine associated with System Internal Resource $0A, which also handles disk stepping and smooth scrolling. I'm guessing that these interrupts are VBL-derived, since character set replacement and smooth scrolling both affect the display. There is apparently a softswitch at $C0DA which disables character set downloading, and, although I couldn't find it, I'm betting that $C0DB enables downloading. ;-) Then, once the SIR is allocated and the character set image is staged at $C00, all that's needed to cause the transfer (which will take a good fraction of a second) is to enable interrupts. The softswitch architecture of the /// is quite complex and almost undocumented. That's a shame, since without complete documentation, this rather clever (maybe too clever) machine design is headed for the bit bucket of history... -michael NadaNet and AppleCrate II: parallel computing for Apple II computers! Home page: http://home.comcast.net/~mjmahon "The wastebasket is our most important design tool--and it's seriously underused."