alanf%smile@Sun.COM (Alan Fargusson) (11/29/88)
There is a problem with calling the ROM BIOS when you are using interrupts on the Z-248. The problem is that the BIOS switches to an internal stack which is very small. If an interrupt occurs during the call to the BIOS it is likely that this stack will overflow. There are other potential problems as well. I found this problem while debuging an interrupt driven serial port driver for MS-DOS. Older versions of the Zenith BIOS seem to work better. - - - - - - - - - - - - - - - - - - - - - Alan Fargusson Sun Microsystems alanf@sun.com ..!sun!alanf
ast@cs.vu.nl (Andy Tanenbaum) (11/30/88)
In article <79151@sun.uucp> alanf%smile@Sun.COM (Alan Fargusson) writes: >There is a problem with calling the ROM BIOS when you are using interrupts on >the Z-248. The problem is that the BIOS switches to an internal stack which >is very small. If an interrupt occurs during the call to the BIOS it is >likely that this stack will overflow. There are other potential problems as >well. Progress at last. Do you have any suggestions about how to fix it? I had hopes that the BIOS routine would work on all machines. Perhaps this is a pipe dream. However, it seems strange that bios_wini.c does work on my machine, which is also a Z-248. What is going on here? What other problems are there? Andy Tanenbaum
SJONES%HAMPVMS.BITNET@cunyvm.cuny.edu (Steve Jones) (12/02/88)
Date: Wed, 30 Nov 88 10:59:58 GMT
From: Andy Tanenbaum <ast@CS.VU.NL>
+ In article <79151@sun.uucp> alanf%smile@Sun.COM (Alan Fargusson) writes:
+ >There is a problem with calling the ROM BIOS when you are using interrupts on
+ >the Z-248. [...]
+
+ Progress at last. Do you have any suggestions about how to fix it? I had
+ hopes that the BIOS routine would work on all machines. Perhaps this is a
+ pipe dream. However, it seems strange that bios_wini.c does work on my
+ machine, which is also a Z-248. What is going on here?
Well, I don't know how much this might have to do with it, but someone
recently ordered a Z-248 through the college and got one with ROM's that
were over a year old, and about 4 revisions behind. The possibility of
newer ROM's providing more stack space, or other goodies, presents itself.
Luck,
--Steve.
BITNET: sjones@hampvms INET: sjones%hampvms.bitnet@mitvma.mit.edu
CSNET: sjones%hamp@umass-cs UUCP: ...uunet!hampvms.bitnet!sjones
"When you have learned to snatch the error code from the trap frame, it will
be time for you to leave." -- The Tao of Programming
allbery@ncoast.UUCP (Brandon S. Allbery) (12/08/88)
As quoted from <1730@ast.cs.vu.nl> by ast@cs.vu.nl (Andy Tanenbaum): +--------------- | In article <79151@sun.uucp> alanf%smile@Sun.COM (Alan Fargusson) writes: | >There is a problem with calling the ROM BIOS when you are using interrupts on | >the Z-248. The problem is that the BIOS switches to an internal stack which | >is very small. If an interrupt occurs during the call to the BIOS it is | >likely that this stack will overflow. There are other potential problems as | >well. | | Progress at last. Do you have any suggestions about how to fix it? I had | hopes that the BIOS routine would work on all machines. Perhaps this is a | pipe dream. However, it seems strange that bios_wini.c does work on my | machine, which is also a Z-248. What is going on here? +--------------- (1) Perhaps the PS/2 has an even smaller internal stack? (2) I've heard that Model 50's have unusual *serial port* incompatibilities. If one of these involves sending an interrupt where it's not expected (e.g. to the floppy driver?) things could conceivably blow up. (It looks suspiciously like it uses an interrupt normally used by some networks, since initializing the serial port on a PS/2 with Novell Advanced Netware installed wedges the system pretty thoroughly. Might Minix be using one of those vectors for something?) (3) Even if (2) isn't the cause, it speaks of possible *other* interrupt incompatibilities. Maybe the BIOS doesn't like to be interrupted, for instance. (One assumes that the BIOS clock interrupt would have some way of dealing with this.) Or the BIOS hooks an interrupt vector for some reason *after* Minix hooks it, causing some normal interrupt to send the computer off executing something that won't work because DOS isn't loaded. ++Brandon -- Brandon S. Allbery, comp.sources.misc moderator and one admin of ncoast PA UN*X uunet!hal.cwru.edu!ncoast!allbery <PREFERRED!> ncoast!allbery@hal.cwru.edu allberyb@skybridge.sdi.cwru.edu <ALSO> allbery@uunet.uu.net comp.sources.misc is moving off ncoast -- please do NOT send submissions direct Send comp.sources.misc submissions to comp-sources-misc@<backbone>.