[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The next step after writing my own Apple ][ wedge for the ///is...



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."