Changeset 535 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc


Ignore:
Timestamp:
Apr 8, 2013, 5:09:44 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • AH=48h now returns Device Parameter Table Extension when RETURN_DPTE_ON_AH48H is defined.
  • Removed few unnecessary instructions from hardware interrupt handler.
  • P-Cylinders returned by AH=48h are no longer calculated from L-CHS capacity.
Location:
trunk/XTIDE_Universal_BIOS/Inc
Files:
2 edited

Legend:

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

    r526 r535  
    2222
    2323; EBIOS specification returned by INT 13h, AH=41h
    24 EBIOS_VERSION                       EQU 21h     ; 21h = EDD version 1.1
     24
     25EDD_V1_1                            EQU 21h     ; 21h = EDD version 1.1
     26EBIOS_VERSION                       EQU EDD_V1_1
    2527
    2628; Support bits returned by INT 13h, AH=41h
     
    3941    .qwTotalSectors         resb    8   ; 16, Total number of addressable sectors
    4042    .wSectorSize            resb    2   ; 24, Number of bytes per sector
    41     .fpEDDparams            resb    8   ; 26, Optional pointer to Enhanced Disk Drive (EDD) configuration parameters
     43    .fpDPTE                 resb    4   ; 26, Optional pointer to Device Parameter Table Extension
    4244endstruc
    4345
    4446MINIMUM_EDRIVEINFO_SIZE     EQU     26  ; 26 bytes does not include EDD pointer
     47EDRIVEINFO_SIZE_WITH_DPTE   EQU     EDRIVE_INFO_size
    4548
    4649; Flags for EDRIVE_INFO.wFlags
     
    5255FLG_LOCKABLE                                        EQU (1<<5)  ; Removable media only
    5356FLG_NO_MEDIA_PRESENT_AND_CHS_SET_TO_MAX             EQU (1<<6)  ; Removable media only
     57
     58
     59; Device Parameter Table Extension
     60struc DPTE
     61    .wBasePort              resb    2   ; 0, Command Block Base Port Address
     62    .wControlBlockPort      resb    2   ; 2, Control Block Base Port Address
     63    .bDrvnhead              resb    1   ; 4, Drive and Head Select Register upper nibble
     64    .bBiosVendor            resb    1   ; 5, BIOS Vendor Specific
     65    .bIRQ                   resb    1   ; 6, IRQ for this device
     66    .bBlockSize             resb    1   ; 7, Current block size in sectors
     67    .bDmaChannelAndType     resb    1   ; 8, DMA information
     68    .bPioMode               resb    1   ; 9, PIO mode
     69    .wFlags                 resb    2   ; 10, BIOS selected hardware specific option flags
     70    .wReserved              resb    2   ; 12, Reserved. Must be zero.
     71    .bRevision              resb    1   ; 14, Revision level of this table (11h)
     72    .bChecksum              resb    1   ; 15, Checksum, 2's complement of the sum of bytes 0-14
     73endstruc
     74
     75; Flags for DPTE.wFlags
     76FLG_FAST_PIO_ENABLED        EQU (1<<0)  ; Set is using PIO mode 1 or above (DPTE.bPioMode is valid when set)
     77FLG_DMA_ENABLED             EQU (1<<1)  ; Set if DMA enabled (DPTE.bDmaChannelAndType is valid when set)
     78FLG_BLOCK_MODE_ENABLED      EQU (1<<2)  ; Set if Block Mode transfers are enabled (DPTE.bBlockSize is valid when set)
     79FLG_CHS_TRANSLATION_ENABLED EQU (1<<3)  ; Set for drives with more than 1024 cylinders
     80FLG_LBA_TRANSLATION_ENABLED EQU (1<<4)  ; Set when LBA addersses from DAP are passed directly to the drive
     81FLG_REMOVABLE_MEDIA         EQU (1<<5)
     82FLG_ATAPI_DEVICE            EQU (1<<6)
     83FLG_32BIT_XFER_MODE         EQU (1<<7)  ; Set when using 32-bit data transfers
     84FLG_ATAPI_USES_IRQ          EQU (1<<8)  ; ATAPI Device uses IRQ for data transfers
     85; L-CHS translation type for old INT 13h (when FLG_CHS_TRANSLATION_ENABLED is set)
     86MASK_CHS_TRANSLATION_TYPE   EQU (3<<TRANSLATION_TYPE_FIELD_POSITION)
     87    TRANSLATION_TYPE_FIELD_POSITION EQU 9
     88    BIT_SHIFT_TRANSLATION           EQU 0   ; LARGE
     89    LBA_ASSISTED_TRANSLATION        EQU 1   ; Assisted LBA
     90                                        ; 2 = reserved
     91    VENDOR_SPECIFIC_TRANSLATION     EQU 3
     92
     93
     94DPTE_REVISION               EQU     11h
    5495
    5596
  • trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc

    r526 r535  
    183183MASK_DRVPARAMS_TRANSLATEMODE    EQU (3<<TRANSLATEMODE_FIELD_POSITION)   ; Bits 2...3, Position shared with DPT
    184184    TRANSLATEMODE_FIELD_POSITION    EQU 2
    185     TRANSLATEMODE_NORMAL            EQU 0
     185    TRANSLATEMODE_NORMAL            EQU 0   ; Must be zero
    186186    TRANSLATEMODE_LARGE             EQU 1
    187187    TRANSLATEMODE_ASSISTED_LBA      EQU 2   ; 28-bit or 48-bit LBA
Note: See TracChangeset for help on using the changeset viewer.