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

Last change on this file since 235 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
RevLine 
[57]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
[59]8 .fnBack resb 2 ; Function to initialize previous MENUPAGE
[57]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
[59]31FLG_MENUITEM_PROGRAMVAR EQU (1<<4) ; Item is for configuring program, not BIOS
[233]32FLG_MENUITEM_CHOICESTRINGS EQU (1<<5) ; ChoiceToStringLookup table is 1-1 with ChoiceToValueLookup table,
33 ; ChoiceToStringLookup table must also NULL terminated
[57]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
[108]39TYPE_MENUITEM_MULTICHOICE EQU (3<<1) ; Item with multiple predefined choices
[57]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
[108]48 .szMultichoice resb 2 ; Multiple choices in one string
49 .rgwChoiceToValueLookup resb 2 ; Ptr to lookup table for translating selected choice to actual value
[57]50 .rgszValueToStringLookup: ; Ptr to lookup table for translating value to string
[233]51 .rgszChoiceToStringLookup:
[57]52 .wMinValue resb 2 ; Minimum allowed integer value
53 .wMaxValue:
54 .wValueBitmask resb 2 ; Bitmask for item value flag
[199]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
[57]57endstruc
58
59
60%endif ; MENU_STRUCTS_INC
Note: See TracBrowser for help on using the repository browser.