home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
S
/
SUPERZAP.ARK
/
SUPERZAP.DOC
< prev
Wrap
Text File
|
1989-09-27
|
11KB
|
267 lines
SPZ.COM
SPZ is a full screen interactive disk update utility,
providing many of the features found in DU.COM. The program is
menu driven, and little additional documentation is required. The
following notes consist of a functional overview, plus notes on
features not documented in the menus.
SYSTEM REQUIREMENTS.
SPZ requires a Z80 - it may be possible to update the source
for 8080 but extensive use is made of Z80 opcodes, and this would
be a large exercise. Subroutines would be required to simulate
LDIR, LDDR, and CPIR, to say nothing of varieties of shift,
rotate and load instructions.
CPM 2.x is required.
One or more disks may be used - SPZ determines if a selected
disk is defined in the BIOS before attempting to access it.
The terminal used must support cursor addressing, clear
screen, and erase to end of line. At least an 80 by 24 display is
required.
FACILITIES.
SPZ enables disk sector editing in HEX or ASCII, using File
Relative or Track/Sector addressing. In File Relative mode a
sorted directory listing is used to select the file. In both
modes forward and backward browse is provided, in addition to
random record selection. The displayed sector may be copied to a
scratchpad buffer, or exchanged with the scratchpad. The
directory list may be full (*.*) or selective, eg *.ASM and the
selection may be changed at any time.
A file TYPE facility gives a paged, formatted display of any
file. Control characters are displayed as "." except for TAB and
Carriage return/Line feed which are processed normally. COM files
are not formatted.
The SPZ command format may enter any operational mode
directly -
SPZ enters SPZ with a *.* directory list.
SPZ d: as above with d:*.* directory list.
SPZ [d:]afn as above with d:afn directory list.
SPZ [d:]ufn enters SPZ in file relative mode,
using the specified file.
SPZ [d:]DSK: enters SPZ in Track Sector addressing
mode on the specified drive.
DIRECTORY LIST MODE.
In directory list mode the cursor is positioned on the first
filename displayed. The cursor can be moved LEFT, RIGHT, UP or
DOWN using Control keys. A file is selected by typing a command
character against the required file name - "E" for file relative
editting, or "T" for the TYPE function.
Up to 32 file names are listed. If there are more files, the
directory list may be paged forward and back.
Other drives may be selected or the current disk changed -
NOTE - if the disk in the current drive is changed, the "change
disk" function should be used to select the same drive again.
This provides a new directory list, and avoids CP/M making the
disk Read Only.
Track/Sector addressing is selected from the directory list
display.
The directory list selection may be changed - the default is
*.* unless set by the SPZ command.
FILE RELATIVE MODE.
In this mode the selected file is displayed in HEX and ASCII
format with record number and file offset displayed. For .COM
files the address when loaded at 0100H is diplayed.
The record displayed may be selected by browsing forward and
back, locating the first or last record, or by setting a record
number (in HEX). When setting a record number, Hex digits are
entered in "calculator style" - new digits are entered on the
right while the number moves left. Backspace deletes the last
digit entered, and Escape restores the original number. These
features are common to all number entries in SPZ. The selected
record is read when RETURN is pressed. If it is not found, the
previous record number will be restored.
The displayed record may be changed by typing "C". The
cursor is positioned on the first hex digit, and is moved using
the same control keys as are used in the directory list mode. Any
valid hex digit may be typed to alter the record. The TAB key
moves the cursor to it corrosponding location in the ASCII
display, allowing character strings to be easily changed. Another
TAB returns the cursor to the HEX display area.
Two control codes are available to stop editing the record -
one saves the changes and rewrites the record to disk, the other
restores the record to its original contents.
Return to directory list mode is made by typing "L".
TYPE FILE
Files are TYPEd with up to 72 characters per line, 18 lines
per page. Except for .COM files, Carriage return/Line feed codes
are honoured, and Tabs are expanded. All other control characters
are displayed as "." to prevent unwanted terminal control
functions.
Forward and backward paging operations are provided,
including return to top of file. Following paging, the highest
page displayed can be restored.
DIRECTORY LIST SELECTION.
The ambiguous file name used for the directory list may be
edited by typing "M" in the directory list mode display. The
existing file NAME and TYPE may be overwritten or edited using
INSERT and DELETE control keys. Only those characters defined as
legal in the CPM documentation are permitted.
If "*" is typed at any point in the NAME or TYPE, the
remainder of the field will be filled with "?". If a SPACE is
typed the remainder of the field will be blanked out. Period also
has this effect if used in the NAME field - an ambiguous file
name may thus be entered in the normal fashion.
The TAB key switches between editing the NAME and TYPE.
The ESCAPE key restores the original selection, RETURN
produces a new directory list.
NOTE - insert and delete affect only the field being
editted, - characters do not wrap between name and type.
TRACK/SECTOR ADDRESSING.
This mode is entered by typing "S" in directory list mode.
The facilities provided here are similar to File Relative mode,
but sectors are selected by setting (or browsing back and
forward) track and sector numbers. The allocation block number is
also displayed and may be set. When a block number is set, the
first sector of that block is displayed. The record diplayed may
be altered in the same manner as File Relative mode. The
scratchpad facility is also available in this mode. Note that
sectors saved in one mode are available for exchange in the other
mode.
INSTALLATION
SPZ uses the following terminal facilities -
Cursor Addressing
Clear Screen
Erase to end of line.
SPZ assumes that the cursor is positioned by a prefix string
followed by ROW+020H, COLUMN+020H. If this is not the case for
your terminal you must update routine CURS and reassemble and
link SPZ.
The cursor positioning prefix, and other functions may be
altered using DDT, or preferably a Z80 debugger.
Three 4 byte strings are reserved at 180H, for VDU control
strings, each of which MUST end in 00H.
180H - Clear Screen
184H - Erase to end of line
188H - Cursor position prefix
The byte at 18CH is used as a "flag" character in the
directory list - the cursor is positioned over it.
The control keys used for cursor movement are defined by
equates in the assembler source and may be altered if desired.
The menus will reflect any changes made to these equates.
SPZ.MAC
Several Macros are used in the SPZ assembly. These are
provided inline.
$RTN is used to head each subroutine. It generates a
label (using DS 0 because Microsoft seem to think EQU statements
do not need to be listed in the Macro expansion [ Ah well, it
takes all kinds ...]). An entry statement is also generated so
that the L80 /Y otption will provide symbols for ZSID.
$PANEL Generates a call to the panel display subroutine,
passing a panel name as a parammeter.
$NPANEL Does the same, but first clears the screen.
$FLD Generates a call to the field display subroutine.
$IFLD Same as $FLD, but also inputs a character and
converts to upper case.
$STRO Prints the specified string.
$HEXW Prints a 4 byte HEX number.
$MTCH Calls the string search function.
$EXVA Calls the vectored call function.
Control Code Equates.
A set of EQU statements is provided to change the control
codes used throughout SPZ. These EQUates are also used in the
menus, hence changes to these will correctly update displayed
messages. Take care not to use 00H - CPM function 6 does not
return the ^@ key! also codes realy must be control codes - 01H
to 1FH otherwise the panels get funny, and results might not be
what you expect when editting a sector.
Thats it Folks -
Willie Davidson.
8 Comely Bank Street
Edinburgh
Scotland.
converts to upper case.
$STRO Prints the specified string.