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

Last change on this file since 108 was 104, checked in by Tomi Tilli, 14 years ago

Changes to Assembly Library:

  • Some more optimizations.
  • Moved macros.inc from XTIDE Universal BIOS to Assembly Library.
File size: 2.9 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
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
[48]44 at MENU_LIB.ClearTitleArea, dw MenuText_ClearTitleArea
[41]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
[48]52 at MENU_LIB.ClearInformationArea, dw MenuText_ClearInformationArea
[41]53 at MENU_LIB.RefreshInformation, dw MenuText_RefreshInformation
54
[60]55 at MENU_LIB.StartSelectionTimeoutWithTicksInAX, dw MenuTime_StartSelectionTimeoutWithTicksInAX
[41]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
[54]66 at MENU_LIB.GetDriveWithIoInDSSI, dw DialogDrive_GetDriveWithIoInDSSI
[41]67%endif
68iend
Note: See TracBrowser for help on using the repository browser.