home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / S / Z80DOS10.ARC / Z80DOS10.DOC < prev    next >
Text File  |  1989-09-15  |  17KB  |  405 lines

  1.  
  2.             -----  Z  8  0    D  O  S  -----
  3.  
  4.           CP/M Compatible Z-80 Disk Operating System
  5.  
  6.        Featuring Enhanced Integral File Date and Time Stamping
  7.  
  8.                  Version 1.0
  9.  
  10.                    October 1, 1987
  11.                       by
  12.                 Carson Wilson
  13.  
  14.  
  15.  
  16.       The author assumes no responsibility for losses resulting
  17.       from the use or inability to use Z80DOS10.LBR.  The parts
  18.      of Z80DOS10.LBR created by Carson Wilson are hereby released
  19.                 to the public.
  20.  
  21.  
  22.  
  23.  
  24.                    CONTENTS
  25.  
  26.       1.   What is Z80DOS?
  27.  
  28.       2.   What is your purpose in releasing Z80DOS?
  29.  
  30.       3.   What are the differences between Z80DOS and CP/M?
  31.           - CP/M function calls.
  32.           - Modifications affecting several functions.
  33.           - Additional function calls.
  34.  
  35.       4.   How does Z80DOS compare with some of the other BDOS
  36.            replacements currently available?
  37.           - Comparison of replacement disk operating systems for CP/M
  38.  
  39.       5.   How do I install Z80DOS on my system?
  40.           - Installing DOS segment
  41.           - Installing BIOS segment (optional)
  42.  
  43.       6.   What do the programs in Z80DOS.LBR do?
  44.  
  45.       7.   Acknowledgements
  46.  
  47.  
  48.  
  49. 1.  What is Z80DOS?
  50.  
  51.      Z80DOS is a replacement for CP/M's Basic Disk Operating System, or BDOS,
  52. for computers having a Zilog Z80 microprocessor.  The BDOS is the module of
  53. CP/M which allows for standardization of CP/M programs by supplying "system
  54. calls" which are the same across the many different CP/M hardware
  55. configurations.  It acts as an interpreter between application programs and
  56. your system's Basic Input Output System, or BIOS.
  57.  
  58.      Z80DOS supports all of the standard CP/M 2.2 BDOS functions, and adds
  59. several new functions and enhancements.  All programs designed to run under
  60. standard CP/M will also work under Z80DOS.  Programs designed to run under
  61. Z80DOS can take advantage of enhancements to the BDOS to perform functions not
  62. available under standard CP/M.
  63.  
  64.      Z80DOS fits in the same area of memory used by CP/M's BDOS.  This makes
  65. it simple to install Z80DOS in any working CP/M system.  By coding the BDOS in
  66. Z80 assembler, it is possible to fit more functions within the standard 3.5
  67. kilobytes of memory allowed by CP/M.
  68.  
  69.  
  70.  
  71. 2.  What is your purpose in releasing Z80DOS?
  72.  
  73.      Z80 Replacement Disk Operating System, or ZRDOS (tm), by Echelon, Inc.,
  74. has become a standard among many Z80 computer users.  ZRDOS offers many
  75. important advantages over standard CP/M's BDOS, and I applaud the new standard
  76. ZRDOS has created.
  77.  
  78.      ZRDOS is lacking in one crucial area, though: it does not implement date
  79. and time stamping of files.  ZRDOS users must rely on DateStamper (tm) by
  80. PluPerfect Systems, a separate program which requires additional memory and
  81. files and considerable programming overhead to use.
  82.  
  83.      Z80DOS solves these problems by making date and time stamping an integral
  84. part of the operating system (as do several of the other BDOS replacements
  85. below), and by implementing two new BDOS functions exclusive to Z80DOS which
  86. allow programs that modify or copy files to maintain file stamps with very 
  87. little program overhead (as does no other current BDOS replacement).
  88.  
  89.      Z80DOS is a fully operational replacement BDOS for CP/M, and is the only
  90. BDOS I use on my own system.  However, Z80DOS does lack some of the advanced
  91. features of ZRDOS (see table below).  My purpose in releasing Z80DOS is not to
  92. supplant ZRDOS, but simply to generate interest in the ideas it contains.
  93.  
  94.      If you find the ideas used in Z80DOS worthwhile, please help by 
  95. introducing others to Z80DOS.LBR.  If widely accepted, the time stamping 
  96. protocols of Z80DOS could form the basis for a file-stamping standard for Z80 
  97. computer users.
  98.  
  99.  
  100.  
  101. 3.  What are the differences between Z80DOS and CP/M?
  102.  
  103. 3.1.  CP/M function calls.
  104.  
  105. Z80DOS makes the following modifications to the CP/M standard functions:
  106.  
  107. - CP/M Function -   --------------- Z80DOS Modification(s) -----------------
  108. No.  --- Name ---
  109.  
  110.   2  Console out    After 256 characters output, console status is checked.
  111.             This makes it possible to exit a program by typing
  112.             control-s followed by control-c.  This feature is normally
  113.             on, and may be turned off by setting bit 0 of address
  114.             Z80DOS+19 to zero.
  115.  
  116.  10  Read console   Delete key is same as backspace.  Control-u, control-r,
  117.             and control-e are simply echoed to the screen.
  118.  
  119.  15  Open file        File access date and time are changed to reflect the
  120.             current DOS date and time.    If the f2 attribute bit is
  121.             set, the file is available from all user areas on a drive
  122.             (this is also the case with Search First and Search Next).
  123.  
  124.  16  Close file     If the file was written to, its update date and time are
  125.             changed to the current DOS date and time, and its archive
  126.             attribute (t3) is reset to zero.
  127.  
  128.  19  Delete file    To prevent accidental erasure, public files (see below)
  129.             and system files can only be erased from their home user
  130.             area by using unambiguous file names.
  131.  
  132.  22  Create file    File create date, modified date and time, and access date
  133.             and time are set to current DOS date and time.
  134.  
  135.  
  136.  
  137. 3.2.  Modifications affecting several functions.
  138.  
  139.      When Z80DOS detects a changed disk, it resets the disk system rather than
  140. aborting with a read-only error message as CP/M does.
  141.  
  142.      Files may be made "public" (available from all user areas on a disk) by
  143. setting the high bit of the second character of their filename (f2 bit).
  144. Public files cannot be referenced by wildcards.  This feature is normally on,
  145. and may be turned off by setting bit 1 of address Z80DOS+19 to zero.
  146.  
  147.      Disks of up to one gigabyte and files of up to 32 megabytes are possible
  148. under Z80DOS.
  149.  
  150.      Z80DOS provides the user with more information when an error occurs.  The
  151. type of error, the function call which produced the error, the drive letter,
  152. and the filename (if any) associated with the function call are all displayed.
  153.  
  154.  
  155. 3.3  Additional function calls.
  156.  
  157. Z80DOS adds the following non-standard functions to CP/M:
  158.  
  159.  
  160. --- Function ----   -------------------- Description -----------------------
  161. No.  --- Name ---
  162.  
  163.  54  Get stamp        Following a successful Open File, Search First, or Search
  164.             Next call, retain the file's full 10 byte date and time
  165.             stamp for future use, and return a pointer to the stamp in
  166.             HL.  If no stamps are present, store zeroes.
  167.  
  168.  55  Use Stamp        Use creation date and last modified date and time stored
  169.             by Get Stamp instead of real time for the next Write, Make
  170.             File or Close File call.
  171.  
  172. 104  Set time        Set the system time to the values pointed to by DE (BIOS
  173.             dependent; see Z80DTIME.Z80 for format).
  174.  
  175. 105  Get time        Fill the five bytes pointed to by DE with the current date
  176.             and time.
  177.  
  178.  
  179.  
  180. 4.  How does Z80DOS compare with some of the other BDOS replacements currently
  181.     available?
  182.  
  183. 4.1.  Comparison of replacement disk operating systems for CP/M:
  184.  
  185. Name   | CP/M        ZRDOS+     Z80DOS      P2DOS21    DOS+25    SUPERDOS
  186. -------+-------------------------------------------------------------------
  187. Author | Digital    Echelon,   Carson      H.A.J.     C.B.    Benjamin
  188.        | Research,  Inc.       Wilson      Ten         Falconer    Ho
  189.        | Inc.                  Brugge
  190.        |
  191. Deriv- | Unknown    Unknown    P2DOS,      Unknown    P2DOS    P2DOS
  192. ation  |               SUPERDOS
  193.        |
  194. Time   | No        No           (*)C,U,A   C,U         C,U,A    C,U
  195. stamps |
  196.        |
  197. Disks  | No        Yes        Yes      No         No     Yes
  198. auto-  |
  199. login  |
  200.        |
  201. Archive| No        Yes        Yes      Yes         Yes    No
  202.        |
  203. Public | No        Public     F2      F2         System    F2
  204. files  |        user       attribute  attribute  files    attribute
  205.        |        areas                 at A0:
  206.        |
  207. Get/Use| No        No           Yes      No         No     No
  208. stamps |
  209.        |
  210. Get/Set| No        No           Yes      Yes         Yes    Yes
  211.  time  |
  212.        |
  213. Error  | Cryptic    Clear      Legible,   Legible,   Legible,    Legible,
  214. messgs.|               give      give         give    give
  215.        |               function   function   function    function
  216.        |               & file      & file     & file    & file
  217.        |
  218. Return | No        Yes        No      No         Yes    No
  219. current|
  220. DMA    |
  221.        |
  222. Wheel- | No        Yes        No      No         No     No
  223. protect|
  224.  files |
  225.        |
  226. Set/res| No        Yes        No      No         No     No
  227. warm   |
  228. boot   |
  229.        |
  230. Source | No        No        Yes      Yes         $50     Yes
  231. code   |
  232.        |
  233. Approx.| $20        $60        free      free         free    free
  234. price  +-----------------------------------------------------------------
  235.          (*) C = Create, U = Update, A = Last Access
  236.  
  237.  
  238.  
  239. 5.  How do I install Z80DOS on my system?
  240.  
  241. 5.1.  Installing BDOS segment
  242.  
  243. To install Z80DOS in your CP/M system, you will need:
  244.  
  245.      1.  A Z80 assembler
  246.      2.  Digital Research's MOVCPM.COM, SYSGEN.COM, and DDT.COM or the
  247.      equivalents
  248.  
  249.      You must first set the options and addresses in Z80DHDR.LIB to match your
  250. particular system and tastes.  See instructions in Z80DHDR.LIB.  Then you will
  251. need to assemble Z80DOS to a hex file.    Finally, you will use SYSGEN.COM to
  252. overwrite the sections of the system tracks on your system diskettes which
  253. presently contain CP/M's BDOS with Z80DOS.
  254.  
  255.      If you are familiar with the process of patching your operating system
  256. with hex files, the file Z80DOS.BLD should give you enough information to
  257. install Z80DOS.  If you have never before altered your operating system, you
  258. may want to consult one or more of the following references for more
  259. information before proceeding:
  260.  
  261.  
  262. Conn, Richard.    Z3INSTAL.LBR.  132 kilobyte public domain library file
  263.      describing Conn's Z80 Command Processor Replacement (ZCPR).  Available on
  264.      Z-Nodes worldwide.
  265.  
  266. Conn, Richard.    ZCPR3: The Manual.  (New York: New York Zoetrope, Inc., 1985).
  267.  
  268. Johnson-Laird, Andy.  The Programmer's CP/M Handbook.  (Berkeley:
  269.      Osborne/McGraw-Hill, 1983).
  270.  
  271. Miller, Alan R.  Mastering CP/M.  (Berkeley: SYBEX, Inc., 1983)
  272.  
  273. Waite, Mitchell, and Robert Lafore.  Soul of CP/M (How to Use the Hidden Power
  274.      of Your CP/M System).  (Indianapolis: Howard W. Sams & Co., 1983).
  275.  
  276.  
  277.  
  278. 5.2.  Installing BIOS segment (optional)
  279.  
  280. To implement time stamping under Z80DOS, you will need in addition:
  281.  
  282.      1.  Source code for your BIOS
  283.      2.  A real-time clock or four bytes of reserved RAM memory
  284.  
  285.      To implement time stamping, you will need to modify and reassemble your
  286. BIOS and overwrite your system tracks with the new BIOS using the techniques
  287. described in Z80DOS.BLD and in the above references.  The offset at which to
  288. load the hex image of your BIOS is the same number used to load the hex image
  289. of Z80DOS in Z80DOS.BLD.
  290.  
  291.      You needn't have a real-time clock in your computer to implement date
  292. stamping, just an area of memory to hold the current date and time.  BIOS.TIM
  293. includes an example BIOS time inserts which use memory to hold the time.
  294.  
  295.      Finally, before Z80DOS will do date and time stamping, you must run
  296. INITDIR.COM (included) on your disks.  This sets aside extra space in your
  297. disk directories for time/date stamps (See Z80DPROG.NOT).
  298.  
  299.  
  300.  
  301. 6.  What do the programs in Z80DOS.LBR do?
  302.  
  303. INITDIR.COM initializes directories for time stamping by clearing the fourth
  304.      entry in each directory sector and flagging its user area byte with 21
  305.      hex.  This tells Z80DOS that this entry is to be used for holding the
  306.      time and date stamps of the other three directory entries in the sector.
  307.      See Z80DPROG.NOT for a complete description of the format used.  For help
  308.      using INITDIR.COM, type INITDIR.
  309.  
  310. PPIP.COM is a public domain file copy utility which I have adapted for use
  311.      with Z80DOS by enabling it to copy file date and time stamps along with
  312.      files.  PPIP has many useful options such as file archiving.  For help
  313.      with PPIP.COM, type PPIP or see PPIP.DOC, which is available in
  314.      PPIPnn.LBR on many bulletin boards.
  315.  
  316. SAVESTMP.COM is my own program which copies the creation date from one file to
  317.      another.  SAVESTMP is designed to bridge the gap between an advanced
  318.      operating system which implements creation date file stamps and programs
  319.      such as word processors which do not recognize time stamps.  NewWord, for
  320.      example, always erases the source file when modifications are performed,
  321.      and in so doing loses the file's date of creation.
  322.  
  323.      To compensate for this, SAVESTMP can be used to save the original
  324.      creation date by copying it to a zero-length file before editing and then
  325.      restoring the creation date from the zero-length file after editing.
  326.      This is best done using aliases under ZCPR, but could also be implemented
  327.      with CP/M's SUBMIT.COM.
  328.  
  329.      Here is a simple sample ZCPR alias named MODIFY which implements this
  330.      idea:
  331.  
  332.       MOD.IFY savestmp ROOT:DATEHOLD=$1;vde $1;savestmp $1=ROOT:DATEHOLD
  333.  
  334.      To edit a file, the user would type "MODIFY MYFILE".  MYFILE's creation
  335.      date would be copied to DATEHOLD (or any other file) prior to editing,
  336.      then after editing, the creation date would be copied back to MYFILE.
  337.      This ZCPR alias could be elaborated on with file existence checks, etc.
  338.  
  339.      Although I have tested SAVESTMP fully on my own system, it does make BIOS
  340.      calls and writes directly to directory tracks, so please test
  341.      SAVESTMP.COM on a dispensable diskette before using it extensively.  My
  342.      thanks to Rick Charnes, whose concern about lost creation dates inspired
  343.      SAVESTMP.COM.  For a brief help message, type SAVESTMP.
  344.  
  345. TDIR.COM or "TIMEDIR.COM" is a directory utility which displays Z80DOS
  346.      creation, modification, and last access stamps along with individual and
  347.      total file size, number of files matched, and kilobytes free.
  348.  
  349.      TDIR will also display file attributes (such as read-only) using video
  350.      display features when patched for your terminal.  To patch TDIR, look for
  351.      the ASCII labels "[VIDON>" and "[VIDOFF>" near the beginning of the file.
  352.      After VIDON, you may patch in a string to turn a video attribute on (I
  353.      use dim and reverse video on my system).  A string to turn the attribute
  354.      back off goes after VIDOFF.  The strings may be up to 6 bytes long, but
  355.      MUST be terminated with a dollar sign.
  356.  
  357.      TDIR is derived from DDIR, by H.A.J. Ten Brugge.  For help with TDIR.COM,
  358.      type "TDIR /".
  359.  
  360. TELL.COM is a public domain utility which tells you information about your
  361.      operating system.    It is included for use in installing Z80DOS.COM.  To
  362.      use, just type TELL.
  363.  
  364. TIME.COM sets or displays the date and time from the real-time clock or
  365.      section of memory devoted to time storage on Z80DOS system.  TIME.COM
  366.      will only function once the proper BIOS routine has been installed.
  367.      If you lack a real-time clock, you may wish to run TIME once each time
  368.      you start your system, by using AUTO.COM on a CP/M system, or installing
  369.      the TIME command in the STARTUP alias of a ZCPR system.  For help, type
  370.      TIME.  TIME.COM was adapted from a program of the same name by C. B.
  371.      Falconer.
  372.  
  373. ZF10GD5.COM is for use on ZCPR systems only.  This is the popular ZFILER
  374.      program, modified by adding 31 bytes of code to copy Z80DOS date and time
  375.      stamps when copying, moving, archiving, or unsqueezing files.
  376.  
  377.  
  378. 7.  Acknowledgements
  379.  
  380.      The main body of Z80DOS is my adaptation of P2DOS, version 2.1, by H.A.J.
  381. Ten Brugge, Molenstraat 33, NL-7491 BD Delden, The Netherlands, all rights
  382. reserved.  The date stamping format of Z80DOS and the programs TIME and
  383. INITDIR were adapted from DOS+, version 2.5, by C. B. Falconer, 680 Hartford
  384. Tpk, Hamden, CT 06517, all rights reserved.  The method Z80DOS uses to
  385. automatically log in changed disks is an adaptation of the scheme presented by
  386. Benjamin Ho of Evanston, IL in his SUPERDOS.LBR.
  387.  
  388.  
  389.  
  390. Please let me know what you think of Z80DOS.  I will be happy to explain the
  391. goals and techniques of Z80DOS to programmers and developers or to assist
  392. anyone in adapting programs to Z80DOS.
  393.  
  394.  
  395. I can be reached thru messages to Carson Wilson at:
  396.  
  397.  
  398.               Lillipute Z-Nodes, Chicago
  399.             312-664-1730  and  312-649-1730
  400.                 8-1-No Parity  24 hours
  401.  
  402.  
  403.                  Best Wishes!
  404.  
  405.