source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm@ 185

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

Some basic cleanup and fixing build problems with the Configurator (missing strings)

File size: 3.7 KB
Line 
1; Project name : XTIDE Universal BIOS
2; Description : Functions for printing drive configuration
3; information on Boot Menu.
4
5; Section containing code
6SECTION .text
7
8;--------------------------------------------------------------------
9; Prints Hard Disk configuration for drive handled by our BIOS.
10; Cursor is set to configuration header string position.
11;
12; BootMenuPrintCfg_ForOurDrive
13; Parameters:
14; DS: Segment to DPT
15; Stack: Offset to DPT
16; Returns:
17; Nothing
18; Corrupts registers:
19; AX, BX, CX, DX, SI, DI
20;--------------------------------------------------------------------
21ALIGN JUMP_ALIGN
22BootMenuPrintCfg_ForOurDrive:
23 pop di
24 mov si, g_szCfgHeader
25 call BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
26 eMOVZX ax, BYTE [di+DPT.bIdevarsOffset]
27 xchg si, ax ; CS:SI now points to IDEVARS
28 ; Fall to PushAndFormatCfgString
29
30;--------------------------------------------------------------------
31; PushAndFormatCfgString
32; Parameters:
33; DS:DI: Ptr to DPT
34; CS:SI: Ptr to IDEVARS
35; Returns:
36; Nothing
37; Corrupts registers:
38; AX, DX, SI, DI
39;--------------------------------------------------------------------
40PushAndFormatCfgString:
41 push bp
42 mov bp, sp
43 ; Fall to first push below
44
45;--------------------------------------------------------------------
46; PushAddressingMode
47; Parameters:
48; DS:DI: Ptr to DPT
49; CS:SI: Ptr to IDEVARS
50; Returns:
51; Nothing (jumps to next push below)
52; Corrupts registers:
53; AX
54;--------------------------------------------------------------------
55PushAddressingMode:
56 call AccessDPT_GetAddressingModeForWordLookToBX
57 mov al,g_szAddressingModes_Displacement
58 mul bl
59 add ax,g_szAddressingModes
60 push ax
61
62;--------------------------------------------------------------------
63; PushBlockMode
64; Parameters:
65; DS:DI: Ptr to DPT
66; CS:SI: Ptr to IDEVARS
67; Returns:
68; Nothing (falls to next push below)
69; Corrupts registers:
70; AX
71;--------------------------------------------------------------------
72PushBlockMode:
73 mov ax, 1
74 test BYTE [di+DPT.bFlagsHigh], FLGH_DPT_BLOCK_MODE_SUPPORTED
75 jz SHORT .PushBlockSizeFromAX
76 mov al, [di+DPT_ATA.bSetBlock]
77.PushBlockSizeFromAX:
78 push ax
79
80;--------------------------------------------------------------------
81; PushBusType
82; Parameters:
83; DS:DI: Ptr to DPT
84; CS:SI: Ptr to IDEVARS
85; Returns:
86; Nothing (jumps to next push below)
87; Corrupts registers:
88; AX, DX
89;--------------------------------------------------------------------
90;PushBusType:
91 mov al,g_szBusTypeValues_Displacement
92 mul BYTE [cs:si+IDEVARS.bDevice]
93 shr ax,1
94 add ax,g_szBusTypeValues
95 push ax
96
97;--------------------------------------------------------------------
98; PushIRQ
99; Parameters:
100; DS:DI: Ptr to DPT
101; CS:SI: Ptr to IDEVARS
102; Returns:
103; Nothing (falls to next push below)
104; Corrupts registers:
105; AX, DX
106;--------------------------------------------------------------------
107PushIRQ:
108 eMOVZX ax, BYTE [cs:si+IDEVARS.bIRQ]
109 push ax
110
111;--------------------------------------------------------------------
112; PushResetStatus
113; Parameters:
114; DS:DI: Ptr to DPT
115; CS:SI: Ptr to IDEVARS
116; Returns:
117; Nothing (falls to next push below)
118; Corrupts registers:
119; AX
120;--------------------------------------------------------------------
121PushResetStatus:
122 mov al, [di+DPT.bFlagsHigh]
123 and ax, MASKH_DPT_RESET
124 push ax
125
126;--------------------------------------------------------------------
127; PrintValuesFromStack
128; Parameters:
129; Stack: All formatting parameters
130; Returns:
131; Nothing
132; Corrupts registers:
133; AX, SI, DI
134;--------------------------------------------------------------------
135PrintValuesFromStack:
136 mov si, g_szCfgFormat
137 jmp BootMenuPrint_FormatCSSIfromParamsInSSBP
138
Note: See TracBrowser for help on using the repository browser.