Billy Tierney wrote in a message to TOM TORFS:
TT> I'm having a problem here with a program that works fine on 286 and
TT> above, but never fails to crash on an XT with a 8088 CPU (it seems to
TT> get in some sort of infinite loop, and if I try to press ctrl-alt-del
TT> it hangs completely).
BT> Some versions of the 8088 chip have a bug in the way the stack is
BT> managed... If you modify the stack registers (SS or SP), first
BT> clear the interrupt flag...as sometimes a hardware interrupt will
BT> get generated.
I did that already.
BT> Avoid use of the string instructions
BT> (err...STOSB/STOSW/CMPSB/CMPSW/LODSB/LODSW/etc), as in many cases
BT> they weren't accepted on some systems (My old TEC (Toshiba) had
BT> that problem... they would work, but the next instruction would be
BT> corrupted).
Well, I use string instructions all over the place and I'm not going to omit
them just for that. They are valid instructions therefore I am allowed to use
them :-) They weren't the cause either...
BT> Are you playing with the interrupt vector table, out of curiosity?
Yes, and with many other things also :-)
The cause was in my so-called "running-line" system. On the 8088, the int 1
trapping seems to be activated just one instruction later and it seemed to
have some trouble stepping over things like FNINIT if no coprocessor is
available, int 3 calls, etc. I eliminated all these and now it works fine.
Thanks for the suggestion though.
greetz,
Tom
tomtorfs@mail.dma.be
--- timEd/2 1.10+
---------------
* Origin: 80X86 BBS 32-15-24.62.32 V.34/V.FC (24h/24h) (2:292/516)
|