                        Fast'n'Slow 
                            0.02 beta

 This program is Freeware. You can use and distribute it freely.
  This is BETA release, it means program may contain some bugs.

Purpose of program:
~~~~~~~~~~~~~~~~~~~
FAS can:
1. Speed up some systems with Cyrix 6x86,  5x86  CPUs  by  Cyrix,
IBM, SGS  Thompson and 486DX4  by Texas Instruments on  5-10% via
enabling "no LOCK" during bus cycles.

2. Speed up some systems with AMD  K6  CPUs  via  enabling  WRITE
ALLOCATE for that BIOSes, that not support this feature of K6.

3. Slow  down your  computer via  disabling L1  cache. It  may be
useful to run  some older programs (games, utils)  that works too
fast on newest CPUs.

 What is WRITE ALLOCATE?
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Write allocate, if enabled,  occurs  when  the  processor  has  a
pending memory write cycle to a cacheable line and the line  does
not currently reside in the L1 data  cache.  In  this  case,  the
processor performs a burst read cycle to  fetch  the  cache  line
addressed by the pending write cycle.  The data  associated  with
the pending write cycle is  merged  with  the  recently-allocated
cache line and stored in the processor_s L1 data cache. The final
MESI (Modified, Exclusive, Shared, Invalid) state  of  the  cache
line depends on the state of the WB/WT# and  PWT  signals  during
the burst read cycle and the subsequent cache write  hit.  During
the write allocation, a 32-byte burst read cycle is  executed  in
place of a non-burst write cycle.  While  the  burst  read  cycle
generally  takes  longer  to  execute  than  the  write    cycle,
performance gains are realized on subsequent write cycle hits  to
the write-allocated cache line.  Due to the nature  of  software,
memory accesses tend to occur  within  proximity  of  each  other
(principle of locality).  The likelihood of additional write hits
to the write-allocated cache line is high.

                      From "Implementation of Write Allocate in
                      the K86 Processors" by AMD.

Executing:
~~~~~~~~~~
FAS [/options]

where options are:

        /C - Force speed up Cyrix 6x86 CPU by enabling NOLOCK

        /A - Force speed up AMD K6 CPU by enabling WRITE ALLOCATE
             for BIOSes that not support this feature of K6, up to
             64M of RAM autodetects. Models 6,7,8,9 of K6 supported.

        /S - Slow down your computer disabling L1 cache
!            Run /S once again to enable L1 cache.

        /H - Help screen (available options)

If no options is used, FAS try to autodetect your CPU and  enable
available features if it's possible.

FAS can't work in multitask  environment like Windows 95, 98, NT,
OS/2, and tries to recognize it and warn you. You can run program
from your  AUTOEXEC.BAT to load  it BEFORE Windows  95/98 starts.
And, of  course, you can run  it under DOS. No  problems detected
under EMM386, QEMM386 etc.


Known problems:
~~~~~~~~~~~~~~~
- FAS  can incorrectly set  memory limits for WRITE  ALLOCATE for
systems, that have  more than 64M RAM. Can anyone  explain me how
to detect  amount of memory  >64M without writing and  reading to
each megabyte of RAM?


Please, send bugreports and thanks ;) to:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        - Serge Ivanov -
                         aka Jabberwock

FIDO:   2:5059/2.9
E-Mail: jabberw0ck@mail.ru, jabb@tomcat.ru