Path: utzoo!attcan!uunet!munnari!otc!metro!ditsyda!evans From: evans@ditsyda.oz (Bruce Evans) Newsgroups: comp.os.minix Subject: Re: Help! Minix 1.3 & PS/2 Model 80 Message-ID: <1480@ditsyda.oz> Date: 25 Jan 89 07:56:11 GMT References: <1023@uvm-gen.UUCP> <1906@ast.cs.vu.nl> <1259@ditsyda.oz> <1941@ast.cs.vu.nl> Organization: CSIRO DIT Sydney, Australia Lines: 26 In article <1941@ast.cs.vu.nl>, ast@cs.vu.nl (Andy Tanenbaum) writes: > Second, I think is is cleaner to have the EOI sent in a single place for > all device classes, rather than having every routine have to worry about it I don't object to a single EOI statement done in interrupt(). But what is done now defeats the point of this: it tests for the special cases ps && task == FLOPPY pc_at && task == WINCHESTER to decide the appropiate place to send the EOI to. Since only CLOCK, FLOPPY, PRINTER and WINCHESTER currently depend on the EOI done here, only two cases are being handled generally. All the PS cases for models >= 50 will be different again. Interrupt() must be kept short since it runs with interrupts disabled. So I don't want to have any port_out()s in it (a dozen or so instructions in C compared with 2 in assembler) or lots of cases to check. Attention to this detail was one of the things required to boost rs232 performance from 300 baud to 19200 baud on a 5MHz 8088. >on its own. Some day some naive person will write a driver for a new device >and not realize that he has to deal with this. I am perfectly happy to move It only took me 2 days to realize in my 1st PC hardware driver, for rs232 4 years ago :-). D