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