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


Ignore:
Timestamp:
Dec 21, 2012, 8:44:25 AM (11 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Separated MODULE_8BIT_IDE into the basic part used by XTIDE rev 1 and rev 2 which is PIO based, and MODULE_8BIT_IDE_ADVANCED for JRIDE and XTCF support which requires memory mapping and/or DMA. This allows for creating an 8KB image with boot menu support (but no hotkeys) for the XTIDE rev 1. Cleaned up how we reset the drive translation information, ensuring it is properly set between boot attempt on a primary and secondary drive - as a result we clean it when needed, rather than trying to always keep it clean. Also fixed translation bugs in int13h.asm where I had previously missed converting some MODULE_HOTKEYS into MODULE_DRIVEXLATE.

Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers
Files:
5 edited

Legend:

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

    r471 r493  
    9393    call    RamVars_GetSegmentToDS
    9494
    95 %ifdef MODULE_HOTKEYS
     95%ifdef MODULE_DRIVEXLATE
    9696    call    DriveXlate_ToOrBack
    9797    mov     [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl
     
    179179    mov     [bp+IDEPACK.intpack+INTPACK.si], si
    180180    mov     [bp+IDEPACK.intpack+INTPACK.bx], bx
    181 %ifdef MODULE_HOTKEYS
     181%ifdef MODULE_DRIVEXLATE
    182182    mov     [bp+IDEPACK.intpack+INTPACK.dh], dh
    183183%else
     
    190190    call    RamVars_GetSegmentToDS
    191191
    192 %ifdef MODULE_HOTKEYS
     192%ifdef MODULE_DRIVEXLATE
    193193    cmp     dl, [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv]    ; DL is still drive number?
    194194    je      SHORT .ExchangeInt13hHandlers
     
    395395    dw  UnsupportedFunction                         ; 1Ch, ESDI Special Functions (PS/2)
    396396    dw  UnsupportedFunction                         ; 1Dh,
    397 %ifdef MODULE_8BIT_IDE
     397%ifdef MODULE_8BIT_IDE_ADVANCED
    398398    dw  AH1Eh_HandlerForXTCFfeatures                ; 1Eh, Lo-tech XT-CF features (XTIDE Universal BIOS)
    399399%else
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH23h_HFeatures.asm

    r474 r493  
    7676
    7777
    78 %ifdef MODULE_8BIT_IDE
    7978;--------------------------------------------------------------------
    8079; AH23h_Enable8bitPioMode
     
    8887;       AL, BX, CX, DX, SI
    8988;--------------------------------------------------------------------
     89%ifdef MODULE_8BIT_IDE
    9090AH23h_Enable8bitPioMode:
    9191    mov     si, FEATURE_ENABLE_8BIT_PIO_TRANSFER_MODE
    9292    jmp     SHORT AH23h_SetControllerFeatures
    93 %endif ; MODULE_8BIT_IDE
     93%endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH24h_HSetBlocks.asm

    r491 r493  
    5959;--------------------------------------------------------------------
    6060AH24h_SetBlockSize:
    61 %ifdef MODULE_8BIT_IDE
     61%ifdef MODULE_8BIT_IDE_ADVANCED
    6262    ; XT-CF does not support largest block size in DMA mode.
    6363    cmp     al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
     
    6666    je      SHORT AH1Eh_LoadInvalidCommandToAHandSetCF
    6767.NoNeedToLimitBlockSize:
    68 %endif ; MODULE_8BIT_IDE
     68%endif ; MODULE_8BIT_IDE_ADVANCED
    6969
    7070    push    bx
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r480 r493  
    107107
    108108;;; Set XT-CF mode
    109 %ifdef MODULE_8BIT_IDE
     109%ifdef MODULE_8BIT_IDE_ADVANCED
    110110    call    AccessDPT_GetIdevarsToCSBX
    111111    mov     al, [cs:bx+IDEVARS.bXTCFcontrolRegister]
     
    113113    STORE_ERROR_FLAG_TO_DPT     FLG_INITERROR_FAILED_TO_SET_XTCF_MODE
    114114.DoNotSetXTCFmode:
    115 
    116 
     115%endif  ; MODULE_8BIT_IDE_ADVANCED
     116
     117%ifdef MODULE_8BIT_IDE
    117118;;; Set 8-bit PIO mode
    118119    call    AH9h_Enable8bitModeForDevice8bitAta
     
    266267
    267268
    268 %ifdef MODULE_8BIT_IDE
     269%ifdef MODULE_8BIT_IDE_ADVANCED
    269270;--------------------------------------------------------------------
    270271; AH9h_SetModeFromALtoXTCF
     
    284285    jne     SHORT IgnoreInvalidCommandError
    285286    jmp     AH1Eh_ChangeXTCFmodeBasedOnControlRegisterInAL
    286 
    287 
     287%endif ; MODULE_8BIT_IDE_ADVANCED
     288
     289%ifdef MODULE_8BIT_IDE
    288290;--------------------------------------------------------------------
    289291; AH9h_Enable8bitModeForDevice8bitAta
     
    302304    jne     SHORT IgnoreInvalidCommandError
    303305    jmp     AH23h_Enable8bitPioMode
    304 %endif ; MODULE_8BIT_IDE
     306%endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r492 r493  
    121121    call    HotkeyBar_ScanHotkeysFromKeyBufferAndStoreToBootvars       
    122122    cmp     al, ROM_BOOT_HOTKEY_SCANCODE
    123     jz      JumpToBootSector_or_RomBoot         ; CF clear so ROM boot
     123    jz      .RomBoot                            ; CF clear so ROM boot
    124124%ifdef MODULE_BOOT_MENU
    125125    cmp     al, BOOT_MENU_HOTKEY_SCANCODE
     
    135135.BootMenu:     
    136136    call    BootMenu_DisplayAndReturnDriveInDLRomBootClearCF
    137     jnc     JumpToBootSector_or_RomBoot         ; CF clear so ROM boot
     137    jnc     .RomBoot                            ; CF clear so ROM boot
    138138
    139139    mov     dh, dl                              ; Setup for secondary drive
     
    158158%endif
    159159
    160 %ifndef MODULE_BOOT_MENU
    161     clc     ;  fall through with flag for ROM boot.  Boot Menu goes back to menu and doesn't fall through.
    162 %endif     
     160.RomBoot:
     161%ifdef MODULE_DRIVEXLATE
     162    call    DriveXlate_Reset                    ; Clean up any drive mappings before Rom Boot
     163%endif
     164    clc     
     165    ;; fall through to JumpToBootSector_or_RomBoot
    163166
    164167;--------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.