[comp.os.minix] Question about Minix port

ast@cs.vu.nl (Andy Tanenbaum) (01/28/88)

In article <1059@louie.udel.EDU> HELMER%SDNET.BITNET@cunyvm.cuny.edu (Guy Helmer) writes:
>Anyone care to comment on how Minix runs if drivers (floppy, tty, hard
>disk) are modified to use synchronous ROM calls, such as exist on the
>IBM PC?  How much is performance degraded...

It will certainly cost something, but I don't think it will be even a factor
of two.  Still, the only way to find out is to do it.  It should be very hard.
Just replace floppy.c with a call to an assembly code routine to invoke the
BIOS.  Be careful about low core.  Some BIOS ROMs do funny things with
low core, and MINIX lives at 1536.  In theory, 1024 to 1535 is yours.
If you write the code, measure it and tell us.

Andy Tanenbaum

vandys@hpindda.HP.COM (Andy Valencia) (01/29/88)

/ hpindda:comp.os.minix / HELMER%SDNET.BITNET@cunyvm.cuny.edu (Guy Helmer) / 11:31 am  Jan 27, 1988 /
>Anyone care to comment on how Minix runs if drivers (floppy, tty, hard
>disk) are modified to use synchronous ROM calls, such as exist on the
>IBM PC?
    Minix's structure doesn't allow much concurrency anyway, so it really
isn't much of a performance hit at all.  If memory serves, someone actually
replaced xt_wini.c with one which only used BIOS calls, and it worked
pretty well.  Wonder if they're still on the net....

			Andy Valencia
			vandys%hpindda.UUCP@hplabs.hp.com

agb@ecsvax.UUCP (Alan Bishop) (01/30/88)

In article <1838@botter.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>It will certainly cost something, but I don't think it will be even a factor
>of two.  Still, the only way to find out is to do it.  It should be very hard.
>Just replace floppy.c with a call to an assembly code routine to invoke the
>BIOS.  Be careful about low core.  Some BIOS ROMs do funny things with
>low core, and MINIX lives at 1536.  In theory, 1024 to 1535 is yours.
>If you write the code, measure it and tell us.

There is code that uses the BIOS for the floppy and wini drivers in the
patches to get MINIX running on the PS/2.  There is also a BIOS wini driver
in the Microsoft C patches.  

However, I can't comment on how much speed loss there is, since the only
machine I've used these on extensively is a Model 60 PS/2, and I don't have
anything to compare it with.

With any BIOSes later than average-age ATs, the BIOS has hooks that allow
you to trap it every time it's getting ready to go into a wait-state.  I
haven't gotten around to adding those on the PS/2.

alan

HELMER%SDNET.BITNET@cunyvm.cuny.edu (Guy Helmer) (02/02/88)

Can anyone send me the floppy and hard disk drivers for the IBM PS/2
that use the ROM BIOS calls?  I would like some example code that I can
use to see all the problems involved before I try to port Minix to a
non-compatible.  Thanks.

Guy Helmer
South Dakota School of Mines and Technology
bitnet: HELMER@SDNET.BITNET

roskos@csed-1.UUCP (Eric Roskos) (02/02/88)

In article <1059@louie.udel.EDU>, HELMER%SDNET.BITNET@cunyvm.cuny.edu (Guy Helmer) writes:
> Anyone care to comment on how Minix runs if drivers (floppy, tty, hard
> disk) are modified to use synchronous ROM calls, such as exist on the
> IBM PC?

As I've mentioned a couple of times here, I'm currently running Minix using
the ROM calls for the hard disk.  There is no visible degradation, i.e.,
no visible pauses, etc.  For floppy disk I imagine the degradation would
be considerable, but usually it is the hard disk that is incompatible,
since there was a lot more impetus for hardware makers to make compatible
floppy drivers (because of copy-protected floppy disks, etc.).

The major drawback is that if you use the ROM, you don't get to learn the
details of writing real device drivers.
-- 
Eric Roskos, IDA (...dgis!csed-1!roskos or csed-1!roskos@HC.DSPO.GOV)
	"Only through time time is conquered."  -- Burnt Norton