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

Last change on this file since 104 was 104, checked in by aitotat, 13 years ago

Changes to Assembly Library:

  • Some more optimizations.
  • Moved macros.inc from XTIDE Universal BIOS to Assembly Library.
File size: 2.9 KB
Line 
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
25    call    [cs:di+.rgfnMenuLibraryFunctions]
26    pop     bx
27    pop     cx
28    pop     dx
29    pop     si
30    ret
31
32
33ALIGN WORD_ALIGN
34.rgfnMenuLibraryFunctions:
35istruc MENU_LIB
36    at  MENU_LIB.DisplayWithHandlerInBXandUserDataInDXAX,   dw  MenuInit_DisplayMenuWithHandlerInBXandUserDataInDXAX
37    ;at MENU_LIB.Close,                         dw  MenuInit_CloseMenuWindow                ; Special case in CALL_MENU_LIBRARY
38    at  MENU_LIB.RefreshWindow,                 dw  MenuInit_RefreshMenuWindow
39
40    ;at MENU_LIB.SetUserDataFromDSSI,           dw  MenuInit_SetUserDataFromDSSI            ; Special case in CALL_MENU_LIBRARY
41    ;at MENU_LIB.GetUserDataToDSSI,             dw  MenuInit_GetUserDataToDSSI              ; Special case in CALL_MENU_LIBRARY
42
43    ;at MENU_LIB.SetTitleHeightFromAL,          dw  MenuInit_SetTitleHeightFromAL           ; Special case in CALL_MENU_LIBRARY
44    at  MENU_LIB.ClearTitleArea,                dw  MenuText_ClearTitleArea
45    at  MENU_LIB.RefreshTitle,                  dw  MenuText_RefreshTitle
46
47    at  MENU_LIB.HighlightItemFromAX,           dw  MenuInit_HighlightItemFromAX
48    ;at MENU_LIB.SetTotalItemsFromAX,           dw  MenuInit_SetTotalItemsFromAX            ; Special case in CALL_MENU_LIBRARY
49    at  MENU_LIB.RefreshItemFromAX,             dw  MenuText_RefreshItemFromAX
50
51    ;at MENU_LIB.SetInformationHeightFromAL,    dw  MenuInit_SetInformationHeightFromAL     ; Special case in CALL_MENU_LIBRARY
52    at  MENU_LIB.ClearInformationArea,          dw  MenuText_ClearInformationArea
53    at  MENU_LIB.RefreshInformation,            dw  MenuText_RefreshInformation
54
55    at  MENU_LIB.StartSelectionTimeoutWithTicksInAX,    dw  MenuTime_StartSelectionTimeoutWithTicksInAX
56
57%ifdef INCLUDE_MENU_DIALOGS
58    at  MENU_LIB.StartProgressTaskWithIoInDSSIandParamInDXAX,   dw  DialogProgress_StartProgressTaskWithIoInDSSIandParamInDXAX
59    at  MENU_LIB.SetProgressValueFromAX,                        dw  DialogProgress_SetProgressValueFromAX
60
61    at  MENU_LIB.DisplayMessageWithInputInDSSI,                 dw  DialogMessage_DisplayMessageWithInputInDSSI
62    at  MENU_LIB.GetSelectionToAXwithInputInDSSI,               dw  DialogSelection_GetSelectionToAXwithInputInDSSI
63    at  MENU_LIB.GetWordWithIoInDSSI,                           dw  DialogWord_GetWordWithIoInDSSI
64    at  MENU_LIB.GetStringWithIoInDSSI,                         dw  DialogString_GetStringWithIoInDSSI
65    at  MENU_LIB.GetFileNameWithIoInDSSI,                       dw  DialogFile_GetFileNameWithIoInDSSI
66    at  MENU_LIB.GetDriveWithIoInDSSI,                          dw  DialogDrive_GetDriveWithIoInDSSI
67%endif
68iend
Note: See TracBrowser for help on using the repository browser.