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 >
Wrap
Text File
|
1989-09-15
|
17KB
|
405 lines
----- Z 8 0 D O S -----
CP/M Compatible Z-80 Disk Operating System
Featuring Enhanced Integral File Date and Time Stamping
Version 1.0
October 1, 1987
by
Carson Wilson
The author assumes no responsibility for losses resulting
from the use or inability to use Z80DOS10.LBR. The parts
of Z80DOS10.LBR created by Carson Wilson are hereby released
to the public.
CONTENTS
1. What is Z80DOS?
2. What is your purpose in releasing Z80DOS?
3. What are the differences between Z80DOS and CP/M?
- CP/M function calls.
- Modifications affecting several functions.
- Additional function calls.
4. How does Z80DOS compare with some of the other BDOS
replacements currently available?
- Comparison of replacement disk operating systems for CP/M
5. How do I install Z80DOS on my system?
- Installing DOS segment
- Installing BIOS segment (optional)
6. What do the programs in Z80DOS.LBR do?
7. Acknowledgements
1. What is Z80DOS?
Z80DOS is a replacement for CP/M's Basic Disk Operating System, or BDOS,
for computers having a Zilog Z80 microprocessor. The BDOS is the module of
CP/M which allows for standardization of CP/M programs by supplying "system
calls" which are the same across the many different CP/M hardware
configurations. It acts as an interpreter between application programs and
your system's Basic Input Output System, or BIOS.
Z80DOS supports all of the standard CP/M 2.2 BDOS functions, and adds
several new functions and enhancements. All programs designed to run under
standard CP/M will also work under Z80DOS. Programs designed to run under
Z80DOS can take advantage of enhancements to the BDOS to perform functions not
available under standard CP/M.
Z80DOS fits in the same area of memory used by CP/M's BDOS. This makes
it simple to install Z80DOS in any working CP/M system. By coding the BDOS in
Z80 assembler, it is possible to fit more functions within the standard 3.5
kilobytes of memory allowed by CP/M.
2. What is your purpose in releasing Z80DOS?
Z80 Replacement Disk Operating System, or ZRDOS (tm), by Echelon, Inc.,
has become a standard among many Z80 computer users. ZRDOS offers many
important advantages over standard CP/M's BDOS, and I applaud the new standard
ZRDOS has created.
ZRDOS is lacking in one crucial area, though: it does not implement date
and time stamping of files. ZRDOS users must rely on DateStamper (tm) by
PluPerfect Systems, a separate program which requires additional memory and
files and considerable programming overhead to use.
Z80DOS solves these problems by making date and time stamping an integral
part of the operating system (as do several of the other BDOS replacements
below), and by implementing two new BDOS functions exclusive to Z80DOS which
allow programs that modify or copy files to maintain file stamps with very
little program overhead (as does no other current BDOS replacement).
Z80DOS is a fully operational replacement BDOS for CP/M, and is the only
BDOS I use on my own system. However, Z80DOS does lack some of the advanced
features of ZRDOS (see table below). My purpose in releasing Z80DOS is not to
supplant ZRDOS, but simply to generate interest in the ideas it contains.
If you find the ideas used in Z80DOS worthwhile, please help by
introducing others to Z80DOS.LBR. If widely accepted, the time stamping
protocols of Z80DOS could form the basis for a file-stamping standard for Z80
computer users.
3. What are the differences between Z80DOS and CP/M?
3.1. CP/M function calls.
Z80DOS makes the following modifications to the CP/M standard functions:
- CP/M Function - --------------- Z80DOS Modification(s) -----------------
No. --- Name ---
2 Console out After 256 characters output, console status is checked.
This makes it possible to exit a program by typing
control-s followed by control-c. This feature is normally
on, and may be turned off by setting bit 0 of address
Z80DOS+19 to zero.
10 Read console Delete key is same as backspace. Control-u, control-r,
and control-e are simply echoed to the screen.
15 Open file File access date and time are changed to reflect the
current DOS date and time. If the f2 attribute bit is
set, the file is available from all user areas on a drive
(this is also the case with Search First and Search Next).
16 Close file If the file was written to, its update date and time are
changed to the current DOS date and time, and its archive
attribute (t3) is reset to zero.
19 Delete file To prevent accidental erasure, public files (see below)
and system files can only be erased from their home user
area by using unambiguous file names.
22 Create file File create date, modified date and time, and access date
and time are set to current DOS date and time.
3.2. Modifications affecting several functions.
When Z80DOS detects a changed disk, it resets the disk system rather than
aborting with a read-only error message as CP/M does.
Files may be made "public" (available from all user areas on a disk) by
setting the high bit of the second character of their filename (f2 bit).
Public files cannot be referenced by wildcards. This feature is normally on,
and may be turned off by setting bit 1 of address Z80DOS+19 to zero.
Disks of up to one gigabyte and files of up to 32 megabytes are possible
under Z80DOS.
Z80DOS provides the user with more information when an error occurs. The
type of error, the function call which produced the error, the drive letter,
and the filename (if any) associated with the function call are all displayed.
3.3 Additional function calls.
Z80DOS adds the following non-standard functions to CP/M:
--- Function ---- -------------------- Description -----------------------
No. --- Name ---
54 Get stamp Following a successful Open File, Search First, or Search
Next call, retain the file's full 10 byte date and time
stamp for future use, and return a pointer to the stamp in
HL. If no stamps are present, store zeroes.
55 Use Stamp Use creation date and last modified date and time stored
by Get Stamp instead of real time for the next Write, Make
File or Close File call.
104 Set time Set the system time to the values pointed to by DE (BIOS
dependent; see Z80DTIME.Z80 for format).
105 Get time Fill the five bytes pointed to by DE with the current date
and time.
4. How does Z80DOS compare with some of the other BDOS replacements currently
available?
4.1. Comparison of replacement disk operating systems for CP/M:
Name | CP/M ZRDOS+ Z80DOS P2DOS21 DOS+25 SUPERDOS
-------+-------------------------------------------------------------------
Author | Digital Echelon, Carson H.A.J. C.B. Benjamin
| Research, Inc. Wilson Ten Falconer Ho
| Inc. Brugge
|
Deriv- | Unknown Unknown P2DOS, Unknown P2DOS P2DOS
ation | SUPERDOS
|
Time | No No (*)C,U,A C,U C,U,A C,U
stamps |
|
Disks | No Yes Yes No No Yes
auto- |
login |
|
Archive| No Yes Yes Yes Yes No
|
Public | No Public F2 F2 System F2
files | user attribute attribute files attribute
| areas at A0:
|
Get/Use| No No Yes No No No
stamps |
|
Get/Set| No No Yes Yes Yes Yes
time |
|
Error | Cryptic Clear Legible, Legible, Legible, Legible,
messgs.| give give give give
| function function function function
| & file & file & file & file
|
Return | No Yes No No Yes No
current|
DMA |
|
Wheel- | No Yes No No No No
protect|
files |
|
Set/res| No Yes No No No No
warm |
boot |
|
Source | No No Yes Yes $50 Yes
code |
|
Approx.| $20 $60 free free free free
price +-----------------------------------------------------------------
(*) C = Create, U = Update, A = Last Access
5. How do I install Z80DOS on my system?
5.1. Installing BDOS segment
To install Z80DOS in your CP/M system, you will need:
1. A Z80 assembler
2. Digital Research's MOVCPM.COM, SYSGEN.COM, and DDT.COM or the
equivalents
You must first set the options and addresses in Z80DHDR.LIB to match your
particular system and tastes. See instructions in Z80DHDR.LIB. Then you will
need to assemble Z80DOS to a hex file. Finally, you will use SYSGEN.COM to
overwrite the sections of the system tracks on your system diskettes which
presently contain CP/M's BDOS with Z80DOS.
If you are familiar with the process of patching your operating system
with hex files, the file Z80DOS.BLD should give you enough information to
install Z80DOS. If you have never before altered your operating system, you
may want to consult one or more of the following references for more
information before proceeding:
Conn, Richard. Z3INSTAL.LBR. 132 kilobyte public domain library file
describing Conn's Z80 Command Processor Replacement (ZCPR). Available on
Z-Nodes worldwide.
Conn, Richard. ZCPR3: The Manual. (New York: New York Zoetrope, Inc., 1985).
Johnson-Laird, Andy. The Programmer's CP/M Handbook. (Berkeley:
Osborne/McGraw-Hill, 1983).
Miller, Alan R. Mastering CP/M. (Berkeley: SYBEX, Inc., 1983)
Waite, Mitchell, and Robert Lafore. Soul of CP/M (How to Use the Hidden Power
of Your CP/M System). (Indianapolis: Howard W. Sams & Co., 1983).
5.2. Installing BIOS segment (optional)
To implement time stamping under Z80DOS, you will need in addition:
1. Source code for your BIOS
2. A real-time clock or four bytes of reserved RAM memory
To implement time stamping, you will need to modify and reassemble your
BIOS and overwrite your system tracks with the new BIOS using the techniques
described in Z80DOS.BLD and in the above references. The offset at which to
load the hex image of your BIOS is the same number used to load the hex image
of Z80DOS in Z80DOS.BLD.
You needn't have a real-time clock in your computer to implement date
stamping, just an area of memory to hold the current date and time. BIOS.TIM
includes an example BIOS time inserts which use memory to hold the time.
Finally, before Z80DOS will do date and time stamping, you must run
INITDIR.COM (included) on your disks. This sets aside extra space in your
disk directories for time/date stamps (See Z80DPROG.NOT).
6. What do the programs in Z80DOS.LBR do?
INITDIR.COM initializes directories for time stamping by clearing the fourth
entry in each directory sector and flagging its user area byte with 21
hex. This tells Z80DOS that this entry is to be used for holding the
time and date stamps of the other three directory entries in the sector.
See Z80DPROG.NOT for a complete description of the format used. For help
using INITDIR.COM, type INITDIR.
PPIP.COM is a public domain file copy utility which I have adapted for use
with Z80DOS by enabling it to copy file date and time stamps along with
files. PPIP has many useful options such as file archiving. For help
with PPIP.COM, type PPIP or see PPIP.DOC, which is available in
PPIPnn.LBR on many bulletin boards.
SAVESTMP.COM is my own program which copies the creation date from one file to
another. SAVESTMP is designed to bridge the gap between an advanced
operating system which implements creation date file stamps and programs
such as word processors which do not recognize time stamps. NewWord, for
example, always erases the source file when modifications are performed,
and in so doing loses the file's date of creation.
To compensate for this, SAVESTMP can be used to save the original
creation date by copying it to a zero-length file before editing and then
restoring the creation date from the zero-length file after editing.
This is best done using aliases under ZCPR, but could also be implemented
with CP/M's SUBMIT.COM.
Here is a simple sample ZCPR alias named MODIFY which implements this
idea:
MOD.IFY savestmp ROOT:DATEHOLD=$1;vde $1;savestmp $1=ROOT:DATEHOLD
To edit a file, the user would type "MODIFY MYFILE". MYFILE's creation
date would be copied to DATEHOLD (or any other file) prior to editing,
then after editing, the creation date would be copied back to MYFILE.
This ZCPR alias could be elaborated on with file existence checks, etc.
Although I have tested SAVESTMP fully on my own system, it does make BIOS
calls and writes directly to directory tracks, so please test
SAVESTMP.COM on a dispensable diskette before using it extensively. My
thanks to Rick Charnes, whose concern about lost creation dates inspired
SAVESTMP.COM. For a brief help message, type SAVESTMP.
TDIR.COM or "TIMEDIR.COM" is a directory utility which displays Z80DOS
creation, modification, and last access stamps along with individual and
total file size, number of files matched, and kilobytes free.
TDIR will also display file attributes (such as read-only) using video
display features when patched for your terminal. To patch TDIR, look for
the ASCII labels "[VIDON>" and "[VIDOFF>" near the beginning of the file.
After VIDON, you may patch in a string to turn a video attribute on (I
use dim and reverse video on my system). A string to turn the attribute
back off goes after VIDOFF. The strings may be up to 6 bytes long, but
MUST be terminated with a dollar sign.
TDIR is derived from DDIR, by H.A.J. Ten Brugge. For help with TDIR.COM,
type "TDIR /".
TELL.COM is a public domain utility which tells you information about your
operating system. It is included for use in installing Z80DOS.COM. To
use, just type TELL.
TIME.COM sets or displays the date and time from the real-time clock or
section of memory devoted to time storage on Z80DOS system. TIME.COM
will only function once the proper BIOS routine has been installed.
If you lack a real-time clock, you may wish to run TIME once each time
you start your system, by using AUTO.COM on a CP/M system, or installing
the TIME command in the STARTUP alias of a ZCPR system. For help, type
TIME. TIME.COM was adapted from a program of the same name by C. B.
Falconer.
ZF10GD5.COM is for use on ZCPR systems only. This is the popular ZFILER
program, modified by adding 31 bytes of code to copy Z80DOS date and time
stamps when copying, moving, archiving, or unsqueezing files.
7. Acknowledgements
The main body of Z80DOS is my adaptation of P2DOS, version 2.1, by H.A.J.
Ten Brugge, Molenstraat 33, NL-7491 BD Delden, The Netherlands, all rights
reserved. The date stamping format of Z80DOS and the programs TIME and
INITDIR were adapted from DOS+, version 2.5, by C. B. Falconer, 680 Hartford
Tpk, Hamden, CT 06517, all rights reserved. The method Z80DOS uses to
automatically log in changed disks is an adaptation of the scheme presented by
Benjamin Ho of Evanston, IL in his SUPERDOS.LBR.
Please let me know what you think of Z80DOS. I will be happy to explain the
goals and techniques of Z80DOS to programmers and developers or to assist
anyone in adapting programs to Z80DOS.
I can be reached thru messages to Carson Wilson at:
Lillipute Z-Nodes, Chicago
312-664-1730 and 312-649-1730
8-1-No Parity 24 hours
Best Wishes!