Changeset 241 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm
- Timestamp:
- Feb 9, 2012, 11:08:59 AM (13 years ago)
- google:author:
- gregli@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm
r212 r241 25 25 26 26 MENUEVENT_InitializeMenuinitFromDSSI equ (BootMenuEvent_Handler.InitializeMenuinitFromDSSI - BootMenuEvent_Handler) 27 MENUEVENT_ExitMenu equ (BootMenuEvent_ Handler.EventCompleted - BootMenuEvent_Handler)27 MENUEVENT_ExitMenu equ (BootMenuEvent_EventCompleted - BootMenuEvent_Handler) 28 28 MENUEVENT_ItemHighlightedFromCX equ (BootMenuEvent_Handler.ItemHighlightedFromCX - BootMenuEvent_Handler) 29 29 MENUEVENT_ItemSelectedFromCX equ (BootMenuEvent_Handler.ItemSelectedFromCX - BootMenuEvent_Handler) 30 30 MENUEVENT_KeyStrokeInAX equ (BootMenuEvent_Handler.KeyStrokeInAX - BootMenuEvent_Handler) 31 31 MENUEVENT_RefreshTitle equ (BootMenuPrint_TitleStrings - BootMenuEvent_Handler) 32 MENUEVENT_RefreshInformation equ (BootMenu Event_Handler.RefreshInformation - BootMenuEvent_Handler)33 MENUEVENT_RefreshItemFromCX equ (BootMenu Event_Handler.RefreshItemFromCX- BootMenuEvent_Handler)32 MENUEVENT_RefreshInformation equ (BootMenuPrint_RefreshInformation - BootMenuEvent_Handler) 33 MENUEVENT_RefreshItemFromCX equ (BootMenuPrint_RefreshItem - BootMenuEvent_Handler) 34 34 ; 35 35 ; Note that there is no entry for MENUEVENT_IdleProcessing. If MENUEVENT_IDLEPROCESSING_ENABLE is not %defined, … … 49 49 ALIGN WORD_ALIGN 50 50 .rgfnEventSpecificHandlers: 51 dw .InitializeMenuinitFromDSSI ; MENUEVENT.InitializeMenuinitFromDSSI52 dw .EventCompleted; MENUEVENT.ExitMenu53 dw .EventNotHandled ; MENUEVENT.IdleProcessing54 dw .ItemHighlightedFromCX ; MENUEVENT.ItemHighlightedFromCX55 dw .ItemSelectedFromCX ; MENUEVENT.ItemSelectedFromCX56 dw .KeyStrokeInAX ; MENUEVENT.KeyStrokeInAX57 dw BootMenuPrint_TitleStrings ; MENUEVENT.RefreshTitle58 dw .RefreshInformation; MENUEVENT.RefreshInformation59 dw .RefreshItemFromCX; MENUEVENT.RefreshItemFromCX51 dw .InitializeMenuinitFromDSSI ; MENUEVENT.InitializeMenuinitFromDSSI 52 dw BootMenuEvent_EventCompleted ; MENUEVENT.ExitMenu 53 dw .EventNotHandled ; MENUEVENT.IdleProcessing 54 dw .ItemHighlightedFromCX ; MENUEVENT.ItemHighlightedFromCX 55 dw .ItemSelectedFromCX ; MENUEVENT.ItemSelectedFromCX 56 dw .KeyStrokeInAX ; MENUEVENT.KeyStrokeInAX 57 dw BootMenuPrint_TitleStrings ; MENUEVENT.RefreshTitle 58 dw BootMenuPrint_RefreshInformation ; MENUEVENT.RefreshInformation 59 dw BootMenuPrint_RefreshItem ; MENUEVENT.RefreshItemFromCX 60 60 61 61 %endif … … 103 103 .ItemHighlightedFromCX: 104 104 push cx 105 call RamVars_GetSegmentToDS105 call BootMenu_GetDriveToDXforMenuitemInCX_And_RamVars_GetSegmentToDS 106 106 call DriveXlate_Reset 107 call BootMenu_GetDriveToDXforMenuitemInCX108 107 call DriveXlate_SetDriveToSwap 109 108 … … 134 133 call BootMenu_GetMenuitemToAXforAsciiHotkeyInAL 135 134 cmp ax, [bp+MENUINIT.wItems] 136 jae SHORT .EventCompleted ; Invalid key135 jae SHORT BootMenuEvent_EventCompleted ; Invalid key 137 136 CALL_MENU_LIBRARY HighlightItemFromAX 138 137 ; Fall to .ItemSelectedFromCX … … 144 143 .ItemSelectedFromCX: 145 144 CALL_MENU_LIBRARY Close 146 .EventCompleted: 145 146 BootMenuEvent_EventCompleted: 147 147 stc 148 148 ret 149 149 150 151 ; Parameters:152 ; CX: Index of item to refresh153 ; Cursor has been positioned to the beginning of item line154 ALIGN JUMP_ALIGN155 .RefreshItemFromCX:156 xor bl, bl ; will result in SF being clear in .RefreshItemOrInformation...157 SKIP2B dx ; dx corrupted below by BootMenu_GetDriveToDXforMenuitemInCX158 ; Fall to .RefreshInformation159 160 ; Parameters:161 ; CX: Index of highlighted item162 ; Cursor has been positioned to the beginning of first line163 ; NO ALIGN - in the shadow of SKIP2B164 .RefreshInformation:165 mov bl,040h ; will result in SF being set in .RefreshItemOrInformation...166 ; Fall to .RefreshItemOrInformationWithJumpTableInCSBX167 168 ;--------------------------------------------------------------------169 ; RefreshItemOrInformationWithJumpTableInCSBX170 ; Parameters:171 ; CX: Index of selected menuitem172 ; CS:BX: Ptr to ITEM_TYPE_REFRESH jump table173 ; Returns:174 ; CF: set since event processed175 ;--------------------------------------------------------------------176 .RefreshItemOrInformationWithJumpTableInCSBX:177 cmp cl, NO_ITEM_HIGHLIGHTED178 je SHORT .EventCompleted179 180 call RamVars_GetSegmentToDS181 call BootMenu_GetDriveToDXforMenuitemInCX182 or bl,dl ; or drive number with bit from .RefreshItemFromCX or .RefreshInformation183 shl bl,1 ; drive letter high order bit to CF, Item/Information bit to SF184 jc SHORT BootMenuPrint_HardDiskMenuitem185 ; fall through to BootMenuEvent_FallThroughToFloppyMenuitem186 187 ;;;188 ;;; Fall-through (to BootMenuPrint_FloppyMenuitem)189 ;;; (checked at assembler time with the code after BootMenuPrint_FloppyMenuitem)190 ;;;191 ALIGN JUMP_ALIGN192 BootMenuEvent_FallThroughToFloppyMenuitem:193 ; fall through to BootMenuPrint_FloppyMenuitem
Note:
See TracChangeset
for help on using the changeset viewer.