Changeset 604 in xtideuniversalbios


Ignore:
Timestamp:
Dec 15, 2020, 10:17:38 PM (5 months ago)
Author:
krille_n_
Message:

Changes:

  • HotkeyBar_TimerTickHandler now uses interrupt 08h instead of interrupt 1Ch and that seems to have finally fixed the problem with hangs in MODULE_HOTKEYS from r599.
Location:
trunk/XTIDE_Universal_BIOS/Src
Files:
2 edited

Legend:

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

    r603 r604  
    106106    cli
    107107    mov     ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler]
    108     mov     [es:BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4], ax
     108    mov     [es:BIOS_SYSTEM_TIMER_TICK_INTERRUPT_08h*4], ax
    109109    mov     ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler+2]
    110     mov     [es:BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4+2], ax
     110    mov     [es:BIOS_SYSTEM_TIMER_TICK_INTERRUPT_08h*4+2], ax
    111111    sti
    112112%endif
  • trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm

    r603 r604  
    2323
    2424;--------------------------------------------------------------------
    25 ; Handler for INT 1Ch User Timer Tick.
     25; Handler for INT 08h System Timer Tick.
    2626; Reads key presses and draws hotkey bar.
    2727;
     
    4040    push    ax
    4141%endif
    42 
    43     ;!!! Keep interrupts disabled so there won't be another
    44     ; timer tick call before we are ready
    45 
    4642    LOAD_BDA_SEGMENT_TO es, ax
    4743
     
    123119
    124120    ; Move cursor to top left corner (0, 0)
    125     xor     ax, ax
     121    mov     ax, es
    126122    call    HotkeyBar_SetCursorCoordinatesFromAX
    127123    ; Fall to .PrintFloppyDriveHotkeys
     
    265261; FormatDriveHotkeyString
    266262;   Parameters:
    267 ;       CH:         Zero if letter in CL is selected for boot
    268 ;       CL:         Drive letter hotkey from BOOTVARS
    269 ;       AL:         First character for drive key string
    270 ;       AH:         Second character for drive key string (ANGLE_QUOTE_RIGHT)
    271 ;       SI:         Offset to hotkey description string
    272 ;       ES:         BDA segment (zero)
     263;       CH:     Zero if letter in CL is selected for boot
     264;       CL:     Drive letter hotkey from BOOTVARS
     265;       AL:     First character for drive key string
     266;       AH:     Second character for drive key string (ANGLE_QUOTE_RIGHT)
     267;       SI:     Offset to hotkey description string
     268;       ES:     BDA segment (zero)
    273269;   Returns:
    274270;       Nothing
     
    292288; FormatFunctionHotkeyString
    293289;   Parameters:
    294 ;       AL:         Scancode of function key, to know which if any to show as selected
    295 ;                   Later replaced with an 'F' for the call to the output routine
    296 ;       AH:         Second character for drive key string
    297 ;       SI:         Offset to hotkey description string
    298 ;       ES:         BDA segment (zero)
     290;       AL:     Scancode of function key, to know which if any to show as selected
     291;               Later replaced with an 'F' for the call to the output routine
     292;       AH:     Second character for drive key string
     293;       SI:     Offset to hotkey description string
     294;       ES:     BDA segment (zero)
    299295;   Returns:
    300296;       Nothing
     
    350346; PushHotkeyParamsAndFormat
    351347;   Parameters:
    352 ;       AL:         First character
    353 ;       AH:         Second character
    354 ;       DX:         Description Attribute
    355 ;       CX:         Description string parameter
    356 ;       CS:DI:      Description string
     348;       AL:     First character
     349;       AH:     Second character
     350;       DX:     Description Attribute
     351;       CX:     Description string parameter
     352;       CS:DI:  Description string
    357353;   Returns:
    358354;       Nothing
     
    413409    pop     ds
    414410
    415     ; Store system 1Ch Timer Tick handler and install our hotkeybar handler
    416     mov     ax, [BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4]
     411    ; Store System Timer Tick handler and install our hotkeybar handler
     412    mov     ax, [BIOS_SYSTEM_TIMER_TICK_INTERRUPT_08h*4]
    417413    mov     [BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler], ax
    418     mov     ax, [BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4+2]
     414    mov     ax, [BIOS_SYSTEM_TIMER_TICK_INTERRUPT_08h*4+2]
    419415    mov     [BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler+2], ax
    420     mov     al, BIOS_USER_TIMER_TICK_INTERRUPT_1Ch
     416    mov     al, BIOS_SYSTEM_TIMER_TICK_INTERRUPT_08h
    421417    mov     si, HotkeyBar_TimerTickHandler
    422418    call    Interrupts_InstallHandlerToVectorInALFromCSSI
     
    424420    ; Store time when hotkeybar is displayed
    425421    ; (it will be displayed after initialization is complete)
    426     call    TimerTicks_ReadFromBdaToAX
     422    mov     ax, [BDA.dwTimerTicks]
    427423    mov     [BOOTVARS.hotkeyVars+HOTKEYVARS.wTimeWhenDisplayed], ax
    428424
Note: See TracChangeset for help on using the changeset viewer.