Browse Source

Reintegrate wbw -> trunk

patch
wwarthen 11 years ago
parent
commit
cc51d012de
  1. 4
      BuildCommon.cmd
  2. 4
      BuildImages.cmd
  3. 3
      Doc/ChangeLog.txt
  4. 1
      Images/Blank.tmp
  5. 15
      Images/Build.cmd
  6. 1
      Images/BuildFD.cmd
  7. 33
      Images/BuildFD.ps1
  8. 1
      Images/BuildHD.cmd
  9. 39
      Images/BuildHD.ps1
  10. 2
      Images/Clean.cmd
  11. 29
      Images/FixPowerShell.cmd
  12. 246
      Images/ReadMe.txt
  13. BIN
      Images/Source/fd0/u0/ASM.COM
  14. BIN
      Images/Source/fd0/u0/CLRDIR.COM
  15. BIN
      Images/Source/fd0/u0/CR.COM
  16. BIN
      Images/Source/fd0/u0/DDT.COM
  17. BIN
      Images/Source/fd0/u0/DDTZ.COM
  18. 564
      Images/Source/fd0/u0/DDTZ.DOC
  19. BIN
      Images/Source/fd0/u0/DIF.COM
  20. BIN
      Images/Source/fd0/u0/DIRX.COM
  21. BIN
      Images/Source/fd0/u0/DUMP.COM
  22. BIN
      Images/Source/fd0/u0/ED.COM
  23. BIN
      Images/Source/fd0/u0/LBREXT.COM
  24. BIN
      Images/Source/fd0/u0/LIB.COM
  25. BIN
      Images/Source/fd0/u0/LINK.COM
  26. BIN
      Images/Source/fd0/u0/LOAD.COM
  27. BIN
      Images/Source/fd0/u0/MAC.COM
  28. BIN
      Images/Source/fd0/u0/MBASIC.COM
  29. BIN
      Images/Source/fd0/u0/NULU.COM
  30. BIN
      Images/Source/fd0/u0/PIP.COM
  31. BIN
      Images/Source/fd0/u0/RMAC.COM
  32. BIN
      Images/Source/fd0/u0/SID.COM
  33. BIN
      Images/Source/fd0/u0/STAT.COM
  34. BIN
      Images/Source/fd0/u0/SUBMIT.COM
  35. BIN
      Images/Source/fd0/u0/SUPERSUB.COM
  36. BIN
      Images/Source/fd0/u0/UNARC.COM
  37. BIN
      Images/Source/fd0/u0/UNCR.COM
  38. BIN
      Images/Source/fd0/u0/UNZIP.COM
  39. 69
      Images/Source/fd0/u0/VIDATT.Z80
  40. BIN
      Images/Source/fd0/u0/WS.COM
  41. BIN
      Images/Source/fd0/u0/WS.OVR
  42. BIN
      Images/Source/fd0/u0/WSCHANGE.COM
  43. BIN
      Images/Source/fd0/u0/WSCHANGE.OVR
  44. BIN
      Images/Source/fd0/u0/WSCHHELP.OVR
  45. BIN
      Images/Source/fd0/u0/WSHELP.OVR
  46. BIN
      Images/Source/fd0/u0/WSMSGS.OVR
  47. BIN
      Images/Source/fd0/u0/WSPRINT.OVR
  48. 880
      Images/Source/fd0/u0/WSREADME.TXT
  49. BIN
      Images/Source/fd0/u0/WSSHORT.OVR
  50. BIN
      Images/Source/fd0/u0/WSU.COM
  51. BIN
      Images/Source/fd0/u0/XSUB.COM
  52. BIN
      Images/Source/fd0/u0/ZAP.COM
  53. BIN
      Images/Source/fd0/u0/ZDE.COM
  54. BIN
      Images/Source/fd0/u0/ZDE40.COM
  55. BIN
      Images/Source/fd0/u0/ZDENST.COM
  56. BIN
      Images/Source/fd1/u0/ASM.COM
  57. BIN
      Images/Source/fd1/u0/CLOCKS.DAT
  58. BIN
      Images/Source/fd1/u0/CLRDIR.COM
  59. BIN
      Images/Source/fd1/u0/COPY.CFG
  60. BIN
      Images/Source/fd1/u0/COPY.COM
  61. 43
      Images/Source/fd1/u0/COPY.UPD
  62. BIN
      Images/Source/fd1/u0/CR.COM
  63. BIN
      Images/Source/fd1/u0/DATSWEEP.COM
  64. BIN
      Images/Source/fd1/u0/DDT.COM
  65. BIN
      Images/Source/fd1/u0/DDTZ.COM
  66. 564
      Images/Source/fd1/u0/DDTZ.DOC
  67. BIN
      Images/Source/fd1/u0/DIF.COM
  68. BIN
      Images/Source/fd1/u0/DSCONFIG.COM
  69. BIN
      Images/Source/fd1/u0/DUMP.COM
  70. BIN
      Images/Source/fd1/u0/ED.COM
  71. BIN
      Images/Source/fd1/u0/FA16.CFG
  72. 264
      Images/Source/fd1/u0/FA16.DOC
  73. 6
      Images/Source/fd1/u0/FA16A.FOR
  74. 39
      Images/Source/fd1/u0/FA16CFG.TXT
  75. BIN
      Images/Source/fd1/u0/FILEATTR.COM
  76. BIN
      Images/Source/fd1/u0/FILEDATE.CFG
  77. BIN
      Images/Source/fd1/u0/FILEDATE.COM
  78. BIN
      Images/Source/fd1/u0/INITDIR.CFG
  79. BIN
      Images/Source/fd1/u0/INITDIR.COM
  80. BIN
      Images/Source/fd1/u0/LBREXT.COM
  81. BIN
      Images/Source/fd1/u0/LDDS.COM
  82. BIN
      Images/Source/fd1/u0/LDP2D.COM
  83. BIN
      Images/Source/fd1/u0/LIB.COM
  84. BIN
      Images/Source/fd1/u0/LINK.COM
  85. BIN
      Images/Source/fd1/u0/LOAD.COM
  86. BIN
      Images/Source/fd1/u0/MAC.COM
  87. BIN
      Images/Source/fd1/u0/MBASIC.COM
  88. BIN
      Images/Source/fd1/u0/NULU.COM
  89. BIN
      Images/Source/fd1/u0/PIP.COM
  90. BIN
      Images/Source/fd1/u0/PUTBG.COM
  91. BIN
      Images/Source/fd1/u0/PUTDS.COM
  92. BIN
      Images/Source/fd1/u0/RELOG.COM
  93. BIN
      Images/Source/fd1/u0/RMAC.COM
  94. BIN
      Images/Source/fd1/u0/SETTERM.COM
  95. BIN
      Images/Source/fd1/u0/SETUPZST.COM
  96. BIN
      Images/Source/fd1/u0/SID.COM
  97. BIN
      Images/Source/fd1/u0/STAMPS.DAT
  98. BIN
      Images/Source/fd1/u0/STAT.COM
  99. BIN
      Images/Source/fd1/u0/SUBMIT.COM
  100. BIN
      Images/Source/fd1/u0/SUPERSUB.COM

4
BuildCommon.cmd

@ -1,4 +1,4 @@
@echo off
setlocal
cd Source
call BuildCommon %*
pushd Source && call BuildCommon && popd

4
BuildImages.cmd

@ -0,0 +1,4 @@
@echo off
setlocal
pushd Images && Build && popd

3
Doc/ChangeLog.txt

@ -1,3 +1,6 @@
Version 2.7.1
- WBW: Support loading from image file (UNA FSFAT)
Version 2.7.0
-------------
- WBW: Memory page reorganization

1
Images/Blank.tmp

File diff suppressed because one or more lines are too long

15
Images/Build.cmd

@ -0,0 +1,15 @@
@echo off
setlocal
echo :
echo : Cleaning...
echo :
call Clean.cmd
echo :
echo : Building Floppy Disk Images...
echo :
call BuildFD.cmd
echo :
echo : Building Hard Disk Images...
echo :
call BuildHD.cmd

1
Images/BuildFD.cmd

@ -0,0 +1 @@
@PowerShell .\BuildFD.ps1 %*

33
Images/BuildFD.ps1

@ -0,0 +1,33 @@
$ErrorAction = 'Stop'
$CpmToolsPath = '..\Tools\cpmtools'
$env:PATH = $CpmToolsPath + ';' + $env:PATH
$Blank = ([byte[]](0xE5) * 1440KB)
"Creating work file..."
if (!(Test-Path('Blank.tmp'))) {Set-Content -Value $Blank -Encoding byte -Path 'Blank.tmp'}
"Creating floppy disk images..."
for ($Dsk=0; $Dsk -lt 2; $Dsk++)
{
"Generating Floppy Disk ${Dsk}..."
copy Blank.tmp fd${Dsk}.img
for ($Usr=0; $Usr -lt 16; $Usr++)
{
if (Test-Path ("Source/fd${Dsk}/u${Usr}/*"))
{
$Cmd = "cpmcp -f wbw_fd144 fd${Dsk}.img Source/fd${Dsk}/u${Usr}/*.* ${Usr}:"
$Cmd
Invoke-Expression $Cmd
}
}
}
"Moving images into output directory..."
&$env:COMSPEC /c move fd*.img ..\Output\
Remove-Item *.tmp
return

1
Images/BuildHD.cmd

@ -0,0 +1 @@
@PowerShell .\BuildHD.ps1 %*

39
Images/BuildHD.ps1

@ -0,0 +1,39 @@
$ErrorAction = 'Stop'
$CpmToolsPath = '../Tools/cpmtools'
$env:PATH = $CpmToolsPath + ';' + $env:PATH
$Blank = ([byte[]](0xE5) * (128KB * 65))
"Creating work file..."
if (!(Test-Path('Blank.tmp'))) {Set-Content -Value $Blank -Encoding byte -Path 'Blank.tmp'}
"Creating hard disk images..."
for ($Dsk=0; $Dsk -lt 2; $Dsk++)
{
"Generating Hard Disk ${Dsk}..."
for ($Slice=0; $Slice -lt 4; $Slice++)
{
"Adding files to slice ${Slice}..."
copy Blank.tmp slice${Slice}.tmp
for ($Usr=0; $Usr -lt 16; $Usr++)
{
if (Test-Path ("Source/hd${Dsk}/s${Slice}/u${Usr}/*"))
{
$Cmd = "cpmcp -f wbw_hd0 slice${Slice}.tmp Source/hd${Dsk}/s${Slice}/u${Usr}/*.* ${Usr}:"
$Cmd
Invoke-Expression $Cmd
}
}
}
"Combining slices into final disk image hd${Dsk}..."
&$env:COMSPEC /c copy /b slice*.tmp ..\Output\hd${Dsk}.img
Remove-Item slice*.tmp
}
Remove-Item *.tmp
return

2
Images/Clean.cmd

@ -0,0 +1,2 @@
@echo off
if exist *.tmp del *.tmp /Q

29
Images/FixPowerShell.cmd

@ -0,0 +1,29 @@
@echo off
echo By default, PowerShell is configured to block the
echo execution of unsigned scripts on your local system.
echo This command file will attempt to modify your
echo PowerShell ExecutionPolicy to "RemoteSigned"
echo which means that local scripts can be run without
echo being signed. This is required to use the RomWBW
echo build process.
echo.
PowerShell -command Write-Host "Your PowerShell ExecutionPolicy is currently set to: `'(Get-ExecutionPolicy)`'"
echo.
echo In order to modify the ExecutionPolicy, this command
echo file *MUST* be run with administrator privileges.
echo Generally, this means you want to right-click the
echo command file called FixPowerShell.cmd and choose
echo "Run as Administrator". If you attempt to continue
echo without administrator privileges, the modification
echo will fail with an error message, but no harm is done.
echo.
choice /m "Do you want to proceed"
if errorlevel 2 goto :eof
echo.
echo Attempting to change Execution Policy...
echo.
PowerShell Set-ExecutionPolicy RemoteSigned
echo.
PowerShell -command Write-Host "Your new PowerShell ExecutionPolicy is now set to: `'(Get-ExecutionPolicy)`'"
echo.
pause

246
Images/ReadMe.txt

@ -0,0 +1,246 @@
************************************************************
*** I m a g e M a k e r ***
*** ***
*** Disk Image Generator for RomWBW ***
************************************************************
Builders: Wayne Warthen (wwarthen@gmail.com)
Updated: 2014-02-16
Version: 2.5.3
This is a supplemental toolset for RomWBW that builds
floppy and/or hard disk images that can be used on
RomWBW by writing the image to a floppy or hard
disk (include CF and SD cards).
In summary, CP/M files are placed inside of a pre-defined
Windows directory structure. A script is then run to
create floppy and/or hard disk images from the directory
tree contents. The resultant images may be copied directly
to floppy or hard disk media or used for SIMH emulator
disk images.
System Requirements
-------------------
This ImageMaker scripts run on Microsoft Windows XP
or greater (32 and 64 bit variants of Windows are
fine).
Other than the contents of the ImageMaker zip archive,
you will need to have Microsoft PowerShell installed.
All variants of Windows XP and later support PowerShell.
It is included in all versions after Windows XP. If you
are using Windows XP, you will need to download it from
Microsoft and install it (free download).
By default, PowerShell will not run arbitrary scripts
that are not signed. In order to run the ImageMaker
scripts, you will need to tell PowerShell it is OK
to run run "local" scripts that are not signed.
Right-click the file in the ImageMaker archive
called FixPowerShell and choose "Run as Administrator"
and follow the instructions.
Preparing the Source Directory Contents
---------------------------------------
The ImageMaker script expects your files to be found
in the Source directory inside a specific directory
structure. Note that you will see there are some
CP/M files in the Source directory tree in the
distribution. These are simply test files I used
and have no specific meaing. You will probably want
to replace them with your own files as desired.
If you look at the Source directory, you will find
4 directories. fd0 and fd1 will contain the files
to be placed in the two floppy images gneerated.
hd0 and hd1 will contain the files to be used
to generate the two hard disk images. There
is nothing magic about the fact that there are
two of each kind of image generated. It just
seemed like a good number to the author. A quick
review of the scripts and you will see it is very
easy to modify the number of images generated if
you want.
For floppy disks, the structure is:
fd0 --+--> u0
+--> u1
|
+--> u15
Above, fd0 refers to the first floppy disk image and
u0...u15 refer to the user areas on the disk. You
place whatever files you want on fd0, user 0 in the
fd0\u0 directory. You will notice that not all of the
u0...u15 directories exist. The script does not care
and treats a non-existent directory as a directory with
no files. The fd1 directory is exactly the same as fd0 --
it is simply the second floppy image.
At present, the scripts assume that the floppy media
is 1.44MB. You will need to modify the scripts if you
want to create different media.
For hard disks, the structure has one more level:
hd0 --+--> s0 --+--> u0
| +--> u1
| |
| +--> u15
|
+--> s1 --+--> u0
| +--> u1
| |
| +--> u15
|
+--> s2 --+--> u0
| +--> u1
| |
| +--> u15
|
+--> s3 --+--> u0
+--> u1
|
+--> u15
The above uses the same concept as the floppy disk source
structure, but includes an additional directory layer to
represent the first 4 slices of the hard disk. For most
RomWBW builds, s0-s3 would show up as the first 4 hard
disk drive letters, frequently E: to H:.
No files should be placed in the first two layers of the
tree (hd0 or s0-s3). All files go into the lowest level
of the tree (u0-u15). As above, empty or non-existent
directories are not a problem for the script. Just fill
in or create the appropriate directories. The only constraint
is the the script will only look for two hard disks (hd0-hd1),
4 slices (s0-s4), and 16 user areas (u0-u15). The
number of hard disks and number of slices could be changed
by modifying the generation scripts.
Building the Images
-------------------
The image creation process simply traverses the directory
structures described above and builds a raw image each
floppy disk or hard disk. Note that cpmtools is used
to generate the images and is included in the archive
under the Tools directory.
The scripts are intended to be run from a command
prompt. Open a command prompt and navigate to the
ImageMaker directory. To build the floppy disk
images (fd0 and fd1), use the command "BuildFD".
To build the hard disk images (hd0, hd1), use the
command "BuildHD". You can use the command
"BuildAll" to build both the floppy and hard
disk images in one run.
After completion of the script, the resultant image
files are placed in the Output directory with names
such as fd0.img and hd0.img.
Below is sample output from building the
hard disk images:
| C:\Users\WWarthen\Projects\N8VEM\Build\ImageMaker>BuildHD
| Creating work file...
| Creating hard disk images...
| Generating Hard Disk 0...
| Adding files to slice 0...
| cpmcp -f n8vem_hd0 slice0.tmp Source/hd0/s0/u0/*.* 0:
| cpmcp -f n8vem_hd0 slice0.tmp Source/hd0/s0/u2/*.* 2:
| Adding files to slice 1...
| cpmcp -f n8vem_hd0 slice1.tmp Source/hd0/s1/u0/*.* 0:
| Adding files to slice 2...
| Adding files to slice 3...
| Combining slices into final disk image hd0...
| slice0.tmp
| slice1.tmp
| slice2.tmp
| slice3.tmp
| 1 file(s) copied.
| Generating Hard Disk 1...
| Adding files to slice 0...
| Adding files to slice 1...
| Adding files to slice 2...
| Adding files to slice 3...
| Combining slices into final disk image hd1...
| slice0.tmp
| slice1.tmp
| slice2.tmp
| slice3.tmp
| 1 file(s) copied.
|
| C:\Users\WWarthen\Projects\N8VEM\Build\ImageMaker>
Be aware that the script always builds the image file
from scratch. It will not update the previous contents.
Any contents of a pre-existing image file will be
permanently destroyed.
Installing Images
-----------------
First of all, a MAJOR WARNING!!!! The tools described
below are quite capable of obliterating your running
Windows system drive. Use with extreme caution and
make sure you have backups.
To install a floppy image on floppy media, you can use
the tool called RaWriteWin. This tool is included in the
Tools directory of the distribution.
This tool will write your floppy image (fd0.img or fd1.img)
to a floppy disk using a raw block transfer. The tool is
GUI based and it's operation is self explanatory.
To install a hard disk image on a CF card or SD card, you
must have the appropriate media card slot on your computer.
If you do, you can use the tool called Win32 Disk Imager.
This tool is also included in the Tools directory of the
distribution. This tool will write your hard disk
image (hd0.img or hd1.img) to the designated media
card. This tool is also GUI based and self explanatory.
Use of the SIMH emulator is outside of the scope of this
document. However, if you use SIMH, you will find that
you can attach the hard disk images to the emulator with
lines such as the following in your SIMH configuration
file:
| attach hdsk0 hd0.img
| set hdsk0 format=HDSK
| set hdsk0 geom=T:520/N:256/S:512
| set hdsk0 wrtenb
Making Disk Images Bootable
---------------------------
The current generation of these scripts does not make
the resultant media bootable. This is primarily because
there are multiple choices for what you can put on the
boot tracks of the media and that is a choice best left
to the user.
The simplest way to make a resultant image bootable is
to do it from your running CP/M system. Boot your
system using the ROM selection, then use the COPYSYS
command to make the desired drive bootable.
You would use a command like the following to make
drive C bootable.
| B>COPYSYS C:=CPM.SYS
Notes
-----
I realize these instructions are very minimal. I am happy to answer
questions. You will find the Google Group 'N8VEM' to be a great
source of information as well.

BIN
Images/Source/fd0/u0/ASM.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/CLRDIR.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/CR.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/DDT.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/DDTZ.COM

Binary file not shown.

564
Images/Source/fd0/u0/DDTZ.DOC

@ -0,0 +1,564 @@
DDTZ v2.7
by C.B. Falconer
edited by George A. Havach
Introduction:
============
DDTZ v2.7 is a complete replacement for DDT, Digital Research's
famous Dynamic Debugging Tool, with improved functionality, bug
extermination, and full Z80 support. In general, DDTZ is fully
compatible with the original utility, but it has extra and
extended commands and many fewer quirks. All Z80-specific
instructions can be (dis)assembled, though in Intel rather then
Zilog format. Furthermore, DDTZ will correctly trace ('T' and 'U'
commands) both 8080 and Z80 instructions, depending on which CPU
is operating. On startup, the program announces which CPU it is
running on.
DDTZ v2.7 now handles the 64180 added opcodes. It does NOT test
for a 64180 CPU, since this cannot be done without executing
illegal Z80 instructions, which in turn will crash some
simulators. However v2.7 does not execute any 64180 instructions
internally, only in the subject program.
This issue supplies the "M" version assembled, to avoid errors
when switching between MSDOS and CPM systems. The command table
is updated accordingly. Most CPM users are also MSDOS users, but
not vice-versa.
The program is invoked by typing
ddtz<ret>
or
ddtz [d:]filespec<ret>
In the second form, DDTZ will load the specified file into
memory starting at 0100H, unless it's a .HEX file that sets its
own load address. Besides reporting the NEXT free address and
the PC (program counter) after a successful load, DDTZ also shows
the number of memory pages needed for a SAVE. Instead of having
to write all this down, just use the 'X' command at any time to
redisplay these three values for the current application.
NOTE: loading more code above the NEXT pointer revises these
values.
As in DDT, when a program is loaded above the area holding the
'A' and 'U' (and now 'W') command code, these commands are
disabled, and the extra memory is released to the user. Thus,
DDTZ can occupy as little as 3K total memory space. Unlike DDT,
however, DDTZ will not overwrite itself or the system on program
loads (except .HEX files).
At initialization, the stack pointer (SP) points to a return to
DDTZ, just like for the CCP. Thus, programs that normally return
to the CCP will be returned to DDTZ. The 'B' command
reinitializes this condition.
The intercept vector copies the BDOS version number, etc., so
an object program does not know that DDTZ is running (except
for BIOS-BDOS vector size). Thus, programs that check the version
number should execute correctly under DDTZ.
All input parameters can now be entered in any of three formats:
(1) hexadecimal (as in DDT),
(2) decimal, by adding a leading '#' character,
(3) ASCII, by enclosing between either single or double
quotes; either one or two characters are allowed.
Leading blanks in command lines and parameters are absorbed.
Either a comma or a (single) space is a valid delimiter.
Either uppercase or lowercase input is accepted.
The default command (for anything not otherwise recognizable)
is 'H'. This allows convenient calculation, along with the other
features described below. So, to convert a number, just enter
it!
As in DDT, the prompt character is '-', and the only error
message is the query ('?'), which generally kicks you back to
command mode.
New Commands (Over DDT):
=======================
NOTE: letters in parenthesis, e.g. "(U)", show the equivalent
command for DDTZM version (compatible with MSDOS debug).
@ Sets or shows (with no parameter) the internally stored
"base" value. Also used with the 'S' and 'D' commands as
an optional parameter (though without the '@') to display
memory from an arbitrary base marker (offset). When set to
zero (the default), it does not affect any screen displays.
B B)egin: resets the USER stack pointer to its initial value,
such that any program that exits by an RET will return to
DDTZ. DDTZ provides a default stack space of
approximately 24 bytes for user programs.
C C)ompare first_address,last_address,against_address: shows
all the byte differences between two memory areas, in the
format
XXXX aa YYYY bb
where XXXX and YYYY are the comparative memory addresses,
and aa and bb are the corresponding byte values. Can be
used to verify the identity of two files by first
loading them into different memory areas with the 'R'
command (see below).
W Write: stores the modified memory area to disk under the
(K) filename specified by the 'I' command, overwriting the
original file from which it was loaded (the user is queried
before doing so). By default, the image of memory from
0100H through the "NEXT" value -1 is saved. "K first_addr,
last_address" overrides this and allows writing ANY memory
area to a file. Almost a necessity for CPM 3.0 (no SAVE!).
K)eep on DDTZ
X eXamine: redisplays the "NEXT PC SAVE" report at any time.
(Q) Q)uery size on DDTZ.
S S)earch first_address, last_addr, value: searches the
(W) specified memory area for the value (a 16-bit word, not a
byte) and shows the locations of all such. Very useful for
finding CALL's or JMP's to a particular address, etc.
W)here on DDTZ
Y Y)our_option parm1,parm2,address: executes an arbitrary
routine at the specified address, with the BC and DE
registers set to parm1 and parm2, respectively.
Z Displays (but does not alter) the Z80's alternate register
set, including the index registers (disabled if running on
an 8080). On Z80's, automatically included as the last
part of the display by the 'X' command.
Based (Offset) Displays:
=======================
The 'D' and 'E' commands can use a stored base value (offset),
as set by the '@' command. The current @ value may be
overridden for a single execution of these commands by adding the
base as an extra parameter in the command line. The effect is
to add this value to the first/last address and display
accordingly. The address listing on the left becomes XXXX:YYYY,
where XXXX is the offset address and YYYY is the actual memory
address being displayed. For example, if you have a data area
located at 42B7H and wish to preserve easy access, just enter
"@42b7". Now, "d0,3f" will dump memory starting at 4237H.
Further Changes from DDT:
========================
A A)ssemble now accepts the full Z80 as well as 8080
instruction set, although it expects them in Intel rather
than Zilog format (see notes below under the 'L'
command). When in doubt, see the mnemnonic list below.
D D)isplay or D)ump will accept an optional third parameter
to set the base value for a single execution only. Format
has been cleaned up.
H H)ex_arithmetic on two values also shows their
difference in decimal. With only one value, converts to
hexadecimal, decimal, and ASCII (low-order byte only).
N N)ame now allows drive specification (d:...) and sets up
(I) the complete command line, including both FCB's (at
addresses 005CH and 006CH). The tail (stored at 0081H up)
is NOT upshifted.
I)nput on DDTZ
U U)nassemble now displays the raw hexcode, especially handy
(L) when examining non-code areas. Intel (8080 style) mnemonics
are used, so some disassembled instructions may look
strange. E.g., the Z80's 'IN B,(C)' and 'OUT (C),B' become
'INP B' and 'OUTP B', respectively; 'LD (nnnn),BC' becomes
'SBCD nnnn', 'ADD IX, BC' becomes 'DADX B', and 'JP (IX)'
becomes 'PCIX'.
L)ist on DDTZ
L L)oad now permits loading a file into memory with an
(R) offset, which is added to the default load address of
0100H. When reading in a .HEX file with a preset bias,
the 'R' command will not transfer control to an invalid
execution point. Another execution of the 'R' command will
reread the input file, e.g.:
n blah<ret>
l<ret>
...modify the code and generally mess about...
l<ret>
The original file is reloaded, and the modifications are
removed.
R)ead on DDTZ
E E)nter, like D)isplay, now accepts an optional second
(S) parameter to set the base value for a single execution
only.
S)ubstitute or S)et on DDTZ
T T)rap/trace on termination now shows the complete CPU
state. Traps and traces no longer lock up when a user RST
7 instruction is executed. Tracing of BDOS/BIOS calls is
heavily trun cated, avoiding clutter and preventing system
crashes.
NOTE: Most of the UNDOCUMENTED Z80 op-codes are handled. Others
can crash the system.
R R)egisters also shows what two-byte values the HL and SP
(X) registers are actually pointing to. On Z80's, displays the
alternate register set.
eX)amine on DDTZ
NOTE: Any use of the 'W' or 'L' command resets the system DMA
transfer address to the standard default value of 0080H.
; This is the output of DDTZ when disassembling OPTYPE.TRY
NOP LDA 06A4 MOV M,H
LXI B,06A4 DCX SP MOV M,L
STAX B INR A HLT
INX B DCR A MOV M,A
INR B MVI A,20 MOV A,B
DCR B CMC MOV A,C
MVI B,20 MOV B,B MOV A,D
RLC MOV B,C MOV A,E
EXAF MOV B,D MOV A,H
DAD B MOV B,E MOV A,L
LDAX B MOV B,H MOV A,M
DCX B MOV B,L MOV A,A
INR C MOV B,M ADD B
DCR C MOV B,A ADD C
MVI C,20 MOV C,B ADD D
RRC MOV C,C ADD E
DJNZ 0134 MOV C,D ADD H
LXI D,06A4 MOV C,E ADD L
STAX D MOV C,H ADD M
INX D MOV C,L ADD A
INR D MOV C,M ADC B
DCR D MOV C,A ADC C
MVI D,20 MOV D,B ADC D
RAL MOV D,C ADC E
JR 0134 MOV D,D ADC H
DAD D MOV D,E ADC L
LDAX D MOV D,H ADC M
DCX D MOV D,L ADC A
INR E MOV D,M SUB B
DCR E MOV D,A SUB C
MVI E,20 MOV E,B SUB D
RAR MOV E,C SUB E
JRNZ 0134 MOV E,D SUB H
LXI H,06A4 MOV E,E SUB L
SHLD 06A4 MOV E,H SUB M
INX H MOV E,L SUB A
INR H MOV E,M SBB B
DCR H MOV E,A SBB C
MVI H,20 MOV H,B SBB D
DAA MOV H,C SBB E
JRZ 0134 MOV H,D SBB H
DAD H MOV H,E SBB L
LHLD 06A4 MOV H,H SBB M
DCX H MOV H,L SBB A
INR L MOV H,M ANA B
DCR L MOV H,A ANA C
MVI L,20 MOV L,B ANA D
CMA MOV L,C ANA E
JRNC 0134 MOV L,D ANA H
LXI SP,06A4 MOV L,E ANA L
STA 06A4 MOV L,H ANA M
INX SP MOV L,L ANA A
INR M MOV L,M XRA B
DCR M MOV L,A XRA C
MVI M,20 MOV M,B XRA D
STC MOV M,C XRA E
JRC 0134 MOV M,D XRA H
DAD SP MOV M,E XRA L
XRA M JPE 06A4 SLAR M
XRA A XCHG SLAR A
ORA B CPE 06A4 SRAR B
ORA C XRI 20 SRAR C
ORA D RST 5 SRAR D
ORA E RP SRAR E
ORA H POP PSW SRAR H
ORA L JP 06A4 SRAR L
ORA M DI SRAR M
ORA A CP 06A4 SRAR A
CMP B PUSH PSW SLLR B
CMP C ORI 20 SLLR C
CMP D RST 6 SLLR D
CMP E RM SLLR E
CMP H SPHL SLLR H
CMP L JM 06A4 SLLR L
CMP M EI SLLR M
CMP A CM 06A4 SLLR A
RNZ CPI 20 SRLR B
POP B RST 7 SRLR C
JNZ 06A4 RLCR B SRLR D
JMP 06A4 RLCR C SRLR E
CNZ 06A4 RLCR D SRLR H
PUSH B RLCR E SRLR L
ADI 20 RLCR H SRLR M
RST 0 RLCR L SRLR A
RZ RLCR M BIT 0,B
RET RLCR A BIT 0,C
JZ 06A4 RRCR B BIT 0,D
CZ 06A4 RRCR C BIT 0,E
CALL 06A4 RRCR D BIT 0,H
ACI 20 RRCR E BIT 0,L
RST 1 RRCR H BIT 0,M
RNC RRCR L BIT 0,A
POP D RRCR M BIT 1,B
JNC 06A4 RRCR A BIT 1,C
OUT 20 RALR B BIT 1,D
CNC 06A4 RALR C BIT 1,E
PUSH D RALR D BIT 1,H
SUI 20 RALR E BIT 1,L
RST 2 RALR H BIT 1,M
RC RALR L BIT 1,A
EXX RALR M BIT 2,B
JC 06A4 RALR A BIT 2,C
IN 20 RARR B BIT 2,D
CC 06A4 RARR C BIT 2,E
SBI 20 RARR D BIT 2,H
RST 3 RARR E BIT 2,L
RPO RARR H BIT 2,M
POP H RARR L BIT 2,A
JPO 06A4 RARR M BIT 3,B
XTHL RARR A BIT 3,C
CPO 06A4 SLAR B BIT 3,D
PUSH H SLAR C BIT 3,E
ANI 20 SLAR D BIT 3,H
RST 4 SLAR E BIT 3,L
RPE SLAR H BIT 3,M
PCHL SLAR L BIT 3,A
BIT 4,B RES 3,D SET 2,H
BIT 4,C RES 3,E SET 2,L
BIT 4,D RES 3,H SET 2,M
BIT 4,E RES 3,L SET 2,A
BIT 4,H RES 3,M SET 3,B
BIT 4,L RES 3,A SET 3,C
BIT 4,M RES 4,B SET 3,D
BIT 4,A RES 4,C SET 3,E
BIT 5,B RES 4,D SET 3,H
BIT 5,C RES 4,E SET 3,L
BIT 5,D RES 4,H SET 3,M
BIT 5,E RES 4,L SET 3,A
BIT 5,H RES 4,M SET 4,B
BIT 5,L RES 4,A SET 4,C
BIT 5,M RES 5,B SET 4,D
BIT 5,A RES 5,C SET 4,E
BIT 6,B RES 5,D SET 4,H
BIT 6,C RES 5,E SET 4,L
BIT 6,D RES 5,H SET 4,M
BIT 6,E RES 5,L SET 4,A
BIT 6,H RES 5,M SET 5,B
BIT 6,L RES 5,A SET 5,C
BIT 6,M RES 6,B SET 5,D
BIT 6,A RES 6,C SET 5,E
BIT 7,B RES 6,D SET 5,H
BIT 7,C RES 6,E SET 5,L
BIT 7,D RES 6,H SET 5,M
BIT 7,E RES 6,L SET 5,A
BIT 7,H RES 6,M SET 6,B
BIT 7,L RES 6,A SET 6,C
BIT 7,M RES 7,B SET 6,D
BIT 7,A RES 7,C SET 6,E
RES 0,B RES 7,D SET 6,H
RES 0,C RES 7,E SET 6,L
RES 0,D RES 7,H SET 6,M
RES 0,E RES 7,L SET 6,A
RES 0,H RES 7,M SET 7,B
RES 0,L RES 7,A SET 7,C
RES 0,M SET 0,B SET 7,D
RES 0,A SET 0,C SET 7,E
RES 1,B SET 0,D SET 7,H
RES 1,C SET 0,E SET 7,L
RES 1,D SET 0,H SET 7,M
RES 1,E SET 0,L SET 7,A
RES 1,H SET 0,M DADX B
RES 1,L SET 0,A DADX D
RES 1,M SET 1,B LXI X,06A4
RES 1,A SET 1,C SIXD 06A4
RES 2,B SET 1,D INX X
RES 2,C SET 1,E DADX X
RES 2,D SET 1,H LIXD 06A4
RES 2,E SET 1,L DCX X
RES 2,H SET 1,M INR [X+05]
RES 2,L SET 1,A DCR [X+05]
RES 2,M SET 2,B MVI [X+05],20
RES 2,A SET 2,C DADX SP
RES 3,B SET 2,D MOV B,[X+05]
RES 3,C SET 2,E MOV C,[X+05]
MOV D,[X+05] DSBC B DADY B
MOV E,[X+05] SBCD 06A4 DADY D
MOV H,[X+05] NEG LXI Y,06A4
MOV L,[X+05] RETN SIYD 06A4
MOV [X+05],B IM0 INX Y
MOV [X+05],C LDIA DADY Y
MOV [X+05],D INP C LIYD 06A4
MOV [X+05],E OUTP C DCX Y
MOV [X+05],H DADC B INR [Y+05]
MOV [X+05],L LBCD 06A4 DCR [Y+05]
MOV [X+05],A RETI MVI [Y+05],2
MOV A,[X+05] LDRA DADY SP
ADD [X+05] INP D MOV B,[Y+05]
ADC [X+05] OUTP D MOV C,[Y+05]
SUB [X+05] DSBC D MOV D,[Y+05]
SBB [X+05] SDED 06A4 MOV E,[Y+05]
ANA [X+05] IM1 MOV H,[Y+05]
XRA [X+05] LDAI MOV L,[Y+05]
ORA [X+05] INP E MOV [Y+05],B
CMP [X+05] OUTP E MOV [Y+05],C
POP X DADC D MOV [Y+05],D
XTIX LDED 06A4 MOV [Y+05],E
PUSH X IM2 MOV [Y+05],H
PCIX LDAR MOV [Y+05],L
SPIX INP H MOV [Y+05],A
RLCR [X+05] OUTP H MOV A,[Y+05]
RRCR [X+05] DSBC H ADD [Y+05]
RALR [X+05] shld 06A4 ADC [Y+05]
RARR [X+05] RRD SUB [Y+05]
SLAR [X+05] INP L SBB [Y+05]
SRAR [X+05] OUTP L ANA [Y+05]
SRLR [X+05] DADC H XRA [Y+05]
BIT 0,[X+05] lhld 06A4 ORA [Y+05]
BIT 1,[X+05] RLD CMP [Y+05]
BIT 2,[X+05] INP M POP Y
BIT 3,[X+05] OUTP M XTIY
BIT 4,[X+05] DSBC SP PUSH Y
BIT 5,[X+05] SSPD 06A4 PCIY
BIT 6,[X+05] INP A SPIY
BIT 7,[X+05] OUTP A RLCR [Y+05]
RES 0,[X+05] DADC SP RRCR [Y+05]
RES 1,[X+05] LSPD 06A4 RALR [Y+05]
RES 2,[X+05] LDI RARR [Y+05]
RES 3,[X+05] CCI SLAR [Y+05]
RES 4,[X+05] INI SRAR [Y+05]
RES 5,[X+05] OTI SRLR [Y+05]
RES 6,[X+05] LDD BIT 0,[Y+05]
RES 7,[X+05] CCD BIT 1,[Y+05]
SET 0,[X+05] IND BIT 2,[Y+05]
SET 1,[X+05] OTD BIT 3,[Y+05]
SET 2,[X+05] LDIR BIT 4,[Y+05]
SET 3,[X+05] CCIR BIT 5,[Y+05]
SET 4,[X+05] INIR BIT 6,[Y+05]
SET 5,[X+05] OTIR BIT 7,[Y+05]
SET 6,[X+05] LDDR RES 0,[Y+05]
SET 7,[X+05] CCDR RES 1,[Y+05]
INP B INDR RES 2,[Y+05]
OUTP B OTDR RES 3,[Y+05]
RES 4,[Y+05] SET 0,[Y+05] SET 4,[Y+05]
RES 5,[Y+05] SET 1,[Y+05] SET 5,[Y+05]
RES 6,[Y+05] SET 2,[Y+05] SET 6,[Y+05]
RES 7,[Y+05] SET 3,[Y+05] SET 7,[Y+05]
; These are the result of disassembling 64180OPS.TRY
; These opcodes are available ONLY on the 64180 CPU
; DDTZ will both assemble and disassemble these.
IN0 B,20 TST E MLT B
OUT0 20,B IN0 H,20 MLT D
TST B OUT0 20,H TSTI 20
IN0 C,20 TST H MLT H
OUT0 20,C IN0 L,20 TSIO 20
TST C OUT0 20,L SLP
IN0 D,20 TST L MLT SP
OUT0 20,D TST M OTIM
TST D IN0 A,20 OTDM
IN0 E,20 OUT0 20,A OIMR
OUT0 20,E TST A ODMR
; The following are UNDOCUMENTED z80 opcodes from XTDOPS.TRY.
; DDTZ will disassemble these, but will not assemble them.
; They use xh/xl (or yh/yl) as separate byte registers.
; Use these at your own risk.
INRX H ACXR H MOVY H,B
DCRX H ACXR L MOVY H,C
MVIX H,20 SUXR H MOVY H,D
INRX L SUXR L MOVY H,E
DCRX L SBXR H MOVY H,A
MVIX L,20 SBXR L MOVY L,B
MOVX B,H NDXR H MOVY L,C
MOVX B,L NDXR L MOVY L,D
MOVX C,H XRXR H MOVY L,E
MOVX C,L XRXR L MOVY L,A
MOVX D,H ORXR H MOVY A,H
MOVX D,L ORXR L MOVY A,L
MOVX E,H CPXR H ADYR H
MOVX E,L CPXR L ADYR L
MOVX H,B INRY H ACYR H
MOVX H,C DCRY H ACYR L
MOVX H,D MVIY H,20 SUYR H
MOVX H,E INRY L SUYR L
MOVX H,A DCRY L SBYR H
MOVX L,B MVIY L,20 SBYR L
MOVX L,C MOVY B,H NDYR H
MOVX L,D MOVY B,L NDYR L
MOVX L,E MOVY C,H XRYR H
MOVX L,A MOVY C,L XRYR L
MOVX A,H MOVY D,H ORYR H
MOVX A,L MOVY D,L ORYR L
ADXR H MOVY E,H CPYR H
ADXR L MOVY E,L CPYR L
Command Summary:
===============
DDTZM command DDTZ command
============= ============
@ (base)
A)ssemble first_address A
B)egin {i.e., initialize stack and return} B
C)ompare first_address,last_address,against_address C
D)ump first_address[,last_address[,base]] D
E)nter_in_memory first_address[,base] S)ubstitute
F)ill first_address,last_address,value F
G)o_to [address][,trap1[,trap2]] G
H)ex_arithmetic value1(,value2) H
L)oad_file (offset) R)ead
M)ove first_address,last_address,destination M
N)nput FCBs_command_line I)nput
Q)uit (not avail)
R)egister examine/change [register|flag] X)amine
S)earch first_address,last_address,word W)hereis
T)race_execution [count] T
Untrace_execution [count] (i.e. do count instr) U)ntrace
U)nassemble_code first_address[,last_address] L)ist code
W)rite [first_address,last_address] K)eep
X)amine {i.e. display memory parameters for application} Q)uery
Y)our_option BC:=parm1,DE:=parm2,call_address Y
Z)80_register_display Z
If you find this program useful, contributions will be gratefully
accepted and will encourage further development and release of
useful CPM programs. My practice is to include source.
C.B. Falconer
680 Hartford Turnpike,
Hamden, Conn. 06517 (203) 281-1438
DDTZ and its associated documentation and other files are
copyright (c) 1980-1988 by C.B. Falconer. They may be freely
copied and used for non-commercial purposes ONLY.

BIN
Images/Source/fd0/u0/DIF.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/DIRX.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/DUMP.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/ED.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/LBREXT.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/LIB.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/LINK.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/LOAD.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/MAC.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/MBASIC.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/NULU.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/PIP.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/RMAC.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/SID.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/STAT.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/SUBMIT.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/SUPERSUB.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/UNARC.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/UNCR.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/UNZIP.COM

Binary file not shown.

69
Images/Source/fd0/u0/VIDATT.Z80

@ -0,0 +1,69 @@
title WordStar 4.0 Video Attributes Driver
strngout equ 0283h
esc equ 1bh
dim equ 1
blink equ 2
invert equ 4
uline equ 8
aseg
org 03c1h
vidatt:
xor a
ld hl,funtbl
ld b,8
getloop:
rr c
jr nc,getnext
or a,(hl)
getnext:
inc hl
djnz getloop
;
ld hl,string+2 ; attribute #1 on/off indicator
push hl
ld b,4
ld de,'?!' ; ? = attribute off, ! = attribute on
setloop:
rra
jr nc,attroff
ld (hl),e ; attribute on
jr setnext
attroff:
ld (hl),d ; attribute off
setnext:
inc hl
inc hl
inc hl ; advance to next on/off indicator
djnz setloop
;
pop hl ; hl --> dim on/off
ld a,d ; attribute off
cp (hl) ; dim off?
jr nz,setdim
ld a,e ; attribute on
setdim:
ld (hl),a
ld hl,string
jp strngout ; ws string routine
;
;
funtbl:
defb dim ; strike out
defb invert or blink ; warnings & errors
defb invert ; block
defb uline ; underline
defb blink ; subscript
defb blink or uline ; superscript
defb invert ; menu, headline, bold, double
defb invert or uline ; italics, RET, backspace
;
string:
defb 12,esc,' 2',esc,' 3',esc,' 4',esc,' 5'
;
finis equ $
end


BIN
Images/Source/fd0/u0/WS.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/WS.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSCHANGE.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/WSCHANGE.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSCHHELP.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSHELP.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSMSGS.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSPRINT.OVR

Binary file not shown.

880
Images/Source/fd0/u0/WSREADME.TXT

@ -0,0 +1,880 @@
--THE README FILE--
------------------------
README contains late-breaking news and tips about WordStar,
and information about printers.
THE DISKS THAT CAME IN YOUR PACKAGE
-----------------------------------
The file HOMONYMS.TXT is included on the Speller disk
contrary to what is listed in Appendix D.
INSTALLATION
------------
WINSTALL and WSCHANGE
WordStar has two installation programs:
o WINSTALL contains the basic choices to install WordStar.
It is recommended for all users.
Be sure and install your valid disk drives since WordStar
running under CP/M cannot recover from attempts to access non-
existent disk drives.
o WSCHANGE contains every installation and customization
choice. It is designed for advanced users and users who
want to customize WordStar after they're familiar with it.
Use the menu listing below for a directory of the menus
in WSCHANGE.
Directory of WSCHANGE Menus
The chart below shows the organization of menus in WSCHANGE.
Print it out and refer to it as you customize WordStar.
Main Installation Menu
A Console
A Monitor
A Monitor selection
B Monitor name
C Screen sizing
B Function keys
C Monitor patches
A Special characters
B Cursor control
C Screen control
D Keyboard patches
A Function keys
B Save function keys
E Interface patches
A Console busy handshaking
B Special I/O subroutines
B Printer
A Printer choices
A Printer selection
B Printer name
C Default printer driver
B Printer driver library
A Select library file
B Create smaller library
C Add new printer driver
D Change printer driver data
C WS printer patches
A Custom print controls, printer initialization
NOTE: Disregard the "CUSTOM & SIMPLE Controls Save CUSTOM/SIMPLE
Controls" option shown. This is not available from this menu.
D Printing defaults
E Printer interface
A Printer port selection
B Printer busy handshaking
C Printer subroutines
C Computer
A Disk drives
A Valid disk drives
B Maximum valid user number
C Delay disk access if typing
B Operating system
A Single-user system
B Multi-user MP/M
C Multi-user Turbo DOS
D ZCPR3
C Memory usage
D WordStar files
E Directory display
F Computer patches
D WordStar
A Page layout
A Page sizing & margins
B Headers & footers
C Tabs
B Editing settings
A Edit screen & help level
B Typing
C Paragraph alignment
D Blocks
E Erase & unerase
F Lines & characters
G Find & replace
H WordStar 3.3 compatibility
I Printing defaults
C Other features
A Spelling checks
B Nondocument mode
C Indexing
D Shorthand (key macros)
E Merge printing
F Miscellaneous
E Patching
A Auto patcher
B Save settings
C Reset all settings
MEMORY USAGE
------------
WordStar requires a minimum TPA size of 50 kbytes to run
using the factory defaults. The TPA is the amount of memory
available in your computer for use by programs that have a
file type of COM. To see how big the TPA is in your computer,
press the question mark key (?) at the Opening Menu.
The amount of memory required by WordStar can be reduced by
approximately 3 kbytes if necessary. Use the WSCHANGE program
to select the minimum memory configuration option. The menu
will show you what capabilities are being reduced.
WordStar uses a general-purpose buffer for a variety of
tasks. WordStar allocates memory to this buffer for editing,
for merge printing, and at the Opening Menu (see BFSIZE in
PATCH.LST). The buffer used for editing is usually the most
sensitive to a reduced TPA size. (You may be able to use the
Opening Menu and print, but there may be insufficient memory
for editing.)
The merge print buffer is used only to hold merge print
variable names and data. Increase it if you run out of memory
while merge printing.
The Opening Menu buffer is used primarily to hold the file
directory, and for miscellaneous tasks.
LOW-MEMORY INDICATOR IN STATUS LINE
-----------------------------------
If the Low-Memory indicator appears in the status line, it
means that WordStar was unable to complete some function.
The most common symptoms are: the line number in the
status line is wrong, or a paragraph alignment could not be
completed. You may correct the line counter by saving your
file, exiting WordStar, and re-loading your file. To correct
the paragraph alignment, move your cursor to the point where
paragraph alignment stopped, and then press ^B again.
The reason this comes up is that WordStar was not able to fit
a big enough chunk of text into memory at one time.
When you first begin editing, WordStar uses the value from
EDSIZE in the user area to determine the minimum amount
of memory required for a page of text. The default
is set for approximately a 55 line by 66 column page. If
your page size is routinely larger than this, you may want
to increase EDSIZE. Multiply the number of lines by the
number of columns, and divide by 128.
If the Low-Memory indicator comes on while printing, it is due
to either the same reasons as for editing, or there is
insufficient memory to print the text proportionally spaced.
The amount of memory required depends on which printer
driver you are using. If you aren't using the .PS ON dot
command to turn proportional spacing on in your document,
low memory won't be a problem. Also, WordStar uses more
memory for merge printing than it does for regular printing
(around 2.5 kbytes more).
The Low-Memory indicator will also appear when a full disk error
is encountered during editing. Treat the disk-full error as you
would normally.
RAM-RESIDENT PROGRAMS
---------------------
RAM-resident programs, such as SmartKey, reduce the amount of
working memory (TPA) that WordStar can use. The new features in
WordStar, such as shorthand, may reduce the need for these
RAM-resident programs, thus freeing memory for WordStar.
ZCPR3 SUPPORT
-------------
In order to enable the ZCPR facilities within WordStar, the user
must use the Z3INS utility provided with ZCPR to install the
address of the ZCPR "environment" into WordStar. The environment
contains information that WordStar uses to support ZCPR-specific
functions.
Generally, the user should log onto the drive containing the file
WS.COM, and issue the command:
Z3INS SYS.ENV WS.COM
The user should also run either WINSTALL or WSCHANGE to further
install WordStar for ZCPR. However, this is not mandatory because
the only thing that happens is that the WordStar sign-on says
"ZCPR3," and the LGLUSR location in the user area is changed for a
maximum user number of 31. (The normal default for LGLUSR is 15.)
Once the user has installed WordStar for use with ZCPR, the user
will be able to use the following ZCPR features:
- A named directory may be used when logging onto a new drive/user.
- A named directory may be used instead of a drive/user as part
of any file name.
- The drive/user always appears above file directories. (For CP/M
only the drive letter is shown if the user number is zero.)
- The directory name also appears above the directory if one has
been defined for the currently logged drive/user.
- If WordStar does not find its OVR files on the current drive and
user, it will search the drives and user numbers in the ZCPR
search path rather than using its standard search pattern.
- WordStar installs itself as a ZCPR "shell" process which lets the
user enter any legal ZCPR command when running a program. (CP/M
can only run programs that are COM files.)
OSBORNE USERS
-------------
The command to change a hard carriage return to a soft carriage
return (document mode) or to turn Auto-indent ON (nondocument
mode) does not function on the Osborne because of a limitation
in its BIOS. The following patch can be applied to change the
command from ^^ to ^- (Ctrl-Hyphen):
Using DDT or SID in the file WSMSGS.OVR:
At 02DA replace 1E with a 1D
At 02EF replace 1E with a 1D
At 0359 replace 1E with a 1D
At 06B2 replace 1E with a 1D
At 06C9 replace 1E with a 1D
At the system prompt type SAVE 53 WSMSGS.OVR
For more information on how to use SID or DDT, see your CP/M
reference guide. As always, be sure and apply the patch to a
COPY of the file.
INSTRUCTIONS FOR TWO FLOPPY DISK COMPUTERS
------------------------------------------
Do not remove the Program disk while you are using WordStar.
The Printer Driver Library file (WSPRINT.OVR) on the WordStar
program disk is much smaller than the Printer Driver Library
file contained on the disk labeled PRINTER. Be sure to read the
section in "Starting" that discusses the printer library file.
RUN A PROGRAM
-------------
Once you press R you can type the drive and user number for the
program you want to run. You may run only .COM files. CCP commands,
such as DIR cannot be used.
INDEXING
--------
Using StarIndex
StarIndex 1.01 works with files created with this release of
WordStar.
"Can't Use That Printer" Message
When WordStar creates an index or table of contents, it uses
the printer drivers $INDEX and $TOC. If you created a smaller
WSPRINT.OVR file, you may have left these drivers out. To
return them to the file, copy the original WSPRINT.OVR file
onto your disk. When you create a smaller file again, be sure
to save these drivers. See Appendix C in the WordStar manual
for a list of other drivers to save.
SPELL CHECKING
--------------
Dual floppy disk users:
Unless you have sufficient room on your working WordStar program
disk for the files TW.COM, SPELL.COM, MARKFIX.COM, REVIEW.COM and
MAINDICT.CMP you will not be able to run a spell check from the
Opening Menu. You will need to exit WordStar and replace the
working WordStar program disk with the dictionary disk you created
during installation. This disk should contain the files listed
above. Make sure the disk in drive B has the file you want to
spell-check.
Follow the directions for running a spell check in The WORD Plus
manual.
UPGRADING FROM A PREVIOUS RELEASE
---------------------------------
This release of WordStar contains many new features and commands.
See the "What's New" booklet for a complete list. The following
changes came in too late to be included in the documentation.
Printer Patches
Previous versions of WordStar treat most dot matrix printers
and other non-daisy wheel printers as a DRAFT printer with a
few patchable items. Because of this, many users have used
these patches to be able to use certain features of their
printers. Sometimes the patches have been quite extensive, and
some users have many files that count on them.
The printer drivers of WordStar Release 4, on the other hand,
are very powerful. Almost every driver recognizes all the print
controls and all the dot commands. In fact, if a document is
written to be printed on one kind of printer, it is likely that
it will also print fine on some other printer.
However, if you want to use your existing files with WordStar
4, and those files rely on the user area being patched in a
special way, you can probably do so by moving the patches into
WordStar 4, and using the CUSTOM or SIMPLE printer driver.
On the INSTALL disk is a program called MOVEPRN.COM that
copies the printer driver portion of the previous release's
user area into files that can be installed into Release 4 with
the "auto patcher" feature.
Copy the program MOVEPRN.COM onto the disk containing the
WS.COM file for the previous version. Type
MOVEPRN WS.COM FILE1.PAT FILE2.PAT
MOVEPRN extracts the proper portions of the user area and
writes them into two files that may then be used with the "auto
patcher" feature of WSCHANGE.
FILE1.PAT is to be used with the general patching menu
(Choose E "Patching" on the WSCHANGE Main Menu, then A "Auto
Patcher"). FILE2.PAT should be used to install strings first
into the SIMPLE driver, and then into the CUSTOM driver (choose
B "Printer" on the WSCHANGE Main Menu, then B "Printer driver
library", D "Change printer driver data" and D "Driver auto
patcher").
Test print your document first with the SIMPLE driver, and then
with the CUSTOM driver to see which one produces the most
satisfactory results.
Also read Appendix C for more information on using the Auto
Patcher.
Hanging Indents
For WordStar Professional Release 4, MailMerge reformats indented
text created with ^OG to the current margins. If you want the text
to remain indented, use embedded ruler lines or the .RM, .LM,
and .PM commands. See the "Reference Guide" for more information.
Pressing ^OG to wrap back to the first tab on the ruler line after
having reached the last tab works the same way it did in previous
versions of WordStar, contrary to what is stated in the manual.
TERMINALS
---------
WordStar comes installed for an "idealized" special terminal.
WINSTALL and WSCHANGE allow you to install many terminals by
name, thus allowing WordStar to take advantage of the special
features that the terminal might support, such as underlining
or the function keys.
Use either WINSTALL or WSCHANGE to pick your specific terminal
or computer screen from the Monitor menu. If your terminal
isn't on the menu, it probably emulates one of those that is
there. Look in your terminal documentation to find out.
After you install WordStar for the proper terminal, run
WordStar and open the file PRINT.TST to see which attributes
(such as bold and underline) work on your screen.
WordStar will highlight the following in some way...
Bold (^PB)
Underline (^PS)
Strike-out (^PX)
Subscript (^PV)
Superscript (^PT)
Doublestrike (^PD)
Italics (^PY)
Blocks (^KB, ^KK)
Error messages
Most of the time, normal text will be shown in dim intensity,
and highlighted text will be shown in bright intensity. You
may have to use a brightness and/or contrast knob to adjust
your screen the first time you use WordStar this way.
If your dim intensity is too dim to see well, and you can't
adjust it, you can change the BRITE flag to ON using WSCHANGE.
This will invert bright and dim in your text, so that regular
text is displayed bright, and highlighted text will be
displayed as dim. However, text in the menus is not affected.
DISPLAY PROBLEMS WITH TERMINALS
-------------------------------
Once you have installed WordStar for the proper terminal, you
may still experience display problems.
If text from the previous screen remains after WordStar
displays a new screenful of text, the most likely cause is
cursor wrap. Basically, WordStar must know what happens to the
cursor when a character is displayed at the rightmost position
of the screen. It can either remain at the right edge, or it
can wrap to the beginning of the next line. The WRAP flag in
WordStar must be set either on or off to correspond to the
way the terminal works. (It is generally set for the
terminal's factory default, but the default can usually be
changed using the terminal's setup mode.)
Another possible cause for display problems is your terminal's
incomplete emulation of some other terminal. The most
common differences are...
Line insert (LININS), line delete (LINDEL),
Erase to end of screen (ERAEOS),
Erase to end of line (ERAEOL),
And, erase screen (ERASCR).
Look in the manual for your terminal and use WSCHANGE to see
if the control sequences match.
PRINTERS
--------
WHAT'S IN THIS SECTION
This section contains the following information:
Choosing a Printer
Setting Up Your Printer
Printer Drivers
Proportional Printing
Laser Printers
Information on Specific Printers
CHOOSING A PRINTER
WordStar is ready to work with over 100 printers. The printer you
choose during installation becomes your default printer. However,
when you print a document, you can choose any other printer. To
choose a default printer, follow these steps:
1. Look at the Printer Information brochure that came in your
package. The first chart shows the printers listed on the
Printer Selection Menus. If your printer is on the menu,
simply choose it during installation.
2. If your printer isn't listed on the menu, it may work like a
printer that is. Refer to the second chart in the Printer
Information brochure for a list of printers that work like
printers on the menu. When WordStar asks you to choose a
printer, choose the printer that works like yours.
3. If neither chart lists your printer, choose Typewriter Printer
(if your printer can backspace) or Draft Printer (if it can't).
These choices may not take advantage of all your printer's
features, but they will work with almost any printer.
Note: If you choose Draft or Typewriter, you can modify custom
print controls and printer initialization.
If you want to make more modifications to take advantage of your
printer's feature, choose the Custom or Simple drivers, then use
the WS Printer Patches section of WSCHANGE to tell WordStar the
codes for your printer. Refer to your printer manual for these
codes. Some printers work better with the Custom driver and some
with the Simple driver. Try using both and see which works better
with your printer. See the "Reference Guide" for more information.
SETTING UP YOUR PRINTER
Choosing a Printer Port
Each printer is connected to a printer port at the back of
the computer. WordStar looks for printers on the LST: port.
If your printer is connected to a different port, use
WSCHANGE to tell WordStar the correct port.
Testing Your Printer Connection
At the operating system prompt, type "PIP LST:=READ.ME." This
file should be printed by your printer. If it is not, your printer
may be connected to a different port. See your computer reference
manual, and the section on the STAT command in your CP/M
reference manual for more information.
PRINTER DRIVERS
The WSPRINT.OVR file on the Printers disk contains a printer
driver for each printer on the Printer Selection Menu. The printer
driver for a printer contains all the codes WordStar needs to work
with that printer.
Each printer driver has a short name. If you choose a printer when
you print a document, you see the names of the printer drivers, not
the names of the printers.
PROPORTIONAL PRINTING
WordStar supports proportional printing on a number of printers.
To turn on proportional printing, either install WordStar to
default to proportional printing, or place a ".PS on" command
in your document. At print time, WordStar selects the
appropriate proportional font based on the character width
(.CW) currently in effect.
The specific printer descriptions later in this section show
recommended character widths for proportional typefaces.
These widths are for a normal mix of upper- and lowercase
letters. If you have many words or phrases all in uppercase
or if you want your text less densely printed, choose a larger
character width.
While WordStar mostly sets character widths based on the
proportional-width table in the driver, on the more advanced
daisy wheel printers, WordStar uses the printer's proportional-
spacing mode. WordStar determines how much white space is needed
to right-justify the line based on its own proportional width
tables. If the table values don't match the wheel installed,
WordStar won't be able to justify the line correctly.
WordStar sends standard ASCII characters; if a proportional wheel
uses a different spoke mapping, set up the printer to handle this.
LASER PRINTERS
WordStar supports laser printer features such as font changes
and proportional spacing.
WordStar supports several laser printers: the Canon LPB-8 A1 & A2;
the Hewlett-Packard LaserJet, LaserJet+, and LaserJet 500+;
and the Ricoh LP4080. Refer to the "Specific Printer
Information" section of this file for information on these
printers. General notes about using laser printers are given below.
Paper Size and Margins
Laser printers come with preset page margins. You need to
compensate for these margins by changing page length in your
WordStar documents. The chart below shows the recommended
settings for 8 1/2 X 11 inch paper for both portrait and landscape
orientations. These settings allow 55 lines of text for portrait
orientation and 40 lines of text for landscape orientation (at 6
lines per inch). They also allow for a footer of up to 3 lines
and a one-line header. If you use multiple-line headers, adjust
the top margin accordingly.
Dot Default Portrait Landscape
Setting Command Value Orientation Orientation
------- ------- ------- ----------- -----------
page length .PL 66 62 47
top margin .MT 3 2 2
bottom margin .MB 8 5 5
header margin .HM 2 1 1
footer margin .FM 2 2 2
If the laser printer is your primary printer, you can use WSCHANGE
to make these settings the defaults.
Because laser printers leave small margins at the left and right
sides of the page, you may want to use a smaller page offset
setting (the default is .PO 8).
Form Feeds
When you print with a laser printer, answer Y for yes to the "Use
form feeds (Y/N)?" prompt at print time. (The default is NO.) If
the laser printer is your primary printer, you can use WSCHANGE to
change the default to yes.
WordStar Commands for Font Selection
The WordStar dot commands and print control commands listed below
determine the fonts used for printing a document.
.PR .PR OR=L selects landscape orientation; .PR OR=P (or just
.PR OR) selects portrait orientation (the default). If
either of these commands appears after the first printing
line on a page, the orientation will not change until the
following page.
.PS .PS ON selects proportionally spaced characters; .PS OFF
(the default) selects fixed-spaced characters.
.CW The character-width setting (.CW followed by the width in
120ths of an inch) determines the character pitch and font
selected for fixed-width printing. For proportional fonts, it
determines the point size and proportional-width table
selected.
.LQ .LQ ON selects near letter quality print (if supported by
your printer). LQ OFF selects draft quality print. Default
is ON.
^PY The italic print control toggles between normal and italic
characters when the appropriate italic font is available.
^PB The boldface print control toggles between normal and bold
characters when the appropriate bold font is available.
^PD The double strike print control used with the laser printers
toggles overprinting with a horizontal offset of 1/120"
between the two character images. This allows a bold effect
where no bold font is available.
^PA ^PA turns alternate pitch on. Use .CW to assign different
character widths to normal pitch (see ^PN below) and alternate
pitch so that each pitch accesses a different font. You can
then change fonts by switching between the two pitches. This
is the only way to use two fonts on the same line.
(See "Character width" and "Pitch" in the "Reference Guide.")
^PN ^PN turns normal pitch on. You can use it with ^PA as
described above.
^P@ When working with columns, if you use alternate and normal
pitch for two fonts, or if you use proportional spacing, you
may need to use ^P@ to make sure the columns line up.
Remember that the column position set with ^P@ is determined
by the normal pitch character width. (See "Columns" and
"Proportional spacing" in the "Reference Guide."
INFORMATION ON SPECIFIC PRINTERS
This section describes the capabilities of each printer listed on
the Printer Selection Menu. The printers are listed in alphabetical
order (except for the generic printers such as "Draft,"
"Typewriter," "Custom," "Simple," and the various print-to-disk
options, which are listed first).
There is a chart for each printer explaining how features work and
listing any special notes about the printer. Each printer is
described in the following format:
PRINTER NAME ----- Driver: (short name)
^PY Effect of italics/ribbon color print control
^PT/V Subscript/superscript information
.CW Information on available character widths and fonts. The
chart shows the .CW, .LQ, and .PS settings required to use
different fonts.
.LQ OFF .LQ ON .PS ON Font Name
------- ------ ------ ---------
.cw val .cw val recommended value (range) font 1
.cw val .cw val recommended value (range) font 2
.UL Continuous-underline information (if restrictions)
.UJ Microspace-justification information (if restrictions)
N/A means a command has no effect on this printer.
NOTES Switch settings, special features, anomalies.
DRAFT PRINTER (nonbackspacing) ----- Driver: DRAFT
^PD Overprints the line twice
^PB Overprints the line three times
^PS Overprints the underscore character in a separate pass
^PT/V Prints super/subscripts with a full line between
super/subscript and text
.LH Sets line height only in multiples of full lines
.CW N/A
.PS N/A
.LQ N/A
.UJ N/A
NOTES This driver works with any printer that doesn't automatically
perform a line feed when it receives a carriage return command. All
overprinting is done by returning the carriage and passing over the
line again.
TYPEWRITER PRINTER (backspacing) ----- Driver: TYPEWR
^PD Backspaces and overprints each character twice
^PB Backspaces and overprints each character three times
^PS Backspaces and overprints the underscore character
^PT/V Prints super/subscripts with a full line between
super/subscript and text
.LH Sets line height only in multiples of full lines
.CW N/A
.PS N/A
.LQ N/A
.UJ N/A
NOTES This driver works with any printer that doesn't automatically
perform a line feed when a it receives a carriage return command,
and responds to a backspace character. Overprinting is done by
backspacing.
AUTO LINE FEED PRINTER (backspacing) ----- Driver: AUTOLF
^PD Backspaces and overprints each character twice
^PB Backspaces and overprints each character three times
^PS Backspaces and overprints the underscore character
^PT/V Prints super/subscripts with a full line between
super/subscript and text
.LH Sets line height only in multiples of full lines
.CW N/A
.PS N/A
.LQ N/A
.UJ N/A
NOTES This driver works with any printer that automatically
performs a line feed when it receives a carriage return character,
and responds to a backspace command. Overprinting is done by
backspacing.
SIMPLE CUSTOMIZABLE PRINTERS ----- Driver: SIMPLE
All print controls cause control strings (on and off) in
the user area to be sent to the printer. These strings
are used by both the SIMPLE and CUSTOM drivers. They can
be installed with the WSCHANGE program.
.LQ Controlled by user area strings
.PS Controlled by user area strings
.CW N/A
.UJ N/A
.LH N/A
NOTES This printer driver prints the line in one pass, sending
control strings from the user area to select print enhancements.
CUSTOMIZABLE PRINTERS ----- Driver: CUSTOM
All print controls cause control strings (on and off) in
the user area to be sent to the printer. These strings
are used by both the SIMPLE and CUSTOM drivers. They can
be installed with the WSCHANGE program.
.LQ ON/OFF controlled by user area strings
.PS ON/OFF controlled by user area strings
.LH Sets line height only in multiples of full lines
.UJ N/A
.CW N/A
NOTES This driver prints the line in multiple passes, sending
control strings from the user area to select print enhancements.
PREVIEW TO DISK ----- Driver: PRVIEW
This driver prints documents to the PREVIEW.WS file to allow
you to preview the format and appearance of a document before
printing. Headers, footers, and pagination are shown correctly
and print controls remain in the file to display onscreen
attributes. Dot commands are not printed.
PRINT TO DISK WITHOUT PRINT CONTROLS ----- Driver: ASCII
This driver prints to the ASCII.WS file, stripping headers and
footers, high bits, and print controls.
PRINT TO DISK WITHOUT HEADERS AND FOOTERS ----- Driver: XTRACT
This driver prints to the XTRACT.WS disk file, stripping headers
and footers, but preserving high bits and print controls.
ANADEX 9500A, 9500B ----- Driver: 9500
^PY N/A
^PT/V Even superscript roll
.CW .CW Font name
--- ---------
9 13.3 cpi
10 12 cpi
12 10 cpi
18 6.7 cpi
20 6 cpi
24 5 cpi
.LH 1/24" resolution, use even values
.UJ This printer has no incremental horizontal positioning
.PS N/A
.LQ N/A
ANADEX 9501B, INTEQ 5100B ----- Driver: 9501B
^PY N/A
^PT/V Even superscript roll
.CW .CW Font name
--- ---------
7 16.7 cpi
8 15 cpi
10 12.5 cpi
12 10 cpi
14 8.3 cpi
16 7.5 cpi
20 6.2 cpi
24 5 cpi
.LH 1/24" resolution, use even values
.UJ This printer has no incremental horizontal positioning
.PS N/A
.LQ N/A
C. ITOH STARWRITER 1550 AND 8510 ----- Driver: C1550
^PY N/A
^PT/V Prints full-size characters with roll
.CW .CW Font Name
--- ---------
7 compressed
10 elite
12 pica
14 expanded compressed
20 expanded elite
24 expanded pica
.LQ N/A
.PS N/A
.UL Continuous underlining suppresses microspace justification
C. ITOH F10 STARWRITER ----- Driver: QUME
See Diablo 630, 1610, 1620 Daisy Wheel.
Note: Proportional printing was tested with a Theme 10 wheel.
CANON LBP-8A1 AND LBP-8A2 LASER PRINTER ----- Driver: LBP8
^PY Selects italics if appropriate font installed
^PT/V Prints full-size characters with roll
.PS .PS
.CW OFF ON Font Name
--- -- ---------
6 - 20 cpi
8 - 15 cpi
9 - 13.3 cpi
10 - 12 cpi (elite)
12 - 10 cpi
20 - 6 cpi
24 - 5 cpi
16 - 7.5 cpi
- 7 (0-8) Garland 8 point
- 10 (9-11) Garland 12 point
- 14 (12-17) Expanded 8 point
- 20 (18-30) Expand

BIN
Images/Source/fd0/u0/WSSHORT.OVR

Binary file not shown.

BIN
Images/Source/fd0/u0/WSU.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/XSUB.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/ZAP.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/ZDE.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/ZDE40.COM

Binary file not shown.

BIN
Images/Source/fd0/u0/ZDENST.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/ASM.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/CLOCKS.DAT

Binary file not shown.

BIN
Images/Source/fd1/u0/CLRDIR.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/COPY.CFG

Binary file not shown.

BIN
Images/Source/fd1/u0/COPY.COM

Binary file not shown.

43
Images/Source/fd1/u0/COPY.UPD

@ -0,0 +1,43 @@
11 Dec 88
Some changes have been made to COPY since the manual was written.
Comparison of dates with Existence testing ON has been changed to
use the Creation date when no Modified date exists, and print
"Undated" when neither exists, yet both source and destination
disks support file date stamping. Additionally, the /X option
has been re-defined, and a new /R option has been added to
Version 1.4. Please replace Paragraph 4.1.2.9 on page 55 of your
ZSDOS manual with the following two paragraphs describing the new
options.
4.1.2.9.1 ERASE SOURCE FILE AFTER COPY.
When you want to "move" a file from one area to another, the "X"
option may be used. This option causes a file or group of files
to be copied in the manner described by the default or specified
options, but after the copy and optional verify, the source file
or files are erased. You will be notified that the file has been
erased by the status "(X)" being printed on your console. To
minimize the possibility of deleting a good file when errors
exist in the copy, the Verify option should always be active,
either by default, or specified. When Verify is active, any
errors detected will disable the "X" option for that file so that
a good source file will not be deleted. The "X" option has no
configurable value, and is always assumed to be "Off" requiring
the option in the command line list to be effective.
4.1.2.9.2 COPY ONLY FILES WHICH EXIST (REPLACE).
Occasionally, you may wish to update selected files to a destina-
tion in a simpler manner than naming each file, or using the
Inspect option. The "R" (Replace) option, when active, tells
COPY to transfer only files which exist on the destination direc-
tory. If the Archive option (A) is added in conjunction with the
Replace option, only files which have not been archived, AND
already exist on the destination will be archived. It should be
noted that the No Replacement (N) option is incompatible with
both the Replace and Archive options, and is disabled when either
"R" or "A" are active.


BIN
Images/Source/fd1/u0/CR.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/DATSWEEP.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/DDT.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/DDTZ.COM

Binary file not shown.

564
Images/Source/fd1/u0/DDTZ.DOC

@ -0,0 +1,564 @@
DDTZ v2.7
by C.B. Falconer
edited by George A. Havach
Introduction:
============
DDTZ v2.7 is a complete replacement for DDT, Digital Research's
famous Dynamic Debugging Tool, with improved functionality, bug
extermination, and full Z80 support. In general, DDTZ is fully
compatible with the original utility, but it has extra and
extended commands and many fewer quirks. All Z80-specific
instructions can be (dis)assembled, though in Intel rather then
Zilog format. Furthermore, DDTZ will correctly trace ('T' and 'U'
commands) both 8080 and Z80 instructions, depending on which CPU
is operating. On startup, the program announces which CPU it is
running on.
DDTZ v2.7 now handles the 64180 added opcodes. It does NOT test
for a 64180 CPU, since this cannot be done without executing
illegal Z80 instructions, which in turn will crash some
simulators. However v2.7 does not execute any 64180 instructions
internally, only in the subject program.
This issue supplies the "M" version assembled, to avoid errors
when switching between MSDOS and CPM systems. The command table
is updated accordingly. Most CPM users are also MSDOS users, but
not vice-versa.
The program is invoked by typing
ddtz<ret>
or
ddtz [d:]filespec<ret>
In the second form, DDTZ will load the specified file into
memory starting at 0100H, unless it's a .HEX file that sets its
own load address. Besides reporting the NEXT free address and
the PC (program counter) after a successful load, DDTZ also shows
the number of memory pages needed for a SAVE. Instead of having
to write all this down, just use the 'X' command at any time to
redisplay these three values for the current application.
NOTE: loading more code above the NEXT pointer revises these
values.
As in DDT, when a program is loaded above the area holding the
'A' and 'U' (and now 'W') command code, these commands are
disabled, and the extra memory is released to the user. Thus,
DDTZ can occupy as little as 3K total memory space. Unlike DDT,
however, DDTZ will not overwrite itself or the system on program
loads (except .HEX files).
At initialization, the stack pointer (SP) points to a return to
DDTZ, just like for the CCP. Thus, programs that normally return
to the CCP will be returned to DDTZ. The 'B' command
reinitializes this condition.
The intercept vector copies the BDOS version number, etc., so
an object program does not know that DDTZ is running (except
for BIOS-BDOS vector size). Thus, programs that check the version
number should execute correctly under DDTZ.
All input parameters can now be entered in any of three formats:
(1) hexadecimal (as in DDT),
(2) decimal, by adding a leading '#' character,
(3) ASCII, by enclosing between either single or double
quotes; either one or two characters are allowed.
Leading blanks in command lines and parameters are absorbed.
Either a comma or a (single) space is a valid delimiter.
Either uppercase or lowercase input is accepted.
The default command (for anything not otherwise recognizable)
is 'H'. This allows convenient calculation, along with the other
features described below. So, to convert a number, just enter
it!
As in DDT, the prompt character is '-', and the only error
message is the query ('?'), which generally kicks you back to
command mode.
New Commands (Over DDT):
=======================
NOTE: letters in parenthesis, e.g. "(U)", show the equivalent
command for DDTZM version (compatible with MSDOS debug).
@ Sets or shows (with no parameter) the internally stored
"base" value. Also used with the 'S' and 'D' commands as
an optional parameter (though without the '@') to display
memory from an arbitrary base marker (offset). When set to
zero (the default), it does not affect any screen displays.
B B)egin: resets the USER stack pointer to its initial value,
such that any program that exits by an RET will return to
DDTZ. DDTZ provides a default stack space of
approximately 24 bytes for user programs.
C C)ompare first_address,last_address,against_address: shows
all the byte differences between two memory areas, in the
format
XXXX aa YYYY bb
where XXXX and YYYY are the comparative memory addresses,
and aa and bb are the corresponding byte values. Can be
used to verify the identity of two files by first
loading them into different memory areas with the 'R'
command (see below).
W Write: stores the modified memory area to disk under the
(K) filename specified by the 'I' command, overwriting the
original file from which it was loaded (the user is queried
before doing so). By default, the image of memory from
0100H through the "NEXT" value -1 is saved. "K first_addr,
last_address" overrides this and allows writing ANY memory
area to a file. Almost a necessity for CPM 3.0 (no SAVE!).
K)eep on DDTZ
X eXamine: redisplays the "NEXT PC SAVE" report at any time.
(Q) Q)uery size on DDTZ.
S S)earch first_address, last_addr, value: searches the
(W) specified memory area for the value (a 16-bit word, not a
byte) and shows the locations of all such. Very useful for
finding CALL's or JMP's to a particular address, etc.
W)here on DDTZ
Y Y)our_option parm1,parm2,address: executes an arbitrary
routine at the specified address, with the BC and DE
registers set to parm1 and parm2, respectively.
Z Displays (but does not alter) the Z80's alternate register
set, including the index registers (disabled if running on
an 8080). On Z80's, automatically included as the last
part of the display by the 'X' command.
Based (Offset) Displays:
=======================
The 'D' and 'E' commands can use a stored base value (offset),
as set by the '@' command. The current @ value may be
overridden for a single execution of these commands by adding the
base as an extra parameter in the command line. The effect is
to add this value to the first/last address and display
accordingly. The address listing on the left becomes XXXX:YYYY,
where XXXX is the offset address and YYYY is the actual memory
address being displayed. For example, if you have a data area
located at 42B7H and wish to preserve easy access, just enter
"@42b7". Now, "d0,3f" will dump memory starting at 4237H.
Further Changes from DDT:
========================
A A)ssemble now accepts the full Z80 as well as 8080
instruction set, although it expects them in Intel rather
than Zilog format (see notes below under the 'L'
command). When in doubt, see the mnemnonic list below.
D D)isplay or D)ump will accept an optional third parameter
to set the base value for a single execution only. Format
has been cleaned up.
H H)ex_arithmetic on two values also shows their
difference in decimal. With only one value, converts to
hexadecimal, decimal, and ASCII (low-order byte only).
N N)ame now allows drive specification (d:...) and sets up
(I) the complete command line, including both FCB's (at
addresses 005CH and 006CH). The tail (stored at 0081H up)
is NOT upshifted.
I)nput on DDTZ
U U)nassemble now displays the raw hexcode, especially handy
(L) when examining non-code areas. Intel (8080 style) mnemonics
are used, so some disassembled instructions may look
strange. E.g., the Z80's 'IN B,(C)' and 'OUT (C),B' become
'INP B' and 'OUTP B', respectively; 'LD (nnnn),BC' becomes
'SBCD nnnn', 'ADD IX, BC' becomes 'DADX B', and 'JP (IX)'
becomes 'PCIX'.
L)ist on DDTZ
L L)oad now permits loading a file into memory with an
(R) offset, which is added to the default load address of
0100H. When reading in a .HEX file with a preset bias,
the 'R' command will not transfer control to an invalid
execution point. Another execution of the 'R' command will
reread the input file, e.g.:
n blah<ret>
l<ret>
...modify the code and generally mess about...
l<ret>
The original file is reloaded, and the modifications are
removed.
R)ead on DDTZ
E E)nter, like D)isplay, now accepts an optional second
(S) parameter to set the base value for a single execution
only.
S)ubstitute or S)et on DDTZ
T T)rap/trace on termination now shows the complete CPU
state. Traps and traces no longer lock up when a user RST
7 instruction is executed. Tracing of BDOS/BIOS calls is
heavily trun cated, avoiding clutter and preventing system
crashes.
NOTE: Most of the UNDOCUMENTED Z80 op-codes are handled. Others
can crash the system.
R R)egisters also shows what two-byte values the HL and SP
(X) registers are actually pointing to. On Z80's, displays the
alternate register set.
eX)amine on DDTZ
NOTE: Any use of the 'W' or 'L' command resets the system DMA
transfer address to the standard default value of 0080H.
; This is the output of DDTZ when disassembling OPTYPE.TRY
NOP LDA 06A4 MOV M,H
LXI B,06A4 DCX SP MOV M,L
STAX B INR A HLT
INX B DCR A MOV M,A
INR B MVI A,20 MOV A,B
DCR B CMC MOV A,C
MVI B,20 MOV B,B MOV A,D
RLC MOV B,C MOV A,E
EXAF MOV B,D MOV A,H
DAD B MOV B,E MOV A,L
LDAX B MOV B,H MOV A,M
DCX B MOV B,L MOV A,A
INR C MOV B,M ADD B
DCR C MOV B,A ADD C
MVI C,20 MOV C,B ADD D
RRC MOV C,C ADD E
DJNZ 0134 MOV C,D ADD H
LXI D,06A4 MOV C,E ADD L
STAX D MOV C,H ADD M
INX D MOV C,L ADD A
INR D MOV C,M ADC B
DCR D MOV C,A ADC C
MVI D,20 MOV D,B ADC D
RAL MOV D,C ADC E
JR 0134 MOV D,D ADC H
DAD D MOV D,E ADC L
LDAX D MOV D,H ADC M
DCX D MOV D,L ADC A
INR E MOV D,M SUB B
DCR E MOV D,A SUB C
MVI E,20 MOV E,B SUB D
RAR MOV E,C SUB E
JRNZ 0134 MOV E,D SUB H
LXI H,06A4 MOV E,E SUB L
SHLD 06A4 MOV E,H SUB M
INX H MOV E,L SUB A
INR H MOV E,M SBB B
DCR H MOV E,A SBB C
MVI H,20 MOV H,B SBB D
DAA MOV H,C SBB E
JRZ 0134 MOV H,D SBB H
DAD H MOV H,E SBB L
LHLD 06A4 MOV H,H SBB M
DCX H MOV H,L SBB A
INR L MOV H,M ANA B
DCR L MOV H,A ANA C
MVI L,20 MOV L,B ANA D
CMA MOV L,C ANA E
JRNC 0134 MOV L,D ANA H
LXI SP,06A4 MOV L,E ANA L
STA 06A4 MOV L,H ANA M
INX SP MOV L,L ANA A
INR M MOV L,M XRA B
DCR M MOV L,A XRA C
MVI M,20 MOV M,B XRA D
STC MOV M,C XRA E
JRC 0134 MOV M,D XRA H
DAD SP MOV M,E XRA L
XRA M JPE 06A4 SLAR M
XRA A XCHG SLAR A
ORA B CPE 06A4 SRAR B
ORA C XRI 20 SRAR C
ORA D RST 5 SRAR D
ORA E RP SRAR E
ORA H POP PSW SRAR H
ORA L JP 06A4 SRAR L
ORA M DI SRAR M
ORA A CP 06A4 SRAR A
CMP B PUSH PSW SLLR B
CMP C ORI 20 SLLR C
CMP D RST 6 SLLR D
CMP E RM SLLR E
CMP H SPHL SLLR H
CMP L JM 06A4 SLLR L
CMP M EI SLLR M
CMP A CM 06A4 SLLR A
RNZ CPI 20 SRLR B
POP B RST 7 SRLR C
JNZ 06A4 RLCR B SRLR D
JMP 06A4 RLCR C SRLR E
CNZ 06A4 RLCR D SRLR H
PUSH B RLCR E SRLR L
ADI 20 RLCR H SRLR M
RST 0 RLCR L SRLR A
RZ RLCR M BIT 0,B
RET RLCR A BIT 0,C
JZ 06A4 RRCR B BIT 0,D
CZ 06A4 RRCR C BIT 0,E
CALL 06A4 RRCR D BIT 0,H
ACI 20 RRCR E BIT 0,L
RST 1 RRCR H BIT 0,M
RNC RRCR L BIT 0,A
POP D RRCR M BIT 1,B
JNC 06A4 RRCR A BIT 1,C
OUT 20 RALR B BIT 1,D
CNC 06A4 RALR C BIT 1,E
PUSH D RALR D BIT 1,H
SUI 20 RALR E BIT 1,L
RST 2 RALR H BIT 1,M
RC RALR L BIT 1,A
EXX RALR M BIT 2,B
JC 06A4 RALR A BIT 2,C
IN 20 RARR B BIT 2,D
CC 06A4 RARR C BIT 2,E
SBI 20 RARR D BIT 2,H
RST 3 RARR E BIT 2,L
RPO RARR H BIT 2,M
POP H RARR L BIT 2,A
JPO 06A4 RARR M BIT 3,B
XTHL RARR A BIT 3,C
CPO 06A4 SLAR B BIT 3,D
PUSH H SLAR C BIT 3,E
ANI 20 SLAR D BIT 3,H
RST 4 SLAR E BIT 3,L
RPE SLAR H BIT 3,M
PCHL SLAR L BIT 3,A
BIT 4,B RES 3,D SET 2,H
BIT 4,C RES 3,E SET 2,L
BIT 4,D RES 3,H SET 2,M
BIT 4,E RES 3,L SET 2,A
BIT 4,H RES 3,M SET 3,B
BIT 4,L RES 3,A SET 3,C
BIT 4,M RES 4,B SET 3,D
BIT 4,A RES 4,C SET 3,E
BIT 5,B RES 4,D SET 3,H
BIT 5,C RES 4,E SET 3,L
BIT 5,D RES 4,H SET 3,M
BIT 5,E RES 4,L SET 3,A
BIT 5,H RES 4,M SET 4,B
BIT 5,L RES 4,A SET 4,C
BIT 5,M RES 5,B SET 4,D
BIT 5,A RES 5,C SET 4,E
BIT 6,B RES 5,D SET 4,H
BIT 6,C RES 5,E SET 4,L
BIT 6,D RES 5,H SET 4,M
BIT 6,E RES 5,L SET 4,A
BIT 6,H RES 5,M SET 5,B
BIT 6,L RES 5,A SET 5,C
BIT 6,M RES 6,B SET 5,D
BIT 6,A RES 6,C SET 5,E
BIT 7,B RES 6,D SET 5,H
BIT 7,C RES 6,E SET 5,L
BIT 7,D RES 6,H SET 5,M
BIT 7,E RES 6,L SET 5,A
BIT 7,H RES 6,M SET 6,B
BIT 7,L RES 6,A SET 6,C
BIT 7,M RES 7,B SET 6,D
BIT 7,A RES 7,C SET 6,E
RES 0,B RES 7,D SET 6,H
RES 0,C RES 7,E SET 6,L
RES 0,D RES 7,H SET 6,M
RES 0,E RES 7,L SET 6,A
RES 0,H RES 7,M SET 7,B
RES 0,L RES 7,A SET 7,C
RES 0,M SET 0,B SET 7,D
RES 0,A SET 0,C SET 7,E
RES 1,B SET 0,D SET 7,H
RES 1,C SET 0,E SET 7,L
RES 1,D SET 0,H SET 7,M
RES 1,E SET 0,L SET 7,A
RES 1,H SET 0,M DADX B
RES 1,L SET 0,A DADX D
RES 1,M SET 1,B LXI X,06A4
RES 1,A SET 1,C SIXD 06A4
RES 2,B SET 1,D INX X
RES 2,C SET 1,E DADX X
RES 2,D SET 1,H LIXD 06A4
RES 2,E SET 1,L DCX X
RES 2,H SET 1,M INR [X+05]
RES 2,L SET 1,A DCR [X+05]
RES 2,M SET 2,B MVI [X+05],20
RES 2,A SET 2,C DADX SP
RES 3,B SET 2,D MOV B,[X+05]
RES 3,C SET 2,E MOV C,[X+05]
MOV D,[X+05] DSBC B DADY B
MOV E,[X+05] SBCD 06A4 DADY D
MOV H,[X+05] NEG LXI Y,06A4
MOV L,[X+05] RETN SIYD 06A4
MOV [X+05],B IM0 INX Y
MOV [X+05],C LDIA DADY Y
MOV [X+05],D INP C LIYD 06A4
MOV [X+05],E OUTP C DCX Y
MOV [X+05],H DADC B INR [Y+05]
MOV [X+05],L LBCD 06A4 DCR [Y+05]
MOV [X+05],A RETI MVI [Y+05],2
MOV A,[X+05] LDRA DADY SP
ADD [X+05] INP D MOV B,[Y+05]
ADC [X+05] OUTP D MOV C,[Y+05]
SUB [X+05] DSBC D MOV D,[Y+05]
SBB [X+05] SDED 06A4 MOV E,[Y+05]
ANA [X+05] IM1 MOV H,[Y+05]
XRA [X+05] LDAI MOV L,[Y+05]
ORA [X+05] INP E MOV [Y+05],B
CMP [X+05] OUTP E MOV [Y+05],C
POP X DADC D MOV [Y+05],D
XTIX LDED 06A4 MOV [Y+05],E
PUSH X IM2 MOV [Y+05],H
PCIX LDAR MOV [Y+05],L
SPIX INP H MOV [Y+05],A
RLCR [X+05] OUTP H MOV A,[Y+05]
RRCR [X+05] DSBC H ADD [Y+05]
RALR [X+05] shld 06A4 ADC [Y+05]
RARR [X+05] RRD SUB [Y+05]
SLAR [X+05] INP L SBB [Y+05]
SRAR [X+05] OUTP L ANA [Y+05]
SRLR [X+05] DADC H XRA [Y+05]
BIT 0,[X+05] lhld 06A4 ORA [Y+05]
BIT 1,[X+05] RLD CMP [Y+05]
BIT 2,[X+05] INP M POP Y
BIT 3,[X+05] OUTP M XTIY
BIT 4,[X+05] DSBC SP PUSH Y
BIT 5,[X+05] SSPD 06A4 PCIY
BIT 6,[X+05] INP A SPIY
BIT 7,[X+05] OUTP A RLCR [Y+05]
RES 0,[X+05] DADC SP RRCR [Y+05]
RES 1,[X+05] LSPD 06A4 RALR [Y+05]
RES 2,[X+05] LDI RARR [Y+05]
RES 3,[X+05] CCI SLAR [Y+05]
RES 4,[X+05] INI SRAR [Y+05]
RES 5,[X+05] OTI SRLR [Y+05]
RES 6,[X+05] LDD BIT 0,[Y+05]
RES 7,[X+05] CCD BIT 1,[Y+05]
SET 0,[X+05] IND BIT 2,[Y+05]
SET 1,[X+05] OTD BIT 3,[Y+05]
SET 2,[X+05] LDIR BIT 4,[Y+05]
SET 3,[X+05] CCIR BIT 5,[Y+05]
SET 4,[X+05] INIR BIT 6,[Y+05]
SET 5,[X+05] OTIR BIT 7,[Y+05]
SET 6,[X+05] LDDR RES 0,[Y+05]
SET 7,[X+05] CCDR RES 1,[Y+05]
INP B INDR RES 2,[Y+05]
OUTP B OTDR RES 3,[Y+05]
RES 4,[Y+05] SET 0,[Y+05] SET 4,[Y+05]
RES 5,[Y+05] SET 1,[Y+05] SET 5,[Y+05]
RES 6,[Y+05] SET 2,[Y+05] SET 6,[Y+05]
RES 7,[Y+05] SET 3,[Y+05] SET 7,[Y+05]
; These are the result of disassembling 64180OPS.TRY
; These opcodes are available ONLY on the 64180 CPU
; DDTZ will both assemble and disassemble these.
IN0 B,20 TST E MLT B
OUT0 20,B IN0 H,20 MLT D
TST B OUT0 20,H TSTI 20
IN0 C,20 TST H MLT H
OUT0 20,C IN0 L,20 TSIO 20
TST C OUT0 20,L SLP
IN0 D,20 TST L MLT SP
OUT0 20,D TST M OTIM
TST D IN0 A,20 OTDM
IN0 E,20 OUT0 20,A OIMR
OUT0 20,E TST A ODMR
; The following are UNDOCUMENTED z80 opcodes from XTDOPS.TRY.
; DDTZ will disassemble these, but will not assemble them.
; They use xh/xl (or yh/yl) as separate byte registers.
; Use these at your own risk.
INRX H ACXR H MOVY H,B
DCRX H ACXR L MOVY H,C
MVIX H,20 SUXR H MOVY H,D
INRX L SUXR L MOVY H,E
DCRX L SBXR H MOVY H,A
MVIX L,20 SBXR L MOVY L,B
MOVX B,H NDXR H MOVY L,C
MOVX B,L NDXR L MOVY L,D
MOVX C,H XRXR H MOVY L,E
MOVX C,L XRXR L MOVY L,A
MOVX D,H ORXR H MOVY A,H
MOVX D,L ORXR L MOVY A,L
MOVX E,H CPXR H ADYR H
MOVX E,L CPXR L ADYR L
MOVX H,B INRY H ACYR H
MOVX H,C DCRY H ACYR L
MOVX H,D MVIY H,20 SUYR H
MOVX H,E INRY L SUYR L
MOVX H,A DCRY L SBYR H
MOVX L,B MVIY L,20 SBYR L
MOVX L,C MOVY B,H NDYR H
MOVX L,D MOVY B,L NDYR L
MOVX L,E MOVY C,H XRYR H
MOVX L,A MOVY C,L XRYR L
MOVX A,H MOVY D,H ORYR H
MOVX A,L MOVY D,L ORYR L
ADXR H MOVY E,H CPYR H
ADXR L MOVY E,L CPYR L
Command Summary:
===============
DDTZM command DDTZ command
============= ============
@ (base)
A)ssemble first_address A
B)egin {i.e., initialize stack and return} B
C)ompare first_address,last_address,against_address C
D)ump first_address[,last_address[,base]] D
E)nter_in_memory first_address[,base] S)ubstitute
F)ill first_address,last_address,value F
G)o_to [address][,trap1[,trap2]] G
H)ex_arithmetic value1(,value2) H
L)oad_file (offset) R)ead
M)ove first_address,last_address,destination M
N)nput FCBs_command_line I)nput
Q)uit (not avail)
R)egister examine/change [register|flag] X)amine
S)earch first_address,last_address,word W)hereis
T)race_execution [count] T
Untrace_execution [count] (i.e. do count instr) U)ntrace
U)nassemble_code first_address[,last_address] L)ist code
W)rite [first_address,last_address] K)eep
X)amine {i.e. display memory parameters for application} Q)uery
Y)our_option BC:=parm1,DE:=parm2,call_address Y
Z)80_register_display Z
If you find this program useful, contributions will be gratefully
accepted and will encourage further development and release of
useful CPM programs. My practice is to include source.
C.B. Falconer
680 Hartford Turnpike,
Hamden, Conn. 06517 (203) 281-1438
DDTZ and its associated documentation and other files are
copyright (c) 1980-1988 by C.B. Falconer. They may be freely
copied and used for non-commercial purposes ONLY.

BIN
Images/Source/fd1/u0/DIF.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/DSCONFIG.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/DUMP.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/ED.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/FA16.CFG

Binary file not shown.

264
Images/Source/fd1/u0/FA16.DOC

@ -0,0 +1,264 @@
FILEATTR
Version 1.6
Gene Pizzetta
January 18, 1992
A ZSDOS utility, copyright (c) 1988 by Carson Wilson.
FILEATTR (FA) is a utility that allows rapid settin, resetting,
or displaying of file attributes under ZSDOS, ZRDOS, and CP/M
2.2. Several additional features are available under ZCPR3,
including error flag setting, error handler invocation, an
enhanced display, and better error detection.
FA will not run under CP/M 3.0 or Z3PLUS.
USAGE:
FILEATTR {dir:}{afn} {{/}options}
If a DIR or DU specification is not given, the current directory
is assumed (under vanilla CP/M only the drive is significant).
If no ambiguous or unambiguous filename is given, all files
("*.*") are matched.
If no attribute options are given, FILEATTR merely displays the
current state of each file's attributes. Files are displayed in
the order that they appear in the directory.
Once operation begins, FA cannot be aborted by the user. If a ^C
is entered at the keyboard, all screen output stops, but file
attribute operations continue to completion. If that was not the
case, attributes might be set on some entries for a file and not
on others. Nevertheless, suppressing screen output speeds things
up a bit.
OPTIONS: A leading slash is required unless the option list is
the second parameter on the command line. Options may be
separated by spaces, commas, or nothing at all.
ATTRIBUTE OPTIONS: These options set (turn on) corresponding
attributes on files matching the file specification. Attributes
not specified by an attribute option remain unchanged.
If the option is preceded by a minus ("-") or by an "N", the
corresponding attribute is reset (turned off).
1 F1. This is a user attribute which has no predefined
meaning.
P Public (f2). Under ZSDOS, when this attribute is set,
a file is available from any user area of the disk on
which it resides. A file cannot be made public if
another file with the same name exists in any other
user area on that drive. In that case FA will issue an
error message and leave the attribute off.
D Inhibit access datestamp (f3). Under ZSDOS, when this
attribute is set, the file's access datestamp will not
be updated, which may speed file access slightly. If
the attribute is turned off, normal access datestamping
resumes.
4 F4. This is a user attribute which has no predefined
meaning.
W Wheel protect (f8). Under ZSDOS, when this attribute
is set, the file becomes read-only when the wheel byte
is off and cannot be erased. If the wheel byte is on,
the file can be erased normally.
R Read only (t1). When this attribute is set, the file
cannot be erased or modified by most programs.
S System (t2). When this attribute is set, the file
becomes a "hidden" file that will not be found by most
directory programs or by most well-behaved utilities
that accept ambiguous filenames. (FA must find system
files, of course.)
A Archive (t3). When this attribute is set, it signals
some archival programs that the file has not been
modified since it was last backed up. If a file is
modified, ZSDOS and ZRDOS turn this attribute off.
CP/M does not fully support this attribute, however.
OTHER OPTIONS: These options affect only the screen display.
Q Quiet mode. Console output is suppressed unless there
is an error. All other operations are performed
normally.
X Screen paging off. With this option, screen paging is
turned off. The screen can still be paused by pressing
any key except ^C.
ERRORS: Under ZCPR3, errors will cause FA to set the program
error flag and to invoke the error handler. The error flag will
be set to the following values:
2 invalid directory specification
4 miscellaneous (conflicting file, no files on disk)
10 no matching files found (no error handler)
18 Disk read-only
19 Invalid option
For error code 10 (no matching files found), the error flag is
set, but the error handler is not called.
In addition, under ZCPR 3.3 and above, an invalid directory
specification will abort FA to the error handler, but no message
is printed.
The following error messages may be seen:
Conflicting entry, can't set public attribute
If there are files with the same name in other user areas of
the disk, the public attribute cannot be set.
No files on disk
The disk directory is empty.
Bad Option: /o
The command line option shown is unknown to FILEATTR.
Drive R/O
The drive is set to read-only by the operating system and
attributes cannot be changed.
CP/M version 2.x required
FILEATTR will not run on this system.
BIOS write error near directory sector n
An error occurred at or near the given directory sector,
which is expressed as a decimal offset from the beginning of
the directory.
BIOS set track detected - FA aborting
A background program is attempting to modify the current
track setting. The background program must be removeed
before running FA again.
Not Wheel
Under ZCPR3 the wheel byte must be set before FILEATTR can
be run.
CONFIGURATION: While no installation is necessary, all options
can be set as defaults, if you prefer, using ZCNFG. The
configuration options are fully explained on the ZCNFG help
screens.
It is best not to change the name of the configuration file. Its
special name assures that ZCNFG will always find the correct CFG
file, even if the name of FA has been changed or if more than one
version of FA is online.
HISTORY:
Version 1.6 -- April 14, 1991 -- Gene Pizzetta
Now displays target DU and directory name in summary. Fixed
bug that caused "GO" to be displayed as program name, if it
was re-invoked with the GO command.
Version 1.5 -- March 27, 1991 -- Gene Pizzetta
Now calls CP/M version checking routine (it was there, but
it wasn't called). Changed error codes: 10, no matching
files found. "No files on disk" error now gets
miscellaneous error code (4). Error 10 does not invoke
error handler. Not released.
Version 1.4 -- March 20, 1991 -- Gene Pizzetta, Howard Goldstein
Code to check module data byte (S2) was replaced by Howard
Goldstein's elegant solution which uses a "true" extent
number: ((data_mod * 32) + extent). Entering a ^C no
longer really aborts FILEATTR; instead FA immediately prints
"Wait..." on the screen, turns off paging, turns on quiet
mode, sets the results flag, and finishes what it was doing.
All this is to prevent unexpected results when only some of
a file's directory entries are changed. All errors
including a conflicting file found during a PUBLIC request,
now set the program error flag and invoke the error handler
so an active SUBMIT or ZEX script can be aborted. The error
flag will have the following values: 2, invalid directory;
10, no files on disk; 18, disk is read-only; 19, invalid
option; 4, all other errors. If no matching files are
found, the program error flag will be set to FFh, but the
error handler will not be invoked. A few other code changes
were made, including a check for CP/M-Plus, under which
FILEATTR will not work. Not released.
Version 1.3 -- February 22, 1991 -- Gene Pizzetta
Corrected bug that caused faulty operation on large files:
The module data byte (S2) byte was not being checked, so
such files appeared 2 or more times in the directory display
and the public routine was often not finding conflicting
files. Added configuration byte and command line option (X)
for screen paging (paging is suppressed in quiet mode).
Made quiet mode responsive to ZCPR quiet flag and changed Q
command line option to toggle. Usage screen reflects
current effect of X and Q toggles. Attribute configuration
area changed to be compatible with ZCNFG TOGL3 routine.
Actions of D and ND options reversed so they work the same
as the others. Added configuration byte for printing
summary line even in quiet mode, as suggested by Howard
Goldstein. Removed blank lines from screen display,
allowing three more filenames to be shown. Removed tabs
from usage screen so PRINT and PSTR are not needed.
Eliminated leading zero from user number display. Now
prints "file" instead of "files" in summary when only 1
matching file is found. Ditto for attribute(s) altered.
Version 1.2 -- November 30, 1988 -- Carson Wilson
Fixed bug of no program name display when FILEATTR's name
was 8 characters long.
Version 1.1 -- October 30, 1988 -- Carson Wilson
Now wildcards the command forms "FA d: /options" and "FA d:
options."
Version 1.0 -- September 26, 1988 -- Carson Wilson
If a filespec is given, no leading slash is required before
the options. Link with version 4 libraries. Removed /X
option--ZSDOS 10T always closes the first extent when a file
is written to. Changed summary to read "files matched".
Version 0.9 -- July 7, 1988 -- Carson Wilson
Increased length of search FCB (AMBFIL) by one byte. Set up
AMBFIL as '?' + 35 binary 0's. ZRDOS and CP/M zero the
drive byte (FCB+0) during search next calls, so reinitialize
it to '?' before rescanning the directory. PROGID now
prints stored name on GO/JUMP.
Version 0.8 -- June 26, 1988 -- Carson Wilson
Use SYSLIB PRINT for help display. VPRINT does not expand
tabs. Now traps disk track changes at the BIOS level.
Allows '-' as well as 'N' for "negate option." Auto-
wildcards FCB1 for attribute set as well as display.
Version 0.7 -- May 24, 1988 -- Carson Wilson
Cosmetic changes to help, display. Made public routines
faster by 1/2 directory scan average. Consolidated file
attribute setting/resetting routines for efficiency and
clarity.
Version 0.6 -- May 14, 1988 -- Carson Wilson
Changed "Publ" to "Publc" and "Priv" to "Privt". Added Q
and X options, made options installable. Added test for bad
ZCPR directory & chain to error handler.
Version 0.5 -- May 4, 1988 -- Carson Wilson
Fixed bug at CHKRO inherited from MAKE.ASM. Uses Bridger
Mitchell's FRESET to reset disks. Uses ZCPR invocation name
in signon, help, etc. Added F4 attribute. Now includes all
valid ZSDOS attributes. Help now fully "smart" under ZCPR.
Reworked VID3.Z80 and VID4.Z80 from VLIB11 and moved them
into FA.Z80 (see end of file). Put STNDOUT mode ON by
default at beginning of each attribute display sequence for
faster ZCPR displays.
Version 0.4 -- April 27, 1988 -- Carson Wilson
Tests for matching files at other user areas before setting
the public attribit.
Version 0.3 -- April 26, 1988 -- Carson Wilson

6
Images/Source/fd1/u0/FA16A.FOR

@ -0,0 +1,6 @@
An update and bug-fix of FILEATTR (FA), a ZSDOS utility that
allows rapid setting, resetting, or displaying of file attributes
under ZSDOS, ZRDOS, and CP/M 2.2. Several additional features
are available under ZCPR3, including error flag setting, error
handler invocation, and an enhanced display. Version 1.6A adds
documentation; otherwise, same as 1.6.

39
Images/Source/fd1/u0/FA16CFG.TXT

@ -0,0 +1,39 @@
Option Q -- If the ZCPR quiet flag is set, FILEATTR will always default to
quiet mode. To make quiet mode the default at all times, even when running
under CP/M, set this configuration option to "Yes". Whatever is selected
here can be toggled with the command line "Q" option.
Option X -- A "Yes" will cause FILEATTR to page screen output by default.
A "No" will default to continuous scrolling. The chosen default can be
toggled with the command line "X" option. Screen paging is always turned
off in quiet mode.
Option R -- As distributed, FILEATTR prints nothing to the screen when it
is operating in quiet mode. If this configuration option is "Yes", the
results summary line that gives the number of matching files found and the
number of attributes changed will be printed even in quiet mode.
Option S -- Enter the number of lines on your video display screen. Under
ZCPR 3.3 and higher, the number of screen lines for paging is obtained from
the environment descriptor. This configuration parameter is used only if
running under CP/M.
Attribute Configuration Options
As distributed, FILEATTR will not change any file attribute unless
explicitly commanded to do so by a command line option. To configure
FILEATTR to turn a file attribute ON or OFF by default, toggle the
appropriate configuration selection.
For example, to make FILEATTR set all matching files to Public by default,
change the "Public attribute" setting to "Turn On". Then FILEATTR will set
the specified files to Public unless the /NP command line option is given
(which would cause the files to be set to Private). Since there is no
command which tells FILEATTR not to change an attribute, however, the
program will now insist on turning the Public attribute either on (default)
or off (through the /NP option).
Most users will have neither need nor desire to change the configuration
default as distributed which will "Leave As-Is" all matching files.

BIN
Images/Source/fd1/u0/FILEATTR.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/FILEDATE.CFG

Binary file not shown.

BIN
Images/Source/fd1/u0/FILEDATE.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/INITDIR.CFG

Binary file not shown.

BIN
Images/Source/fd1/u0/INITDIR.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LBREXT.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LDDS.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LDP2D.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LIB.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LINK.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/LOAD.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/MAC.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/MBASIC.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/NULU.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/PIP.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/PUTBG.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/PUTDS.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/RELOG.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/RMAC.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/SETTERM.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/SETUPZST.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/SID.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/STAMPS.DAT

Binary file not shown.

BIN
Images/Source/fd1/u0/STAT.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/SUBMIT.COM

Binary file not shown.

BIN
Images/Source/fd1/u0/SUPERSUB.COM

Binary file not shown.

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save