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>