#: 11566 S10/OS9/6809 (CoCo)
31-Jul-91 23:58:46
Sb: #11565-#Timer Thoughts
Fm: PaulSeniura 76476,464
To: PaulSeniura 76476,464 (X)
..
(Okay, here's a place we need to set a standard: which of the "user SVCs"
ranging from $70 to $7F as stated on page 8-108 of Tandy L2 Tech Ref can we use
that someone hasn't used yet, considering all the "official" patches we see
here, and considering sample OS9Pn materials or actual extensions people are
using out there? We need to make sure we don't blap our SVC definitions on top
of those! Then we can discuss good parameter-passing ideas later after we test
and debug a few things. For fastness, we'd need 3 SVC numbers. I already
explained two of 'em; the third would be to kill a "live" countdown being
performed in the case of the user pgm deciding it doesn't want/need that delay
for some reason.)
Back on the road here. Somehow the user pgm will pass a parm to the Timer SVC
to start actual timing, and the user pgm will also issue F$SSWI to point to its
timer-pop routine. Not F$Icpt mind you: F$SSWI.
(Okay here's another place we need help with: we can use SWI [type #1] or SWI3
[type #3] as the Tandy books says on 8-37, right? Just stay away from SWI2?
What should be "in" the "user software interrupt routine" pointed to by
register X when the F$SSWI is issued? Do we use RTI or RTS when ending this
routine?)
The user pgm now isn't the main concern. The Timer SVC *is*. Once the SVC has
been called to set up a delay, it lights up the various IRQ flags and F$IRQ
service pointer packet to cause a branch to its code when OS9 determines that
timer was the dude who belched. The SVC code itself will not be able to reread
the IRQ tell-tale flags since the CoCo3's GIME resets 'em once they are read
the first time, right? We must assume OS9 can do this on its own with the
flip/flag bytes in the F$IRQ packet, right? And is the 12-bit timer register a
"readable" register? What I'm getting at is that we don't have any way to
ensure the timer interrupted, do we, as a double-check?
..
There is 1 Reply.
|