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

Last change on this file since 181 was 181, checked in by krille_n_@…, 12 years ago

Changes to all parts of the project:

  • Size optimizations.
  • Added a define (EXCLUDE_FROM_XTIDECFG) to exclude unused library code from XTIDECFG.
  • Tried to minimize time spent with interrupts disabled.
  • Some minor attempts to improve speed (reordering instructions etc).
  • Tried to improve readability, did some cleanup and fixed some errors in comments.
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
[181]33    %define DisplayWithHandlerInBXandUserDataInDXAX         MenuInit_DisplayMenuWithHandlerInBXandUserDataInDXAX
34    ;%define Close                                          MenuInit_CloseMenuWindow                ; Special case in CALL_MENU_LIBRARY
35    %define RefreshWindow                                   MenuInit_RefreshMenuWindow
[41]36
[181]37    ;%define SetUserDataFromDSSI                            MenuInit_SetUserDataFromDSSI            ; Special case in CALL_MENU_LIBRARY
38    ;%define GetUserDataToDSSI                              MenuInit_GetUserDataToDSSI              ; Special case in CALL_MENU_LIBRARY
[41]39
[181]40    ;%define SetTitleHeightFromAL                           MenuInit_SetTitleHeightFromAL           ; Special case in CALL_MENU_LIBRARY
41    %define ClearTitleArea                                  MenuText_ClearTitleArea
42    %define RefreshTitle                                    MenuText_RefreshTitle
[41]43
[181]44    %define HighlightItemFromAX                             MenuInit_HighlightItemFromAX
45    ;%define SetTotalItemsFromAX                            MenuInit_SetTotalItemsFromAX            ; Special case in CALL_MENU_LIBRARY
46    %define RefreshItemFromAX                               MenuText_RefreshItemFromAX
[41]47
[181]48    ;%define SetInformationHeightFromAL                     MenuInit_SetInformationHeightFromAL     ; Special case in CALL_MENU_LIBRARY
49    %define ClearInformationArea                            MenuText_ClearInformationArea
50    %define RefreshInformation                              MenuText_RefreshInformation
[41]51
[181]52    %define StartSelectionTimeoutWithTicksInAX              MenuTime_StartSelectionTimeoutWithTicksInAX
[41]53
54%ifdef INCLUDE_MENU_DIALOGS
[181]55    %define StartProgressTaskWithIoInDSSIandParamInDXAX     DialogProgress_StartProgressTaskWithIoInDSSIandParamInDXAX
56    %define SetProgressValueFromAX                          DialogProgress_SetProgressValueFromAX
[41]57
[181]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.