- Timestamp:
- Jul 22, 2018, 6:12:12 AM (6 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc
r599 r600 58 58 ; Bit defines for HOTKEYVARS.bFlags 59 59 FLG_HOTKEY_HD_FIRST EQU (1<<0) ; First try to boot from HDD, then FDD 60 FLG_HOTKEY_UPDATING EQU (1<<1) ; Hotkeybar update in progress61 60 62 61 %endif ; MODULE_HOTKEYS -
trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm
r599 r600 47 47 push ax 48 48 %endif 49 sti ; Enable interrupts (is this really necessary? Do we lose key inputs if we keep interrupts disabled?) 50 ; There would be no need for FLG_HOTKEY_UPDATING if we can keep interrupts disabled during whole update. 49 50 ;!!! Keep interrupts disabled so there won't be another 51 ; timer tick call before we are ready 51 52 52 53 LOAD_BDA_SEGMENT_TO es, ax … … 57 58 call far [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler] 58 59 59 ; Do not start updating if update is already in progress (do we need this on AT systems?)60 test BYTE [es:B OOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_UPDATING60 ; Update Hotkeybar (process key input and draw) every fourth tick 61 test BYTE [es:BDA.dwTimerTicks], 11b 61 62 jnz SHORT .ReturnFromHandler 62 63 ; Update Hotkeybar (process key input and draw)64 %ifndef USE_AT ; Ease XT systems a bit by updating every other timer tick65 call TimerTicks_ReadFromBdaToAX66 shr ax, 167 jnc SHORT .ReturnFromHandler68 %endif69 or BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_UPDATING70 63 call UpdateDuringDriveDetection 71 and BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], ~FLG_HOTKEY_UPDATING72 64 73 65 .ReturnFromHandler: … … 150 142 ; Clear CH if floppy drive is selected for boot 151 143 mov ch, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags] 152 and ch, FLG_HOTKEY_HD_FIRST144 ;and ch, FLG_HOTKEY_HD_FIRST; Not needed until more flags added 153 145 call FormatDriveHotkeyString 154 146 … … 169 161 mov ah, ANGLE_QUOTE_RIGHT 170 162 mov cx, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wHddLetterAndFlags] ; Letter to CL, flags to CH 171 and ch, FLG_HOTKEY_HD_FIRST163 ;and ch, FLG_HOTKEY_HD_FIRST ; Not needed until more flags added 172 164 xor ch, FLG_HOTKEY_HD_FIRST ; Clear CH if HD is selected for boot, set otherwise 173 165 mov di, g_szHDD … … 573 565 HotkeyBar_GetBootDriveNumbersToDX: 574 566 mov dx, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wFddAndHddLetters] 567 568 ; HotkeyBar_GetBootDriveNumbersToDX is called when all drives are detected and 569 ; drive letters are known. 570 ; Replace unavailable hard drive letter with first hard drive. 571 ; If we have boot menu, it will be displayed instead. 572 %ifndef MODULE_BOOT_MENU 573 call BootVars_GetLetterForFirstHardDriveToAX 574 mov ah, al 575 add al, [es:BDA.bHDCount] ; AL now contains first unavailable HD letter 576 cmp dh, al ; Unavailable drive? 577 jb SHORT .ValidHardDriveLetterInDH 578 mov dh, ah ; Replace unavailable drive with first drive 579 .ValidHardDriveLetterInDH: 580 %endif 581 575 582 test BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_HD_FIRST 576 jnz .noflip583 jnz SHORT .noflip 577 584 xchg dl, dh 578 585 .noflip:
Note:
See TracChangeset
for help on using the changeset viewer.