[Coco] drivewire serial port concept questions
aawolfe at gmail.com
Sun Nov 8 17:59:27 EST 2009
It looks like (and I could certainly be wrong) the normal Drivewire
server only responds to requests from the Coco, there is no way to
initiate something from the server side except in WireBug mode. I
think this means there is no interrupt handler or poller on the OS9
side. This makes sense, disk, clock and printing is always initiated
by the Coco.
Ideally, a serial driver would not require polling.. as it stands my
driver (if it worked) would require a byte out to get a byte in, or
even to tell if there was a byte in the incoming buffer. This will
work for simple tests and maybe a shell over the serial port (my first
goal), but it would not work very well for BBS/telecom type things.
Even if I improve the driver to return more than 1 byte at a time, its
still an awful lot of wasted outbound characters and probably would
completely kill performance of everything else. Sleeping between
polls would help that but make serial port throughput pretty awful.
Is it practical to implement some kind of interrupt when the server
has data in it's incoming buffer? Would this kill performance, or
screw up other DW operations? I can imagine it might, and at my
current skill level figuring this out is a scary thought :) But if
this is the correct approach I will keep banging my head against it
until I get something working. Just wondered if this was the right
direction to go in.
More information about the Coco