Path: utzoo!dptcdc!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!oakhill!val!aubrey From: aubrey@val.UUCP (Aubrey McIntosh) Newsgroups: comp.os.minix Subject: Protected Mode Minix Message-ID: <325@val.UUCP> Date: 19 Apr 89 00:50:55 GMT References: <13389@louie.udel.EDU> Reply-To: aubrey@val.UUCP (Aubrey McIntosh) Organization: Video Associates Labs - Austin, TX Lines: 59 In article <13389@louie.udel.EDU> hhw5665@acf3.nyu.edu (Hsin-Hui Wu) writes: >Hi, > > I planned to put the Minix 1.3 into Protected mode, but I got >some problems. I wonder whether 286 real mode interrupt routines can be >used in 286 protected mode. The CPU reserves IDT gate 8 and 9 for >internal exceptions. But where are the timer interrupt gate and keyboard >interrupt gate? > > I think maybe I misunderstood the architecture of protected mode >(I hope so). Is there any one who can tell me the differences of IDT >table between real mode and protected mode? I already knew the structures >of these two modes, but I am naive about the usage. Any help will be >much appreciated. Thanks in advance. > > Or any reference books will be much appreciated. > > > Frank Wu > >hhw5665@acf3.nyu.edu One problem is that interrupts < 20H are reserved by Intel. However, the IBM-AT uses them for its own (conflicting) purposes anyway. One clever result of this is that a check bounds instructions toggles the int 5 routine, which means that obscure run time errors with some compilers causes the printer to print the screen. See also p.5-79 of the AT Technical manual, "verify '286 bound instruction." It turns out that the 8259, the interrupt controller, puts out the interrupt number (or the vector address, I forget which) on the bus when it is wired up for '88 mode. The bottom 3 bits are the values from the priority, and the other bits are programmed into the part. The IBM bios places the well known values corresponding to vectors 8..15 at boot time; however, these can be re-programmed to some address which is not reserved by Intel. Anyway, my interest in Minix is because I want: 1) A protected mode operating system, 2) Source to it, 3) A Modula-2 compiler for it. I figure Minix is as good a bet of getting there as any. So now I raise the question? Where do we put the 16 interrupt vectors in Protected Minix? I recommend that all 16 of them are in one consecutive block, and I like powers of 2, so the address corresponding to int 64..int 79 seem like a good candidate. Discussion? -- Whatcha' call a boomerang that doesn't come back? --Lost-- -------------------------------------------------------------- 1-(512)-346-5781 (v) Using Modula-2. Austin, TX 78759 ...!cs.utexas.edu![dell|oakhill|kvue]!val!aubrey