home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / zsys / znode-12 / s / z80mu5.arc / README.1ST < prev    next >
Encoding:
Text File  |  1989-08-30  |  34.8 KB  |  779 lines

  1.  
  2. ╔═══════════════════════════════════════════════════════════════╗
  3. ║                                                               ║
  4. ║ Joan Riff's "Z80MU PROFESSIONAL" Z80 and CP/M 2.2 Emulator    ║
  5. ║                                                               ║
  6. ║ Copyright (C) 1989 Computerwise Consulting Services           ║
  7. ║                    P.O. Box 813                               ║
  8. ║                    McLean, VA 22101                           ║
  9. ║                    (703) 450-7175                             ║
  10. ║                                                               ║
  11. ╚═══════════════════════════════════════════════════════════════╝
  12.  
  13. ╔═══════════════════════════════════════════════════════════════╗
  14. ║ IMPORTANT NOTICE! Please read and understand the following... ║
  15. ╚═══════════════════════════════════════════════════════════════╝
  16.  
  17. This is a fully-functional version of Joan Riff's "Z80MU PROFESSIONAL" Z80
  18. and CP/M 2.2 Emulator, which allows you to run most CP/M 2.2 and/or Z80
  19. software on the IBM PC. This is not "crippleware". No functions have been
  20. disabled. This is the complete product, an exact image of the same
  21. emulator that we use here at CCS to produce Z80 controller software on the
  22. PC.
  23.  
  24. However, we *ARE NOT* giving it away. We have placed many packages into
  25. the public domain in the last five years, but this is not one of them.
  26.  
  27. This package is being distributed as "shareware", which translates roughly
  28. into "Try it *BEFORE* you buy it". This does not mean "Use it, don't pay
  29. for it, and don't tell anybody". We are the owners of the copyright for
  30. this software and all associated files and documentation. As the owners,
  31. we are free to specify how the package may be distributed, who may use it,
  32. and under what conditions it may be used. Under federal copyright
  33. statutes, our word in this matter is law. So please pay attention.
  34.  
  35.  
  36. HOW IT MAY BE DISTRIBUTED
  37. -------------------------
  38.  
  39. This package may be transferred by you to others, but *ONLY* if you
  40. distribute the original ZIP (or ARC) file, and *ONLY* if what you
  41. distribute is unchanged. It may be posted to Bulletin Board Systems
  42. (BBSs), and may reside there indefinitely in its original ZIP (or
  43. ARC) format for others to find and download.
  44.  
  45.  
  46. WHO MAY USE IT
  47. --------------
  48.  
  49. This package may be used by any individual who abides by the restrictions
  50. which we place upon the package, which means in summary that - except for
  51. a 14-day trial period - THIS PRODUCT MAY BE USED ONLY BY THOSE WHO ARE IN
  52. POSSESSION OF A VALID LICENSE ISSUED BY COMPUTERWISE CONSULTING SERVICES.
  53.  
  54.  
  55. UNDER WHAT CONDITIONS MAY IT BE USED
  56. ------------------------------------
  57.  
  58. You have our permission to unpack the ZIP (or ARC) file, examine the files
  59. contained therein, and briefly evaluate the package. Once the ZIP (or ARC)
  60. file is unpacked, the components thereof may not be distributed to others
  61. in any form. Remember - only the original ZIP (or ARC) file may be
  62. distributed.
  63.  
  64. By "briefly evaluate" we mean that you may try out the package for up to
  65. 14 days, in order to decide whether or not it's right for you. If you have
  66. CP/M software which you want to run on the PC, then 14 days is ample time
  67. for you to move that software to the PC, run it under Z80MU PROFESSIONAL,
  68. and see whether or not Z80MU PROFESSIONAL will do what you need done.
  69.  
  70. If you don't think that this package is worth the registration price, then
  71. don't use it. Period. Not even to run the CP/M assembler ASM.COM, or to
  72. disassemble a Z80 ROM, or to run the CP/M version of WORDSTAR. Such use
  73. violates our copyright.
  74.  
  75. If you like the package, then buy it. Period. With "shareware", you buy it
  76. by registering with us.
  77.  
  78.  
  79. HOW TO REGISTER
  80. ---------------
  81.  
  82. The fee for registration is $150 per user of the package (not per system).
  83.  
  84. Send your name, address, telephone number, and the registration fee to:
  85.  
  86.     Z80MU Registration
  87.     Computerwise Consulting Services
  88.     P.O. Box 813
  89.     McLean, VA 22101
  90.  
  91. This registration process notifies us that there is one more user of the
  92. package to be supported by us. We want to be sure that you are properly
  93. supported. So when we receive your registration fee, we send you:
  94.  
  95.     1) A disk with the latest version of the software on it. Sad
  96.        to say, there are folks who introduce viruses (and other
  97.        bugs) into packages that they find on BBSs, and then send the
  98.        corrupted versions on to other BBSs. We discovered this with
  99.        our public domain versions of Z80MU, DIAGS, and others, which
  100.        is the primary reason that we no longer place software into the
  101.        public domain. So when you register, you get a copy of the
  102.        package straight from us, which is guaranteed to be a "virgin"
  103.        copy, and to be the very latest version of the software.
  104.  
  105.     2) A printed manual. You really can't get the most out of this
  106.        software until you read the manual. Sure we've made the
  107.        program easy to use. But there's no substitute for being
  108.        able to curl up with a good manual when you want to become
  109.        really smart about a product.
  110.  
  111.     3) A single-user license, which gives you legal permission to
  112.        use this product. PERSONS WHO USE THIS PRODUCT WITHOUT HAVING
  113.        SUCH A LICENSE IN THEIR POSSESSION ARE IN VIOLATION OF
  114.        FEDERAL COPYRIGHT LAW, AND MAY BE SUBJECT TO CIVIL AND/OR
  115.        CRIMINAL PROSECUTION.
  116.  
  117. You also get entered into our database of supported users. When you call
  118. as a registered user of our software, then you have our undivided
  119. attention. Period. Our expensive telephone answering and routing system
  120. exists solely to support *YOU*, the user who keeps us in business.
  121.  
  122. Lastly, by paying the registration fee you obtain our permission to use
  123. this software. If you don't pay the fee, you don't get our permission:
  124. this will not make your boss very happy (if you use this software at
  125. work), since his company is legally liable in federal court for copyright
  126. violations.
  127.  
  128. Sure, you *COULD* keep the software for your own use without registering
  129. it - thus violating our copyright - and try to hide it from everybody. But
  130. what would you have gained? It must be a neat program, or else you would
  131. not want to use it at all (let alone illegally). So you've got access to
  132. the world's best operating system emulator, AND YOU CAN'T TELL ANYBODY!
  133. What's more, by your own admission (because you use it) we must have done
  134. a good job in writing the software. But you won't give us credit? Sorry,
  135. but we just can't imagine even a Software Scrooge being quite that sick in
  136. the spirit...
  137.  
  138. BBS SYSOPS NOTE: If you make the original ZIP (or ARC) file of this
  139. package available on your system for others to download, then we might
  140. register you WITHOUT CHARGE. Just follow the registration process, but
  141. instead of including a registration fee include the phone number of your
  142. BBS, and a userid and password for Joan Riff to use to dial in to your
  143. system. When we dial in and verify the presence of the original ZIP (or
  144. ARC) file on your system, then we will send you a license to use this
  145. package - with our compliments! Unfortunately, this offer must be limited
  146. to the first 100 respondents.
  147.  
  148.  
  149. ╔═════════════════════════════════════════════════════════════════════════╗
  150. ║ Background: Why Z80MU PROFESSIONAL?                                     ║
  151. ╚═════════════════════════════════════════════════════════════════════════╝
  152.  
  153. We are the folks who created Z80MU version 3.10, which was placed in the
  154. public domain in 1986, and was featured in the October 1986 issue of BYTE
  155. magazine as one of seven "Public Domain Powerhouses of 1986".
  156.  
  157. According to our estimates (which are admittedly contestable due to the
  158. impossibility of accurately tracking public domain distribution), that
  159. version of Z80MU has rapidly become the most widely-used CP/M and Z80
  160. emulator of any type (public domain, shareware, or commercial) in the
  161. world, due mainly to the uncanny accuracy of Z80MU's emulation of CP/M and
  162. of the Z80 chip.
  163.  
  164. Since 1986, we have completely rewritten Z80MU 3.10 in order to produce
  165. Z80MU PROFESSIONAL. This new package greatly increases the productivity of
  166. folks (like us) who deal with Z80 object code all day long, and - believe
  167. it or not - emulates CP/M much more accurately than even that reliable old
  168. workhorse Z80MU 3.10 did. Unlike Z80MU 3.10, Z80MU PROFESSIONAL is not
  169. being placed into the public domain. It is sold as a commercial product.
  170.  
  171. Yes, it's nice that out of the goodness of our hearts we placed Z80MU 3.10
  172. in the public domain. And we're truly happy that so many folks have said
  173. flattering things about Z80MU 3.10. But there are aspects to public domain
  174. distribution which we overlooked back in 1986:
  175.  
  176.     1) CORRUPTION: There are many copies of Z80MU 3.10 floating
  177.        around various bulletin boards - and even being sold by
  178.        so-called Public Domain software houses - which have been
  179.        corrupted so that the 100-page manual or the executable
  180.        file are not the same that they were when we released
  181.        them. Some of this corruption seems to be inadvertant.
  182.        Some seems to be deliberate. But since there are so many
  183.        copies out there, we have lost all control over the
  184.        package. When we come across a bad copy, we try to destroy
  185.        it and replace it with a good copy. But we can't possibly
  186.        track them all down, due to the nature of public domain
  187.        distribution. And keeping long-distance bulletin boards up
  188.        to date leads straight into...
  189.  
  190.     2) WE LOST OUR SHIRTS: In theory, you place something in the
  191.        public domain as a favor. People ought not to expect
  192.        constant support for a public domain product. Just because
  193.        we're decent folks and can emphasize with the poor end
  194.        user, we have provided many long hours of support to users
  195.        of Z80MU 3.10 at no charge. But this costs us. And every
  196.        time that Computer Shopper or some other irresponsible
  197.        publication reviews Z80MU 3.10 and says (without our
  198.        permission) something like "CCS will send you a copy of
  199.        this excellent program for FREE", we are inundated with
  200.        calls and letters from readers who want as much as they
  201.        can get for free. Due to the sheer volume of incoming
  202.        requests, many must go unanswered. Some readers get irate,
  203.        like the [few] who have said "I paid $3 for Z80MU from
  204.        Such-and-Such Software, and I expect support, buddy!", and
  205.        the one Good American who demanded "If you weren't gonna
  206.        support the thing, why the h___ did you put it in the
  207.        public domain!?" We lose because of the ill will created
  208.        by such encounters. We lose because the manhours spent
  209.        supporting users of Z80MU 3.10 are manhours that we aren't
  210.        getting paid for.
  211.  
  212. So we're still paying for that perhaps ill-advised but well-meaning
  213. decision back in 1986 to release Z80MU 3.10 to the public domain.
  214.  
  215. We may learn slow, but we learn well. So we are offering Z80MU
  216. PROFESSIONAL for sale. We *WILL NOT* release it to the public domain. But
  217. we *WILL* support each and every purchaser, and we *WILL* guarantee that
  218. any copy which you get direct from us is free of corruption and viruses.
  219.  
  220.  
  221. ╔═════════════════════════════════════════════════════════════════════════╗
  222. ║ Files on the Z80MU PROFESSIONAL Distribution Disk                       ║
  223. ╚═════════════════════════════════════════════════════════════════════════╝
  224.  
  225.         Filename           Size     Date
  226.         ═════════════     ═════ ════════════
  227.         AUTOEXEC.Z80        315   2 Feb 1989
  228.         DDT.SYM             589  19 Sep 1988
  229.         SETTINGS.COM       1152  14 Jan 1989
  230.         TEST.COM           4736  20 Aug 1989
  231.         TEST.SYM           6516  20 Aug 1989
  232.         Z80MU.EXE        113652  22 Aug 1989
  233.         Z80MUDMP.COM       1400  23 Sep 1988
  234.         ZCONVERT.EXE       8948  21 Feb 1989
  235.  
  236. AUTOEXEC.Z80    This is a sample AUTOEXEC.Z80 file. If such a file is
  237.         present in the current directory when the Emulator begins
  238.         execution, then the Emulator will automatically read and
  239.         execute all commands which are present on this file. Feel
  240.         free to change this file to suit your own preferences, or
  241.         to delete it entirely.
  242.  
  243. DDT.SYM        Chapter 7 of the Z80 PROFESSIONAL manual describes the
  244.         operation of the Disassembler. At the end of the
  245.         chapter (see page 7-8) is an example which applies a
  246.         Symbol Table to Digital Research's DDT.COM program.
  247.         This file is the Symbol Table which is shown in the
  248.         text. We have included it here so that you don't have
  249.         to type it in from the sample shown in the manual.
  250.         Just read this file into the Emulator via "SUBMIT
  251.         DDT.SYM" where the text says to enter "the list of
  252.         commands shown above".
  253.  
  254. SETTINGS.COM    This is a CP/M program which displays some of the current
  255.         Emulator settings. You should copy this file to whatever
  256.         directory holds your CP/M utility programs, as defined by
  257.         the "CPMPATH" environment variable.
  258.  
  259.         Don't try running this file directly from DOS! It must be
  260.         run under the Emulator!
  261.  
  262. TEST.COM    This is a sample CP/M program which simply demonstrates
  263.         that the Emulator does, in fact, run CP/M software.
  264.         In addition, this one automatically sets H19 terminal
  265.         emulation mode, and recognizes PC extended
  266.         keypresses.
  267.  
  268.         Don't try running this file directly from DOS! It must be
  269.         run under the Emulator!
  270.  
  271. TEST.SYM    This is the Symbol Table file for TEST.COM. This file is
  272.         useful if you're interested in learning about Z80MU's
  273.         RESOURCE facility. The symbols in this file can turn
  274.         a disassembly of the object code in TEST.COM into
  275.         something very close to the original source code.
  276.  
  277.         To demonstrate this, issue the following Z80MU
  278.         commands:
  279.  
  280.             coldboot
  281.             read test.com
  282.             dissam 100        Note: This disassembly
  283.                         will show little more
  284.                         than raw opcodes, because
  285.                         Z80MU has no symbol
  286.                         information to work with.
  287.  
  288.             submit test.sym        Note: This reads in the
  289.                         symbol information.
  290.  
  291.             dissam 100        Note: This time, the
  292.                         disassembly contains
  293.                         enough symbol information
  294.                         to produce original source
  295.                         code.
  296.  
  297. Z80MU.EXE    This is the Emulator itself. Copy this file to one of the
  298.         hard disk directories specified by your "PATH" environment
  299.         variable, so that it is available at the DOS prompt no
  300.         matter where you are on your hard disk.
  301.  
  302. Z80MUDMP.COM    This is a DOS program which handles the printing of the
  303.         screen to the printer. It replaces the standard IBM
  304.         PC ROM BIOS print screen routine.
  305.  
  306.         Many of the Emulator screens contain PC graphic
  307.         characters. When the IBM PC ROM BIOS print-screen
  308.         routine prints these characters, it sends odd escape
  309.         codes to the printer which may thoroughly confuse it.
  310.  
  311.         This program - Z80MUDMP.COM - knows how to translate
  312.         these odd characters into the proper codes for the
  313.         printer. This yields accurate screen dumps without
  314.         producing garbage on the printer.
  315.  
  316.         This program may be used with or without the
  317.         Emulator. It is a stand-alone utility which should be
  318.         invoked when your system first boots up, so you
  319.         should copy this file to a hard disk directory which
  320.         is available at system boot time (we recommend that
  321.         you copy it to the root directory of drive C:).
  322.  
  323.         When the program is invoked, it accepts one
  324.         command-line parameter. This tells the program
  325.         whether your printer can handle IBM PC graphic
  326.         characters:
  327.  
  328.         Z80MUDMP I    installs the program, and tells it
  329.                 to use the IBM PC character set.
  330.  
  331.         Z80MUDMP A    installs the program, and tells it
  332.                 to use the ASCII character set. PC
  333.                 graphic characters which are on the
  334.                 screen will be translated into near
  335.                 ASCII equivalents.
  336.  
  337. ZCONVERT.EXE    This is a DOS program which converts an old-style symbol
  338.         table control file as created by version 3.10 of
  339.         Z80MU into a new-style symbol table which may be used
  340.         as a submit file with Z80MU PROFESSIONAL. The
  341.         old-style control file is read from standard input,
  342.         and the new-style table is written to standard
  343.         output, so the proper way to use this program is by
  344.         typing the following at the DOS prompt:
  345.  
  346.             zconvert <oldfile >newfile
  347.  
  348.         [Note: Substitute your own filenames for "oldfile"
  349.         and "newfile" in the above example.]
  350.  
  351.         You may then input the new file into Z80MU PROFESSIONAL
  352.         via the Z80MU command:
  353.  
  354.             SUBMIT newfile
  355.  
  356.         The conversion isn't perfect, due to differing limits
  357.         imposed by the two versions of Z80MU. Labels may be
  358.         truncated, and so on. Just load the new file into
  359.         Z80MU PROFESSIONAL and clean it up with the
  360.         full-screen disassembler.
  361.  
  362.  
  363. ╔═════════════════════════════════════════════════════════════════════════╗
  364. ║ Running Z80MU PROFESSIONAL                                              ║
  365. ╚═════════════════════════════════════════════════════════════════════════╝
  366.  
  367. The "shareware" version of Z80MU PROFESSIONAL does not include any sort of
  368. manual. When you register your copy, you will receive a manual. In the
  369. meantime, the following should be sufficient to get you up and running:
  370.  
  371.     1) To install Z80MU, simply copy all of the distribution files
  372.        into one directory on your hard disk (or to a work floppy).
  373.        Likewise, copy to the same directory any of your CP/M programs
  374.        which you will want to run.
  375.  
  376.     2) You start Z80MU running just by typing in "Z80MU" at the DOS
  377.        prompt. Once Z80MU begins execution, it displays its copyright
  378.        screen. Press {Return} to acknowledge that you have read the
  379.        screen.
  380.  
  381.        For all intents and purposes, you are now running CP/M on your
  382.        PC.
  383.  
  384.     3) Z80MU PROFESSIONAL (like all of our products) contains
  385.        extensive online documentation. At Z80MU's CP/M prompt, just
  386.        type "HELP". You will be presented with screen after screen of
  387.        help, with one screen for each and every command which is
  388.        processed by Z80MU. You may page through these HELP screens
  389.        with the {PgUp} and {PgDn} keys. For more details on the use of
  390.        HELP, type "HELP HELP" at Z80MU's prompt.
  391.  
  392.     4) You quit Z80MU by typing "QUIT" at Z80MU's prompt. This brings
  393.        you back to DOS.
  394.  
  395.  
  396.  
  397. ╔═════════════════════════════════════════════════════════════════════════╗
  398. ║ Changes for Z80MU PROFESSIONAL version 5.2a                             ║
  399. ╚═════════════════════════════════════════════════════════════════════════╝
  400.  
  401.     1) Distribution was changed from advertising to the "shareware"
  402.        concept. No changes were made to the source code. The DEMO
  403.        version of Z80MU PROFESSIONAL is now outdated.
  404.  
  405.  
  406. ╔═════════════════════════════════════════════════════════════════════════╗
  407. ║ Changes for Z80MU PROFESSIONAL version 5.2                              ║
  408. ╚═════════════════════════════════════════════════════════════════════════╝
  409.  
  410.     1) The video routines were tweaked to provide faster support for
  411.        CGA's, because CGA support was brutally sacrified at the altar
  412.        of blinding performance for everybody else. Now it's reasonable.
  413.  
  414.     2) The handling of direct port I/O (via SET_IOBASE) has changed
  415.        slightly. When the Z80 CPU emulator encounters a Z80 IN or
  416.        OUT instruction, the logic is now as follows:
  417.  
  418.           a) Add the 8-bit Z80 I/O address to the current I/O
  419.              BASE as set by the last SET_IOBASE command, thus
  420.              yielding a 16-bit PC I/O address.
  421.  
  422.           b) Handle the operation according to the resulting
  423.              16-bit PC I/O address:
  424.  
  425.             FF00 - FFFF:    No I/O is performed, although
  426.                     any auto-increment etc is
  427.                     accomplished. Only the actual
  428.                     I/O is ignored. But the program
  429.                     continues to run. So if you want
  430.                     to run a Z80 program which you
  431.                     know does direct I/O but which
  432.                     you don't want to have aborted,
  433.                     use "SET_IOBASE FF00".
  434.  
  435.             0400 - EFFF:    The program is aborted. So if you
  436.                     want to trap any programs which you
  437.                     suspect might do direct I/O, use
  438.                     "SET_IOBASE 400".
  439.  
  440.             0000 - 03FF:    The I/O is performed to the resulting
  441.                     16-bit PC I/O address.
  442.  
  443.     3) A "PATCH" command has been added, for those times when you just
  444.        have to patch CP/M memory from a SUBMIT file.
  445.  
  446.     4) A "GO" command has been added to continue execution of an
  447.        interrupted program, for those times when you just don't
  448.        want to have to get into the debugger just to issue an
  449.        {Alt-G} (for "Go") command. If you've started a program,
  450.        for example, and discovered that the program requires a
  451.        different terminal type, then just interrupt the program
  452.        with ^BREAK, issue the right "SET_TERM" command, and then
  453.        use this new "GO" command to resume execution where it
  454.        left off.
  455.  
  456.     5) The labels generated by the "SYMGEN" command have been changed
  457.        slightly. Instead of being "AUTO99999" (where 99999 starts at
  458.        zero and increments with each generated label), they are
  459.        formatted as "AUTO_xxxx", where "xxxx" is the address of the
  460.        label. This makes it easier during the analysis phase to see
  461.        just what an auto-generated label refers to. Our apologies to
  462.        those who will submit the generated source to an assembler which
  463.        does not allow the underscore character in labels. All things
  464.        considered, we thought that this method was the best for all
  465.        concerned. Just use your editor to change the "_" characters
  466.        to something else if you must...
  467.  
  468.     6) RST 7 instructions are no longer used for breakpoints. Instead,
  469.        we have gone back to the version 3.10 method of using HALT
  470.        opcodes for the breakpoints. This allows you to use the
  471.        debugger to trap code which isn't for CP/M (such as ROM-based
  472.        disk controller code), or to set breakpoints in CP/M debuggers
  473.        like DDT which use the RST 7 for their own use. One side effect
  474.        of this is that you will be using the emulated Z80 CPU as long as
  475.        you are in the debugger - even if the 8080 CPU (using the
  476.        NEC V20 chip) had been in effect when you entered the debugger.
  477.        So if you issue the "Go" command via {Alt-G} in the debugger,
  478.        the program will be executed as Z80 opcodes, via the software
  479.        Z80 emulator. When you exit the debugger, you will be switched
  480.        back to the proper emulated CPU.
  481.  
  482.        Note, however, that RST instructions *ARE* still used for various
  483.        CP/M-related operations like BIOS and BDOS calls. Since such
  484.        calls only make sense in a CP/M application, this should be
  485.        no problem.
  486.  
  487.     7) Under certain circumstances the Z80MU prompt would appear
  488.        farther up the screen than it should. This occurred whenever
  489.        you sent output to the CON device (i.e. = "SYMLIST" without
  490.        a filename, or "RESOURCE 100 1ff CON"). This has been fixed.
  491.  
  492.  
  493.  
  494. ╔═════════════════════════════════════════════════════════════════════════╗
  495. ║ Changes for Z80MU PROFESSIONAL version 5.1                              ║
  496. ╚═════════════════════════════════════════════════════════════════════════╝
  497.  
  498.     NOTE: A new manual was produced for version 5.1, so changes
  499.     listed for version 5.1 or for prior versions are reflected in
  500.     the manual. Changes for later versions are not in the manual.
  501.     Any information here which conflicts with information in the
  502.     manual takes precedence over the information in the manual.
  503.  
  504.  
  505.     1) The SET_MASK command has been added to allow masking of
  506.        output characters to 7 bits.
  507.  
  508.     2) Various commands (CD, CHDIR, MD, MKDIR, RD, RMDIR, CLS) which
  509.        used to be passed to DOS and handled by COMMAND.COM are now
  510.        handled internally by the Emulator. This speeds up the processing
  511.        of these much-used commands.
  512.  
  513.     3) The video support routines have been rewritten. Speed with EGA
  514.        and VGA displays has been improved, but CGA displays which need
  515.        to have snow eliminated by software will be a little slower than
  516.        before.
  517.  
  518.     4) The printed Step output obtained by {Alt-L} in DEBUG has been
  519.        reformatted for easier scanning of voluminous output. In addition,
  520.        any disassembled line with a PC value of 0005 has an asterisk
  521.        at the left edge, to enable you to locate BDOS calls quickly.
  522.  
  523.     5) The "WRITE" command used to generate a bad checksum on the last
  524.        line of a HEX file in certain circumstances. This has been fixed.
  525.  
  526.     6) Single-step mode used to execute two instructions upon return
  527.        from a BIOS or BDOS call. This has been fixed so that it
  528.        properly stops between instructions.
  529.  
  530.     7) You may enter an Emulator command when you invoke Z80MU. When used
  531.        like this, the Emulator will process this single command and then
  532.        automatically exit back to DOS.
  533.  
  534.     8) DOS reports that there are at least 5 drives on the system, even
  535.        if you have fewer than 5. So Z80MU determines the number of drives
  536.        by itself. This is more accurate.
  537.  
  538.     9) Some confusion has resulted from the "Select Drive" BDOS emulation.
  539.        At each Emulator prompt, the drive is reset to whichever drive
  540.        was active before a CP/M program was run. During CP/M operation,
  541.        drive select requests will be honored. So far, this is just the same
  542.        as you had with CP/M. The confusion occurs when you interrupt a
  543.        CP/M program with ^BREAK (which you never could do with a true
  544.        CP/M system). The Emulator interrupts the CP/M program, then gives
  545.        you its prompt. As part of this prompt, it switches back to the
  546.        "right" default drive (just as the original DRI CCP used to do).
  547.        If you then enter the debugger and continue the program, you will
  548.        still be using the Emulator prompt's drive. This MAY OR MAY NOT be
  549.        the drive which your CP/M program last selected. This MAY OR MAY
  550.        NOT be the drive that you want to be the default one as you
  551.        continue the CP/M program.
  552.  
  553.     10) The CP/M BDOS emulation has been improved (again!).
  554.  
  555.  
  556.  
  557. ╔═════════════════════════════════════════════════════════════════════════╗
  558. ║ Changes for Z80MU PROFESSIONAL version 5.0                              ║
  559. ╚═════════════════════════════════════════════════════════════════════════╝
  560.  
  561.     NOTE: This list details the most significant differences between
  562.     the last public domain version - Z80MU 3.10 (the one featured
  563.     in the October 1986 issue of BYTE magazine) - and the first
  564.     version of the Z80MU PROFESSIONAL series (version 5.0). This
  565.     list is by no means complete, because Z80MU PROFESSIONAL was a
  566.     complete rewrite of the source code. There are innumerable
  567.     differences not listed here which *WILL* make a difference in
  568.     operation. Nevertheless, we feel that it is important to show
  569.     some of the differences, so that owners of the public domain
  570.     version (Z80MU 3.10) will know what the PROFESSIONAL version
  571.     offers over the public domain version.
  572.  
  573.     NOTE: We will not disclose details here. We made that mistake
  574.     when we wrote the definitive article on Z80 and CP/M emulation
  575.     which appeared in the October 1986 issue of BYTE magazine. Soon
  576.     after that article appeared, other emulators began incorporating
  577.     our copyrighted code without our permission. Rather than
  578.     litigate, we'll obtain justice by keeping Z80MU far and away
  579.     the fastest and most accurate emulator of the Z80 and of CP/M
  580.     for the IBM PC - and we *WON'T* tell them how we're doing it!
  581.  
  582.  
  583.     1) The user interface is interactive and lightning fast. We no
  584.        longer use the very slow DOS input and output routines. On the
  585.        negative side, this means that you can no longer use DOS I/O
  586.        redirection when the program is run. On the positive side,
  587.        this means that screen output is very fast, you have control
  588.        over the colors used, and in general we can provide a much
  589.        more productive environment.
  590.  
  591.     2) You can recall and edit previous commands.
  592.  
  593.     3) Interactive, full-screen help, disassembly, and debugging. This
  594.        alone made the switch from DOS I/O worth it. You haven't lived
  595.        until you have seen how fast and easy it is to create source
  596.        code from object code using the disassembler, which includes:
  597.  
  598.         a) Full-screen, instant updates. Whenever you tell the
  599.            Emulator something about the object code, the result
  600.            appears instantly on the screen. In effect, you are
  601.            looking at a living disassembly of the object code.
  602.  
  603.         b) Support for Z80 or 8080 mnemonics.
  604.  
  605.        And the full-screen debugger is likewise a joy to use:
  606.  
  607.         a) All Z80 registers (including the Stack) are always
  608.            on the screen, and the first dozen or so source
  609.            statements at the current PC are always accurately
  610.            disassembled and on-screen.
  611.  
  612.         b) To change any register, you just move the cursor
  613.            to that register's on-screen value and type in the
  614.            new value.
  615.  
  616.         c) You may have up to 8 unconditional breakpoints active
  617.            at once, and each can contain a pass count. When any
  618.            of the 8 breakpoints are reached, execution stops and
  619.            the debug screen instantly appears.
  620.  
  621.         d) You may also specify a Conditional Break, such as
  622.            "Break when the PC is greater than F600", or "Break
  623.            when the PC equals 0005 and the C register holds 1A".
  624.  
  625.         e) BDOS and PC History tracebacks have been carried forward
  626.            from version 3.10. In addition, you can have instructions
  627.            disassembled to the printer (with or without the current
  628.            register values) as they are executed, and limit this
  629.            activity to a range of CP/M addresses. This is just the
  630.            thing for those tricky bugs which are hard to catch,
  631.            when what you really need is a boxfull of paper containg
  632.            a step-by-step disassembly of every single instruction
  633.            which was executed...
  634.  
  635.        And the "HELP" command is a great improvement over the primitive
  636.        list that was necessary when using DOS:
  637.  
  638.         a) Each command is explained in its own on-screen window.
  639.  
  640.         b) You may page forward or backward through these help
  641.            windows, until you find what you want. Or you may ask
  642.            for help with a specific command.
  643.  
  644.     4) An optional CCP has been included, which is the functional
  645.        equivalent of Digital Research's CCP. This allows those few
  646.        CP/M programs which mistakenly assume the presence of a CCP
  647.        to run under the Emulator.
  648.  
  649.     5) The four most-needed terminals have been emulated: Televideo
  650.        950, VT52 (Heath/Zenith H-89), Osborne, and Kaypro. There is
  651.        also a Raw emulation, which shows absolutely everything which
  652.        is sent out. Needless to say, this emulation is much faster
  653.        (and more accurate) than that provided with version 3.10.
  654.  
  655.     6) The Emulator now supports the NEC V20 and V30 chips. This may
  656.        seem exciting, and some users have purchased Z80MU PROFESSIONAL
  657.        for this feature alone. But in all honesty we must warn you
  658.        that NEC's implementation of the 8080 instruction set leaves
  659.        much to be desired. Z80MU PROFESSIONAL uses the NEC chips as
  660.        well and safely as they can be used, but these chips just
  661.        aren't what they're cracked up to be. If you have some very
  662.        safe and simple CP/M applications (like ASM, M80, L80, etc),
  663.        then the use of these NEC chips with the Emulator will give
  664.        very fast and safe performance. Just don't try to debug
  665.        anything using the NEC chips, and above all don't feed them
  666.        untested or buggy code. One wrong opcode and the NEC chips
  667.        can easily hang your PC...
  668.  
  669.     7) A "SUBMIT" command has been included, which emulates CP/M's
  670.        own submit command, complete with parameter substitution.
  671.        There is no provision for XSUB support, but our implementation
  672.        has benefits (it doesn't go back to drive A for the submit file,
  673.        for example) which make it more desirable for use on PC hard disks.
  674.  
  675.     8) Some CP/M applications use "CP/M-specific" BIOS and BDOS calls to
  676.        interrogate the disk environment. Under the public domain version
  677.        of Z80MU these programs were simply aborted. Z80MU PROFESSIONAL
  678.        allows you to decide whether to abort these programs or to feed
  679.        them emulated CP/M information which is obtained from DOS. This
  680.        alone allows many CP/M programs (TURBO PASCAL, for one popular
  681.        example) to run under Z80MU PROFESSIONAL which could not run under
  682.        the public domain version.
  683.  
  684.     9) The accuracy of CP/M emulation has been improved. Z80MU version
  685.        3.10 was justly famous because it would run CP/M programs which
  686.        other emulators could not. Well, we have greatly improved the
  687.        emulation of CP/M even over the high standard created by version
  688.        3.10:
  689.  
  690.         a) The FCB fields change now in a way which is more
  691.            closely aligned with the way that CP/M used to change
  692.            them.
  693.  
  694.         b) During BDOS calls, the same Z80 registers are modified
  695.            that CP/M modified, and in the same [sometimes silly]
  696.            ways.
  697.  
  698.         c) Certain oddball CP/M calls (we won't say which ones)
  699.            are handled by Z80MU PROFESSIONAL in a way identical to
  700.            the way that CP/M handled them. Without giving too many
  701.            details, we'll just say that this enables several hundred
  702.            more CP/M programs to run under Z80MU PROFESSIONAL which
  703.            would not run under the Z80MU version 3.10.
  704.  
  705.         d) The RLD opcode (the only one of the 600-odd Z80 opcodes
  706.            which wasn't precisely emulated by Z80MU 3.10) has been
  707.            fixed.
  708.  
  709.     10) You may invoke your favorite PC editor from within Z80MU. This
  710.         makes source code development seamless and easy.
  711.  
  712.     11) You may cause Z80 "IN" and "OUT" instructions to be mapped
  713.         to PC I/O addresses. Z80MU version 3.10 simply ignored these
  714.         opcodes.
  715.  
  716.     12) Here are a few of the new commands:
  717.  
  718.         SET_COLORS    Define colors to be used
  719.  
  720.         SET_CPMECHO    Control echo of CP/M screen output to the
  721.                 printer.
  722.  
  723.         SET_CPMLIST    Define the PC device to be used as the CP/M
  724.                 "LIST" device.
  725.  
  726.         SET_CPMPUN    Define the PC device to be used as the CP/M
  727.                 "PUN" device.
  728.  
  729.         SET_CPMRDR    Define the PC device to be used as the CP/M
  730.                 "RDR" device.
  731.  
  732.         SET_CPMPATH    Define a series of DOS directories to be
  733.                 searched by Z80MU when looking for a CP/M .COM
  734.                 file to be executed.
  735.  
  736.         SET_CPU        Select the software Z80 emulated CPU, or the
  737.                 hardware (and fast) 8080 CPU made available
  738.                 by the NEC V20 and V30 chips.
  739.  
  740.         SET_EDITOR    Define your favorite PC editor to be used
  741.                 within Z80MU.
  742.  
  743.         SET_FAKE    Control the result of hardware-specific BIOS
  744.                 and BDOS calls (for example, to interrogate
  745.                 the disk parameters).
  746.  
  747.         SET_IOBASE    Control the execution of Z80 IN and OUT
  748.                 instructions.
  749.  
  750.         SET_KEY        Load a keyboard macro, to be played back
  751.                 when the associated key is pressed.
  752.  
  753.         SET_MASK    Control the dubious CP/M practice of masking
  754.                 output characters to 7 bits.
  755.  
  756.         SET_SNOW    Control the handling of "snow" on cheap
  757.                 IBM CGA video screens.
  758.  
  759.         SET_SOURCE    Choose Z80 or 8080 mnemonics for disassembly.
  760.  
  761.         SET_TERM    Select one of the builtin terminal emulations.
  762.  
  763.         SET_VARS    Choose whether or not to interpret "$"
  764.                 characters in submit files as a parameter
  765.                 substitution leadin.
  766.  
  767.         TYPE        Display one or more files in full-screen mode,
  768.                 pausing between screens.
  769.  
  770.     13) An executing CP/M program may call Z80MU to obtain certain PC
  771.         services (like controlling a serial port), and set or inquire
  772.         about various Z80MU settings. So if you've got a CP/M accounting
  773.         package which is set up for an H-19 terminal, for example,
  774.         you can have that program automatically tell Z80MU to select
  775.         H-19 emulation when it starts executing. Or if you are running
  776.         a CP/M communications program, then that program can set
  777.         Z80MU's I/O Base address so that it can access the PC's
  778.         communications port directly via IN and OUT instructions.
  779.