Home | History | Annotate | Download | only in IA32
      1 ;; @file
      2 ;  Interrupt Redirection Template
      3 ;
      4 ; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
      5 ;
      6 ; This program and the accompanying materials
      7 ; are licensed and made available under the terms and conditions
      8 ; of the BSD License which accompanies this distribution.  The
      9 ; full text of the license may be found at
     10 ; http://opensource.org/licenses/bsd-license.php
     11 ;
     12 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 ;
     15 ;;
     16 
     17 .686P
     18 .MODEL FLAT, C
     19 .CODE
     20 
     21 ;----------------------------------------------------------------------------
     22 ; Procedure:    InterruptRedirectionTemplate: Redirects interrupts 0x68-0x6F 
     23 ;
     24 ; Input:        None
     25 ;
     26 ; Output:       None
     27 ;
     28 ; Prototype:    VOID
     29 ;               InterruptRedirectionTemplate (  
     30 ;                                VOID
     31 ;                                );
     32 ;
     33 ; Saves:        None
     34 ;
     35 ; Modified:     None
     36 ;
     37 ; Description:  Contains the code that is copied into low memory (below 640K).
     38 ;               This code reflects interrupts 0x68-0x6f to interrupts 0x08-0x0f.
     39 ;               This template must be copied into low memory, and the IDT entries
     40 ;               0x68-0x6F must be point to the low memory copy of this code.  Each
     41 ;               entry is 4 bytes long, so IDT entries 0x68-0x6F can be easily 
     42 ;               computed.
     43 ;
     44 ;----------------------------------------------------------------------------
     45 
     46 InterruptRedirectionTemplate PROC  C
     47   int     08h
     48   DB      0cfh          ; IRET
     49   nop
     50   int     09h
     51   DB      0cfh          ; IRET
     52   nop
     53   int     0ah
     54   DB      0cfh          ; IRET
     55   nop
     56   int     0bh
     57   DB      0cfh          ; IRET
     58   nop
     59   int     0ch
     60   DB      0cfh          ; IRET
     61   nop
     62   int     0dh
     63   DB      0cfh          ; IRET
     64   nop
     65   int     0eh
     66   DB      0cfh          ; IRET
     67   nop
     68   int     0fh
     69   DB      0cfh          ; IRET
     70   nop
     71 InterruptRedirectionTemplate ENDP
     72 
     73 END