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" 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.