Changeset 411 in xtideuniversalbios
- Timestamp:
- Apr 26, 2012, 7:41:59 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc
r400 r411 45 45 MASKL_DPT_CHS_SHIFT_COUNT EQU (7<<0) ; Bits 0...2, P-CHS to L-CHS bit shift count (0...4) 46 46 FLGL_DPT_SLAVE EQU FLG_DRVNHEAD_DRV ; (1<<4), Drive is slave drive 47 MASKL_DPT_ADDRESSING_MODE EQU (3<<5) ; Bits 5..6, Addressing Mode (bit 6 == FLG_DRVNHEAD_LBA) 47 MASKL_DPT_ADDRESSING_MODE EQU (3<<ADDRESSING_MODE_FIELD_POSITION) ; Bits 5..6, Addressing Mode (bit 6 == FLG_DRVNHEAD_LBA) 48 %ifdef MODULE_IRQ 48 49 FLGL_DPT_ENABLE_IRQ EQU (1<<7) 50 %endif 49 51 50 52 ; Bit definitions for DPT.bFlagsHigh 51 53 FLGH_DPT_BLOCK_MODE_SUPPORTED EQU (1<<1) ; Use block transfer commands (must be bit 1!) 54 %ifdef MODULE_SERIAL 52 55 FLGH_DPT_SERIAL_DEVICE EQU (1<<2) ; Serial Port Device 56 %endif 57 %ifdef MODULE_IRQ 53 58 FLGH_DPT_INTERRUPT_IN_SERVICE EQU (1<<3) ; Set when waiting for IRQ 59 %endif 60 %ifdef MODULE_FEATURE_SETS 54 61 FLGH_DPT_POWER_MANAGEMENT_SUPPORTED EQU (1<<5) 62 %endif 55 63 56 64 ; IDE device only 65 %ifdef MODULE_ADVANCED_ATA 57 66 FLGH_DPT_IORDY EQU (1<<7) ; Controller and Drive supports IORDY 67 %endif 58 68 59 69 ; Serial device only 70 %ifdef MODULE_SERIAL_FLOPPY 60 71 FLGH_DPT_SERIAL_FLOPPY EQU (1<<4) 61 72 FLGH_DPT_SERIAL_FLOPPY_TYPE_MASK EQU 0e0h 62 73 FLGH_DPT_SERIAL_FLOPPY_TYPE_FIELD_POSITION EQU 5 74 %endif 63 75 64 76 ; Addressing modes for DPT.wFlags … … 67 79 ADDRESSING_MODE_PCHS EQU 1 ; P-CHS Addressing Mode (LARGE in many other BIOSes) 68 80 ADDRESSING_MODE_LBA28 EQU 2 ; 28-bit LBA Addressing Mode 81 %ifdef MODULE_EBIOS 69 82 ADDRESSING_MODE_LBA48 EQU 3 ; 48-bit LBA Addressing Mode 83 %endif 70 84 71 85 … … 89 103 .bInitError resb 1 ; Flags for initialization errors 90 104 endstruc 91 %endif92 105 93 106 ; Flags for DPT_ADVANCED_ATA.bInitError … … 99 112 FLG_INITERROR_FAILED_TO_SET_PIO_MODE EQU (1<<5) 100 113 FLG_INITERROR_FAILED_TO_INITIALIZE_STANDBY_TIMER EQU (1<<6) 114 %endif 101 115 102 116 -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
r408 r411 90 90 mov dl, 1 ; Sector count (required by IdeTransfer.asm) 91 91 mov al, COMMAND_IDENTIFY_DEVICE 92 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_ IDENTIFY_DEVICE, FLG_STATUS_DRQ)92 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ) 93 93 call Idepack_StoreNonExtParametersAndIssueCommandFromAL 94 94 -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm
r376 r411 71 71 ;-------------------------------------------------------------------- 72 72 .GetLbaSectorCount: 73 %ifdef MODULE_EBIOS 73 74 test BYTE [di+ATA6.wSetSup83+1], A6_wSetSup83_LBA48>>8 74 75 jz SHORT .GetLba28SectorCount 76 77 ; Get LBA48 sector count 75 78 mov ax, [di+ATA6.qwLBACnt] 76 79 mov dx, [di+ATA6.qwLBACnt+2] 77 80 mov bx, [di+ATA6.qwLBACnt+4] 78 81 ret 82 %endif 79 83 80 84 .GetLba28SectorCount: -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AccessDPT.asm
r376 r411 68 68 ALIGN JUMP_ALIGN 69 69 AccessDPT_GetDeviceControlByteToAL: 70 %ifdef MODULE_IRQ 70 71 xor al, al 71 72 test BYTE [di+DPT.bFlagsLow], FLGL_DPT_ENABLE_IRQ … … 73 74 or al, FLG_DEVCONTROL_nIEN ; Disable IRQ 74 75 .EnableDeviceIrq: 76 %else 77 mov al, FLG_DEVCONTROL_nIEN ; Disable IRQ 78 %endif 75 79 ret 76 80 -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm
r376 r411 74 74 mov al, bh 75 75 and ax, BYTE FLG_DRVNHEAD_DRV ; AL now has Master/Slave bit 76 %ifdef MODULE_IRQ 76 77 cmp [cs:bp+IDEVARS.bIRQ], ah ; Interrupts enabled? 77 78 jz SHORT .StoreFlags ; If not, do not set interrupt flag 78 79 or al, FLGL_DPT_ENABLE_IRQ 79 80 .StoreFlags: 81 %endif 80 82 mov [di+DPT.wFlags], ax 81 83 ; Fall to .StoreAddressing … … 281 283 mov [di+DPT.twLbaSectors+4], bx 282 284 285 %ifdef MODULE_EBIOS 283 286 and BYTE [di+DPT.bFlagsLow], ~MASKL_DPT_ADDRESSING_MODE 284 287 test bx, bx … … 292 295 or BYTE [di+DPT.bFlagsLow], ADDRESSING_MODE_LBA48<<ADDRESSING_MODE_FIELD_POSITION 293 296 .SetLba28AddressingToDPT: 297 %endif 294 298 or BYTE [di+DPT.bFlagsLow], ADDRESSING_MODE_LBA28<<ADDRESSING_MODE_FIELD_POSITION 295 299 ret
Note:
See TracChangeset
for help on using the changeset viewer.