Path: utzoo!attcan!uunet!husc6!bloom-beacon!mit-eddie!bu-cs!dartvax!eleazar.dartmouth.edu!stevel From: stevel@eleazar.dartmouth.edu (Steve Ligett) Newsgroups: comp.os.minix Subject: Re: PS/2 level-triggered interrupts Message-ID: <11932@dartvax.Dartmouth.EDU> Date: 24 Jan 89 16:42:54 GMT References: <1907@ast.cs.vu.nl> Sender: news@dartvax.Dartmouth.EDU Reply-To: stevel@eleazar.dartmouth.edu (Steve Ligett) Organization: Dartmouth College, Hanover, NH Lines: 23 I think the best way of fixing the interrupt problem for floppy disks is to call fdc_results within disk_int and return the status bytes in the message. Or, read out the first status byte *only*, in disk_int. It is reading this status byte that turns off the interrupt request from the fdc. My PC isn't yet up to running Minix, but here's what I'd try: 1. On receiving an interrupt, read the main status reg (3f4). If both bits 4 and 5 (NON_DMA & FDC_BUSY) are zero, a Seek or Recalibrate caused the interrupt, so issue the Sense Interrupt Status command. 2. Either call fdc-results or read out status reg 0 to turn off the interrupt. Return the result(s) in the message to the floppy task. 3. Modify the code after each receive (HARDWARE, &mess); in the floppy task to handle the results properly. Steve Ligett steve.ligett@dartmouth.edu or (decvax harvard linus true)!dartvax!steve.ligett