Changeset 150 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization
- Timestamp:
- Apr 29, 2011, 7:04:13 PM (14 years ago)
- google:author:
- aitotat
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Initialization
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm
r120 r150 1 ; Project name : IDEBIOS1 ; Project name : XTIDE Universal BIOS 2 2 ; Description : Functions for detecting drive for the BIOS. 3 3 … … 43 43 push cx 44 44 mov ax, g_szMaster 45 mov bh, MASK_ IDE_DRVHD_SET ; Select Master drive45 mov bh, MASK_DRVNHEAD_SET ; Select Master drive 46 46 call StartDetectionWithDriveSelectByteInBHandStringInAX ; Detect and create DPT + BOOTNFO 47 47 48 48 mov ax, g_szSlave 49 mov bh, MASK_ IDE_DRVHD_SET | FLG_IDE_DRVHD_DRV49 mov bh, MASK_DRVNHEAD_SET | FLG_DRVNHEAD_DRV 50 50 call StartDetectionWithDriveSelectByteInBHandStringInAX 51 51 pop cx … … 78 78 ; ES: Zero (BDA segment) 79 79 ; Returns: 80 ; ES:SI Ptr to ATA information (read with IDENTIFY DEVICE command)81 80 ; CF: Cleared if ATA-information read successfully 82 81 ; Set if any error 83 82 ; Corrupts registers: 84 ; AX, BL, CX, DX, DI83 ; AX, BL, CX, DX, SI, DI 85 84 ;-------------------------------------------------------------------- 86 85 .ReadAtaInfoFromHardDisk: 87 mov bl, [cs:bp+IDEVARS.bBusType]; Load BUS type 88 mov dx, [cs:bp+IDEVARS.wPort] ; Load IDE Base Port address 89 mov di, BOOTVARS.rgbAtaInfo ; ES:DI now points to ATA info location 90 call AH25h_GetDriveInfo 86 mov si, BOOTVARS.rgbAtaInfo ; ES:SI now points to ATA info location 87 push es 88 push si 89 push bx 90 call Device_IdentifyToBufferInESSIwithDriveSelectByteInBH 91 pop bx 92 pop si 93 pop es 91 94 jnc SHORT CreateBiosTablesForHardDisk 92 95 ; Fall to .ReadAtapiInfoFromDrive … … 103 106 ; BH: Drive Select byte for Drive and Head Register 104 107 ; CS:BP: Ptr to IDEVARS for the drive 105 ; ES: DI Ptr to ATA information for the drive108 ; ES:SI Ptr to ATA information for the drive 106 109 ; DS: RAMVARS segment 107 110 ; ES: BDA/Bootnfo segment … … 112 115 ;-------------------------------------------------------------------- 113 116 CreateBiosTablesForHardDisk: 114 mov si, di ; ES:SI now points to ATA information115 117 call CreateDPT_FromAtaInformation 116 118 jc SHORT .InvalidAtaInfo -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm
r130 r150 108 108 ; Nothing 109 109 ; Corrupts registers: 110 ; A X, BX, CX, DX, DI110 ; All 111 111 ;-------------------------------------------------------------------- 112 112 .ResetDetectedDrives: 113 jmp AH0h_ResetHardDisksHandledByOurBIOS 113 call Idepack_FakeToSSBP 114 call AH0h_ResetHardDisksHandledByOurBIOS 115 add sp, BYTE SIZE_OF_FAKE_IDEPACK 116 ret -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm
r148 r150 111 111 .InstallHighIrqHandler: 112 112 add bx, BYTE INTV_IRQ8 - 8 ; Interrupt vector number 113 mov si, HIRQ_InterruptServiceRoutineForIrqs8to15113 mov si, IdeIrq_InterruptServiceRoutineForIrqs8to15 114 114 jmp SHORT Interrupts_InstallHandlerToVectorInBXFromCSSI 115 115 … … 126 126 .InstallLowIrqHandler: 127 127 add bx, BYTE INTV_IRQ0 ; Interrupt vector number 128 mov si, HIRQ_InterruptServiceRoutineForIrqs2to7128 mov si, IdeIrq_InterruptServiceRoutineForIrqs2to7 129 129 ; Fall to Interrupts_InstallHandlerToVectorInBXFromCSSI 130 130 … … 158 158 ;-------------------------------------------------------------------- 159 159 Interrupts_UnmaskInterruptControllerForDriveInDSDI: 160 eMOVZX bx, BYTE [di+DPT.bIde Off]160 eMOVZX bx, BYTE [di+DPT.bIdevarsOffset] 161 161 mov al, [cs:bx+IDEVARS.bIRQ] 162 162 test al, al
Note:
See TracChangeset
for help on using the changeset viewer.