mdf@osu-eddie.UUCP (Mark D. Freeman) (05/09/87)
I only recieved one reply containing useful information. Here it is: From Ralf.Brown@b.gp.cs.cmu.edu Tue May 5 18:30:54 1987 IRQ0 timer tick IRQ1 keyboard IRQ2 IRQ8 through IRQ15 go through here IRQ3 COM1 IRQ4 COM2 IRQ5 second printer port IRQ6 floppy disk IRQ7 printer port on MDA IRQ8 real-time clock--alarm and 1/1024 sec interrupt IRQ9 LAN adapter, redirected to INT0A (== IRQ2) by BIOS IRQ10 spare IRQ11 spare IRQ12 spare IRQ13 Coprocessor interrupt IRQ14 hard disk IRQ15 spare additionally, IRQ7 gets all the interrupt requests from IRQ8 thru IRQ15. You can check which interrupts are pending by querying the interrupt controllers. The first controller (for IRQ0 thru 7) is at I/O ports 20h and 21h, the second at A0h and A1h. MOV AL,0Bh OUT 20h,AL JMP $+2 IN AL,20h will get the pending interrupt mask from the first controller. Bit 0 of AL is 1 if IRQ0 pending, bit 1 for IRQ1, etc. Change the 20h to A0h for IRQ8 thru 15. MOV AL,enable_mask OUT 21h,AL will disable IRQ0 if bit 0 of AL is 1, IRQ1 if bit 1 is 1, etc. Use A1h for IRQ8 thru 15. If you are handling the hardware interrupt yourself, you must tell the appropriate controller when you are done and another interrupt of the same or lower priority is to be allowed. The following code fragment tells the controller that the current interrupt is done. (Apparently, there is a way to tell the controller that a specific interrupt has been handled, such as when a high-priority interrupt handler wants to stop lower-priority interrupts that occur while it executes, but I have never seen code for this) MOV AL,20h OUT 20h,AL (or OUT A0h,AL for the second controller) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ARPA: RALF@B.GP.CS.CMU.EDU USnail: Ralf Brown AT&T: (412) 268-3053 (school) Computer Science Department Carnegie-Mellon University DISCLAIMER? Who ever said I claimed anything? Pittsburgh, PA 15213 "Teaching COBOL ought to be regarded as a criminal act" --- Edsger Dijkstra -- < < < < < < < < < < < < < < < < < < < <> > > > > > > > > > > > > > > > > > > > Mark D. Freeman mdf@osu-eddie.uucp StrongPoint Systems, Inc. mdf@Ohio-State.arpa 2440 Medary Avenue ...!cbosgd!osu-eddie!mdf Columbus, OH 43202 Guest account at The Ohio State University (614) 262-3703 < < < < < < < < < < < < < < < < < < < <> > > > > > > > > > > > > > > > > > > >
kalra@cit-vax.Caltech.Edu (Devendra Kalra) (05/09/87)
I have a question about the AT disk setup. Where and when does the system found how many disks are connected in the system. More particularly, I friend of mine booted up an AT with DOS 2.0 and the system refused to acknowledge the harddisk at c:. The system has three disks. I went into debug and looked at location 0000:0410 which is the equipment bytes that is where the system keeps the record of what equipment is connected to the system where it indicated that the system thought there WERE three disks. Thanks. Devendra