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

Last change on this file since 364 was 181, checked in by krille_n_@…, 13 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.