Changeset 535 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS


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
Files:
7 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
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeIrq.asm

    r526 r535  
    2626;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    2727;   Returns:
    28 ;       CF:     Set if wait done by operating system
    29 ;               Cleared if BIOS must perform task flag polling
     28;       Nothing
    3029;   Corrupts registers:
    3130;       AX
     
    3332ALIGN JUMP_ALIGN
    3433IdeIrq_WaitForIRQ:
    35 
    36 ;--------------------------------------------------------------------
    37 ; .NotifyOperatingSystemAboutWaitingForIRQ
    38 ;   Parameters:
    39 ;       Nothing
    40 ;   Returns:
    41 ;       CF:     Set if wait done by operating system
    42 ;               Cleared if BIOS must perform task flag polling
    43 ;   Corrupts registers:
    44 ;       AX
    45 ;--------------------------------------------------------------------
    46 .NotifyOperatingSystemAboutWaitingForIRQ:
    4734    push    ds
    4835
     
    5340    jc      SHORT .ReturnFromWaitNotify ;  If so, skip OS notification
    5441    int     BIOS_SYSTEM_INTERRUPT_15h   ; OS hook, device busy
    55     jnc     SHORT .ReturnFromWaitNotify ; CF cleared, BIOS handles waiting
    5642
    57     ; Make sure that OS hooks are supported, otherwise the CF means unsupported function
    58     test    ah, ah                      ; OS hook supported? (clears CF)
    59     jnz     SHORT .ReturnFromWaitNotify ; AH has error, BIOS must do the wait
    60     stc                                 ; Set CF since wait done by OS
    6143.ReturnFromWaitNotify:
    6244    sti                                 ; Enable interrupts
     
    9981
    10082    ; Issue Int 15h, function AX=9100h (Interrupt ready)
     83    clc                                 ; Must be called with CF clear
    10184    mov     ax, OS_HOOK_DEVICE_POST<<8  ; Interrupt ready, device 0 (HD)
    10285    int     BIOS_SYSTEM_INTERRUPT_15h
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH41h_CheckIfExtensionsPresent.asm

    r526 r535  
    4343    mov     BYTE [bp+IDEPACK.intpack+INTPACK.ah], EBIOS_VERSION
    4444    mov     WORD [bp+IDEPACK.intpack+INTPACK.bx], 0AA55h
     45
     46%ifdef RETURN_DPTE_ON_AH48H
     47    call    AH41h_GetSupportBitsToCX
     48    mov     [bp+IDEPACK.intpack+INTPACK.cx], cx
     49%else
    4550    mov     WORD [bp+IDEPACK.intpack+INTPACK.cx], ENHANCED_DRIVE_ACCESS_SUPPORT
     51%endif
     52
    4653    and     BYTE [bp+IDEPACK.intpack+INTPACK.flags], ~FLG_FLAGS_CF  ; Return with CF cleared
    4754    jmp     Int13h_ReturnFromHandlerWithoutStoringErrorCode
    4855.EbiosNotSupported:
    4956    jmp     Int13h_DirectCallToAnotherBios
     57
     58
     59%ifdef RETURN_DPTE_ON_AH48H
     60;--------------------------------------------------------------------
     61; AH41h_GetSupportBitsToCX
     62;   Parameters:
     63;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     64;   Returns:
     65;       CX:     Support bits returned by AH=41h
     66;   Corrupts registers:
     67;       Nothing
     68;--------------------------------------------------------------------
     69AH41h_GetSupportBitsToCX:
     70    mov     cx, ENHANCED_DRIVE_ACCESS_SUPPORT
     71
     72    ; DPTE needs buffer from RAM so do not return it in lite mode
     73%ifndef USE_AT
     74    test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_FULLMODE
     75    jz      SHORT .DoNotSetEDDflag
     76%endif
     77
     78%ifdef MODULE_8BIT_IDE OR MODULE_SERIAL
     79    ; DPTE contains information for device drivers. We should not return
     80    ; DPTE for 8-bit devices since software would think they are 16-bit devices.
     81    cmp     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_ATA
     82    jae     SHORT .DoNotSetEDDflag
     83%endif
     84
     85    or      cl, ENHANCED_DISK_DRIVE_SUPPORT ; AH=48h returns DPTE
     86.DoNotSetEDDflag:
     87    ret
     88
     89%endif ; RETURN_DPTE_ON_AH48H
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH48h_GetExtendedDriveParameters.asm

    r533 r535  
    5959; BIOS that does just that.
    6060;
    61 ; Since I don't have any better knowledge, I decided that when RESERVE_DIAGNOSTIC_CYLINDER
    62 ; is defined, we do what the Award BIOS does. When it is not defined, we multiply
    63 ; P-CHS values together and use that as total sector count.
     61; I decided that we multiply P-CHS values and do not waste space like the
     62; Award BIOS does.
    6463;
    6564;
     
    7877;--------------------------------------------------------------------
    7978AH48h_HandlerForGetExtendedDriveParameters:
     79    mov     si, di
     80    push    ds
     81    pop     es      ; ES = RAMVARS segment
     82    xor     bx, bx
     83    dec     bx      ; Set to FFFFh to assume we do not return DPTE
     84
     85    ; Create DPTE (hardware information for device drivers)
     86%ifdef RETURN_DPTE_ON_AH48H
     87    call    AH41h_GetSupportBitsToCX
     88    test    cl, ENHANCED_DISK_DRIVE_SUPPORT
     89    jz      SHORT .DoNotCreateDPTE
     90    call    CreateDeviceParameterTableExtensionToESBXfromDPTinDSSI
     91.DoNotCreateDPTE:
     92%endif
     93
     94    ; Point DS:DI to Extended Drive Information Table to fill
     95    mov     di, [bp+IDEPACK.intpack+INTPACK.si]
     96    mov     ds, [bp+IDEPACK.intpack+INTPACK.ds]
     97
     98    ; Check and adjust Extended Drive Information Table size
     99    ; to MINIMUM_EDRIVEINFO_SIZE or EDRIVEINFO_SIZE_WITH_DPTE
     100    mov     ax, MINIMUM_EDRIVEINFO_SIZE
     101    mov     cx, [di+EDRIVE_INFO.wSize]
     102    cmp     cx, ax
     103    jb      Prepare_ReturnFromInt13hWithInvalidFunctionError
     104    mov     [di+EDRIVE_INFO.wSize], ax
     105    add     al, EDRIVEINFO_SIZE_WITH_DPTE - MINIMUM_EDRIVEINFO_SIZE
     106    cmp     cx, ax
     107    jb      SHORT .SkipEddConfigurationParameters
     108    mov     [di+EDRIVE_INFO.wSize], ax
     109
     110    ; Store DPTE for standard controllers only,
     111    ; FFFF:FFFF for non standard controllers
     112%ifdef RETURN_DPTE_ON_AH48H
     113    mov     [di+EDRIVE_INFO.fpDPTE], bx
     114    mov     [di+EDRIVE_INFO.fpDPTE+2], es
     115    inc     bx
     116    jnz     SHORT .SkipEddConfigurationParameters   ; Already stored
     117    dec     bx
     118    mov     [di+EDRIVE_INFO.fpDPTE+2], bx   ; Segment = FFFFh
     119%else
     120    mov     [di+EDRIVE_INFO.fpDPTE], bx
     121    mov     [di+EDRIVE_INFO.fpDPTE+2], bx
     122%endif
     123
     124    ; Fill Extended Drive Information Table in DS:DI from DPT in ES:SI
     125.SkipEddConfigurationParameters:
     126    mov     WORD [di+EDRIVE_INFO.wFlags], FLG_DMA_BOUNDARY_ERRORS_HANDLED_BY_BIOS
     127
     128    ; Store total sector count
     129    call    Registers_ExchangeDSSIwithESDI
    80130    call    AccessDPT_GetLbaSectorCountToBXDXAX
    81 
    82     ; Point DS:SI to Extended Drive Information Table to fill
    83     push    ds
    84     pop     es          ; DPT now in ES:DI
    85     mov     ds, [bp+IDEPACK.intpack+INTPACK.ds]
    86     mov     cx, MINIMUM_EDRIVEINFO_SIZE
    87     cmp     [si+EDRIVE_INFO.wSize], cx
    88     jb      Prepare_ReturnFromInt13hWithInvalidFunctionError
    89     je      SHORT .SkipEddConfigurationParameters
    90 
    91     ; We do not support EDD Configuration Parameters so set to FFFF:FFFFh
    92     sub     cx, BYTE MINIMUM_EDRIVEINFO_SIZE+1  ; CX => FFFFh
    93     mov     [si+EDRIVE_INFO.fpEDDparams], cx
    94     mov     [si+EDRIVE_INFO.fpEDDparams+2], cx
    95     mov     cx, EDRIVE_INFO_size
    96 
    97     ; Fill Extended Drive Information Table in DS:SI
    98 .SkipEddConfigurationParameters:
    99     mov     [si+EDRIVE_INFO.wSize], cx
    100     mov     WORD [si+EDRIVE_INFO.wFlags], FLG_DMA_BOUNDARY_ERRORS_HANDLED_BY_BIOS
    101 
    102     ; Store total sector count
    103     mov     [si+EDRIVE_INFO.qwTotalSectors], ax
    104     mov     [si+EDRIVE_INFO.qwTotalSectors+2], dx
    105     mov     [si+EDRIVE_INFO.qwTotalSectors+4], bx
     131    call    Registers_ExchangeDSSIwithESDI
     132    mov     [di+EDRIVE_INFO.qwTotalSectors], ax
     133    mov     [di+EDRIVE_INFO.qwTotalSectors+2], dx
     134    mov     [di+EDRIVE_INFO.qwTotalSectors+4], bx
    106135    xor     cx, cx
    107     mov     [si+EDRIVE_INFO.qwTotalSectors+6], cx   ; Always zero
    108     mov     WORD [si+EDRIVE_INFO.wSectorSize], 512
     136    mov     [di+EDRIVE_INFO.qwTotalSectors+6], cx   ; Always zero
     137    mov     WORD [di+EDRIVE_INFO.wSectorSize], 512
    109138
    110139    ; Store P-CHS. Based on phoenix specification this is returned only if
     
    114143    sbb     bx, cx      ; Zero
    115144    jnc     SHORT .ReturnWithSuccess    ; More than EC4000h
    116     or      WORD [si+EDRIVE_INFO.wFlags], FLG_CHS_INFORMATION_IS_VALID
    117 
    118     eMOVZX  dx, BYTE [es:di+DPT.bPchsHeads]
    119     mov     [si+EDRIVE_INFO.dwHeads], dx
    120     mov     [si+EDRIVE_INFO.dwHeads+2], cx
    121 
    122     mov     dl, [es:di+DPT.bPchsSectorsPerTrack]
    123     mov     [si+EDRIVE_INFO.dwSectorsPerTrack], dx
    124     mov     [si+EDRIVE_INFO.dwSectorsPerTrack+2], cx
    125 
    126     mov     dx, [es:di+DPT.wPchsCylinders]
    127     mov     [si+EDRIVE_INFO.dwCylinders], dx
    128     mov     [si+EDRIVE_INFO.dwCylinders+2], cx
     145    or      WORD [di+EDRIVE_INFO.wFlags], FLG_CHS_INFORMATION_IS_VALID
     146
     147    eMOVZX  dx, BYTE [es:si+DPT.bPchsHeads]
     148    mov     [di+EDRIVE_INFO.dwHeads], dx
     149    mov     [di+EDRIVE_INFO.dwHeads+2], cx
     150
     151    mov     dl, [es:si+DPT.bPchsSectorsPerTrack]
     152    mov     [di+EDRIVE_INFO.dwSectorsPerTrack], dx
     153    mov     [di+EDRIVE_INFO.dwSectorsPerTrack+2], cx
     154
     155    mov     dx, [es:si+DPT.wPchsCylinders]
     156    mov     [di+EDRIVE_INFO.dwCylinders], dx
     157    mov     [di+EDRIVE_INFO.dwCylinders+2], cx
    129158
    130159.ReturnWithSuccess:
     
    132161.ReturnWithError:
    133162    jmp     Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
     163
     164
     165%ifdef RETURN_DPTE_ON_AH48H
     166;--------------------------------------------------------------------
     167; CreateDeviceParameterTableExtensionToESBXfromDPTinDSSI
     168;   Parameters:
     169;       DS:SI:  Ptr to DPT (in RAMVARS segment)
     170;       ES:     RAMVARS segment
     171;   Returns:
     172;       ES:BX:  Ptr to Device Parameter Table Extension (DPTE)
     173;   Corrupts registers:
     174;       AX, CX, DX, DI
     175;--------------------------------------------------------------------
     176CreateDeviceParameterTableExtensionToESBXfromDPTinDSSI:
     177    ; Point ES:DI to DPTE buffer (valid until next AH=48h call)
     178    mov     di, [cs:ROMVARS.bStealSize]
     179    eSHL_IM di, 10                          ; DI = RAMVARS size in bytes
     180    sub     di, BYTE DPTE_size              ; DI = Offset to DPTE
     181    xor     dx, dx                          ; Clear for checksum
     182
     183    ; Set 32-bit flag for 32-bit controllers
     184    mov     cx, FLG_LBA_TRANSLATION_ENABLED ; DPTE.wFlags
     185    cmp     BYTE [si+DPT_ATA.bDevice], DEVICE_32BIT_ATA
     186    eCMOVE  cl, FLG_LBA_TRANSLATION_ENABLED | FLG_32BIT_XFER_MODE
     187
     188    ; DPTE.wBasePort
     189    mov     ax, [si+DPT.wBasePort]
     190    call    StoswThenAddALandAHtoDL         ; Bytes 0 and 1
     191
     192    ; DPTE.wControlBlockPort
     193    eMOVZX  bx, BYTE [si+DPT.bIdevarsOffset]
     194    mov     ax, [cs:bx+IDEVARS.wControlBlockPort]
     195    call    StoswThenAddALandAHtoDL         ; Bytes 2 and 3
     196
     197    ; DPTE.bDrvnhead and DPTE.bBiosVendor
     198    xchg    di, si
     199    call    AccessDPT_GetDriveSelectByteForEbiosToAL
     200    xchg    si, di
     201    call    StoswThenAddALandAHtoDL         ; Bytes 4 and 5
     202
     203    ; DPTE.bIRQ and DPTE.bBlockSize
     204    mov     al, [cs:bx+IDEVARS.bIRQ]        ; No way to define that we might not use IRQ
     205    mov     ah, [si+DPT_ATA.bBlockSize]
     206    cmp     ah, 1
     207    jbe     SHORT .DoNotSetBlockModeFlag
     208    or      cl, FLG_BLOCK_MODE_ENABLED
     209.DoNotSetBlockModeFlag:
     210    call    StoswThenAddALandAHtoDL         ; Bytes 6 and 7
     211
     212    ; DPTE.bDmaChannelAndType and DPTE.bPioMode
     213    xor     ax, ax
     214%ifdef MODULE_ADVANCED_ATA
     215    or      ah, [si+DPT_ADVANCED_ATA.bPioMode]
     216    jz      SHORT .NoDotSetFastPioFlag
     217    cmp     WORD [si+DPT_ADVANCED_ATA.wControllerID], BYTE 0
     218    je      SHORT .NoDotSetFastPioFlag
     219    inc     cx      ; FLG_FAST_PIO_ENABLED
     220.NoDotSetFastPioFlag:
     221%endif
     222    call    StoswThenAddALandAHtoDL         ; Bytes 8 and 9
     223
     224    ; Set CHS translation flags and store DPTE.wFlags
     225    mov     al, [si+DPT.bFlagsLow]
     226    and     al, MASKL_DPT_TRANSLATEMODE
     227    jz      SHORT .NoChsTranslationOrBitShiftTranslationSet
     228    or      cl, FLG_CHS_TRANSLATION_ENABLED
     229    test    al, FLGL_DPT_ASSISTED_LBA
     230    jz      SHORT .NoChsTranslationOrBitShiftTranslationSet
     231    or      cx, LBA_ASSISTED_TRANSLATION << TRANSLATION_TYPE_FIELD_POSITION
     232.NoChsTranslationOrBitShiftTranslationSet:
     233    xchg    ax, cx
     234    call    StoswThenAddALandAHtoDL         ; Bytes 10 and 11
     235
     236    ; DPTE.wReserved (must be zero)
     237    xor     ax, ax
     238    call    StoswThenAddALandAHtoDL         ; Bytes 12 and 13
     239
     240    ; DPTE.bRevision and DPTE.bChecksum
     241    mov     ax, DPTE_REVISION | (DPTE_REVISION<<8)
     242    add     ah, dl
     243    neg     ah
     244    stosw
     245    lea     bx, [di-DPTE_size]
     246    ret
     247
     248
     249;--------------------------------------------------------------------
     250; StoswThenAddALandAHtoDL
     251;   Parameters:
     252;       AX:     WORD to store
     253;       ES:DI:  Ptr to where to store AX
     254;       DL:     Checksum byte
     255;   Returns:
     256;       DL:     Checksum byte
     257;       DI:     Incremented by 2
     258;   Corrupts registers:
     259;       Nothing
     260;--------------------------------------------------------------------
     261StoswThenAddALandAHtoDL:
     262    stosw
     263    add     dl, al
     264    add     dl, ah
     265    ret
     266
     267%endif ; RETURN_DPTE_ON_AH48H
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm

    r533 r535  
    120120    mov     [di+DPT.bPchsSectorsPerTrack], bh
    121121
     122; This is what Award BIOS from 1997 Pentium motherboard does. I can't think
     123; of any good reason to do the same but let's keep this here just in case,
     124; at least for a while.
     125%if 0
    122126%ifdef RESERVE_DIAGNOSTIC_CYLINDER
    123127    ; Do not store P-Cylinders, instead calculate it from L-CHS total sector count.
     
    130134    div     bx                          ; AX = Calculated cylinders
    131135%endif ; RESERVE_DIAGNOSTIC_CYLINDER
     136%endif ; 0
    132137
    133138    mov     [di+DPT.wPchsCylinders], ax
  • trunk/XTIDE_Universal_BIOS/makefile

    r530 r535  
    3232# RELOCATE_INT13H_STACK **    Relocates INT 13h stack to beginning of stolen conventional memory   #
    3333# RESERVE_DIAGNOSTIC_CYLINDER Reserve one L-CHS cylinder for compatibility with old BIOSes         #
     34# RETURN_DPTE_ON_AH48H        Returns extra hardware related information on AH=48h for OS drivers  #
    3435# USE_186                     Use instructions supported by 80188/80186 and V20/V30 and later      #
    3536# USE_286                     Use instructions supported by 286 and later (defines USE_UNDOC_INTEL)#
     
    110111
    111112DEFINES_XT_TINY = MODULE_STRINGS_COMPRESSED MODULE_8BIT_IDE
    112 DEFINES_386_8K = $(DEFINES_AT) USE_386
     113DEFINES_386_8K = $(DEFINES_AT) USE_386 RETURN_DPTE_ON_AH48H
    113114
    114115DEFINES_ALL_FEATURES = MODULE_8BIT_IDE MODULE_8BIT_IDE_ADVANCED MODULE_ADVANCED_ATA MODULE_EBIOS MODULE_BOOT_MENU MODULE_HOTKEYS MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_STRINGS_COMPRESSED MODULE_FEATURE_SETS
Note: See TracChangeset for help on using the changeset viewer.