[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (tenative name) Apple Game Server
That is the next step I think. What my loader is good for opens up the
door for that kind of concept. You can use my program as a boot
loader, and load a secondary, more functional OS Kernel with it. I
think that in the case of dos 3.3 disk images it is useful to have a
pattern matcher look for disks that resemble dos 3.3, and if found (or
configured to), replace the RTWS parts of the kernel with the serial
routine. Something like that anyway.
Since it takes much less than a second (I estimate I get 10k/sec or so,
so about 1/10sec for 1k) to transmit 1k, I think I can easily build a
full menu routine into my java program. Essentially, I would add a
drive "F" command (these commands are sequential letters, not symbilic
per se) would wait for a keypress and return it via serial. If the
keypress results in a significant change to the screen, the loader
commands can be used to resend the contents of the text screen buffer.
So, essentially, the menu itself is the java program. But the
interface is a dumb-terminal running on the apple. Given the current
level of code quality, the menu routine will be dead simple to write:
Send command to apple to read a key.
Wait for key press (1-byte response from apple).
Handle keypress, updating internal screen buffer.
Send updated screen buffer.
Repeat until something interesting happens (like they select a game)
The rest is a matter of elegant abstraction so that if I want to change
the display behavior (e.g. add mousetext, use hires, use 80-columns)
the underlying stuff won't need much modification at all, so there
should be a set of drawing commands that implement a specific
interface, such that the interface can change if necessary.
I'll be working on a plane today, so I think the first part will be a
test-harness to emulate the apple screen in java. This will help me
get the java logic working without having to endure lengthy test cycles
waiting for the apple to restart every time (e.g. the driver takes 20
seconds to load and I'm impatient ;-)