Short:    Patch CopyMem/Quick for 68030 v1.0
Author:   dbusse@primus-online.de (Dirk Busse)
Uploader: dbusse@primus-online.de (Dirk Busse)
Type:     util/boot
Requires: At least a 68020 CPU

Description:
   This is a small patch which replace the CopyMem and CopyMemQuick
   functions of exec.library.

   These functions are optimized for the 68030 processor. They should
   also work with the 68020/040/060 processors.
   The patch tests for a 68020 or higher processor. If it can't find one,
   it doesn't install the patch and exits with a return code of 20 (=fail).
   It also fails, if it can't allocate the necessary memory.

   In some cases these new functions are four times faster than the
   original functions.

Installation:
   Just copy CMQ030 into c:
   And insert CMQ030 in your s:Startup-Sequence

The source code is also in the archive.

Author:
   Dirk Busse
   Kropsburgstraße 8
   D-67141 Neuhofen
   Germany
   <dbusse@primus-online.de>
   <100.141999@germanynet.de>

Speed comparision:
   There are already some similar patches available on the Aminet:
      CopyMemQuicker V2.8 from 1994 -> Aminet:util/boot/COPMQR28.lha
      PCM V1.0            from 1996 -> Aminet:util/boot/PCM_1.0.lha
      CMQ060              from 1998 -> Aminet:util/boot/CMQ060.lha
      Also MCP could patch these functions.

   CopyMemQuicker is optimized for a 68000,010 and 020 processor.

   PCM and CMQ060 are optimized for the 68040 and 060 processors
   and are working only with this prozessors.

   MCP V1.32b12 is on some cases faster than CopyMemQuicker V2.8,
   but on small moves it is very slow.

   And now there is CMQ030, the fastest of all.

Here are some test results. All results are measured on the same
AMIGA 2000 with a GVP Impact 68030 Processor Expansion with
4MByte 32-bit Fast Ram and clocked with 28.322000 MHz.

TestIt from                                                                 
CopyMemQuicker
V2.8               original   CopyMemQuicker    MCP   CMQ030
                 Kickstart3.1      V2.8      V1.32b12  V1.0
CopyMem            routines
282×64kB L->L        1.87          1.85        1.87    1.55
73×64kB L->L+1       2.13          1.06        0.63    0.43
206×64kB L->E        1.79          1.79        1.81    1.27
73×64kB L->E+1       2.13          1.09        0.63    0.43
73×64kB L+1->L       2.13          1.07        0.53    0.49
191×64kB L+1->L+1    1.83          1.25        1.81    1.05
73×64kB L+1->E       2.13          1.07        0.69    0.43
250×64kB L+1->E+1    1.85          1.81        2.39    1.51
250×64kB E->L        1.85          1.81        1.87    1.67
73×64kB E->L+1       2.13          1.07        0.69    0.49
191×64kB E->E        1.83          1.25        1.80    1.05
73×64kB E->E+1       2.13          1.07        0.69    0.43
73×64kB E+1->L       2.11          1.07        0.53    0.49
206×64kB E+1->L+1    1.79          1.79        1.95    1.39
73×64kB E+1->E       2.13          1.07        0.69    0.46
282×64kB E+1->E+1    1.87          1.85        2.69    1.57
16950×1kB L->L       1.91          1.88        1.93    1.49
4700×1kB L->L+1      2.15          1.13        0.66    0.49
12000×1kB E->E       1.90          1.32        1.90    1.12
98000×128B L->L      2.01          1.84        2.21    1.17
77500×128B E->E      1.95          1.43        2.13    1.43
294000×19B L->L      2.23          1.58        3.19    1.24
311000×18B L->L      2.23          1.58        3.24    1.25
331500×17B L->L      2.23          1.70        3.31    1.37
478000×16B L->L      2.53          2.26        4.51    1.86
530000×8B L->L       2.31          1.90        3.19    1.37
715000×4B L->L       1.91          1.35        2.99    1.49
1095000×1B L->L      1.53          0.66        3.22    0.42
CopyMemQuick
282×64kB L->L        1.87          1.75        1.89    1.55
16950×1kB L->L       1.87          1.84        1.91    1.47
98000×128B L->L      1.84          1.63        2.16    1.11
478000×16B L->L      1.66          1.30        2.85    1.12
530000×8B L->L       1.29          0.84        2.63    0.57
715000×4B L->L       1.45          0.85        3.15    0.43
                                                                            
History:
   1.0 (29.Nov.1998)
       - First public version.


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
     360     263 26.9% 29-Nov-98 17:46:26  CMQ030
    4274    1506 64.7% 29-Nov-98 19:14:24  CMQ030.readme
    2762     638 76.9% 29-Nov-98 17:46:22 +CMQ030.Include.s
    1887     689 63.4% 29-Nov-98 14:31:36 +CMQ030.s
-------- ------- ----- --------- --------
    9283    3096 66.6% 14-Dec-98 21:31:50   4 files
