The AMI BIOS Survival Guide Edited by Jean

The AMI BIOS Survival Guide
Edited by Jean-Paul Rodrigue
[email protected]
Gordon L. Burditt ([email protected])
Peter Herweijer ([email protected])
Kajetan Hinner ([email protected])
Piotr Karocki ([email protected])
Brian Lee ([email protected])
Aad Offerman ([email protected])
Keith Rohrer ([email protected])
Jerome Schneider ([email protected])
Cameron Spitzer ([email protected])
Andy Walton ([email protected])
Version history
Version 1.0 to 1.3: December 1993 (initial postings)
Version 2.0 to 2.4: January 1994 (the first "complete" versions)
Version 2.5 and 2.6 : February 1994 (vitamin C added)
Version 2.65 and 2.7: March 1994 (no cholesterol)
Version 3.0: 16-04-94 (new prune-strawberry-cabbage flavour)
Version 3.1: 13-05-94 (friday the 13th edition)
What's new in version 3.1 (*)
- FTP archive site available for the guide.
- A list of BIOS error messages (see section 2.4)
- Several additions to various topics (*).
Crossposted in:
==================================,, & comp.answers (patent pending).
(*) Archive Site
The guide, along with other hardware-related FAQs, is available through
anonymous FTP at in the pub/cameron/PC-info directory. The
document is compressed by Gzip, available at any GNU archive sites like, in the pub/GNU directory.
What is the AMI 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
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
please post a question to the 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 (internet)
community. You may distribute it freely as long as the contents are not
altered, no fees are asked, and references to the editor and contributors
are kept. If you are making money out of this file or posting net-wide
groups where it does not belong) religious babblings or green card
scam: 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,
NOT to the editor or the contributors. You should also have a look at
ibm.pc.hardware.* Frequently Asked Questions (FTP;
directory: /pub/usenet/news.answers/csiph-faq; filenames: part1 to part5)
posted regularly. It contains a wealth of information about computer
hardware. Look also in the comp.answers newsgroup for available FAQs.
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
Before doing so, please look in this newsgroup for a regular posting of
If you want various technical information about AMI BIOS, you can find
it at the FTP site AMERICAN.MEGATRENDS.COM. 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
even let you access some settings that could not be accessed otherwise.
You can find it at SIMTEL mirror sites like FTP.WUSTL.EDU or
OAK.OAKLAND.EDU in the /systems/ibmpc/msdos/sysutil directory.
The file name is AMISE260.ZIP.
One last thing...
I would like to thank the contributors to have taken some of their time
write varied topics and provide enlightening feedbacks. Some parts of
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. I am sorry if I cannot answer to everyone or add everything
is send to me.
I would also like to thank the following persons for providing
on specific topics: Michiel de Vries, Andy Eskilsson, Doug Hogarth,
Reinhard Kirchner, Mirek Komon, Jim Kozma, Juha Laiho, Alain Lavoie,
Erik Mouw, Chris Pollard, Dietrich Schmidt, Hans Schrader, Loren
Schwiebert, Dan Sobel, Dave Spensley and Dmitry Stefankov.
1.1 BIOS
1.2 CMOS
1.3 Chipset
2.1 A Typical AMI BIOS POST Sequence
2.2 AMI BIOS POST Errors
2.3 Other AMI BIOS POST Codes
(*) 2.4 BIOS Error Messages
9.1 Hard Disk Format
9.2 Auto Detect Hard Disk
9.3 Auto Interleave
9.4 Media Analysis.
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
disks (FDD) and hard disks (HDD). The BIOS is responsible for booting
the computer by providing a basic set of instructions. It performs all
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
key is pressed, the CPU (Central Processing Unit) perform an interrupt to
read that key. This is similar for other input/output devices (Serial
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
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)
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
(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
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
monolithic PC and PC/XT this information is supplied by setting the DIP
(Dual-In-line Package) switches at the motherboard or peripheral cards.
Some new motherboards have a technology named the Dallas Nov-Ram.
It eliminates having an on-board battery: There is a 10 year lithium cell
epoxyed into the chip.
1.3 Chipset: A PC consists of different functional parts on its
motherboard: ISA (Industry Standard Architecture), EISA (Enhanced
Industry Standard Architecture) VESA (Video Enhanced Standards
Association) and PCI (Peripheral Component Interface) 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
When the system is powered on, the BIOS will perform diagnostics and
initialize system components, including the video system. (This is
self-evident when the screen first flicks before the Video Card header is
displayed). This is commonly refered as POST (Power-On Self Test).
Afterwards, the computer will proceed its final boot-up stage by calling
the operating system. Just before that, the user may interupt to have
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 after resetting (CTRL-ALT-DEL) or powering up the computer.
can bypass the extended CMOS settings by holding the <INS> key down
during boot-up. This is really helpful, especially if you bend the CMOS
settings right out of shape and the computer won't boot properly anymore.
This is also a handy tip for people who play with the older AMI BIOSes
the XCMOS setup. It allows changes directly to the chip registers with
little technical explanation.
2.1 A Typical AMI BIOS POST Sequence
-----------------------------a) Display some basic informations about the video card like its brand,
video BIOS version and video memory available.
b) Display the BIOS version and copyright notice in upper middle screen.
You will see a large sequence of numbers at the bottom of the screen.
They refer to the BIOS serial number, version and type of chipset. (*)
versions 1986-1991 (AMIBIOS before HI-Flesh):
Reference number: ABBB-NNNN-MMDDYY-KX, where
= D for BIOS with Diagnostics.
= S for BIOS with Setup program.
= E for BIOS with Extended Setup program.
BBB = C&T for C&T386 chipset.
= NET for C&T NEAT chipset.
= 286 fpr standard 286,VLSI,G2 286 boards.
= SUN for SUNTAC 286 boards.
= PAQ for COMPAQ compatible 386 boards.
= INT for INTEL boards.
= AMI for AMI 386 motherboard.
= G23 for G2 386 board.
= ??? other n/a.
= reference number for manufacturer.
= BIOS release date.
= AMI keyboard BIOS version number (X = usually
(could someone provide information for recent BIOS serial numbers?)
c) Display memory count. You will also ear tick sounds if you have
enabled it (see Memory Test Tick Sound section).
d) Once the POST have succeeded and the BIOS is ready to call the
operating system (DOS, OS/2, NT etc...) you will see a basic table of the
system's configurations:
Main Processor:
The type of CPU identified by the BIOS.
Usually Cx386DX, Cx486DX, etc..
Numeric Processor: Present if you have a FPU or None on the
contrary. If you have a FPU and the BIOS
does not recognize it, see section Numeric
Processor Test in Advanced CMOS Setup.
Floppy Drive A:
The drive A type. See section Floppy drive
A in Standard CMOS Setup to alter this
Floppy Drive B:
Display Type:
See section Primary display in Standard
CMOS Setup.
The revision date of your AMI BIOS.
Useful to mention when you have
compatibility problems with adaptor cards
(notably fancy ones).
Base Memory Size:
The number of KB of base memory.
Usually 640.
Ext. Memory Size: The number of KB of extended memory.
NOTE: In the majority of cases, the summation of base memory and
extended memory does not equal the total system memory. For instance
in a 4096 KB (4MB) system, you will have 640KB of base memory and
3072KB of extended memory, a total of 3712KB. The missing 384KB is
reserved by the BIOS, mainly as shadow memory (see Advanced CMOS
Hard Disk C: Type:
The master HDD number. See Hard disk
C: type section in Standard CMOS Setup.
Hard Disk D: Type: The slave HDD number. See Hard disk D:
type section in Standard CMOS Setup.
Serial Port(s):
The hex numbers of your COM ports. 3F8
and 2F8 for COM1 and COM2.
Parallel Port(s):
The hex number of your LTP ports. 378
for LPT1.
Right under the table, BIOS usually display the size of cache memory.
Common sizes are 64KB, 128KB or 256KB. See External Cache Memory
section in Advanced CMOS Setup.
2.2 AMI BIOS POST Errors
-----------------------------During the POST routines, which are performed each time the system is
powered on, errors may occur. Non-fatal errors are those which, in most
cases, allow the system to continue the boot up process. The error
messages normally appear on the screen. Fatal errors are those which
not allow the system to continue the boot-up procedure. If a fatal error
occurs, you should consult with your system manufacturer or dealer for
possible repairs. These errors are usually communicated through a series
of audible beeps. The numbers on the fatal error list correspond to the
number of beeps for the corresponding error. All errors listed, with the
exception of #8, are fatal errors. All errors found by the BIOS will be
into I/O port 80h.
# of Beeps
DRAM refresh failure. The memory refresh circuitry on
the motherboard is faulty.
Parity Circuit failure. A parity error was detected in
base memory (first 64k Block) of the system.
Base 64K RAM failure. A memory failure occured
within the first 64k of memory.
System Timer failure. Timer #1 on the system board has
failed to function properly.
Processor failure. The CPU on the system board has
generated an error.
Keyboard Controller 8042-Gate A20 error. The
keyboard controller (8042) contains the gate A20 switch
which allows the computer to operate in virtual mode.
This error message means that the BIOS is not able to
switch the CPU into protected mode.
Virtual Mode (processor) Exception error. The CPU on
the motherboard has generated an Interrupt Failure
exception interrupt.
Display Memory R/W Test failure. The system video
adapter is either missing or Read/Write Error its memory
is faulty.
This in not a fatal error.
ROM-BIOS Checksum failure. The ROM checksum
value does not match the value encoded in the BIOS.
This is good indication that the BIOS ROMs went bad.
CMOS Shutdown Register. The shutdown register for the
CMOS memory Read/Write Error has failed.
Cache Error / External Cache Bad. The external cache
is faulty.
2.3 Other AMI BIOS POST Codes
-----------------------------2 short beeps: POST failed. This is caused by a failure of one of the
hardware testing procedures.
1 long & 2 short
Video failure. This is caused by one of two possible
hardware faults. 1) Video BIOS ROM failure,
checksum error encountered. 2) The video adapter
installed has a horizontal retrace failure.
1 long & 3 short
Video failure. This is caused by one of three possible
hardware problems. 1) The video DAC has failed. 2)
the monitor detection process has failed. 3) The video
RAM has failed.
1 long beep:
POST passed. This indicates that all hardware tests
were completed without encountering errors.
If you have access to a POST Card reader, (Jameco, etc) you can watch the
system perform each test by the value that's displayed. If/when the
hangs (if there's a problem) the last value displayed will give you a
idea where and what went wrong, or what's bad on the system board. Of
course, having a description of those codes would be helpful, and
BIOSes have different meanings for the codes. (could someone point out
FTP sites where we could have access to a complete list of error codes
different versions of AMI BIOS?).
(*)2.4 BIOS Error Messages
-----------------------------This is a short list of most frequent on-screen BIOS error messages.
system may show them in a different manner. When you see any of these,
you are in trouble - Doh!
(Does someone has any additions of
"8042 Gate - A20 Error"
"Address Line Short!"
"Cache Memory Bad,
Do Not Enable Cache!"
"CH-2 Timer Error"
: Gate A20 on the keyboard controller
(8042) is not working.
: Error in the address decoding circuitry.
: Cache memory is defective.
: There is an error in timer 2. Several
systems have two timers.
"CMOS Battery State Low" : The battery power is getting low. It
would be a good idea to replace the battery.
"CMOS Checksum Failure" : After CMOS RAM values are saved, a
checksum value is generated for error
checking. The previous value is different
from the current value.
"CMOS System Options
Not Set"
: The values stored in CMOS RAM are
either corrupt or nonexistent.
"CMOS Display Type
: The video type in CMOS RAM is not the
one detected by the BIOS.
"CMOS Memory Size
: The physical amount of memory on the
motherboard is different than the amount in
"CMOS Time and Date
Not Set"
"Diskette Boot Failure"
: Self evident.
: The boot disk in floppy drive A: is corrupt
(virus?). Is an operating system present?
"Display Switch Not
: A video switch on the motherboard must
be set to either color or monochrome.
"DMA Error"
: Error in the DMA controller.
"DMA #1 Error"
: Error in the first DMA channel.
"DMA #2 Error"
: Error in the second DMA channel.
"FDD Controller Failure" : The BIOS cannot communicate with the
floppy disk drive controller.
"HDD Controller Failure" : The BIOS cannot communicate with the
hard disk drive controller.
"INTR #1 Error"
: Interrupt channel 1 failed POST.
"INTR #2 Error"
: Interrupt channel 2 failed POST.
"Keyboard Error"
: There is a timing problem with the
"KB/Interface Error"
: There is an error in the keyboard
"Parity Error ????"
: Parity error in system memory at an
unknown address.
"Memory Parity Error
at xxxxx":
: Memory failed at the xxxxx address.
"I/O Card Parity Error
at xxxxx":
An expansion card failed at the xxxxx
"DMA Bus Time-out"
: A device has used the bus signal for more
than allocated time (around 8
NOTE: If you encounter any POST error, there is a good chance that it
is an HARDWARE related problem. You should at least verify if adaptor
cards or other removable components (simms, drams etc...) are properly
inserted before calling for help.
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 tendency 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.
NOTE: There are several good CMOS saver programs out on the market,
including the PC-Tools and Norton recovery programs. They allow a user
to save a copy of the CMOS registers to a file in case the battery dies,
or they
mess around with the settings, etc...
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:
: 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
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
this one?). Note that it only sets the correct geometry, many older
have timing problems with IDE drives and this type of problem will not
be helped by ANYDRIVE. (*) You can also use the freeware program
HD-MBOOT from the archive file DSUTIL12.ZIP on the Internet:
SIMTEL20 or its mirrors, and GARBO FTP-sites in the directory
Hard disk D:
: The number of your secondary (slave) hard drive.
Same procedure than above. Jumpers must be set 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
Floppy drive A : The type of floppy drive installed for drive A.
Frequent configurations are 1.44 MB (3 1/2 inches), or
1.2 MB (5 1/4). Newer systems have also a 2.88 MB
(3 1/2) setting.
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.
: Installed.
If 'not installed' this option sets the BIOS
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.
WARNING: May vary according to your system and your BIOS version.
Some functions may not be present or the order and name may be
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 it still
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
or post to this newsgroup. You are permitted to panic. See note in
Typematic Rate
Typematic Rate Delay
: 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.
: 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 autohow 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.
Alternatively, you can enable this test and
disable HIMEM.SYS from doing so. (*) It
is preferrable to use the XMS test provided
by HIMEM.SYS since it is operating in the
real environment (where user wait states
and other are operational).
Memory Test Tick Sound
: Enabled recommended. It gives an audio
record that the boot sequence is working
Plus, it's aural confirmation of
your CPU clock speed/Turbo switch setting
(for trained users!).
Memory Parity Error
: 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
Maskable 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
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).
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. (*) This is
redundant if BIOS is shadowed (may be not in very old
BIOSes). The RAM area can be verified by checking
address of int41h and int46h. These are fixed disk
parameters blocks. If they point to the BIOS area, BIOS
made modification of parameters before mapping RAM
Wait for <F1> If
Any Error
System Boot Up Num
Numeric Processor
Weitek Coprocessor
: 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.
: Specify if you want the Num Lock key to be
activated at boot up. Some like it, some do not.
MS-DOS (starting with 6.0, maybe earlier)
allows a "NUMLOCK=" directive in config.sys,
too; if someone turns the BIOS flag off but has
NUMLOCK=ON in their configuration file, they
may be a bit perturbed.
: 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
: 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
System Boot
: Power up your A: floppy drive at boot.
Disabled recommended for faster boot
sequence and for reduced damage of heads.
: 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 the FDD 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
booted from a known virus-free floppy when it actually
booted from the (virus-infested) hard drive.
System Boot Up
CPU speed : Specify at what processor speed the system will boot
from. Usual settings are HIGH and LOW. HIGH
recommended. If you encounter booting problems, you
may try LOW.
External Cache
: 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
: 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
(A0 to A19) known as the "high memory area".
This option uses the fast gate A20 line,
in some chipsets, to access memory above 1 MB.
Normally all RAM access above 1 MB is handled
through the keyboard controller chip. Using
option will make the access faster than the
This option is very useful in
operating systems.
Shadow Memory
Password Checking
: 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
: 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
Video ROM Shadow
: Memory hidden under the "I/O hole" from 0x0A0000
to 0x0FFFFF may be used to "shadow" ROM (ReadOnly 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
places. The BIOS (for PCI buses only?) now allows to create a hole in
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
: 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
Adaptor ROM Shadow D000,16K
Adaptor ROM Shadow D400,16K
Adaptor ROM Shadow D800,16K
Adaptor ROM Shadow DC00,16K
Adaptor ROM Shadow E000,16K
Adaptor ROM Shadow E400,16K
Adaptor ROM Shadow E800,16K
Adaptor ROM Shadow EC00,16K
: Disabled. Some hard drive adapters
use that address.
: Disabled.
D000 is the default
Address for most Network Interface
: Disabled. Some special controllers
for four floppy drives have a BIOS
ROM at D400..D7FF.
: Disabled
: Disabled
: Disabled.
E000 is a good "out of
the way" place to put the EMS page
frame. If necessary.
: Disabled
: Disabled
: 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
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.
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.
NOTE: On some BIOS versions (probably newer ones) the shadow
choices are in 800(hex)-byte increments. For instance, instead of two
Video ROM Shadow segments of 16K (C400 and C800), you will have
one 32K segment. Same thing for Adaptor ROM Shadow segments.
BootSector Virus
: It is not exacly a virus protection.
All it does
whenever your boot sector is accessed for writing, it
gives a warning to the screen allowing you to disable
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
Central Point, etc...).
Scan by Macfee is also a
Available on most FTP servers, it is a
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.
There are typically 3 types of refresh schemes: cycle
cycle stretch, or hidden refresh. Cycle steal actually
a clock cycle from the CPU to do the refresh. Cycle
stretch actually delays a cycle from the processor to do
the refresh. Since it only occurs every say 4ms or so,
an improvement from cycle steal. We're not really
stealing a cycle, only stretching one. Hidden refresh
typically doesn't stretch or steal anything. It's usually
to DTACK (Data acknowledge) or ALE (Address Latch
Enable) or some other signal relating to memory access.
Since memory is accessed ALL of the time, ie ram, rom,
etc. it's easy to synchronize the the refresh on the
edge of this event. Of course, the system performance is
at its optimum efficiency, refresh wise sinces we're not
taking clock cycles away from the CPU.
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. On new BIOS versions, there
is an AUTO setting that will look at the clock frequency and
determine the proper divider.
CPU Speed
Appropriate setting
25 or DX2/50
33, DX2/66 or DX3/99
40 or DX2/80
50 or DX2/100
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
: 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
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. Most motherboards or I/O adapters can be
decoded only by 10 address bits.
(*)I/O Recovery Time
: When enabled, more I/O wait states are
inserted. A transfer from IDE harddrive to
memory happens without any handshaking,
meaning the data has to be present (in the cache
of the harddisk) when the CPU wants to read
them from an I/O Port. This is called PIO
(Programmed I/O) and works with a REP INSW
assembler instruction. Now I/O Recovery Time
enabled adds some wait states to this
When disabled, the harddrive is a lot faster.
that there is a connection between I/O Recovery
Time and AT BUS Clock Selection. For
example, if the AT BUS Clock is set to 8 MHZ
and you have a normal harddisk, I/O Recovery
Time can be turned off, resulting in a higher
transfer rate from harddisk.
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
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
the better.
Consult your manual.
If wait states are
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
The number of wait states necessary is
(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
cache design, CPU type and whether we talk about
reads or writes. Take these formulas with a large
of salt.
You can find out the access time of your
chips by looking at their product numbers.
Mostly at
the end there is a 70, 80, 90, or even 60.
If 10
there, it means 100 ns. Some RAM chips also have an
explicitly written speed in ns. The RAM you buy
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
In that case, the number of read & write wait states is
Post Write Control
: ???
CAS Pulse Width
: Column Address Strobe.
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.
Block-1 Size
A DRAM parameter.
: Disabled. The Non-Cacheable region is intended for
a memory-mapped I/O device that isn't supposed to be
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.
: Disabled.
: 0KB.
Non-Cacheable Block-2 Size
Non-Cacheable Block-2 Base
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
: To cache or not to cache video BIOS. You should try
what is better - video access is faster with 'enabled',
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.
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
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.
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.
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
maximum, etc... This is to make sure that you can always enter BIOS
setup. Useful if the settings obtained by selecting AUTO
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).
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.
not only password protect (or encrypt) some critical files (personal
finances, juicy love letters, client information databases, etc...)?
lose your password, you will have to erase your CMOS memory (see
9.1 Hard Disk Format
-----------------------------Will format your hard disk so it can receive new partitions. WARNING:
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 FAQ 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
"damaged" HDD and FDD. Therefore, low level format is always of
LAST RESORT when you encounter HDD problems.
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.
NOTE: In some BIOS versions, this option in the main SETUP 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
so reading consecutive sectors usually results in just missing the sector
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
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
after the current sector. The idea is that data on a hard drive might
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
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
have too loose an interleave than too tight, but the proper interleave is
better still. Especially since any controller with read-ahead cacheing
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
goes in each physical sector.
Anyway, an n:1 interleave restricts the transfer rate to 1/n the speed of
1:1 interleave (which is better than 1 revolution per sector if the
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
9.4 Media Analysis.
-----------------------------Scan the hard disk for bad blocks. It is performing a LOW LEVEL
FORMAT on the track where bad sector is encountered to mark that
sector as a bad. It could cause damage on user data, even if scanning
itself is non-destructive (also on MFM, RLL disks). Therefore, 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
the media! Recommendation: use a media analysis program provided by
an utility package or your hard drive manufacturer.
Save the changes you made in the CMOS.
permanently keep your configuration.
You must do that to
If you are not sure of the changes you made in the CMOS settings, use
option to exit safely.
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
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
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.
Another good way to discharge the NiCad is to put a 6 volt lantern lamp
across it, and let it discharge completely. Not only does it provide an
effective load, it also gives a visual indication of the charge state.
It's a
way to prevent "ghost memory" that's so common to NiCads. Metal Nickel
Hydride batteries are now being seen in some systems. They don't have
problem and they are more $$.
2) Can I upgrade my BIOS?
Most BIOSes are specifically designed for a motherboard and its chipset.
Therefore, on rare occasions you can upgrade your BIOS for a newer
version. It is often less troublesome to buy a new motherboard that
with its own BIOS and transfer your CPU (memory, cache memory and
adaptor cards...) than start hunting around for a new BIOS chip. I know
very few computer stores who sell BIOS chips separately. However, it is
possible to upgrade your BIOS so it may support new hardware. By
browsing in computer magazines (like Computer Shopper, PC Magazine,
etc...) you will find adds on companies that specialize on that sort of
thing. The information they need is the Serial Number for the BIOS chip.
It is the *long* number that prints out when you boot up. It includes
BIOS date, the chipset, etc. (see section 2.0). The price tag can vary
greatly (from $10 to $80), so are the BIOS upgrades offered. (Does
anyone have supplementary information on this, like good-bad experiences
with BIOS upgrade? I already had 2 feedbacks on this, and they all aggree
it is a little tricky, but it works).
Random flashcards
Arab people

15 Cards


39 Cards


20 Cards


30 Cards

Create flashcards