The BIOS Survival Guide Edited by Jean-Paul Rodrigue rodriguj@mistral.ere.umontreal.ca Contributors ================================== Gordon L. Burditt (gordon@sneaky.lonestar.org) Peter Herweijer (pieterh@sci.kun.nl) Kajetan Hinner (uf341ea@sunmail.lrz-muenchen.de) Piotr Karocki (yskarock@cyf-kr.edu.pl) Aad Offerman (offerman@einstein.et.tudelft.nl) Keith Rohrer (rohrer@fncrd8.fnal.gov) Jerome Schneider (jls@atg.com) Cameron Spitzer (cls@truffula.sj.ca.us) Andy Walton (akw@ukc.ac.uk) Version history ================================== Version 1.0 to 1.3: December 1993 (Initial postings) Version 2.0 to 2.4: January 1994 (The first "complete" version) Version 2.5: 17-02-94 (dissolve grease 25% better) Version 2.6: 26-02-94 (vitamin C added) Crossposted in: ================================== comp.sys.ibm.pc.hardware & comp.sys.ibm.pc.hardware.chips What is the BIOS survival guide? ================================== BIOS settings are a frequent problem in several hardware related newsgroups. Did you ever experienced a system lock up or poor performance and erratic behaviour due to improper BIOS settings? Have you ever been let in the dark by a cryptic 5 pages badly written motherboard manual? The answer is probably yes. I took some initiative and decided to edit a FAQ for the AMI BIOS (American Megatrends Inc.). This BIOS is, I believe, the most common. The guide provides a description of each BIOS functions (at least those we are aware of) and tips for their settings. I hope it will eventually help newbies "decipher" BIOS settings and more advanced users "optimize" their system. It could even keep you from a painful visit to your local computer store! Disclaimer and other stuff ================================== This document is provided "as is". The editor and contributors take no responsabilities for any problems, damages, humiliations, world wars or loss of sanity resulting from improper BIOS settings. If you are in doubt, please post a question to the comp.sys.ibm.pc.hardware.chips newsgroup or refer to a competent computer technician. Messing up with something you do not understand will often get you in trouble (Who doesn't know someone who did?). YOU HAVE BEEN WARNED. This guide is provided as a free reference for the usenet community. You may distribute it freely as long as the contents are not altered, no charge are asked, and references to the editor and contributors are kept. If you are making money out of this file or posting net-wide (to groups where it does not belong) religious babblings: may your CPU perish by electromigration! I want to know more... ================================== If you have an UNSOLVED BIOS problem not described herein, please post it to related newsgroups (like comp.sys.ibm.pc.hardware.chips), NOT to the editor or the contributors. You should also have a look at the ibm.pc.hardware.* Frequently Asked Questions (FTP rtfm.mit.edu; directory: /pub/usenet/news.answers/csiph-faq; filenames: part1 to part3) posted regularly. It contains a wealth of information about computer hardware. If you have a SOLVED problem, please send it to the editor so it can be added to subsequent versions of this document. Your contributions or comments will be much appreciated. If you want the most recent version of this document, please e-mail the editor and tell what version you currently have. If a more recent version is available, it will be e-mailed. Before doing so, please look in this newsgroup for a regular posting of this guide. If you want in depth technical information about AMI BIOS, you can find it at the FTP site MEGATRENDS.COM (Note: Since mid december this site is unavailable to anonymous users for unknown reasons). If you can afford long distance charges, try the AMI BBS at (404) 246-8780 (or 8781, 8782, 8783). There is also a shareware named AMISETUP that enables BIOS settings and provides an on-line reference (for registered versions). It can even let you access some settings that could not be accessed otherwise. You can find it at SIMTEL mirror sites like FTP.WUSTL.EDU in the /systems/ibmpc/msdos/sysutil directory. The file name is AMISE254.ZIP. One last thing... ================================== I would like to thank the contributors to have taken some of their time to write varied topics and provide enlightening feedbacks. Some parts of this document are still incomplete and some information may be inaccurate. Your feedbacks will help this document be as accurate and up to date as possible (so far, 9 revisions). I am sorry if I cannot answer to everyone or add everything that is send to me. I would also like to thank the following persons for providing information on specific topics: Michiel de Vries, Reinhard Kirchner, Jim Kozma, Juha Laiho, Alain Lavoie, Brian Lee, Erik Mouw and Dan Sobel. Since Pentium CPUs and PCI buses are starting to come out, I would be interested in information regarding BIOS settings for those systems. If someone who have knowledge on Pentium and PCI could review this guide... TABLE OF CONTENT ================================== 1.0 DEFINITIONS 1.1 BIOS 1.2 CMOS 1.3 Chipset 2.0 ENTERING SETUP 3.0 STANDARD CMOS SETUP 4.0 ADVANCED CMOS SETUP 5.0 ADVANCED CHIPSET SETUP 6.0 AUTO CONFIGURATION WITH BIOS DEFAULTS 7.0 AUTO CONFIGURATION WITH POWER-ON DEFAULTS 8.0 CHANGE PASSWORD 9.0 HARD DISK UTILITY 9.1 Hard Disk Format 9.2 Auto Detect Hard Disk 9.3 Auto Interleave 9.4 Media Analysis. 10.0 WRITE TO CMOS AND EXIT 11.0 DO NOT WRITE TO CMOS AND EXIT 12.0 FREQUENTLY ASKED QUESTIONS (FAQ) 1.0 DEFINITIONS ================================== 1.1 BIOS: Basic Input Output System. Computer hardware has to work with software, so it needs an interface with it. The BIOS gives the computer a little built-in starter kit to run the rest of softwares from floppy disks (FDD) and hard disks (HDD). The BIOS is responsible for booting the computer by providing a basic set of instructions. It performs all the tasks that need to be done at start-up time: POST (Power-On Self Test, booting an operating system from FDD or HDD). Furthermore, it provides an interface to the underlying hardware for the operating system in the form of a library of interrupt handlers. For instance, each time a key is pressed, the CPU (Central Processing Unit) perform an interrupt to read that key. This is similar for other input/output devices (Serial and parallel ports, video cards, sound cards, hard disk controllers, etc...). Some older PC's cannot co-operate with all the modern hardware because their BIOS doesn't support that hardware. The operating system cannot call a BIOS routine to use it; this problem can be solved by replacing your BIOS with an newer one, that does support your new hardware, or by installing a device driver for the hardware. 1.2 CMOS: Complementary Metal Oxide Semiconductor. To perform its tasks, the BIOS need to know various parameters (hardware configuration). These are permanently saved in a little piece (64 bytes) of CMOS RAM (short: CMOS). The CMOS power is supplied by a little battery, so its contents will not be lost after the PC is turned off. Therefore, there is a battery and a small RAM memory on board, which never (should...) loses its information. The memory was in earlier times a part of the clock chip, now it's part of such a highly Integrated Circuit (IC). CMOS is the name of a technology which needs very low power, so the computer's battery is not too much in use. Actually there is not a battery on new boards, but an accumulator (Ni_Cad in most cases). It is recharged every time the computer is turned on. If your CMOS is powered by external batteries, be sure that they are in good operating condition. Also, be sure that they do not leak. It may damage the motherboard. Otherwise, your CMOS may suddenly "forget" its configuration and you may be looking for a problem elsewhere. In the PC and PC/XT this information is supplied by setting the DIP (Dual-In-line Package) switches at the motherboard or peripheral cards. 1.3 Chipset: A PC consists of different functional parts on its motherboard: ISA (Industry Standard Architecture), EISA (Enhanced Industry Standard Architecture) and VESA (Video Enhanced Standards Association) slots, memory, cache memory, keyboard plug etc... The chipset enables a set of instructions so the CPU can work (communicate) with other parts of the motherboard. Nowadays most of the discrete chips; PIC (Programmable Interrupt Controller), DMA (Direct Memory Access), MMU (Memory Management Unit), cache, etc... are packed together on one, two or three chips; the chipset. SETUP allows you to change the parameters with which the BIOS configures your chipset. Since chipsets of a different brand are not the same, for every chipset there is a BIOS version. Now we have fewer and fewer chipsets which do the job. Some chipsets have more features, some less. OPTi is such a commonly used chipset. In some well integrated motherboards, the only components present are the CPU, the two BIOS chips (BIOS and Keyboard BIOS), one chipset IC, cache memory (DRAMs, Dynamic Random Access Memory), memory (SIMMs, Single Inline Memory Module, most of the time) and a clock chip. 2.0 ENTERING SETUP ================================== To allow the user to alter the CMOS settings, the BIOS provides a little program, SETUP. Mostly setup can be entered by pressing a special key combination (DEL, ESC, CTRL-ESC, or CRTL-ALT-ESC) at boot time (Some BIOSes allow you to enter setup at any time by pressing CTRL-ALT-ESC). The AMI BIOS is mostly entered by pressing the DEL key (and holding it) after pressing the Reset key or powering up the computer. If there is a booting problem and the BIOS cannot proceed with POST, you will hear a sequence of beeps: Beep Code Meaning 1 DRAM refresh failure 2 Parity Circuit failure 3 Base 64K RAM failure 4 System Timer failure 5 Processor failure 6 Keyboard Controller Gate A20 error 7 Virtual Mode Exception error 8 Display Memory R/W Test failure 9 ROM-BIOS Checksum failure If you encounter any of these, there is a good chance that it is an HARDWARE related problem. (Could someone provide more explanation on each of these errors?) 3.0 STANDARD CMOS SETUP ================================== WARNING: You should have your current setup options written down ON PAPER somewhere, preferably taped to the inside or the outside of the case. CMOS memory has a tendancy to get erased as the battery gets old, or become inaccessible if you forget the password. Especially remember the hard disk settings; they are the most important. Date (mn/date/year) : To change the date of the system clock. Time (hour/min/sec) : To change the time of the system clock. Hard disk C: type : The number of your primary (master) hard drive. Most of the time this number is 47, which means that you must specify the drive specs according to your hard drive manual: Cyln : The number of cylinders on your hard disk. Head : The number of heads. WPcom : Write Precompensation. Older HDD's have the same number of sectors per track at the innermost tracks as at the outhermost tracks. This means that the data density at the innermost tracks is higher and thus the bits are lying closer together. Normally the data is written like this: + + - + - + + + - - - + Areas having the same direction tend to float away from eachother and areas having opposite direction tend to float towards eachother: + + - + - + + + - - - + making the data less reliable after some time. To avoid this, starting from the WP cylinder, bits are written on the surface like this: + + - + - + + + - - - + making your data last longer. Starting with this Cyl# until the end of Cyl#s the writing starts earlier on the disk. In modern HDs (all AT-BUS and SCSI, Small Computer Systems Interface) this entry is useless. Set it either to -1 or max Cyln. For IDE (Integrated Device Electronics) HDD's it is not necessary to enter a WP cylinder. The IDE HDD will ignore it for it has its own parameters aboard. LZone : The address of the landing zone. Same as WPcom. Used in old HDs without an auto-parking feature (MFM, Modified Frequency Modulated, or RLL, Run Length Limited). Set it to 0 or max Cyl#. Sect : The number of sectors per track. Size : This is automatically calculated according the number of cylinders, heads and sectors. It is in megabytes. Note: There is a shareware program called ANYDRIVE that will allow you to set up hard drive geometries not supported in your BIOS. This should be available on your favourite local BBS (Any internet FTP site for this one?). Note that it only sets the correct geometry, many older BIOSes have timing problems with IDE drives and this type of problem will not be helped by ANYDRIVE. Hard disk D: type : The number of your secondary (slave) hard drive. Same procedure than above. Juppers must be setted for an hard drive to perform as slave. Please refer to your hard drive manual. You might also want to refer to the hard disk data file frequently posted to comp.sys.ibm.pc.hardware. Floppy drive A : The type of floppy drive installed for drive A. Frequent configurations are 1.44 MB, 3 1/2 or 1.2 MB, 5 1/4, 3.5" or 1.2 MB, 5.25" (inches). Floppy drive B : The type of floppy drive installed for drive B. Primary display : The type of displaying standard you are using. The most frequent is VGA/PGA/EGA. Modern computers have VGA (Video Graphics Array). If you have an older black/white display select Mono or Hercules, if your Video adapter card is text only, select MDA. Keyboard : Installed. If 'not installed' this option sets the BIOS to pass the keyboard test in the POST, allowing to reset a PC without a keyboard (file server, printer server, etc.), without the BIOS producing a keyboard error. 4.0 ADVANCED CMOS SETUP ================================== WARNING: May vary according to your system and your BIOS version. Some functions may not be present or the order and name may be different. ADDITIONAL WARNING: Know *exactly* what you are doing. Some configurations may keep your computer off from booting. If that's the case: Switch the power off. Turn your computer on *while* keeping the DEL key pressed. Some mainboards will come up again. If not, RESET and DEL the computer permantly. If it still doesn't boot, consult your motherboard manual. Look for a "forget CMOS RAM" jumper. Set it. Try it again. If it still doesn't boot, ask a friend or post to this newsgroup. You are permitted to panic. Typematic Rate Programming : Disabled. It enables the typematic rate programming of the keyboard. Not all keyboards support this! The following two entries specify how the keyboard is programmed if enabled. Typematic Rate Delay (msec) : 500. The initial delay before key auto-repeat starts. I.e. how long you've got to press a key before it starts repeating. Typematic Rate (Chars/Sec) : 15. It is the frequency of the auto-repeat i.e. how fast a key repeats. Above 1 MB Memory Test : If you want the system to check the memory above 1 MB for errors. Disabled recommended for faster boot sequence. The HIMEM.SYS driver for DOS 6.2 now verifies the XMS (Extended Memory Specification), so this test is redundant. Memory Test Tick Sound : Enabled recommended. It gives an audio record that the boot sequence is working properly. Memory Parity Error Check : Enabled recommended. Additional feature to test bit errors in the memory. All (or almost all) PC's check their memory during operation. Every byte in memory has another ninth bit, that with every write access is set in such way that the parity of all bytes is odd. With every read access the parity of a byte is checked for this odd parity. If a parity error occurs, the NMI (Non Mascable Interrupt), an interrupt you mostly cannot switch off, so the computer stops his work and displays a RAM failure) becomes active and forces the CPU to enter an interrupt handler, mostly writing something likes this on the screen: PARITY ERROR AT 0AB5:00BE SYSTEM HALTED. On some motherboards you can disable parity checking with standard memory. Enabled to be sure data from memory are correct. Disable only if you have 8-bit RAM, which some vendors use because it's 10% cheaper. If you own a Gravis Ultrasound Soundcard (GUS), it's imperative that this is enabled; otherwise the Sound Blaster emulation won't work(!). Hard Disk Type 47 RAM Area : The BIOS has to place the HD type 47 data somewhere in memory. You can choose between DOS memory or PC BIOS (or peripheral card) memory area 0:300. DOS memory is valuable, you only have 640KB of it. So you should try to use 0:300 memory area instead. There may be some peripheral card which needs this area too (soundcard, network, whatever). So if there are some fancy cards in your PC, check the manuals if they're using the 0:300 area. But in most cases this will work without checking. Wait for If Any Error : When the boot sequence encounter an error it asks you to press F1. Only at 'non-fatal' errors. If disabled, system print warning and continues to boot without waiting for you to press any keys. Enabled recommended. System Boot Up Num Lock : Specify if you want the Num Lock key to be activated at boot up. Some like it, some do not. Numeric Processor Test : Enabled if you have a math coprocessor (built in for the 486DX and 486DX2 family). Disabled if you don't (386SX, 386DX, 486SX, 486SLC and 486DLC). If disabled, your FPU (Floating Point Unit, if present) isn't recognized as present by the system. Weitek Coprocessor : If you have Weitek FPU, enable. If you haven't, disable. Weitek uses some RAM address space, so memory from this region must be remapped somewhere else. Floppy Drive Seek at Boot : Power up your A: floppy drive at boot. Disabled recommended for faster boot sequence and for reduced damage of heads. System Boot Sequence : What drive the system checks first for an operating system. C:, A: recommended for faster boot sequence. Or to not allow any user to enter your system by booting from floppy disk if your autoexec.bat starts with a login procedure. A:, C: if the person who uses the computer is someone who don't knows how to setup CMOS. Because if something fails and a boot floppy won't work, many users won't know what to do next. However, be careful. You had better know this setting is turned on and be prepared to turn it off if your hard disk boot track becomes corrupted, but not obviously absent, since you otherwise won't be able to boot from floppy. Also, it's easy to fool yourself into thinking you booted from a known virus-free floppy when it actually booted from the (virus-infested) hard drive. External Cache Memory : Enabled if you have cache memory. This is a frequent error in CMOS setup. If Disabled when you have cache memory, the system performance decreases significantly. Most systems have from 64 to 256KB of external cache. It is a cache between the CPU and the system bus. If Enabled when the system does not have cache memory, the system will freeze most of the time. Internal Cache Memory : Enable or disable the internal cache memory of the CPU. Disabled for 386 and Enabled for 486 (1 to 8KB of internal CPU cache). If the CPU does not have internal cache, the system may freeze if enabled. Note: In many AMI BIOSes, the two previous options are implemented either as separate Internal and External Enable/Disable options, or as a single option (Cache Memory : Disabled/Internal/Both). Fast Gate A20 Option : A20 refers to the first 64KB of extented memory (A0 to A19) known as the "high memory area". This option uses the fast gate A20 line, supported in some chipsets, to access memory above 1 MB. Normally all RAM access above 1 MB is handled through the keyboard controller chip. Using this option will make the access faster than the normal method. This option is very useful in networking operating systems. Shadow Memory Cacheable : You increase speed by copying ROM to RAM. Do you want to increase it by cacheing it? Yes or no - see Video BIOS Area cacheable. Yes recommended. Password Checking Option : Setup password to have access to the system and / or to the setup menu. Good if the computer is to be shared with several persons and you don't want anyone (friends, sister etc...) to mess up with the BIOS. Default password: AMI (if you have AMI BIOS). Award: BIOSTAR (Note: I even know a computer store that kept standard award BIOS configuration with their systems because they didn't know what the award default password was!). Video ROM Shadow C000,16K : Memory hidden under the "I/O hole" from 0x0A0000 to 0x0FFFFF may be used to "shadow" ROM (Read-Only Memory). Doing so, the contents of the ROM are copied into the RAM and the RAM is used instead. Video BIOS is stored in slow EPROM (Erasable Programmable Read- Only Memory) chips (120 to 150ns of access time). Also, ROM is 8 or 16 bit while RAM 32 bit wide access. With Shadow on, the EPROM content is copied to RAM (60 to 80ns of access time with 32 bit wide access). Therefore perfomance increases significantly. Only sensible on EGA/VGA systems. Enabled recommended. If you have flash BIOS, you can disabled it. Flash BIOS enable access at speeds similar to memory access so you can use the memory elsewhere. However, flash BIOS is still only accessing it at the speed of the bus (ISA, EISA or VLB). On systems where the BIOS automatically steals 384k of RAM anyway, it shouldn't hurt to enable shadowing even on flash ROM. One side effect is that you will not be able to modify the contents of flash ROM when the chip is shadowed. If you reconfigure an adapter which you think might have flash ROM, and your changes are ignored, or of course if it gives you an error message when you try to change them, you'll need to temporarily disable shadowing that adapter. On (S)VGA you should enable both video shadows. Some video cards maybe using different addresses than C000 and C400. If it is the case, you should use supplied utilities that will shadow the video BIOS, in which case you should disable this setting in the CMOS. Video BIOS shadowing can cause software like XFree86 (the free X Window System) to hang. They should be probably be disabled if you run any of the 386 unixes. Note: Some cards map BIOS or other memory not only in the usual a0000-fffff address range, but also just below the 16MB border or at other places. The BIOS (for PCI buses only?) now allows to create a hole in the address range where the card sits. The hole may be enabled by giving an address, then a size is requested in power of 2, 64k - 1MB. Video ROM Shadow C400,16K : Same than previous, except it is for another segment of video memory. Enabled recommended. Adaptor ROM Shadow C800,16K : Disabled. Those addresses (C800 to EC00) are for special cards, e.g. network and controllers. Enable only if you've got an adapter card with ROM in one of these areas. It is a BAD idea to use shadow RAM for memory areas that aren't really ROM, e.g. network card buffers and other memory-mapped devices. This may interfere with the card's operation. To intelligently set these options you need to know what cards use what addresses. Most secondary display cards (like MDA and Hercules) use the ROM C800 address. Since they are slow, shadowing this address would improve their performance. An advanced tip: in some setups it is possible to enable shadow RAM *without* write-protecting it; with a small driver (UMM) it is then possible to use this 'shadow RAM' as UMB (Upper Memory Block) space. This has speed advantages over UMB space provided by EMM386. Adaptor ROM Shadow CC00,16K : Disabled. Some hard drive adapters use that address. Adaptor ROM Shadow D000,16K : Disabled Adaptor ROM Shadow D400,16K : Disabled. Some special controllers for four floppy drives have a BIOS ROM at D400..D7FF. Adaptor ROM Shadow D800,16K : Disabled Adaptor ROM Shadow DC00,16K : Disabled Adaptor ROM Shadow E000,16K : Disabled Adaptor ROM Shadow E400,16K : Disabled Adaptor ROM Shadow E800,16K : Disabled Adaptor ROM Shadow EC00,16K : Disabled. SCSI controller cards with their own BIOS could be accalerated by using Shadow RAM. Some SCSI controllers do have some RAM areas too, so it depends on the brand. Note: Some SCSI adapters do not use I/O-Adresses. The BIOS address range contains writable addresses, which in fact are the I/O-ports. This means: this address must not be shadowed and even not be cached. System ROM Shadow F000,64K : Same thing as Video shadow, but according to the system bios (main computer BIOS). Enabled recommended for improved performance. System BIOS shadowing and caching should be disabled to run anything but MSDOS. BootSector Virus Protection : It is not exacly a virus protection. All it does is whenever your boot sector is accessed for writing, it gives a warning to the screen allowing you to disable the access or to continue. Extremely annoying if you use something like OS/2 Boot Manager that needs to write to it. It is completely useless for SCSI or ESDI (Enhanced Small Device Interface) drives as they use their own BIOS on the controller. Disabled recommended. If you want virus protection, use a TSR (Terminate and Stay Resident) virus detection (Norton, Central Point, etc...). Scan by Mcaffee is also a good idea. Available on most ftp servers, it is a shareware. 5.0 ADVANCED CHIPSET SETUP ================================== WARNING: May vary according to your system and your BIOS version. Be sure of what you are doing! Hidden Refresh : Allows the RAM refresh memory cycles to take place in memory banks not used by your CPU at this time, instead or together with the normal refresh cycles, which are executed every time a certain interrupt (DRQ0 every 15 msecs) is called by a certain timer (OUT1). Every time it takes 2 to 4 msecs for the refresh. One refresh cycle every ~16 us refreshes 256 rows in ~ 4ms. Each refresh cycle only takes the equivalent of one memory read or less, as CAS (Column Address Strobe) is not needed for a refresh cycle. Some RAMs can do it, some not. Try. If the computer fails, turn it off. Enabled recommended. Slow Refresh : Causes RAM refresh to happen less often than usual. This increases the performance slightly due to the reduced contention between the CPU and refresh circuitry, but not all DRAMs necessarily support these reduced refresh rates (in which case you will get parity errors and crashes). Concurrent Refresh : Both the processor and the refresh hardware have acces to the memory at the same time. If you switch this off, the processor has to wait until the refresh hardware has finished (it's a lot slower). Enabled recommended. Single ALE Enable : ALE (Address Latch Enable) is a pin on your PC-bus that is active each time there is an address on the bus. May slow the video bus speed is enabled. Still very obscure??? Keyboard Reset Control : Enable Ctrl-Alt-Del warm reboot. Enabled recommended for more control over your system. AT BUS Clock Selection : Gives a division of the CPU clock so it can reach the ISA - EISA bus clock. An improper setting may cause significant decrease in performance. The settings are in terms of CLK/x, (or CLKIN/x) where x may have values like 2, 3, 4, 5, etc. CLK represents your processor speed, with the exception that clock-multiple processors need to use the EXTERNAL clock rate, so a 486DX33, 486DX2/66, and 486DX3/99 all count as 33. You should try to reach 8.33 Mhz. (that's the old bus clock of IBM AT; there may be cards which could do higher, but it's not highly recommended). On some motherboards, the AT bus speed is 7.15 Mhz. CPU Speed Appropriate setting 16 CLK/2 25 or DX2/50 CLK/3 33, DX2/66 or DX3/99 CLK/4 40 or DX2/80 CLK/5 50 or DX2/100 CLK/6 You can try other settings to increase performance. If you choose a too small divider (CLK/2 for a DX33) your system may hang. For a too big divider (CLK/5 for a DX33) the performance of ISA cards will decrease. This setting is for data exchange with ISA cards, NOT VESA cards which run at CPU bus clock speeds: 25Mhz, 33Mhz and higher. If your ISA cards are fast enough to keep up, it is possible to run the bus at 12 Mhz. Note that if you switch crystals to overclock your CPU, you are also overclocking the ISA bus unless you change settings to compensate. Just because you can overclock the CPU doesn't mean you can get away with overclocking the ISA bus. It might just be one card that causes trouble, but one is enough. It might cause trouble even if you aren't using it by responding when it shouldn't. Fast AT Cycle : If enabled, may speed up transfer rates with ISA cards, notably video. ??? Fast Decode Enable : Refers to some hardware that monitors the commands sent to the keyboard controller chip. The original AT used special codes not processed by the keyboard itself to control the switching of the 286 processor back from protected mode to real mode. The 286 had no hardware to do this, so they actually have to reset the CPU to switch back. This was not a speedy operation in the original AT, since IBM never expected that an OS might need to jump back and forth between real and protected modes. Clone makers added a few PLD chips to monitor the commands sent to the keyboard controller chip, and when the "reset CPU" code was seen, the PLD chips did an immediate reset, rather than waiting for the keyboard controller chip to poll its input, recognize the reset code, and then shut down the CPU for a short period. This "fast decode" of the keyboard reset command allowed OS/2 and Windows to switch between real and protected mode faster, and gave much better performance. (early 286 clones with Phoenix 286 BIOS had this setting to enable/disable the fast decode logic.) On 386 and newer processors, the fast decode is probably not used, since these CPUs have hardware instructions for switching between modes. There is another possible definition of the "Fast Decode Enable" command. The design of the original AT bus made it very difficult to mix 8-bit and 16-bit RAM or ROM within the same 128K block of high address space. Thus, an 8-bit BIOS ROM on a VGA card forced all other peripherals using the C000-Dfff range to also use 8 bits. By doing an "early decode" of the high address lines along with the 8/16 bit select flag, the I/O bus could then use mixed 8 and 16 bit peripherals. It is possible that on later systems, this BIOS flag controls the "fast decode" on these address lines. Extended I/O Decode : The normal range of I/O addresses is 0-0x3ff; 10 bits of I/O address space. Extended I/O-decode enables wider I/O-address bus. The CPU(s) support a 64K I/O space, 16 address lines. ??? Memory Read Wait State : Wait states is for RAM which aren't fast enough for the computer. On a 486, 1 or more wait states are often required for RAM with 80ns or higher access time. And, depending on the processor and motherboard, also for lower than 80ns access time. The less wait states, the better. Consult your manual. If wait states are too low, a parity error will occur. For 386 or 486 non-burst memory access cycle takes 2 clock ticks. A *rough* indication of RAM speed necessary for 0 wait states is 2000/Clock[MHz] - 10 [ns]. For a 33Mhz processor, this would give 50ns of access time required. The number of wait states necessary is *approximately* (RamSpeed[ns] +10) * Clock[MHz] /1000 - 2. For 70ns RAM and a 33Mhz processor (very standard configuration), this would give roughly 1 wait state. But this really is dependent on chipset, motherboard and cache design, CPU type and whether we talk about reads or writes. Take these formulas with a large grain of salt. You can find out the access time of your RAM chips by looking at their product numbers. Mostly at the end there is a 70, 80, 90, or even 60. If 10 stands there, it means 100 ns. Some RAM chips also have an explicitly written speed in ns. The RAM you buy these days mostly have 70ns or 60ns. Memory Write Wait State : Same as above. Note: In some BIOSes, these two options are combined as 'DRAM Wait State'. In that case, the number of read & write wait states is necessarily equal. Post Write Control : ??? CAS Pulse Width : Column Address Strobe. A DRAM parameter. ??? RAS Precharge Time : Row Address Strobe. ??? RAS to CAS Delay : ??? Cache Read Option : Often also "SRAM Read wait state", (SRAM: Static Random Access Memory) taking simple integer values, or "SRAM Burst", taking 2-1-1-1, 3-1-1-1 or 3-2-2-2. This determines the number of wait states for the cache RAM in normal and burst transfers (the latter for 486 only). The lower you computer can support, the better. Cache Write Option : Same thing as memory wait states, but according to cache ram. Non-Cacheable Block-1 Size : Disabled. The Non-Cacheable region is intended for a memory-mapped I/O device that isn't supposed to be cached. For example, some video cards can present all video memory at 15 meg - 16 meg so software doesn't have to bank-switch. If the non-cacheable region covers actual RAM memory you are using, expect a significant performance decrease for accesses to that area. If the non-cacheable region covers only non-existent memory addresses, don't worry about it. If you dont want to cache some memory you can exclude 2 regions of memory. There are *good* reasons not to cache some memory areas. For example, if the memory area corresponds to some kind of buffer memory on a card so that the card may alter the contents of this buffer without warning the cache to invalidate the corresponding cache lines. Some BIOSes take more options than enabled /disabled, namely Nonlocal /Noncache /Disabled (VLB only?). Non-Cacheable Block-1 Base : 0KB. Enter the base address of the area you don't want to cache. Non-Cacheable Block-2 Size : Disabled. Non-Cacheable Block-2 Base : 0KB. Cacheable RAM Address Range : Usually chipsets allow memory to be cached just up to 16 or 32 MB. This is to limit the number of bits of a memory address that need to be saved in the cache together with its contents. If you only have 4MB of RAM, select 4MB here. The lower the better, don't enter 16MB if you only have 8MB installed! Video BIOS Area Cacheable : To cache or not to cache video BIOS. You should try what is better - video access is faster with 'enabled', but cache has its size. With an "accelerated" video card it may be necessary to make the video RAM region non-cacheable so the CPU can see any changes the drawing engine makes in the frame buffer. 6.0 AUTO CONFIGURATION WITH BIOS DEFAULTS ================================== The BIOS defaults are the ones that are tuned for your motherboard/chipset, but give a reasonable chance of getting into POST. Usually these settings are a good start to fine tune your system. If you did something wrong and don't know what, select this. It will replace your BIOS settings by default values. You will have to start all over again. Be sure to know your system's configuration. This option does *not* alter the date and harddisk & floppy disk configuration in the Standard CMOS setup, so in general you can expect your system to boot without problems after selecting this. 7.0 AUTO CONFIGURATION WITH POWER-ON DEFAULTS ================================== When powering on, the BIOS puts the system in the most conservative state you can think of. Turbo off, all caches disabled, all wait states to maximum, etc... This is to make sure that you can always enter BIOS setup. Useful if the settings obtained by selecting AUTO CONFIGURATION WITH BIOS DEFAULTS fail. If the system does not work with these values, it's time to panic: the problem maybe hardware related (DIP switches, cards not inserted properly or worst, something broken). 8.0 CHANGE PASSWORD ================================== Enable you to change the active password. The default is no password. Warning: Remember your password!!! Write it down somewhere!!! Ask yourself: Do I really need to set a password to access my system and/or the BIOS? (is your brother/sister/kid/employee that dangerous?) If security is of some minor concern to you, disabled recommended. If you lose it, you will have to erase your CMOS memory (see FAQ). 9.0 HARD DISK UTILITY ================================== 9.1 Hard Disk Format Will format your hard disk so it can receive new partitions. WARNING: IT WILL SMASH EVERYTHING ON YOUR HARD DISK!!! USE WITH CAUTION. I lot of inexperienced users have lost their sanity with this one. Several computer stores have made extra money with it! There's no need to do this unless you experience errors or if you want to change the interleave. DON'T TOUCH THIS IF YOU'VE GOT AN IDE DRIVE. It will perform a low level format and probably SCRAP your IDE hard drive. IDE means AT-Bus, the standard drive type nearly everyone has now. Also SCSI or ESDI drives shouldn't be low-level formatted. The new drives actually don't perform the low level format, but some old AT-Bus (IDE) drives you can scratch with this... This entry is only sensible for old MFM or RLL hard disks! Please refer to your hard disk manual to see how or if your hard disk can be low level formatted. Don't tell us we did not warn you. Many manufacturers provide utilities to low level format their IDE drives (or any other types). Please refer to the comp.sys.ibm.pc.hardware.storage for more technical information about this procedure. If normal (high level) hard disk formatting is required, you can use DOS FDISK to first erase and create partitions and then use FORMAT. It is also a good idea when you hard disk becomes unaccessible to see if it is just the system files that are corrupted. Most of the time, it is the case. SYS will do the job of replacing system files. Several packages (PC-Tools, Norton, etc...) provide utilities for repairing "damaged" HDD and FDD. 9.2 Auto Detect Hard Disk Handy when you "forgot" the specs of your hard drive. The BIOS will detect the number of cylinders, heads and sectors on your hard disk. Sometimes option from main menu. 9.3 Auto Interleave Determines the optimum interleave factor for older hard disks. Some controllers are faster than others, and you don't want the sectors laid out so reading consecutive sectors usually results in just missing the sector you wanted and having to wait a whole disk rotation for it to come around again. On modern ones, it's always 1:1 (and even if it wasn't, you cannot reformat anyway). Interleaving is specified in a ratio, n:1, for small positive integers n. Basically, it means that the next sector on the track is located n positions after the current sector. The idea is that data on a hard drive might spin past the heads faster than the adapter can feed it to the host. If it takes you more than a certain amount of time to read a sector, by the time you're ready for the next sector, the heads will have passed it already. If this is the case, the interleave is said to be "too tight". The converse, where the CPU spends more time than necessary waiting for the next sector to spin under the heads, is too "loose" of an interleave. Clearly, it is better to have too loose an interleave than too tight, but the proper interleave is better still. Especially since any controller with read-ahead cacheing can pull the whole track into its buffer, no matter how slow the CPU is about fetching the data down. The 1:1 interleave arranges the sectors on a track as follows: 0 1 2 3 4 5 6 7 8 9 a b c d e f g (17-sectors, using base 17 for convenience, this is clearly the in-order arrangement, one after another) This is 2:1 interleaving: 0 9 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 The CPU has a whole sector's worth of time to get the a sector's data taken care of before the next sector arrives. It shows which logical sector goes in each physical sector. Anyway, an n:1 interleave restricts the transfer rate to 1/n the speed of a 1:1 interleave (which is better than 1 revolution per sector if the interleave is too tight!). No modern PC should require interleaving. Only MFM and RLL (maybe also ESDI) and floppy drives which are capable of it (you could format a 1.44 meg floppy to 21 sectors/track, which would require a 2:1 interleave to not exceed the 500 mbps speed of the controller...but why?). 9.4 Media Analysis. Scan the hard disk for bad blocks. Once bad blocks are detected, their addresses are stored in the FAT (File Allocation Table) so the operating system will skip them. Don't use this option to on AT-Bus (IDE), SCSI or ESDI drives. These drives store the bad block data themselves, so you don't have to tell them or scan the media! 10.0 WRITE TO CMOS AND EXIT ================================== Save the changes you made in the CMOS. You must do that to permanently keep your configuration. 11.0 DO NOT WRITE TO CMOS AND EXIT ================================== If you are not sure of the changes you made in the CMOS settings, use this option to exit safely. 11.0 FREQUENTLY ASKED QUESTIONS (FAQ) ================================== 1) How do I clear the BIOS memory? a) Disconnect battery. b) Insert appropiate jumper (see mainboard documentation, near battery). Sometimes this is possible with DIP switches on the motherboard. Sometimes (if not), you will have to remove the battery. And sometimes (if no DIP's and no removable battery, and not willing to desolder the battery), you can short the battery with a resistor to lower the current available for the CMOS. This is only recommendable as a very last option. The NiCad cells often employed have a very low internal resistance, so that the resistor will have to be of very low value for the voltage to drop significantly. The corresponding current would be quite high, which is not very good for battery life. A better option would be to use a resistor to discharge the battery. Obviously, this only makes sense when you have a NiCad cell (which will be recharged every time you turn the computer on) as opposed to a lithium cell (which cannot be recharged). In the former case, a resistor of 39 Ohm will discharge the battery in under half an hour relatively safely.