source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MasterSlaveMenu.asm@ 285

Last change on this file since 285 was 108, checked in by krille_n_@…, 13 years ago

Fixed a spelling mistake and cleaned the source some. No changes to the actual code.

File size: 7.7 KB
Line 
1; Project name : XTIDE Universal BIOS Configurator v2
2; Description : "Master/Slave Drive" menu structs and functions.
3
4; Section containing initialized data
5SECTION .data
6
7ALIGN WORD_ALIGN
8g_MenupageForMasterSlaveMenu:
9istruc MENUPAGE
10 at MENUPAGE.fnEnter, dw MasterSlaveMenu_EnterMenuOrModifyItemVisibility
11 at MENUPAGE.fnBack, dw IdeControllerMenu_EnterMenuOrModifyItemVisibility
12 at MENUPAGE.wMenuitems, dw 6
13iend
14
15g_MenuitemMasterSlaveBackToIdeControllerMenu:
16istruc MENUITEM
17 at MENUITEM.fnActivate, dw IdeControllerMenu_EnterMenuOrModifyItemVisibility
18 at MENUITEM.szName, dw g_szItemDrvBackToIde
19 at MENUITEM.szQuickInfo, dw g_szItemDrvBackToIde
20 at MENUITEM.szHelp, dw g_szItemDrvBackToIde
21 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
22 at MENUITEM.bType, db TYPE_MENUITEM_PAGEBACK
23iend
24
25g_MenuitemMasterSlaveBlockModeTransfers:
26istruc MENUITEM
27 at MENUITEM.fnActivate, dw Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI
28 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteLookupValueStringToBufferInESDIfromShiftedItemInDSSI
29 at MENUITEM.szName, dw g_szItemDrvBlockMode
30 at MENUITEM.szQuickInfo, dw g_szNfoDrvBlockMode
31 at MENUITEM.szHelp, dw g_szHelpDrvBlockMode
32 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE | FLG_MENUITEM_FLAGVALUE
33 at MENUITEM.bType, db TYPE_MENUITEM_MULTICHOICE
34 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw NULL
35 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgDrvBlockMode
36 at MENUITEM.itemValue + ITEM_VALUE.szMultichoice, dw g_szMultichoiceBooleanFlag
37 at MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup, dw g_rgszValueToStringLookupForFlagBooleans
38 at MENUITEM.itemValue + ITEM_VALUE.wValueBitmask, dw FLG_DRVPARAMS_BLOCKMODE
39iend
40
41g_MenuitemMasterSlaveUserCHS:
42istruc MENUITEM
43 at MENUITEM.fnActivate, dw Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI
44 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteLookupValueStringToBufferInESDIfromShiftedItemInDSSI
45 at MENUITEM.szName, dw g_szItemDrvUserCHS
46 at MENUITEM.szQuickInfo, dw g_szNfoDrvUserCHS
47 at MENUITEM.szHelp, dw g_szHelpDrvUserCHS
48 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE | FLG_MENUITEM_MODIFY_MENU | FLG_MENUITEM_FLAGVALUE
49 at MENUITEM.bType, db TYPE_MENUITEM_MULTICHOICE
50 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw NULL
51 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgDrvUserCHS
52 at MENUITEM.itemValue + ITEM_VALUE.szMultichoice, dw g_szMultichoiceBooleanFlag
53 at MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup, dw g_rgszValueToStringLookupForFlagBooleans
54 at MENUITEM.itemValue + ITEM_VALUE.wValueBitmask, dw FLG_DRVPARAMS_USERCHS
55iend
56
57g_MenuitemMasterSlaveCylinders:
58istruc MENUITEM
59 at MENUITEM.fnActivate, dw Menuitem_ActivateUnsignedInputForMenuitemInDSSI
60 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteUnsignedValueStringToBufferInESDIfromItemInDSSI
61 at MENUITEM.szName, dw g_szItemDrvCyls
62 at MENUITEM.szQuickInfo, dw g_szNfoDrvCyls
63 at MENUITEM.szHelp, dw g_szNfoDrvCyls
64 at MENUITEM.bFlags, db NULL
65 at MENUITEM.bType, db TYPE_MENUITEM_UNSIGNED
66 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw NULL
67 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgDrvCyls
68 at MENUITEM.itemValue + ITEM_VALUE.wMinValue, dw 1
69 at MENUITEM.itemValue + ITEM_VALUE.wMaxValue, dw 16383
70iend
71
72g_MenuitemMasterSlaveHeads:
73istruc MENUITEM
74 at MENUITEM.fnActivate, dw Menuitem_ActivateUnsignedInputForMenuitemInDSSI
75 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteUnsignedValueStringToBufferInESDIfromItemInDSSI
76 at MENUITEM.szName, dw g_szItemDrvHeads
77 at MENUITEM.szQuickInfo, dw g_szNfoDrvHeads
78 at MENUITEM.szHelp, dw g_szNfoDrvHeads
79 at MENUITEM.bFlags, db FLG_MENUITEM_BYTEVALUE
80 at MENUITEM.bType, db TYPE_MENUITEM_UNSIGNED
81 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw NULL
82 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgDrvHeads
83 at MENUITEM.itemValue + ITEM_VALUE.wMinValue, dw 1
84 at MENUITEM.itemValue + ITEM_VALUE.wMaxValue, dw 16
85iend
86
87g_MenuitemMasterSlaveSectors:
88istruc MENUITEM
89 at MENUITEM.fnActivate, dw Menuitem_ActivateUnsignedInputForMenuitemInDSSI
90 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteUnsignedValueStringToBufferInESDIfromItemInDSSI
91 at MENUITEM.szName, dw g_szItemDrvSect
92 at MENUITEM.szQuickInfo, dw g_szNfoDrvSect
93 at MENUITEM.szHelp, dw g_szNfoDrvSect
94 at MENUITEM.bFlags, db FLG_MENUITEM_BYTEVALUE
95 at MENUITEM.bType, db TYPE_MENUITEM_UNSIGNED
96 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw NULL
97 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgDrvSect
98 at MENUITEM.itemValue + ITEM_VALUE.wMinValue, dw 1
99 at MENUITEM.itemValue + ITEM_VALUE.wMaxValue, dw 63
100iend
101
102
103; Section containing code
104SECTION .text
105
106;--------------------------------------------------------------------
107; MasterSlaveMenu_InitializeToDrvparamsOffsetInBX
108; Parameters:
109; SS:BP: Menu handle
110; Returns:
111; Nothing
112; Corrupts registers:
113; AX
114;--------------------------------------------------------------------
115ALIGN JUMP_ALIGN
116MasterSlaveMenu_InitializeToDrvparamsOffsetInBX:
117 lea ax, [bx+DRVPARAMS.wFlags]
118 mov [cs:g_MenuitemMasterSlaveBlockModeTransfers+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
119 mov [cs:g_MenuitemMasterSlaveUserCHS+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
120
121 lea ax, [bx+DRVPARAMS.wCylinders]
122 mov [cs:g_MenuitemMasterSlaveCylinders+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
123
124 lea ax, [bx+DRVPARAMS.bHeads]
125 mov [cs:g_MenuitemMasterSlaveHeads+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
126
127 lea ax, [bx+DRVPARAMS.bSect]
128 mov [cs:g_MenuitemMasterSlaveSectors+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset], ax
129 ret
130
131
132;--------------------------------------------------------------------
133; MasterSlaveMenu_EnterMenuOrModifyItemVisibility
134; Parameters:
135; SS:BP: Menu handle
136; Returns:
137; Nothing
138; Corrupts registers:
139; All, except BP
140;--------------------------------------------------------------------
141ALIGN JUMP_ALIGN
142MasterSlaveMenu_EnterMenuOrModifyItemVisibility:
143 push cs
144 pop ds
145 call .EnableOrDisableCHandS
146 mov si, g_MenupageForMasterSlaveMenu
147 jmp Menupage_ChangeToNewMenupageInDSSI
148
149;--------------------------------------------------------------------
150; .EnableOrDisableCHandS
151; Parameters:
152; SS:BP: Menu handle
153; Returns:
154; Nothing
155; Corrupts registers:
156; AX, BX
157;--------------------------------------------------------------------
158ALIGN JUMP_ALIGN
159.EnableOrDisableCHandS:
160 mov bx, [cs:g_MenuitemMasterSlaveUserCHS+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset]
161 call Buffers_GetRomvarsValueToAXfromOffsetInBX
162 test ax, FLG_DRVPARAMS_USERCHS
163 jz SHORT .DisableCHandS
164
165 mov bx, g_MenuitemMasterSlaveCylinders
166 call .EnableMenuitemFromCSBX
167 mov bx, g_MenuitemMasterSlaveHeads
168 call .EnableMenuitemFromCSBX
169 mov bx, g_MenuitemMasterSlaveSectors
170 call .EnableMenuitemFromCSBX
171 ret
172
173ALIGN JUMP_ALIGN
174.DisableCHandS:
175 mov bx, g_MenuitemMasterSlaveCylinders
176 call .DisableMenuitemFromCSBX
177 mov bx, g_MenuitemMasterSlaveHeads
178 call .DisableMenuitemFromCSBX
179 mov bx, g_MenuitemMasterSlaveSectors
180 call .DisableMenuitemFromCSBX
181 ret
182
183;--------------------------------------------------------------------
184; .EnableMenuitemFromCSBX
185; .DisableMenuitemFromCSBX
186; Parameters:
187; CS:BX: Ptr to MENUITEM
188; Returns:
189; Nothing
190; Corrupts registers:
191; Nothing
192;--------------------------------------------------------------------
193ALIGN JUMP_ALIGN
194.EnableMenuitemFromCSBX:
195 or BYTE [cs:bx+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
196 ret
197
198ALIGN JUMP_ALIGN
199.DisableMenuitemFromCSBX:
200 and BYTE [cs:bx+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
201 ret
Note: See TracBrowser for help on using the repository browser.