📄 npostdim.asm
字号:
;==============================================================================;
; ;
; EISA Device Initializer Hooks ;
; ;
;==============================================================================;
ifdef EISA
;---------------------------------------;
; HANDLE_CFG_MEM ROUTINE ;
; CALLED FROM DI-EISA.ASM ;
; FOR SLOT INITIALISATION ;
; (FROM MEMORY_INIT) ;
; Input : (al) memory conf byte ;
; : (ds:si) points to data area ;
; : (bx) pointer to memory block ;
; Preserve all registers ;
;---------------------------------------;
dih_eisa_handle_cfg_mem proc near
ret
dih_eisa_handle_cfg_mem endp
;---------------------------------------;
; PROGRAM_CACHABILITY_SRAM ROUTINE ;
; CALLED FROM POST DIAG ;
; RELATED TO CACHABILITY SRAM ;
;---------------------------------------;
program_cachability_sram proc near
ret
program_cachability_sram endp
;---------------------------------------;
; PROGRAM_CACHABILITY_SRAM_FINAL ROUTINE;
; CALLED FROM POST DIAG ?????? ;
; RELATED TO CACHABILITY SRAM ;
;---------------------------------------;
program_cachability_sram_final proc near
ret
program_cachability_sram_final endp
;---------------------------------------;
endif ;EISA
;==============================================================================;
; ;
; Plug and Play ISA Device Initializer Hooks ;
; ;
;==============================================================================;
ifdef PNP
;---------------------------------------;
; dih_pnp_func_0 (Reset,Detect,Disable) ;
;---------------------------------------;--------------------------------------;
; This function is called by the Plug & Play Device Initializer (DI-PNP.ASM) ;
; during function 0 (Reset, Detect, and Disable). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Set if error, cleared otherwise ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pnp_func_0 proc near
clc
ret
dih_pnp_func_0 endp
;---------------------------------------;
; dih_pnp_func_1 (Static Device Init) ;
;---------------------------------------;--------------------------------------;
; This function is called by the Plug & Play Device Initializer (DI-PNP.ASM) ;
; during function 1 (Static Device Init). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Set if error, cleared otherwise ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pnp_func_1 proc near
clc
ret
dih_pnp_func_1 endp
;---------------------------------------;
; dih_pnp_func_2 (Output Device Init) ;
;---------------------------------------;--------------------------------------;
; This function is called by the Plug & Play Device Initializer (DI-PNP.ASM) ;
; during function 2 (Output Device Init). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Cleared if boot output device was found, set if not found. ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pnp_func_2 proc near
stc ;Indicate no device found
ret
dih_pnp_func_2 endp
;---------------------------------------;
; dih_pnp_func_3 (Input Device Init) ;
;---------------------------------------;--------------------------------------;
; This function is called by the Plug & Play Device Initializer (DI-PNP.ASM) ;
; during function 3 (Input Device Init). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Cleared if a boot input device was found, set if not found. ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pnp_func_3 proc near
stc ;Indicate no device found
ret
dih_pnp_func_3 endp
;---------------------------------------;
; dih_pnp_func_4 (IPL Device Init) ;
;---------------------------------------;--------------------------------------;
; This function is called by the Plug & Play Device Initializer (DI-PNP.ASM) ;
; during function 4 (IPL Device Init). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Cleared if boot output device was found, set if not found. ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pnp_func_4 proc near
stc ;Indicate no device found
ret
dih_pnp_func_4 endp
;---------------------------------------;
; dih_pnp_func_5 (General Device Init) ; Moved to OEMPDIM.ASM
;---------------------------------------;
; dih_check_pnp_device_func_5_table ; Moved to OEMPDIM.ASM
;---------------------------------------;
endif ;PNP
;==============================================================================;
; ;
; PCI Device Initializer Hooks ;
; ;
;==============================================================================;
ifdef PCI
;---------------------------------------;
; dih_pci_func_0 (Reset,Detect,Disable) ;
;---------------------------------------;--------------------------------------;
; This function is called by the PCI Device Initializer (DI-PCI.ASM) ;
; during function 0 (Reset, Detect, and Disable). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Set if this function disables all of the devices (in this case ;
; the PCI core will not attempt to disable PCI devices) ;
; Clear if the core should go ahead and disable all PCI devices ;
; (except those devices that are protected by dih_pci_prot_dev;
; which is defined below) ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pci_func_0 proc near
clc
ret
dih_pci_func_0 endp
;---------------------------------------;
; dih_pci_func_1 (Static Device Init) ;
;---------------------------------------;--------------------------------------;
; This function is called by the PCI Device Initializer (DI-PCI.ASM) ;
; during function 1 (Static Device Init). ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: CF = Set if this function handles all static devices (in this case ;
; the core will not call dih_pci_check_ide below) ;
; Clear if this function does nothing (in this case the core will ;
; initialize any static devices and will call the ;
; dih_pci_check_ide function below) ;
; ;
; Preserves: DS, ES, BP (all other registers are destroyed) ;
;------------------------------------------------------------------------------;
dih_pci_func_1 proc near
clc
ret
dih_pci_func_1 endp
;---------------------------------------;
; dih_pci_check_ide ;
;---------------------------------------;--------------------------------------;
; This function is called by the Device Initialization Manager (DIM.ASM) ;
; at the start of function 1 (Static Device Init). This function is used to ;
; implement the setup questions for off board PCI IDE controller. ;
; ;
; This function uses three setup questions: ;
; ;
; Off Board PCI IDE: Auto/Slot1/Slot2/Slot3/Slot4/Slot5/Slot6 ;
; Off Board PCI IDE Primary IRQ: Disabled/IntA/IntB/IntC/IntD/Hardwired ;
; Off Board PCI IDE Secondary IRQ: Disabled/IntA/IntB/IntC/IntD/Hardwired ;
; ;
; The following things should be done here: ;
; 1a. Read the setup question Q_PCI_OFFBOARD_IDE. ;
; If it is set to Auto, then exit this function. ;
; 1b. If it is set to Slot 1/2/3/4/5/6, then translate the slot # into a ;
; PCI bus/device/function number (function part will always be 0). ;
; 2. Read the device's vendor/device ID and save it in the variable ;
; dih_manual_ide_id. This will make it a protected device and prevent the ;
; device from getting programmed by the normal PCI configuration routines. ;
; 3a. Read the setup question Q_PCI_OFFBOARD_IDE_PRI_IRQ. ;
; 3b. If it is set to Disabled, then go to step 4. ;
; 3c. If it is set to IntA/B/C/D, then route and allocate IRQ 14 to the PCI ;
; bus/device from step 1. ;
; 3d. If it is set to Hardwired, then allocate IRQ 14, but don't route it. ;
; 3c. Allocate ports 1F0-1F7 and 3F6 to the device. ;
; 4a. Read the setup question Q_PCI_OFFBOARD_IDE_SEC_IRQ. ;
; 4b. If it is set to Disabled, then goto step 5. ;
; 4c. If it is set to IntA/B/C/D, then route and allocate IRQ 15 to the PCI ;
; bus/device from step 1. ;
; 4d. If it is set to Hardwired, then allocate IRQ 15, but don't route it. ;
; 4c. Allocate ports 170-177 and 376 to the device. ;
; 5. Enable the device by writing to its command register. ;
; 6. Return ;
; ;
; Input: SI = Offset of the NVRam workspace (in _dimdata seg) ;
; DS = ES = _dimdata Segment ;
; ;
; Output: Nothing ;
; ;
; Destroys: Nothing ;
;------------------------------------------------------------------------------;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -