Changeset 152 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc/IntController.inc


Ignore:
Timestamp:
May 1, 2011, 10:42:58 AM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • XTIDE mod should now be supported (untested).
  • Interrupt Service Routine no longer requires variable from RAMVARS.
  • Some small improvements.
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/IntController.inc

    r145 r152  
    1 ; File name     :   Interrupts.inc
    2 ; Project name  :   IDE BIOS
    3 ; Created date  :   29.7.2007
    4 ; Last update   :   6.11.2009
    5 ; Author        :   Tomi Tilli
    6 ; Description   :   Equates for Interrupts.
    7 %ifndef INTERRUPTS_INC
    8 %define INTERRUPTS_INC
     1; Project name  :   XTIDE Universal BIOS
     2; Description   :   Equates for 8259 Interrupt Controllers.
     3%ifndef INT_CONTROLLER_INC
     4%define INT_CONTROLLER_INC
    95
    106; 8259 Master and Slave Interrupt Controller Ports
    11 RPORT_8259MA_IRR_ISR        EQU     20h     ; Master 8259 Read IRR / ISR
    12 WPORT_8259MA_COMMAND        EQU     20h     ; Master 8259 Write command
    13 WPORT_8259MA_INIT           EQU     21h     ; Master 8259 Write Init command
    14 PORT_8259MA_IMR             EQU     21h     ; Master 8259 IMR
    15 RPORT_8259SL_IRR_ISR        EQU     0A0h    ; Slave 8259 Read IRR / ISR
    16 WPORT_8259SL_COMMAND        EQU     0A0h    ; Slave 8259 Write command
    17 WPORT_8259SL_INIT           EQU     0A1h    ; Slave 8259 Write Init command
    18 PORT_8259SL_IMR             EQU     0A1h    ; Slave 8259 IMR
     7MASTER_8259_IRR_AND_ISR_in  EQU     20h     ; Interrupt Request Register / Interrupt In-Service Register
     8MASTER_8259_COMMAND_out     EQU     20h     ; Command output
     9MASTER_8259_IMR             EQU     21h     ; Interrupt Mask Register
     10MASTER_8259_INIT_out        EQU     21h     ; Initialization Command Parameters
     11SLAVE_8259_IRR_AND_ISR_in   EQU     0A0h    ; Interrupt Request Register / Interrupt In-Service Register
     12SLAVE_8259_COMMAND_out      EQU     0A0h    ; Command output
     13SLAVE_8259_IMR              EQU     0A1h    ; Interrupt Mask Register
     14SLAVE_8259_INIT_out         EQU     0A1h    ; Initialization Command Parameters
    1915
    20 ; Valid commands to port 20h (master, WPORT_8259MA_COMMAND)
    21 ; and A0h (slave, WPORT_8259SL_COMMAND)
    22 CMD_ROT_IN_AUTO_EOI_MODE_CLEAR  EQU     000h
    23 CMD_READ_IRR                    EQU     00Ah
    24 CMD_READ_ISR                    EQU     00Bh
    25 CMD_END_OF_INTERRUPT            EQU     020h
    26 CMD_NO_OPERATION                EQU     040h
    27 CMD_CLEAR_SPECIAL_MASK_MODE     EQU     048h
    28 CMD_SPEC_EOI_IRQ0               EQU     060h
    29 CMD_SPEC_EOI_IRQ1               EQU     061h
    30 CMD_SPEC_EOI_IRQ2               EQU     062h
    31 CMD_SPEC_EOI_IRQ3               EQU     063h
    32 CMD_SPEC_EOI_IRQ4               EQU     064h
    33 CMD_SPEC_EOI_IRQ5               EQU     065h
    34 CMD_SPEC_EOI_IRQ6               EQU     066h
    35 CMD_SPEC_EOI_IRQ7               EQU     067h
    36 CMD_SET_SPECIAL_MASK_MODE       EQU     068h
    37 CMD_ROT_IN_AUTO_EOI_MODE_SET    EQU     080h
    38 CMD_ROT_ON_NONSPEC_EOI          EQU     0A0h
    39 CMD_IRQ0_LOWST_PRIO             EQU     0C0h
    40 CMD_IRQ1_LOWST_PRIO             EQU     0C1h
    41 CMD_IRQ2_LOWST_PRIO             EQU     0C2h
    42 CMD_IRQ3_LOWST_PRIO             EQU     0C3h
    43 CMD_IRQ4_LOWST_PRIO             EQU     0C4h
    44 CMD_IRQ5_LOWST_PRIO             EQU     0C5h
    45 CMD_IRQ6_LOWST_PRIO             EQU     0C6h
    46 CMD_IRQ7_LOWST_PRIO             EQU     0C7h
    47 CMD_EOI_AND_IRQ0_LOWST_PRIO     EQU     0E0h
    48 CMD_EOI_AND_IRQ1_LOWST_PRIO     EQU     0E1h
    49 CMD_EOI_AND_IRQ2_LOWST_PRIO     EQU     0E2h
    50 CMD_EOI_AND_IRQ3_LOWST_PRIO     EQU     0E3h
    51 CMD_EOI_AND_IRQ4_LOWST_PRIO     EQU     0E4h
    52 CMD_EOI_AND_IRQ5_LOWST_PRIO     EQU     0E5h
    53 CMD_EOI_AND_IRQ6_LOWST_PRIO     EQU     0E6h
    54 CMD_EOI_AND_IRQ7_LOWST_PRIO     EQU     0E7h
     16; 8259 Interrupt Controller Commands
     17COMMAND_CLEAR_ROTATE_IN_AUTOMATIC_EOI_MODE  EQU     00h
     18COMMAND_READ_INTERRUPT_REQUEST_REGISTER     EQU     0Ah
     19COMMAND_READ_INTERRUPT_INSERVICE_REGISTER   EQU     0Bh
     20COMMAND_END_OF_INTERRUPT                    EQU     20h
     21COMMAND_NO_OPERATION                        EQU     40h
     22COMMAND_CLEAR_SPECIAL_MASK_MODE             EQU     48h
     23COMMAND_SPECIFIC_EOI_FOR_IR0                EQU     60h
     24COMMAND_SPECIFIC_EOI_FOR_IR1                EQU     61h
     25COMMAND_SPECIFIC_EOI_FOR_IR2                EQU     62h
     26COMMAND_SPECIFIC_EOI_FOR_IR3                EQU     63h
     27COMMAND_SPECIFIC_EOI_FOR_IR4                EQU     64h
     28COMMAND_SPECIFIC_EOI_FOR_IR5                EQU     65h
     29COMMAND_SPECIFIC_EOI_FOR_IR6                EQU     66h
     30COMMAND_SPECIFIC_EOI_FOR_IR7                EQU     67h
     31COMMAND_SET_SPECIAL_MASK_MODE               EQU     68h
     32COMMAND_SET_ROTATE_IN_AUTOMATIC_EOI_MODE    EQU     80h
     33COMMAND_ROTATE_ON_NONSPECIFIC_EOI           EQU     0A0h
     34COMMAND_IR0_LOWEST_PRIORITY                 EQU     0C0h
     35COMMAND_IR1_LOWEST_PRIORITY                 EQU     0C1h
     36COMMAND_IR2_LOWEST_PRIORITY                 EQU     0C2h
     37COMMAND_IR3_LOWEST_PRIORITY                 EQU     0C3h
     38COMMAND_IR4_LOWEST_PRIORITY                 EQU     0C4h
     39COMMAND_IR5_LOWEST_PRIORITY                 EQU     0C5h
     40COMMAND_IR6_LOWEST_PRIORITY                 EQU     0C6h
     41COMMAND_IR7_LOWEST_PRIORITY                 EQU     0C7h
     42COMMAND_EOI_AND_IR0_LOWEST_PRIORITY         EQU     0E0h
     43COMMAND_EOI_AND_IR1_LOWEST_PRIORITY         EQU     0E1h
     44COMMAND_EOI_AND_IR2_LOWEST_PRIORITY         EQU     0E2h
     45COMMAND_EOI_AND_IR3_LOWEST_PRIORITY         EQU     0E3h
     46COMMAND_EOI_AND_IR4_LOWEST_PRIORITY         EQU     0E4h
     47COMMAND_EOI_AND_IR5_LOWEST_PRIORITY         EQU     0E5h
     48COMMAND_EOI_AND_IR6_LOWEST_PRIORITY         EQU     0E6h
     49COMMAND_EOI_AND_IR7_LOWEST_PRIORITY         EQU     0E7h
    5550
    5651
    57 ; Interrupt Vector Table
    58 INTV_IRQ0                       EQU     08h     ; System timer
    59 INTV_IRQ1                       EQU     09h     ; Keyboard
    60 INTV_IRQ2                       EQU     0Ah
    61 INTV_IRQ3                       EQU     0Bh
    62 INTV_IRQ4                       EQU     0Ch
    63 INTV_IRQ5                       EQU     0Dh
    64 INTV_IRQ6                       EQU     0Eh
    65 INTV_IRQ7                       EQU     0Fh
    66 INTV_EQUIPMENT_CONF             EQU     11h     ; Equipment configuration
    67 INTV_MEMORY_SIZE                EQU     12h     ; Base memory size
    68 INTV_DISK_FUNC                  EQU     13h     ; Disk functions
    69 INTV_SYSTEM_SERVICES            EQU     15h     ; Different system functions
    70 INTV_KEYBOARD_FUNC              EQU     16h     ; Keyboard functions
    71 INTV_BOOT_FAILURE               EQU     18h     ; Process Boot Failure
    72 INTV_BOOTSTRAP                  EQU     19h     ; Boot Strap Loader
    73 INTV_TIME_OF_DAY                EQU     1Ah     ; Time of day functions
    74 INTV_KEYB_BREAK                 EQU     1Bh     ; Keyboard break
    75 INTV_USER_TIMER_TICK            EQU     1Ch     ; User timer tick
    76 INTV_DPT                        EQU     1Eh     ; Diskette Parameter Table
    77 INTV_FLOPPY_FUNC                EQU     40h     ; Floppy functions
    78 INTV_HD0DPT                     EQU     41h     ; Ptr to HD0 Disk Parameter Table
    79 INTV_HD1DPT                     EQU     46h     ; Ptr to HD1 Disk Parameter Table
    80 INTV_USERS_ALARM                EQU     4Ah     ; Users alarm
    81 INTV_IRQ8                       EQU     70h
    82 INTV_IRQ9                       EQU     71h
    83 INTV_IRQ10                      EQU     72h
    84 INTV_IRQ11                      EQU     73h
    85 INTV_IRQ12                      EQU     74h
    86 INTV_IRQ13                      EQU     75h
    87 INTV_IRQ14                      EQU     76h
    88 INTV_IRQ15                      EQU     77h
    89 
    90 
    91 %endif ; INTERRUPTS_INC
     52%endif ; INT_CONTROLLER_INC
Note: See TracChangeset for help on using the changeset viewer.