Changeset 567 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers


Ignore:
Timestamp:
May 26, 2014, 1:25:15 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Renamed MODULE_FEATURE_SETS to MODULE_POWER_MANAGEMENT.
  • Renamed MODULE_VERY_LATE_INITIALIZATION to MODULE_VERY_LATE_INIT and removed it from the official builds.
  • Removed the code that skips detection of slave drives on XT-CF controllers since slave drives can be used with Lo-tech ISA CompactFlash boards.
  • Added autodetection of the SVC ADP50L controller to XTIDECFG.
  • The autodetection of XT-CF controllers now requires MODULE_8BIT_IDE_ADVANCED in the loaded BIOS.
  • Fixed a bug in XTIDECFG from r502 where the "Base (cmd block) address" menu option would be displayed when a serial device was selected as the IDE controller.
  • XTIDECFG would display the "Enable interrupt" menu option for the XTIDE r1 but not for the XTIDE r2. It's now displayed for both controller types.
  • Disabled the "Internal Write Cache" menu option in the Master/Slave Drive menus for serial device type drives.
  • Optimizations and other fixes.
Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm

    r561 r567  
    309309;   Returns:
    310310;       Depends on function
    311 ;       NOTE: ES:DI needs to be returned from the previous interrupt
    312 ;             handler, for floppy DPT in function 08h
     311;       NOTE: ES:DI needs to be returned from the previous interrupt
     312;             handler, for floppy DPT in function 08h
    313313;   Corrupts registers:
    314314;       None
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm

    r555 r567  
    119119    mov     dl, ROMVARS.ideVars0                        ; starting Idevars offset
    120120
    121     ; Get count of ALL Idevars structures, not just the ones that are configured.  This may seem odd,
    122     ; but it catches the .ideVarsSerialAuto structure, which would not be scanned if the count from
     121    ; Get count of ALL Idevars structures, not just the ones that are configured.  This may seem odd,
     122    ; but it catches the .ideVarsSerialAuto structure, which would not be scanned if the count from
    123123    ; RamVars_GetIdeControllerCountToCX was used.  Unused controllers won't make a difference, since no DPT
    124124    ; will point to them.  Performance isn't an issue, as this is a reset operation.
    125     ;
     125    ;
    126126    mov     cx, NUMBER_OF_IDEVARS
    127127
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH15h_HSize.asm

    r547 r567  
    3737;       If successful:
    3838;           AH:     Hard Disk: 3 (Hard disk accessible)
    39 ;                   Floppy:    1 (Floppy disk, without change detection)
     39;                   Floppy:    1 (Floppy disk, without change detection)
    4040;           CX:DX:  Total number of sectors
    4141;           CF:     0
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm

    r558 r567  
    1919; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    2020;
    21 
    22 ; Modified by JJP for XT-CFv3 support, Mar-13
    2321
    2422; Section containing code
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm

    r545 r567  
    3131;       SS:BP:  Ptr to IDEPACK
    3232;   Returns with INTPACK:
    33 ;       BL:     Drive Type (for floppies only)
     33;       BL:     Drive Type (for serial floppies only)
    3434;       CH:     Maximum cylinder number, bits 7...0
    3535;       CL:     Bits 7...6: Cylinder number bits 9...8
     
    3737;       DH:     Maximum head number (0...254)
    3838;       DL:     Number of drives!!!
    39 ;       ES:DI:  Floppy DPT (for floppies only)
     39;       ES:DI:  Floppy DPT (for serial floppies only)
    4040;       AH:     Int 13h/40h floppy return status
    4141;       CF:     0 if successful, 1 if error
     
    5757    call    RamVars_GetCountOfKnownDrivesToAX       ; assume hard disk for now, will discard if for floppies
    5858
    59     test    byte [bp+IDEPACK.intpack+INTPACK.dl], 080h
     59    test    BYTE [bp+IDEPACK.intpack+INTPACK.dl], 80h
    6060    jnz     SHORT .CalledForHardDrive
    6161
     
    9393;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    9494;   Returns:
     95;       BL:     Drive Type (for serial floppies only)
    9596;       CH:     Maximum cylinder number, bits 7...0
    9697;       CL:     Bits 7...6: Cylinder number bits 9...8
     
    9899;       DH:     Maximum head number (0...254)
    99100;   Corrupts registers:
    100 ;       AX, BX
     101;       AX, BH
    101102;--------------------------------------------------------------------
    102103AH8h_GetDriveParameters:
     
    115116;       DS:     RAMVARS segment
    116117;   Returns:
     118;       BL:     Drive Type (for serial floppies only)
    117119;       CH:     Maximum cylinder number, bits 7...0
    118120;       CL:     Bits 7...6: Cylinder number bits 9...8
     
    120122;       DH:     Maximum head number (0...254)
    121123;   Corrupts registers:
    122 ;       AX, BX
     124;       AX, BH
    123125;--------------------------------------------------------------------
    124126.PackReturnValues:
     
    172174
    173175    db      1h << 1 | 0             ; Offset 1: Typical values of 1 for head load time
    174                                     ;           DMA used (although it actually is not, but is more restrictive)
     176                                    ;           DMA used (although it actually is not, but is more restrictive)
    175177    db      25h                     ; Offset 2: Inactivity motor turn-off delay,
    176178                                    ;           Typical value of 25h for 2 second delay
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r566 r567  
    194194
    195195
    196 %ifdef MODULE_FEATURE_SETS
     196%ifdef MODULE_POWER_MANAGEMENT
    197197;;; InitStandbyTimer
    198198    ; Initialize the standby timer (if supported)
     
    206206    STORE_ERROR_FLAG_TO_DPT     FLG_INITERROR_FAILED_TO_INITIALIZE_STANDBY_TIMER
    207207.NoPowerManagementSupport:
    208 %endif ; MODULE_FEATURE_SETS
     208%endif ; MODULE_POWER_MANAGEMENT
    209209
    210210
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH41h_CheckIfExtensionsPresent.asm

    r550 r567  
    3939AH41h_HandlerForCheckIfExtensionsPresent:
    4040    cmp     WORD [bp+IDEPACK.intpack+INTPACK.bx], 55AAh
     41%ifdef USE_386
     42    jne     Int13h_DirectCallToAnotherBios
     43%else
    4144    jne     SHORT .EbiosNotSupported
     45%endif
    4246
    4347    mov     BYTE [bp+IDEPACK.intpack+INTPACK.ah], EBIOS_VERSION
     
    5357    and     BYTE [bp+IDEPACK.intpack+INTPACK.flags], ~FLG_FLAGS_CF  ; Return with CF cleared
    5458    jmp     Int13h_ReturnFromHandlerWithoutStoringErrorCode
     59
     60%ifndef USE_386
    5561.EbiosNotSupported:
    5662    jmp     Int13h_DirectCallToAnotherBios
     63%endif
    5764
    5865
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm

    r558 r567  
    113113; Prepare_ByValidatingSectorsInALforOldInt13h
    114114;   Parameters:
    115 ;       AL:     Number of sectors to transfer
     115;       AL:     Number of sectors to transfer (1...128 is valid)
    116116;   Returns:
    117117;       Exits INT 13h if invalid number of sectors in AL
     
    120120;--------------------------------------------------------------------
    121121Prepare_ByValidatingSectorsInALforOldInt13h:
    122     test    al, al
    123     js      SHORT .CheckZeroOffsetFor128Sectors     ; 128 or more
    124     jz      SHORT InvalidNumberOfSectorsRequested   ; Zero not allowed for old INT 13h
     122    test    al, al                              ; Check if 0 < AL < 128 (Clears OF)
     123    jle     SHORT .CheckIf128Sectors            ; Jump if not
    125124    ret     ; Continue with transfer
    126125
    127126ALIGN JUMP_ALIGN
    128 .CheckZeroOffsetFor128Sectors:
     127.CheckIf128Sectors:
    129128    cmp     al, 128
    130     ja      SHORT InvalidNumberOfSectorsRequested
     129    jne     SHORT InvalidNumberOfSectorsRequested
    131130    test    si, si                              ; Offset must be zero to xfer 128 sectors
    132131    jnz     SHORT CannotAlignPointerProperly
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r561 r567  
    3131    sti                                         ; Enable interrupts
    3232    cld                                         ; String instructions to increment pointers
    33 %ifdef MODULE_VERY_LATE_INITIALIZATION
     33%ifdef MODULE_VERY_LATE_INIT
    3434    LOAD_BDA_SEGMENT_TO ds, ax                  ; Load BDA segment (zero) to DS
    3535    les     ax, [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4]
     
    214214;   Parameters:
    215215;       DL:     Drive to boot from (translated, 00h or 80h)
    216 ;       CF:     Set for Boot Sector Boot
    217 ;               Clear for ROM Boot
    218 ;       ES:BX:  (if CF set) Ptr to boot sector
     216;       CF:     Set for Boot Sector Boot
     217;               Clear for ROM Boot
     218;       ES:BX:  (if CF set) Ptr to boot sector
    219219;
    220220;   Returns:
Note: See TracChangeset for help on using the changeset viewer.