Changeset 547 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs


Ignore:
Timestamp:
Apr 21, 2013, 3:47:11 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Hotkeys were incorrectly initialized to use 'C' as first hard drive letter.
  • All CHS translate modes should again work (incorrectly decremented DX instead of DL, it might or might not have caused problems).
Location:
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm

    r542 r547  
    176176;       BL:     Number of L-CHS heads (?...240)
    177177;       CX:     Number of bits shifted (0...3)
    178 ;       DL:     ADDRESSING_MODE_NORMAL or ADDRESSING_MODE_LARGE
     178;       DX:     ADDRESSING_MODE_NORMAL or ADDRESSING_MODE_LARGE
    179179;   Corrupts registers:
    180180;       Nothing
     
    218218; ConvertPCHfromAXBLtoEnhancedCHinAXBL:
    219219;   Parameters:
    220 ;       AX:     Number of P-CHS cylinders (1...8192)
     220;       AX:     Number of P-CHS cylinders (1...8192, or up to 17475 if fell from above)
    221221;       BL:     Number of P-CHS heads (1...16)
    222222;   Returns:
    223223;       AX:     Number of L-CHS cylinders (?...1024)
    224 ;       BL:     Number of L-CHS heads (?...128)
     224;       BL:     Number of L-CHS heads (?...128, or up to 240 if fell from above)
    225225;       CX:     Number of bits shifted (0...3)
    226 ;       DL:     TRANSLATEMODE_NORMAL or TRANSLATEMODE_LARGE
     226;       DX:     TRANSLATEMODE_NORMAL or TRANSLATEMODE_LARGE
    227227;   Corrupts registers:
    228228;       Nothing
    229229;--------------------------------------------------------------------
    230230ConvertPCHfromAXBLtoEnhancedCHinAXBL:
     231    cwd                 ; Assume TRANSLATEMODE_NORMAL
    231232    xor     cx, cx      ; No bits to shift initially
    232     xor     dl, dl      ; Assume TRANSLATEMODE_NORMAL
    233233.ShiftIfMoreThan1024Cylinder:
    234234    cmp     ax, MAX_LCHS_CYLINDERS
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm

    r545 r547  
    5959;--------------------------------------------------------------------
    6060BootVars_StoreDefaultDriveLettersToHotkeyVars:
    61     mov     WORD [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wFddAndHddLetters], DEFAULT_FLOPPY_DRIVE_LETTER | (DEFAULT_HARD_DRIVE_LETTER<<8)
     61    call    BootVars_GetLetterForFirstHardDriveToAX
     62    mov     ah, DEFAULT_FLOPPY_DRIVE_LETTER
     63    xchg    al, ah
     64    mov     [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wFddAndHddLetters], ax
    6265    ret
    6366
    6467%endif ; MODULE_HOTKEYS
     68
     69
     70;--------------------------------------------------------------------
     71; Returns letter for first hard disk. Usually it will be 'C' but it
     72; can be higher if more than two floppy drives are found.
     73;
     74; BootVars_GetLetterForFirstHardDriveToAX
     75;   Parameters:
     76;       DS:     RAMVARS segment
     77;   Returns:
     78;       AX:     Upper case letter for first hard disk
     79;   Corrupts registers:
     80;       Nothing
     81;--------------------------------------------------------------------
     82BootVars_GetLetterForFirstHardDriveToAX:
     83    call    FloppyDrive_GetCountToAX
     84    add     al, DEFAULT_FLOPPY_DRIVE_LETTER     ; First Hard Drive letter comes after last floppy drive letter...
     85    MAX_U   al, DEFAULT_HARD_DRIVE_LETTER       ; ...but it can never be 'A' or 'B'
     86    ret
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm

    r545 r547  
    109109    ; Store P-CHS and flags
    110110    call    AtaGeometry_GetPCHStoAXBLBHfromAtaInfoInESSI
    111     dec     dx                      ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
     111    dec     dl                      ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
    112112    js      SHORT .NothingToChange
    113113    jz      SHORT .LimitHeadsForLargeAddressingMode
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm

    r531 r547  
    197197    ret
    198198%endif
    199 
    200 
    201 %if 0                           ; unused...
    202 ;--------------------------------------------------------------------
    203 ; RamVars_IsDriveDetectionInProgress
    204 ;   Parameters:
    205 ;       DS:     RAMVARS segment
    206 ;   Returns:
    207 ;       ZF:     Set if drive detection is in progress (ROM initialization)
    208 ;   Corrupts registers:
    209 ;       None
    210 ;--------------------------------------------------------------------
    211 RamVars_IsDriveDetectionInProgress:
    212     cmp     WORD [RAMVARS.wSignature], RAMVARS_DRV_DETECT_SIGNATURE
    213     ret
    214 %endif
Note: See TracChangeset for help on using the changeset viewer.