
                              AME86

                 Application Migration Executive
                    CP/M-86 emulator for MSDOS

         Jean-Marc Lugrin, Digital Equipment Corporation

   This emulator allows you to run CP/M-86 programs under MSDOS.
The goal is to ease transfer of already developed applications,
and to allow co-existence of CP/M-86 and MSDOS applications.  The
goal is to emulate CP/M-86 as commonly used on the Rainbow-100
computer.

   Programs which depend too heavily on the internal structure of
CP/M-86 are not likely to work correctly.  This includes
communication programs (poly-XXX, Kermit), debuggers (DDT86),
device maintenance programs (STAT, MAINT, FORMAT).  The same class
of program that is easy to transfer to CCPM should run on AME86.
For other limitations see below.  It is possible to develop and
test CP/M-86 programs (using ASM86, GENCMD or MWC or other CP/M-86
compilers) under MSDOS+AME86.

   NOTE:  A CP/M-86 license is necessary to use Digital Research
products with AME86.

   To run a CP/M-86 program use the command:

        AME86 [ path ] CP/M-86-program/[C,S|F,I] [ arguments ]

   AME86 will be searched for using the current PATH environment
variable, but the CP/M-86 program must reside in the current
directory or in a directory specified on the command line.
Options must directly follow the name of the program to be loaded
(NO space allowed).  If SWITCHAR is "-", then replace "-" for "/"
in the examples.  The following options are recognized:

/C - control-C will NOT abort your program.  Under MSDOS control-C
     may abort your program at any console i/o operation (except
     some direct console i/o), or even at any system request (disk
     i/o or other request) if the option BREAK=ON has been used in
     CONFIG.SYS.  This feature is useful for stopping erroneous
     programs, but may conflict with the way control-C is handled
     by the emulated program.  If you do NOT want control-C
     trapping by MSDOS during execution of the program, use option
     /C.  This should only be used with program known to work
     well, and to work with AME86 (e.g.  RED).

     NOTE:  If a program had any file open for writing when
     control-C was issued, the disk may be corrupted.  You should
     run CHKDSK to check disk structure.

/S and /F:
     Both options are for similar uses, and are mutually
     exclusive.  Under CP/M-86 (and MSDOS) a program cannot know
     from where it was loaded (which drive).  Under AME86 it
     cannot even know from which directory.  This is a problem
     with program using HELP files or OVERLAYS (like RED, TURBO,
     WS, etc), as they do not know where to look for them.
     Normally they look at the default drive established at load,
     or at the boot drive.  AME86 returns the drive used to load
     the program as the boot drive.  Still the program may look in
     the wrong drive or the wrong directory.  To allow a program a
     way to find overlays or help files, AME86 can give them a
     second chance on OPEN or CHAIN (but NOT on MAKE, SEARCH_FIRST
     or SEARCH_NEXT).  The second chance is given ONLY if the file
     is assumed to be in the drive which was the CURRENT DRIVE
     when the program was loaded or if a PATH was specified on the
     command line, and if option /S or /F was specified.  AME86
     uses a heuristic to avoid trying to open using the same file
     name twice.  Inpact on speed is minimal for option /S with
     floppy drive, with option /F with MDRIVE.

     NOTE:  On 0.7-1 a bug precludes the use of /S and /F together
     with a path name.

/S - Search:  Allows for a second chance AFTER the file was looked
     in the current directory of the specified drive.

     Possible problem:  if the user opens a data file which does
     not exist on the specified drive, and one exists on the load
     drive, the one on the load drive will be used without
     warning.

/F - First Search:  FIRST tries to open on the load device and
     pathname if the drive qualifies (is either the default drive
     at load or the effective load drive and a pathname is
     specified).

     Possible problem:  if the user tries to open a data file on a
     specific disk, and a file with the same name exists on the
     load drive, the file on the load drive will be used without
     warning.

/I - Ignore:  This option gives a better (but less secure)
     emulation of CP/M-86.  The following functionality is
     modified:

     1) If the program calls CP/M-86 for an illegal request, AME86
     returns with AX=BX=0.

     2) If the program asks for a SEARCH in special mode, AME86
     will attempt to emulate it (for STAT and MAINT).  This does
     not run very well now...

     This option should be used carefully.

NOTE:  If you use BREAK=ON in your CONFIG.SYS, MSDOS will check
for ^C at any system call.  Your program has no possibility to
intercept this Control/C:  it is aborted.  If you use BREAK=ON,
and your program normally handle ^C itself, you have to be
carrefull to type ^C ONLY when your program ask for some input.
These is not always convenient, you may desire to supress BREAK=ON
or use option /C.

Copyright:
Jean-Marc Lugrin, Digital Equipment Corporation, 1983, 1984
