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