GERD HILDEBRANDT, HERBERT THIESS


	S O F T W A R E   Z 8 0   O N	6 8 0 0 0
	-----------------------------------------


TO ENCOURAGE  THE TRANSITION  TO POWERFUL 68000  16 BIT HARDWARE
A  Z80-  AND  CP/M-EMULATOR  BRIDGES THE  SOFTWARE  GAP.  A PURE
SOFTWARE  EMULATION  PROVIDES A  COMPLETE VIRTUAL  Z80 CPU UNDER
THE CP/M 2.2 OPERATING SYSTEM.


   The micro-revolution currently is  on the move from the 8 bit
to the 16 bit generation. In the 8 bit generation the Z80 is the
microprocessor	with the biggest  market share,  its instruction
set is	upward compatible  with the  8080/8085	microprocessors.
With  millions of  microprocessors  of this  family in use,  one
operating system was quickly established as a standard: CP/M 2.2
from Digital Research.  Supported by this  wide acceptance,  the
largest software  library of tools  and applications could grow.
Over the years,  huge investments  were spent  in CP/M  standard
software,  the  development  of specific  applications  and  the
training of users.  These programs are now well tested and their
users have become accustomed to them.

   With the growing demand for software flexibility,  the limits
of the 8 bit generation,  especially the 64 K  addressing range,
were  encountered.  The first microprocessor  of the new  16 bit
generation, the Intel 8086,  was quickly pushed into the market.
Its instruction set  and register structure  were designed as an
extension of the 8080/8085. So it was possible to transfer exis-
ting programs  easily to the 8086.  The limitations  of the 64 K
addressing range were overcome, but a lack  of orthogonality and
addressing capability in the architecture remains. The successor
80186  was  extended  by some  hardware-features,  but the  poor 
instruction set was retained.  The same applies  to the 80286 in
its compatibility mode.  The new 286 mode  is hampered by design
flaws on the chip.

   Other  microprocessor  developers  did not  insist on  upward
compatibility  and took the chance  to introduce new concepts of
CPU architecture with their  16 bit generation  microprocessors.
Thus the 68000, even though it came late,  is now established as
an alternative to the 8086. The 68000 family was extended by the
more powerful 68010 and the 32 bit processor 68020.

   Today the 16 bit micro market  is mainly  divided between two
opponents: on one side the conventional 8086 family with a large
software base  and on the other side  the advanced  68000 family
with less software  as yet available.  In contrast  to the 8 bit
generation,  in  the  16 bit  generation  no microprocessor  and
therefore no operating system  has become established as a stan-
dard.  The ongoing confusion about future trends leads to uncer-
tainty for customers  and blocks investment in both new hardware
and software.


   A   b r i d g e   b e t w e e n   Z 8 0   a n d   6 8 0 0 0


   For users who will take the more innovative way to the 16 bit
generation,  SoftDesign of Munich  have developed a tool to ease
the  transition:   the  CP/M-Z80 EMULATOR  opens  up  the  whole
CP/M 2.2 software library for 68000 micros with CP/M-68K.  Using
the CP/M-Z80 EMULATOR results in various advantages:

- Software tools and applications not yet available for CP/M-68K
  can  be  substituted	by CP/M 2.2 programs.  Thus  assemblers,
  cross-assemblers,  compilers for many languages,  text-proces-
  sing, spreadsheets etc. become immediately available.

- It is possible  to take the step up  to the  16 bit generation
  and continue	using  existing  8 bit software.  Investments in
  existing software are not lost or wasted.

- The  advantages  of modern  hardware  can be  utilized  by Z80
  software.

- A 68000 system  with CP/M-68K can serve  as Z80 software deve-
  lopment system without the necessity to keep 8 bit hardware.

   The CP/M-Z80 EMULATOR  runs without  adaptation  on any 68000
computer with the CP/M-68K operating system vers. 1.1 or 1.2 and
at least 95 K  user memory (TPA).  Usage of the EMULATOR is very
simple:  entering  the	command   "CPMZ80<return>"   starts  the
EMULATOR and a complete CP/M 2.2 system  with Z80 CPU is activa-
ted. Even an experienced CP/M user will not notice that there is
no Z80,  but a 68000 CPU,  working  in the  system. All CP/M 2.2
compatible programs will run without restrictions:

  WORDSTAR, MBASIC,  DBASE II, MULTIPLAN,  PL/I-80, BDS C,
  TURBO PASCAL, PASCAL MT+,  MACRO-80, LINK-80, DDT, XSUB,
  SUBMIT, ZSID, DU, MOVEIT, MODEM77, ZORK, just to name a few...


	      F a s t	Z 8 0	e m u l a t i o n


   The emulation of a CPU in software is  time consuming because
it works in a similar way  to an interpreter.  Each operation of
the virtual CPU  is interpreted by a short code sequence  of the
emulating CPU.  Emulation is specially difficult  for peculiari-
ties  in the emulated CPU's architecture  not found on the hard-
ware CPU.  For example it is quite complicated for the 68000 CPU
to generate the Z80's Half Carry Flag  and to compensate the re-
verse order of the bytes in a word. However, the CP/M-Z80 EMULA-
TOR  is completely  written  in assembly language  and gains its
high speed  by optimally using  the large register frame  of the
68000 CPU  and table driven  interpretation.  Under the CP/M-Z80
EMULATOR  average CP/M-80 programs  execute with the speed of a
2 MHz Z80 CPU on a 8 MHz 68000 system. In practice the execution
speed varies for different programs,  an important factor is the
frequency  of I/O  access.  Programs  with  heavy  disk I/O  for
example  may run even faster than  on real Z80 hardware.  On the
other  hand  intensive  arithmetic  computations  slow down  the
EMULATOR.  The following  measurements  for the  execution  time
ratio  between the virtual CPU and Z80 hardware have been taken:

Extreme values :     0.6 and 6
Average :    2

   To allow  access to  68000 hardware I/O ports  by Z80 I/O op-
codes,  a special interface has been provided.  For that purpose
the user may build a custom driver  to map Z80 port addresses to
68000 I/O routines.  If such a driver module  is present,  it is
loaded automatically by the EMULATOR. Communication software can
utilize these  I/O capabilities to access  modems and other data
links. This eases the transport of existing CP/M 2.2 software to
the 68000 system.


	   I n t e g r a t e d	  C P / M - 8 0


   The CP/M-Z80 EMULATOR includes a specially designed operating
system upward compatible to CP/M-80. The user interface  corres-
ponds  to that	of standard  CP/M 2.2  with some  user	friendly
extensions and improvements. An additional EXIT command provides
a means  of returning to  CP/M-68K.  All  physical  I/O  devices
implemented  under CP/M-68K  (terminal, printer and other inter-
faces)  and all background storage devices  (floppy disk drives,
hard disks, tape streamers  and	RAM  disks)  are accessible from
the  emulated  CP/M-80.  An  automatic  configuration  algorithm
installs all these devices without user intervention. This leads
to a transportability between CP/M-68K and the emulated CP/M-80.
All files can be  read and written  under both systems.  Compact
implementation  of the  CP/M-80  system  provides  a large  user
memory (TPA)  of 58 Kbyte.  All system calls  defined in CP/M-80
are fully implemented.


	      P r o f e s s i o n a l	 t o o l


   The CP/M-Z80 EMULATOR  is used by  software  professionals on
many different CP/M-68K systems.  The EMULATOR is a proven soft-
ware product  and is ready for  immediate delivery.  A free demo
disk is available  for evaluation  without  risk  or obligation.
Disks can be supplied  either in 5 inch STRIDE  or 8 inch single
density format.  Versions of the CP/M-Z80 EMULATOR  for OS-9/68K
and UNIX V are under development.
                 