source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS_Configurator_v2/Inc/MenuStructs.inc @ 233

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

Serial Port: split single byte port and baud into two bytes, taking advantage of the two bytes in DPT_SERIAL, which supports more serial baud rates and in particular fixed a bug where a 4x client machine couldn't talk to a 115.2K server machine. This is a wide change, touching lots of files, but most are shallow changes. DetectPrint.asm took the most significant changes, now it calculates the baud rate to display instead of using characters provided by the Configurator. The Configurator now has a new menu flag, FLG_MENUITEM_CHOICESTRINGS, for specifying that values are not linear and they should be lookedup rather than indexed. Finally, another important bug fixed here is that in some error cases, the serial port code could get into an infinite loop waiting ont the hardware; now it has a timeout.

File size: 2.6 KB
Line 
1; Project name  :   XTIDE Universal BIOS Configurator v2
2; Description   :   Menu page and item structs.
3%ifndef MENU_STRUCTS_INC
4%define MENU_STRUCTS_INC
5
6struc MENUPAGE
7    .fnEnter            resb    2   ; Function to initialize MENUPAGE
8    .fnBack             resb    2   ; Function to initialize previous MENUPAGE
9    .wMenuitems         resb    2   ; Number of MENUITEM structs
10    .rgMenuitem:                    ; All MENUITEM structs in this MENUPAGE
11endstruc
12
13struc MENUITEM
14    .fnActivate         resb    2   ; Offset to item activation function
15    .fnFormatValue      resb    2   ; Offset to item value formatting function
16
17    .szName             resb    2   ; Offset to item name string
18    .szQuickInfo        resb    2   ; Offset to item quick information string
19    .szHelp             resb    2   ; Offset to item help string
20
21    .bFlags             resb    1   ; Item flags
22    .bType              resb    1   ; Item type
23    .itemValue          resb    ITEM_VALUE_size     ; ITEM_VALUE for automated item handling
24endstruc
25
26; Bit defines for MENUITEM.bFlags
27FLG_MENUITEM_VISIBLE        EQU (1<<0)  ; Item is visible
28FLG_MENUITEM_MODIFY_MENU    EQU (1<<1)  ; Item modifies visibility of other items
29FLG_MENUITEM_FLAGVALUE      EQU (1<<2)  ; Item value is single bit
30FLG_MENUITEM_BYTEVALUE      EQU (1<<3)  ; Item value is single byte
31FLG_MENUITEM_PROGRAMVAR     EQU (1<<4)  ; Item is for configuring program, not BIOS
32FLG_MENUITEM_CHOICESTRINGS  EQU (1<<5)  ; ChoiceToStringLookup table is 1-1 with ChoiceToValueLookup table,
33                                        ; ChoiceToStringLookup table must also NULL terminated
34
35; Values for MENUITEM.bType
36TYPE_MENUITEM_PAGEBACK      EQU (0<<1)  ; Item returns to previous MENUPAGE
37TYPE_MENUITEM_PAGENEXT      EQU (1<<1)  ; Item changes to next MENUPAGE
38TYPE_MENUITEM_ACTION        EQU (2<<1)  ; Non-configurable item
39TYPE_MENUITEM_MULTICHOICE   EQU (3<<1)  ; Item with multiple predefined choices
40TYPE_MENUITEM_UNSIGNED      EQU (4<<1)  ; Menuitem with user inputted unsigned decimal value
41TYPE_MENUITEM_HEX           EQU (5<<1)  ; Menuitem with user inputted hexadecimal value
42
43
44struc ITEM_VALUE
45    .wRomvarsValueOffset    resb    2   ; ROMVARS offset to actual value to be configured
46    .szDialogTitle          resb    2   ; Dialog title string
47
48    .szMultichoice          resb    2   ; Multiple choices in one string
49    .rgwChoiceToValueLookup resb    2   ; Ptr to lookup table for translating selected choice to actual value
50    .rgszValueToStringLookup:           ; Ptr to lookup table for translating value to string
51    .rgszChoiceToStringLookup:
52    .wMinValue              resb    2   ; Minimum allowed integer value
53    .wMaxValue:
54    .wValueBitmask          resb    2   ; Bitmask for item value flag
55    .fnValueReader          resb    2   ; Called just after ROMVARS is read, providing a hook for further action
56    .fnValueWriter          resb    2   ; Called just before ROMVARS is written, providing a hook for further action
57endstruc
58
59
60%endif ; MENU_STRUCTS_INC
Note: See TracBrowser for help on using the repository browser.