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