Changeset 413 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS


Ignore:
Timestamp:
Apr 28, 2012, 4:23:30 PM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Hotkeys are now displayed at least 5 seconds.
  • Optimized ROM initialization routine.
Location:
trunk/XTIDE_Universal_BIOS
Files:
6 edited

Legend:

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

    r397 r413  
    4747%ifdef MODULE_HOTKEYS
    4848struc HOTKEYVARS
     49    .wTimeToClose       resb    2       ; Earliest system time when Hotkey Bar can be closed
    4950    .bScancode          resb    1       ; Function hotkey scancode
    5051    .bFlags             resb    1       ; Must be just before .bHddLetter!
  • trunk/XTIDE_Universal_BIOS/Inc/HotkeyBar.inc

    r392 r413  
    2121%define HOTKEYBAR_INC
    2222
     23MIN_TIME_TO_DISPLAY_HOTKEY_BAR          EQU (5000/55)   ; 5000 ms
     24
     25
    2326; Hotkeys
    2427BOOT_MENU_HOTKEY_SCANCODE               EQU 3Ch ; F2
  • trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc

    r400 r413  
    9595                            resb    1
    9696
     97%ifdef MODULE_EBIOS
    9798    ; Parameters for 48-bit LBA
    9899    .bLbaLowExt             resb    1   ; LBA48 31...24
     
    100101    .bLbaMiddleExt          resb    1   ; LBA48 39...32
    101102    .bLbaHighExt            resb    1   ; LBA48 47...40
    102 
     103%endif
    103104    .intpack                resb    INTPACK_size
    104105endstruc
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm

    r376 r413  
    148148    db      COMMAND_READ_SECTORS_EXT    ; 01b, LBA48 single sector
    149149    db      COMMAND_READ_MULTIPLE       ; 10b, CHS or LBA28 block mode
     150%ifdef MODULE_EBIOS
    150151    db      COMMAND_READ_MULTIPLE_EXT   ; 11b, LBA48 block mode
     152%endif
    151153
    152154g_rgbWriteCommandLookup:
     
    154156    db      COMMAND_WRITE_SECTORS_EXT
    155157    db      COMMAND_WRITE_MULTIPLE
     158%ifdef MODULE_EBIOS
    156159    db      COMMAND_WRITE_MULTIPLE_EXT
     160%endif
    157161
    158162g_rgbVerifyCommandLookup:
     
    160164    db      COMMAND_VERIFY_SECTORS_EXT
    161165    db      COMMAND_VERIFY_SECTORS
     166%ifdef MODULE_EBIOS
    162167    db      COMMAND_VERIFY_SECTORS_EXT
     168%endif
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r398 r413  
    7777;       DS:     RAMVARS segment
    7878;--------------------------------------------------------------------
    79     call    Initialize_AndDetectDrives 
     79%ifdef MODULE_HOTKEYS
     80    call    TimerTicks_ReadFromBdaToAX
     81    add     ax, MIN_TIME_TO_DISPLAY_HOTKEY_BAR
     82    mov     [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wTimeToClose], ax
     83%endif
     84
     85    call    Initialize_AndDetectDrives
     86
     87%ifdef MODULE_HOTKEYS
     88.WaitUntilTimeToCloseHotkeyBar:
     89    call    TimerTicks_ReadFromBdaToAX
     90    cmp     ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wTimeToClose]
     91    jb      SHORT .WaitUntilTimeToCloseHotkeyBar
     92%endif
    8093    ; Fall to SelectDriveToBootFrom
    8194
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm

    r392 r413  
    3333;       Nothing
    3434;--------------------------------------------------------------------
    35 Initialize_FromMainBiosRomSearch:           ; unused entrypoint ok
    36     pushf
    37     push    es
     35Initialize_FromMainBiosRomSearch:       ; unused entrypoint ok
     36    pushf                               ; To store IF
    3837    push    ds
    39     ePUSHA
    4038
    41     LOAD_BDA_SEGMENT_TO es, ax
    42     sti                                     ; Enable interrupts
    43     test    BYTE [es:BDA.bKBFlgs1], (1<<2)  ; Clears ZF if CTRL is held down
     39%ifndef USE_186
     40    push    ax
     41    LOAD_BDA_SEGMENT_TO ds, ax
     42%else
     43    push    BYTE 0
     44    pop     ds
     45%endif
     46
     47    sti                                 ; Enable interrupts for keystrokes
     48    test    BYTE [BDA.bKBFlgs1], (1<<2) ; Clears ZF if CTRL is held down
    4449    jnz     SHORT .SkipRomInitialization
    4550
    4651    ; Install INT 19h handler (boot loader) where drives are detected
    47     mov     al, BIOS_BOOT_LOADER_INTERRUPT_19h
    48     mov     si, Int19h_BootLoaderHandler
    49     call    Interrupts_InstallHandlerToVectorInALFromCSSI
     52    mov     WORD [BIOS_BOOT_LOADER_INTERRUPT_19h*4], Int19h_BootLoaderHandler
     53    mov     [BIOS_BOOT_LOADER_INTERRUPT_19h*4+2], cs
    5054
    5155.SkipRomInitialization:
    52     ePOPA
     56%ifndef USE_186
     57    pop     ax
     58%endif
    5359    pop     ds
    54     pop     es
    5560    popf
    5661    retf
     
    6671;       DS:     RAMVARS segment
    6772;   Corrupts registers:
    68 ;       All
     73;       All, except ES
    6974;--------------------------------------------------------------------
    7075Initialize_AndDetectDrives:
Note: See TracChangeset for help on using the changeset viewer.