source: xtideuniversalbios/trunk/Assembly_Library/Src/Menu/Menu.asm @ 177

Last change on this file since 177 was 177, checked in by gregli@…, 13 years ago

Optimiztion, replaced the jump tables for MENU_LIB and DISPLAY_LIB with direct jump offsets

File size: 2.6 KB
RevLine 
[41]1; Project name  :   Assembly Library
2; Description   :   Menu Library functions for CALL_MENU_LIBRARY macro
3;                   that users should use to make library call.
4
5; Section containing code
6SECTION .text
7
8;--------------------------------------------------------------------
9; MenuFunctionFromDI
10;   Parameters:
11;       DI:     Function to call (MENU_LIB.functionName)
12;       BP:     Menu handle
13;       Others: Depends on function to call
14;   Returns:
15;       Depends on function to call
16;   Corrupts registers:
17;       AX (unless used as a return register), DI
18;--------------------------------------------------------------------
19ALIGN JUMP_ALIGN
20Menu_FunctionFromDI:
21    push    si
22    push    dx
23    push    cx
24    push    bx
[177]25    call    di
[41]26    pop     bx
27    pop     cx
28    pop     dx
29    pop     si
30    ret
31
32
[177]33%define DisplayWithHandlerInBXandUserDataInDXAX     MenuInit_DisplayMenuWithHandlerInBXandUserDataInDXAX
34;%define Close                                      MenuInit_CloseMenuWindow                ; Special case in CALL_MENU_LIBRARY
35%define RefreshWindow                       MenuInit_RefreshMenuWindow
[41]36
[177]37;%define SetUserDataFromDSSI                MenuInit_SetUserDataFromDSSI            ; Special case in CALL_MENU_LIBRARY
38;%define GetUserDataToDSSI                  MenuInit_GetUserDataToDSSI              ; Special case in CALL_MENU_LIBRARY
[41]39
[177]40;%define SetTitleHeightFromAL               MenuInit_SetTitleHeightFromAL           ; Special case in CALL_MENU_LIBRARY
41%define ClearTitleArea                      MenuText_ClearTitleArea
42%define RefreshTitle                        MenuText_RefreshTitle
[41]43
[177]44%define HighlightItemFromAX                 MenuInit_HighlightItemFromAX
45;%define SetTotalItemsFromAX                MenuInit_SetTotalItemsFromAX            ; Special case in CALL_MENU_LIBRARY
46%define RefreshItemFromAX                   MenuText_RefreshItemFromAX
[41]47
[177]48;%define SetInformationHeightFromAL                     MenuInit_SetInformationHeightFromAL     ; Special case in CALL_MENU_LIBRARY
49%define ClearInformationArea                            MenuText_ClearInformationArea
50%define RefreshInformation                              MenuText_RefreshInformation
[41]51
[177]52%define StartSelectionTimeoutWithTicksInAX              MenuTime_StartSelectionTimeoutWithTicksInAX
[41]53
54%ifdef INCLUDE_MENU_DIALOGS
[177]55%define StartProgressTaskWithIoInDSSIandParamInDXAX     DialogProgress_StartProgressTaskWithIoInDSSIandParamInDXAX
56%define SetProgressValueFromAX                          DialogProgress_SetProgressValueFromAX
[41]57
[177]58%define DisplayMessageWithInputInDSSI                   DialogMessage_DisplayMessageWithInputInDSSI
59%define GetSelectionToAXwithInputInDSSI                 DialogSelection_GetSelectionToAXwithInputInDSSI
60%define GetWordWithIoInDSSI                             DialogWord_GetWordWithIoInDSSI
61%define GetStringWithIoInDSSI                           DialogString_GetStringWithIoInDSSI
62%define GetFileNameWithIoInDSSI                         DialogFile_GetFileNameWithIoInDSSI
63%define GetDriveWithIoInDSSI                            DialogDrive_GetDriveWithIoInDSSI
[41]64%endif
[177]65
Note: See TracBrowser for help on using the repository browser.