[comp.sys.atari.st.tech] TOS 1.4 question

hyc@math.lsa.umich.edu (Howard Chu) (08/30/90)

I've discovered part of the reason for SwitchBack not working on my system
now... SwitchBack is activated by the Centronics busy interrupt, which
worked fine on TOS 1.2, but it seems that TOS 1.4 likes to keep masking this
interrupt off. Every time a program is Pexec'd the interrupt is masked off
again. I've done a little snooping but haven't found the culprit just yet.
Anyone out there recognize the feature?

One other problem I've had is due to Turbo16. The SwitchBack interrupt
handler uses two delay loops to validate its invocation. (Load register
with counter value, dbra to itself. Wait for port bit to raise, wait
longer for it to reset again.) The loop doesn't wait long enough for the
bit to reset, so the handler always returns without doing anything. I
doubled the counter value, and things are closer to working now. But,
more often than not, after typing a command key I get bombs and a total
lockup. 
--
  -- Howard Chu @ University of Michigan
  one million data bits stored on a chip, one million bits per chip
	if one of those data bits happens to flip,
		one million data bits stored on the chip...

kbad@atari.UUCP (Ken Badertscher) (09/03/90)

hyc@math.lsa.umich.edu (Howard Chu) writes:

|One other problem I've had is due to Turbo16. The SwitchBack interrupt
|handler uses two delay loops to validate its invocation. ...

Ahh, if only I had a dime for every piece of software that FAILED on
the TT for this very reason.  Sigh.  Busy-wait delays are Evil.  Use
those clocks and timers, folks!  Especially games which take over the
machine anyways.  It's disheartening to have some of my faves rendered
unplayable on a speedier processor because of instruction delay loops.
-- 
   |||   Ken Badertscher  (ames!atari!kbad)
   |||   Atari R&D System Software Engine
  / | \  #include <disclaimer>