source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Strings.asm@ 237

Last change on this file since 237 was 233, checked in by gregli@…, 13 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: 6.8 KB
Line 
1; Project name : XTIDE Universal BIOS
2; Description : Strings and equates for BIOS messages.
3
4%ifdef MODULE_STRINGS_COMPRESSED_PRECOMPRESS
5%include "Display.inc"
6%endif
7
8; Section containing code
9SECTION .text
10
11; POST drive detection strings
12g_szRomAt: db "%s @ %x",LF,CR,NULL
13
14; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
15; To support an optimization in that code, these strings must start on the same 256 byte page,
16; which is checked at assembly time below.
17;
18g_szDetectStart:
19g_szDetectMaster: db "Master",NULL
20g_szDetectSlave: db "Slave ",NULL
21g_szDetectOuter: db "IDE %s at %s: ",NULL
22g_szDetectPort: db "%x",NULL ; IDE Master at 1F0h:
23g_szDetectCOM: db "COM%c%s",NULL
24g_szDetectCOMAuto: db " Auto",NULL
25g_szDetectCOMSmall: db "/%u%u00",NULL ; IDE Master at COM1/9600:
26g_szDetectEnd:
27g_szDetectCOMLarge: db "/%u.%uK",NULL ; IDE Master at COM1/19.2K:
28
29%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
30%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
31%error "g_szDetect* strings must be on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP. Please move this block up or down within strings.asm"
32%endif
33%endif
34
35; Boot loader strings
36g_szTryToBoot: db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
37g_szBootSectorNotFound: db "Boot sector "
38g_szNotFound: db "not found",LF,CR,NULL
39g_szReadError: db "Error %x!",LF,CR,NULL
40
41; Boot menu bottom of screen strings
42g_szFDD: db "FDD ",NULL
43g_szHDD: db "HDD ",NULL
44g_szRomBoot: db "ROM Boot",NULL
45g_szHotkey: db "%A%c%c%A%s%A ",NULL
46
47
48; Boot Menu menuitem strings
49g_szDriveNum: db "%x ",NULL
50g_szFDLetter: db "%s %c",NULL
51g_szFloppyDrv: db "Floppy Drive",NULL
52g_szforeignHD: db "Foreign Hard Disk",NULL
53
54; Boot Menu information strings
55g_szCapacity: db "Capacity : ",NULL
56g_szSizeSingle: db "%s%u.%u %ciB",NULL
57g_szSizeDual: db "%s%5-u.%u %ciB /%5-u.%u %ciB",LF,CR,NULL
58g_szCfgHeader: db "Addr.",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus", SINGLE_VERTICAL,"IRQ", SINGLE_VERTICAL,"Reset",LF,CR,NULL
59g_szCfgFormat: db "%s" ,SINGLE_VERTICAL,"%5-u", SINGLE_VERTICAL,"%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x", NULL
60
61g_szAddressingModes:
62g_szLCHS: db "L-CHS",NULL
63g_szPCHS: db "P-CHS",NULL
64g_szLBA28: db "LBA28",NULL
65g_szLBA48: db "LBA48",NULL
66g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
67;
68; Ensure that addressing modes are correctly spaced in memory
69;
70%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
71%if g_szLCHS <> g_szAddressingModes
72%error "g_szAddressingModes Displacement Incorrect 1"
73%endif
74%if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
75%error "g_szAddressingModes Displacement Incorrect 2"
76%endif
77%if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
78%error "g_szAddressingModes Displacement Incorrect 3"
79%endif
80%if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
81%error "g_szAddressingModes Displacement Incorrect 4"
82%endif
83%endif
84
85g_szFddUnknown: db "%sUnknown",NULL
86g_szFddSizeOr: db "%s5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
87g_szFddSize: db "%s%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB
88
89g_szFddThreeHalf: db "3",ONE_HALF,NULL
90g_szFddFiveQuarter: db "5",ONE_QUARTER,NULL
91g_szFddThreeFive_Displacement equ (g_szFddFiveQuarter - g_szFddThreeHalf)
92
93g_szBusTypeValues:
94g_szBusTypeValues_8Dual: db "D8 ",NULL
95g_szBusTypeValues_8Reversed: db "X8 ",NULL
96g_szBusTypeValues_8Single: db "S8 ",NULL
97g_szBusTypeValues_16: db " 16",NULL
98g_szBusTypeValues_32: db " 32",NULL
99g_szBusTypeValues_Serial: db "SER",NULL
100g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
101;
102; Ensure that bus type strings are correctly spaced in memory
103;
104%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
105%if g_szBusTypeValues_8Dual <> g_szBusTypeValues
106%error "g_szBusTypeValues Displacement Incorrect 1"
107%endif
108%if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
109%error "g_szBusTypeValues Displacement Incorrect 2"
110%endif
111%if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
112%error "g_szBusTypeValues Displacement Incorrect 3"
113%endif
114%if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
115%error "g_szBusTypeValues Displacement Incorrect 4"
116%endif
117%if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
118%error "g_szBusTypeValues Displacement Incorrect 5"
119%endif
120%if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
121%error "g_szBusTypeValues Displacement Incorrect 6"
122%endif
123%endif
124
125g_szSelectionTimeout: db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
126
127g_szDashForZero: db "- ",NULL
128
129
130;------------------------------------------------------------------------------------------
131;
132; Tables for StringsCompress.pl
133;
134;$translate{ord(' ')} = 0;
135;$translate{172} = 1; # ONE_QUARTER
136;$translate{171} = 2; # ONE_HALF
137;$translate{179} = 3; # SINGLE_VERTICAL
138;$translate{175} = 4; # ANGLE_QUOTE_RIGHT
139;$translate{ord('!')} = 5;
140;$translate{ord('"')} = 6;
141;$translate{ord(',')} = 7;
142;$translate{ord('-')} = 8;
143;$translate{ord('.')} = 9;
144;$translate{ord('/')} = 10;
145;$translate{ord('1')} = 11;
146;$translate{ord('2')} = 12;
147;$translate{ord('3')} = 13;
148;$translate{ord('4')} = 14;
149;$translate{ord('5')} = 15;
150;$translate{ord('6')} = 16;
151;$translate{ord('8')} = 17;
152;$translate{200} = 18; # DOUBLE_BOTTOM_LEFT_CORNER
153;$translate{181} = 19; # DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL
154;$translate{ord('0')} = 20; # DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL
155;
156; Formats begin immediately after the last Translated character (they are in the same table)
157;
158;$format_begin = 21;
159;
160;$format{"c"} = 21; # n/a
161;$format{"2-I"} = 22; # must be even
162;$format{"u"} = 23; # must be odd
163;$format{"5-u"} = 24; # must be even
164;$format{"x"} = 25; # must be odd
165;$format{"5-x"} = 26; # must be even
166;$format{"nl"} = 27; # n/a
167;$format{"2-u"} = 28; # must be even
168;$format{"A"} = 29; # n/a
169;$format{"s"} = 30; # n/a
170;
171; NOTE: The last $format cannot exceed 31 (stored in a 5-bit quantity).
172;
173; Starting point for the "normal" range, typically around 0x40 to cover upper and lower case
174; letters. If lower case 'z' is not used, 0x3a can be a good choice as it adds ':' to the
175; front end.
176;
177;$normal_base = 0x3a;
178;
179; End of StringsCompress.pl information
180;
181;------------------------------------------------------------------------------------------
182
183
184
185
Note: See TracBrowser for help on using the repository browser.