source: xtideuniversalbios/wiki/Manual.wiki @ 11

Last change on this file since 11 was 11, checked in by aitotat, 14 years ago

Created wiki page through web user interface.

File size: 20.4 KB
Line 
1#Instructions for XTIDE Universal BIOS v1.1.0
2
3= 1 Introduction =
4
5XTIDE Universal BIOS is mainly used with XTIDE controller[1] that makes possible to use modern IDE drives on PC/XT systems. XTIDE Universal BIOS does more than that since it support 16- and 32-bit transfers too. 16-bit transfers are meant for 16-bit ISA controllers and 32-bit transfers are meant for VLB and PCI controllers.
6
7
8== Features ==
9
10Some of the features included in XTIDE Universal BIOS are...
11  * Boot menu for selecting any floppy drive or hard disk to boot from
12  * Block mode transfers
13  * Compact Flash and Microdrive support
14  * Support for most 8-, 16-, and 32-bit IDE controllers
15  * Using IRQ is optional
16...and many more.
17
18
19== Different builds ==
20
21At the moment there are three different builds included in the XTIDE Universal BIOS zip file.
22
23
24=== IDE_XT.BIN (XT build) ===
25
26XT build uses only instructions supported by 8086/8088 making it the only build that can be used on any PC, including the original IBM PC model 5150.
27
28
29=== IDE_XTP.BIN (XT+ build) ===
30
31XT+ build has the same features as the XT build but XT+ build uses instructions introduced in 80186/80188. Those instructions are supported by all later x86 CPUs, including NEC V20/V30. 8-bit transfers rates will be better thanks to INS and OUTS instructions.
32
33
34=== IDE_AT.BIN (AT build) ===
35
36AT build is meant for all AT class machines (16-bit or 32-bit bus). AT build supports OS hooks to allow operating system to do some processing while drive seeks the requested data. By default, the AT build is configured to full mode to take advantage of all the features the XTIDE Universal BIOS offers.
37
38
39= Installing XTIDE Universal BIOS =
40
41== Hardware supporting XTIDE Universal BIOS ROM ==
42
43
44The most convenient way to use XTIDE Universal BIOS is to use XTIDE card[1]. It can be used on any PC with free 8-bit ISA slot. You might not want to connect any drives to it in 16- or 32-bit systems since 8-bit transfer will be very very slow. Using XTIDE card allows EEPROM flashing so it is really easy to update XTIDE Universal BIOS.
45
46Another option is to use any card with free ROM socket for 8 kiB or larger ROMs. Official XTIDE builds are meant for 8 kiB ROMs but you can burn it on larger ROM if you append enough zeroes to the end (only append zeroes so checksum does not change). Many network cards have unused ROM sockets but there are also few multi I/O cards and IDE controllers with ROM sockets.
47
48You don't need EPROM/EEPROM programmer if you already have XTIDE card. XTIDE card can be used to flash additional EEPROMs (2864) that can be moved to EPROM (2764) sockets.
49
50
51== Configuring and flashing BIOS ==
52
53XTIDE Universal BIOS comes with DOS utility called idecfg.com. It configures XTIDE Universal BIOS and also works as a generic EEPROM flasher supporting EEPROM sizes up to 16 kiB. Idecfg.com allows saving changes to BIOS images so that they can be programmed with other programming software or device.
54
55
56== Other things to know ==
57
58CTRL can be held down to skip XTIDE Universal BIOS initialization. Only drive detection will be skipped when late initialization is used.
59
60
61= Using IDECFG.COM (XTIDE Universal BIOS configuration and flashing program) =
62
63Idecfg.com is intended to be user friendly. At the bottom of the screen appears quick information for each menu item. It can be hidden with F2 to make menu navigation faster for XT systems. Pressing F1 displays more detailed help for menu item. Sometimes the help is the same as the quick information but not always. Up, Down, PgUp, PgDn, Home and End keys are used for menu navigation. Enter selects menuitem and Esc resumes to previous menu.
64
65Some menu items appear only when needed to make configuring easier.
66
67
68== Menuitem: Exit to DOS ==
69
70This menu item exits to DOS but allows user to save any unsaved changes.
71
72
73== Menuitem: Load BIOS from file ==
74
75Loads any file with .BIN extension to be flashed.
76
77
78== Menuitem: Load BIOS from EEPROM ==
79
80This menu item appears only when supported version of XTIDE Universal BIOS is detected. It loads the BIOS from EEPROM to be reconfigured.
81
82
83== Menuitem: Load old settings from EEPROM ==
84
85This menu item appears only when supported version of XTIDE Universal BIOS is detected and same or another supported version is loaded to be configured. It loads the old settings so that the new version does not need to be reconfigured when updating XTIDE Universal BIOS to new version.
86
87
88== Menuitem: Configure XTIDE Universal BIOS ==
89
90All XTIDE Universal BIOS settings can be found and configured from this sub menu.
91
92
93==== Menuitem: Back to previous menu ===
94
95Resumes back to main menu.
96
97
98=== Menuitems: Primary, Secondary, Tertiary, Quaternary and Quinary IDE Controllers ===
99
100IDE Controller menu items appear based on selected number of IDE controllers.
101
102
103==== Menuitem: Back to previous menu ====
104
105Resumes back to XTIDE Universal BIOS configuration menu.
106
107
108==== Menuitems: Master and Slave drives ====
109
110Drive specific settings for master and slave drives:
111
112====== Menuitem: Block mode transfers ======
113
114Block mode will speed up transfers since multiple sectors can be transferred before waiting next data request. Normally block mode should always be kept enabled but there is at least one drive with buggy block mode implementation.
115
116
117===== Menuitem: User specified CHS =====
118
119Specify (P-)CHS parameters manually instead of autodetecting them. This can be used to limit drive size for old operating systems that do not support large hard disks.
120
121Limiting cylinders will work for all drives but drives may not accept all values for heads and sectors per track.
122
123
124===== Menuitems: Cylinders, heads and Sectors per track =====
125
126Number of user specified P-CHS cylinders, heads and sectors per track. These menu items appear only when user specified CHS is enabled.
127
128
129==== Menuitem: Bus type ====
130
131Select bus type:
132
133===== 8-bit dual port (XTIDE) =====
1348-bit ISA controllers with two data ports. This is what the XTIDE card [1] uses.
135
136===== 8-bit single port =====
1378-bit ISA controllers with one data port.
138
139===== 16-bit =====
14016-bit I/O for ISA (16-bit), VLB and PCI controllers.
141
142===== 32-bit generic =====
143Generic 32-bit I/O for VLB and PCI controllers.
144
145
146==== Menuitem: Base (cmd block) address ====
147
148IDE controller command block address is the usual address mentioned for IDE controllers.
149
150By default the primary IDE controller uses port 1F0h and secondary controller uses port 170h. XTIDE uses port 300h by default.
151
152
153==== Menuitem: Control block address ====
154
155IDE controller control block address is normally command block address + 200h.
156
157For XTIDE the control block registers are mapped right after command block registers so use command block address + 8h for XTIDE.
158
159
160==== Menuitem: Enable interrupt ====
161
162IDE controller can use interrupts to signal when it is ready to transfer data. This makes possible to do other tasks while waiting drive to be ready. That is not useful in MS-DOS but using interrupts frees the bus for any DMA transfers.
163
164Polling mode is used when interrupts are disabled. Polling usually gives a little better access times since interrupt handling requires extra processing. There can be some compatibility issues with some old drives when polling is used with block mode transfers.
165
166
167==== Menuitem: IRQ ====
168
169IRQ channel to use. All controllers managed by XTIDE Universal BIOS can use the same IRQ when MS-DOS is used. Other operating systems are likely to require different interrupts for each controller. This menu item appears only when interrupts are enabled.
170
171
172=== Menuitem: Boot menu settings ===
173
174Opens sub menu for configuring boot menu. This menu item appears only when Boot loader type is set to Menu.
175
176
177==== Menuitem: Back to previous menu ====
178
179Resumes back to XTIDE Universal BIOS configuration menu.
180
181
182==== Menuitem: Default boot drive ====
183
184Default drive will be set selected by default when Boot Menu is displayed.
185
186
187==== Menuitem: Display drive info ====
188
189Boot Menu can display some details about the drives in system. Reading this data is slow on XTs so you might want to hide drive information.
190
191
192==== Menuitem: Display ROM boot ====
193
194Some old systems have Basic or DOS in ROM. Since most systems don't have either, ROM Boot setting is disabled by default. Enable it if you have use for it.
195
196
197==== Menuitem: Maximum height ====
198
199Boot Menu maximum height in characters.
200
201
202==== Menuitem: Min floppy drive count ====
203
204Detecting correct number of floppy drives might fail when using floppy controller with it's own BIOS. Minimum number of floppy drives can be specified to force non-detected drives to appear on boot menu.
205
206
207==== Menuitem: Selection timeout ====
208
209Boot Menu selection timeout in seconds. When time goes to zero, currently selected drive will be booted automatically. Timeout can be disabled by setting this to 0.
210
211
212==== Menuitem: Swap boot drive numbers ====
213
214Some old operating systems (DOS) can only boot from Floppy Drive A (00h) or first Hard Disk (80h, usually drive C). Drive Translation can be used to modify drive numbers so that selected drive will be mapped to 00h or 80h so that it can be booted.
215
216
217=== Menuitem: Boot loader type ===
218
219Select boot loader type:
220
221==== Boot menu ====
222Boot menu where user can select drive to boot from.
223
224==== Simple boot loader ====
225Typical A, C, INT 18h boot order.
226
227==== System boot loader ====
228Uses main BIOS boot loader or boot loader provided by some other BIOS. System boot loader works only when late initialization is disabled since late initialization is done on a boot loader.
229
230
231=== Menuitem: Late initialization ===
232
233Normally expansion card BIOSes are initialized before POST completes. Some (older) systems initialize expansion card BIOSes before they have initialized themselves. This might cause problems since XTIDE Universal BIOS requires some main BIOS functions for drive detection.
234
235This problem can be fixed by using late initialization to detect drives on boot loader. Late initialization requires that XTIDE Universal BIOS is the last BIOS that installs INT 19h handler. Make sure that XTIDE ROM is configured to highest address if you have other storage device controllers present.
236
237
238=== Menuitem: Maximize disk size ===
239
240Old BIOSes reserve diagnostic cylinder (landing zone cylinder for MFM drives) that is not used. Later BIOSes do not reserve it to allow more data to be stored.
241
242Do not maximize disk size if you need to move the drive between XTIDE Universal BIOS controlled systems and systems with cylinder reserving BIOSes.
243
244
245=== Menuitem: Full operating mode ===
246
247Full mode supports up to 5 IDE controllers (10 drives). Full mode reserves a bit of RAM from top of base memory. This makes possible to use ROM Basic and software that requires top of interrupt vectors where XTIDE Universal BIOS parameters would be stored in lite mode.
248
249Lite mode supports only one IDE controller (2 drives) and stores parameters to top of interrupt vectors (30:0h) so no base RAM needs to be reserved. Lite mode cannot be used if some software requires top of interrupt vectors. Usually this is not a problem since only IBM ROM Basic uses them.
250
251Tandy 1000 models with 640 kiB or less memory need to use lite mode since top of base RAM gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller, not with expansion graphics cards. It is possible to use full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 129 kiB but most software should work with 65 kiB reserved.
252
253
254=== Menuitem: kiB to steal from RAM ===
255
256Parameters for detected hard disks must be stored somewhere. In full mode they are stored to top of base RAM. At the moment 1 kiB is always enough but you might want to steal more if you want to use full mode with Tandy 1000. This menu item appears only when full operating mode is enabled.
257
258
259=== Menuitem: Number of IDE controllers ===
260
261Number of IDE controllers handled by XTIDE Universal BIOS. This menu item appears only when full operating mode is enabled.
262
263
264== Menuitem: Flash EEPROM ==
265
266Settings for EEPROM flashing.
267
268
269=== Menuitem: Back to previous menu ===
270
271Resumes to main menu.
272
273
274=== Menuitem: Start flashing ===
275
276Writes BIOS to EEPROM.
277
278
279=== Menuitem: SDP command ===
280
281Software Data Protection command:
282
283==== None ====
284Do not use Software Data Protection. Meant for EEPROMs that do not support SDP.
285
286==== Enable ====
287Write protects the EEPROM after flashing. Software Data Protection should always be enabled if EEPROM supports it.
288
289==== Disable ====
290Disables Software Data Protection after flashing.
291
292
293=== Menuitem: EEPROM address ===
294
295Address (segment) where EEPROM is located.
296
297
298=== Menuitem: Page size ===
299
300Larger page size will improve write performance but not all EEPROMs support large pages or page writing at all. Byte writing mode will be used when page size is set to 1. Byte writing mode is supported by every EEPROM. Large pages cannot be used with slow CPUs.
301
302
303=== Menuitem: Generate checksum byte ===
304
305PC BIOSes require checksum byte to the end of expansion card BIOS ROMs. Checksum generation can be disabled so any type of binaries can be flashed.
306
307
308= Boot menu =
309
310Using boot menu is optional. Boot menu allows to boot from any floppy or hard disk drive. Drive can be selected with Up and Down arrows. Home, End, PgUp and PgDn keys can speed up selection if there are many drives in the boot menu. Press Enter to boot from selected drive.
311
312
313== Drive swapping ==
314
315DOS requires that it is loaded from first floppy drive (00h) or first hard disk (80h) in the system. XTIDE Universal BIOS can translate drive numbers to make booting possible from any floppy drive or hard disk. Drive number translation is implemented with simple swapping method: selected drive will be swapped with first drive and vice versa. For example drive 82h on boot menu would be translated to 80h and 80h would be translated to 82h. Drive swapping for floppy drives and hard disks are handled separately so it is possible to install DOS from any floppy drive to any hard disk. Drive number translation can be disabled with idecfg.com.
316
317
318== Boot menu hotkeys ==
319
320Keys A to Z work as a hotkeys for boot menu drives. Hotkeys have another benefit: they allow to install DOS from any floppy drive to any hard disks. Select hard disk from menu but do not press Enter. Press any floppy drive hotkey instead to boot from floppy while maintaining selected hard disk translation.
321
322
323== Boot menu drive information ==
324
325Boot menu can display a little bit information about the drive. Drive information can be disabled with idecfg.com.
326
327
328=== Drive capacity ===
329
330Boot menu displays drive type for floppy drives. The type is read from BIOS and it is the same you usually set in CMOS setup. XT systems do not support the BIOS function to return drive type so 5.25" or 3.5" DD is displayed.
331
332For foreign hard disks (hard disks not handled by XTIDE Universal BIOS) the boot menu displays capacity calculated from CHS-parameters returned by BIOS function INT 13h, AH=8h. It is the same capacity that MS-DOS 6.xx and older versions see.
333
334Same CHS-capacity is displayed for hard disks handled by XTIDE Universal BIOS. In addition to the CHS capacity, the boot menu will display another size that is the full size of the hard disk.
335
336
337=== Drive configuration information ===
338
339Drive configuration information is displayed for XTIDE Universal BIOS controlled drives. Information includes:
340
341==== Addressing (Addr.) ====
342This can be L-CHS, P-CHS, LBA28 or LBA48.
343
344CHS addressing is the old type of addressing method where cylinder, head and sector numbers will be handled separately. Original PC BIOS functions are designed for CHS addressing with maximum  hard disk size being 7.8 GiB (8.4 GB) when some CHS translation method is being used.
345
346LBA addressing is modern addressing method where every sector has its own address. There are no cylinders or heads anymore. Enhanced BIOS functions were introduced for LBA drives but they are not supported before Windows 95 (DOS 7). These EBIOS function are not yet supported by XTIDE Universal BIOS. CHS address must be translated to LBA address when using old CHS BIOS functions with LBA addressing.
347
348L-CHS (known as NORMAL on many old BIOSes) is used for drives <= 504 MiB that can accept the CHS parameters without translation. That makes L-CHS the fastest addressing method.
349
350P-CHS (known as LARGE on many old BIOSes) is used for drives from 504 MiB up to 7.8 GiB. This is a bit slower than L-CHS since simple translation is required to make BIOS L-CHS parameters compatible with IDE P-CHS parameters.
351
352LBA28 (28-bit address) allows drive sizes up to 128 GiB (137 GB). L-CHS to LBA translation is more complex and slower than L-CHS to P-CHS conversion.
353
354LBA48 (48-bit address) work just like LBA28 but with 20 more address bits.
355
356==== Block mode (Block) ====
357Block size in sectors for block mode transfers. XTIDE Universal BIOS always uses largest supported block size. Block mode is disabled or not supported if this is 1.
358
359==== Bus type (Bus) ====
360Displays the bus type that has been selected with idecfg.com.
361
362==== IRQ ====
363Displays IRQ channel if IRQ has been enabled.
364
365==== Reset ====
366Displays status information from drive reset and initialization. This should always be 00h. Anything else would indicate some sort of error. Let me know if you see something other than 00h.
367
368
369= IDE controllers on VLB and PCI bus =
370
37116-bit ISA IDE controllers are very simple ISA<->PATA adapters and they all perform alike. ISA is not fast enough for anything above PIO-0 transfer method (theoretical maximum 3.3 MB/s)[2].
372
373VLB and PCI IDE controllers are much more complex since they have an actual controller between bus and IDE drive. This controller can buffer words so CPU can read 32-bits at a time. Later VLB and (all?) PCI controller also offer flow control so they can support PIO modes 3 and 4. Early VLB controller are limited to PIO-2. Later VLB multi I/O cards have two IDE connectors so you should use one of those even if you don't need the other IDE connector.
374
375Unfortunately many of the controllers work only at PIO-0 by default. Some VLB multi I/O cards have jumpers to set transfer rates but most require controller specific programming to enable higher PIO modes. It is possible that your VLB multi I/O card don't offer any advantages over ISA multi I/O cards if your BIOS does not support the IDE controller on the VLB card. There are DOS drivers for many VLB IDE controllers so BIOS support isn't necessity.
376
377XTIDE Universal BIOS does not support any specific VLB controllers at the moment. I'm planning to add support for Vision QD6580 controller soon.
378
379
380= Known problems =
381
382== Known bugs in XTIDE Universal BIOS ==
383  * There are some compatibility problems with SCSI BIOSes.
384
385
386== Problems with Compact Flash cards and microdrives ==
387
388CF cards and microdrives are IDE devices and should work as any hard disk. Unfortunately there are many CF cards and microdrives with limitations. Some of them only work as a master drive and not as a slave drive. Many of them are not bootable even though they otherwise seem to work fine. Avoid CF cards without speed ratings. They are too slow to be used as a hard disk replacements.
389
390=== Known good Compact Flash cards ===
391*Apacer Photo Steno Pro II 256 MB, 100x
392
393=== Known Compact Flash cards with problems ===
394*Apacer Photo Steno 64 MB, no speed rating: not bootable, too slow
395*Apacer Photo Steno 256 MB, no speed rating: not bootable, too slow
396*Apacer Photo Steno III 512 MB, 88x: does not work as slave drive
397
398=== Known good microdrives ===
399*Hitachi 6GB (model HMS360606D5CF00)
400
401=== Known microdrives with problems ===
402*Seagate ST1.2 4GB (model ST64022CF): does not work as slave drive
403*Magicstor 4GB (model GS10040A-11 47): not bootable
404
405
406== Problems with certain hard disks ==
407
408=== Quantum ProDrive LPS 340AT ===
409The drive does not properly support block mode transfers when interrupts are disabled. Enable interrupts or disable block mode to use this drive. I have not detected this problem with any other drive.
410
411
412Contact information
413
414XTIDE Universal BIOS thread can be found at Vintage Computer Forums [3]. I recommend to post there but you can also send email to aitotat@gmail.com.
415
416When reporting bugs or other problems, please post the following information:
417Computer specs (at least CPU and RAM but details about expansion card and how they are configured might be useful)
418Operating system and version (for example MS-DOS 6.22)
419Hard disk(s) you are using with XTIDE Universal BIOS
420Hard disk(s) not handled by XTIDE Universal BIOS (if any)
421Reset status that boot menu shows if problem is related to specific drive
422
423
424= References =
425
426[1] http://wiki.vintage-computer.com/index.php/XTIDE_project
427[2] http://en.wikipedia.org/wiki/Programmed_input/output
428[3] http://www.vintage-computer.com/vcforum/showthread.php?17986-XTIDE-Universal-BIOS
Note: See TracBrowser for help on using the repository browser.