Program SUPERZAP/CMD provides the user with the means to read and write standard 256 byte diskette sectors or any part of main memory, except writing to ROM. Learning to use SUPERZAP is strongly recommended for all NEWDOS/80 owners. If corrections (known as zaps or patches) are to be made to your NEWDOS/80, Apparat will distribute them in written form for application using SUPERZAP. You must know how to us DFS and MODxx. In learning to use SUPERZAP, do your learning on a diskette having data that you can afford to lose!!!!!
Certain diskettes are written in non-standard sector formats and are thus inaccessible to SUPERZAP. There exist other programs that read anything that is on a diskette, but do not have some of the other SUPERZAP features. The user, at some time, will probably want to buy one of these other programs from the vendors that sell them.
SUPERZAP operates in both upper and lower case.
Where numeric values are inputted and unless otherwise specified, SUPERZAP assumes DECIMAL unless the value is suffixed with the character H to indicate hexadecimal.
6.1.1. Function Modes
The menu displays the functions available. The user keys in the selected function's characters and then presses ENTER. The SUPERZAP functions are as follows:
DD - Display a Disk sector. SUPERZAP will ask for the drive number and the number of the relative sector within the diskette, read the sector and display it.
DM - Display a 256 byte page of main memory. SUPERZAP will ask for a memory address, truncate it to a 256 byte boundary and display the page.
DFS - Display a File's Sector. SUPERZAP will ask for the file's filespec. Next, SUPERZAP will ask for the relative sector number within the file and will display that sector.
DTS - Display track's sector. SUPERZAP will ask for the drive number, track number and the number of the relative sector on the track. It will then read the sector and display it.
DMDB - Display Memory Dump Block. SUPERZAP will ask for the filespec of the memory dump file (created by DUMP, see section 2.20). It will display the dump's base address. Next it will ask for a main memory address within the range of the dump, truncate it to a 256 byte boundary and display the memory page.
VDS - Verify Disk Sectors. SUPERZAP will ask if the operator wants a pause when a read protected sector is encountered. Next, SUPERZAP will ask for the drive number and the number of the relative sector on the diskette of the 1st sector to be verified. Lastly, it will ask for the number of sectors to be verified. It will then proceed with the verify which consists simply of reading each sector within the range specified. When a protected sector is encountered and if a pause was requested, SUPERZAP will display the sector's location and wait for the operator to press ENTER before continuing. VDS is a fast way of finding bad sectors on a diskette that the user suspects have gone bad. While verifying is being done, VDS may be cancelled by pressing up-arrow.
ZDS - Zero Disk Sectors. SUPERZAP will ask for the drive number and the number of the relative sector on the diskette of the first sector to be zeroed. Next, it asks for the number of sectors to be zeroed. The zeroing is then done. The read protection status of each sector is not changed.
CDS - Copy Disk Sectors. SUPERZAP will ask for the drive number and the number of the relative sector on the diskette of the source (where the data is coming from) range's 1st sector. Next, it will ask for the same data for the destination (where the data is going to) range's 1st sector. Lastly, it will ask the number of sectors to be copied. The copy is then done. Destination sectors are each assigned the read protection status of the corresponding source sector.
CDD - Copy Disk Data. This function differs from CDS in that any string of diskette bytes may be copied. SUPERZAP will ask for the drive number and the number of the relative sector on the diskette of the sector containing the source range's 1st byte and then ask for that byte's offset within the sector. It will ask for the same information for the destination range's 1st byte. Lastly, it will ask for the number of bytes (65535 is the maximum allowed) to be copied. The copy is then done. The read protection status of the destination sectors is not changed.
DPWE - Display PassWord Encode. SUPERZAP will ask for the password, encode it and display the resulting encode in hexadecimal as it would appear in a directory FPDE.
DNTH - Display Name/Type hashcode: SUPERZAP will ask first for the filename and next for the type (name extension). It will then hash them and display the resulting hashcode in hexadecimal as it would appear in the directory HIT sector.
EXIT - End SUPERZAP and exit to 440DH (DOS READY).
Since ZDS, CDS and CDD change diskette data, the user is first asked if he/she is sure this function is wanted, just in case the wrong function was keyed.
For CDS and CDD, the copy normally proceeds in ascending byte order for both the source and destination. However, if the highest source byte is within the destination range, the copy is in descending byte order to avoid destructive overlap.
All disk I/O's are done through the normal DOS sector I/O routines. Thus, if an error occurs, system option AM and AW I/O try counts are in effect.
For VDS, ZDS, CDS and CDD, if a disk I/O error results, the operator will be offered the choice of retrying, skipping the sector or terminating the function. In many cases, repeated retrying will eventually work. If the error sector was a source sector, skip will cause the associated destination bytes to receive whatever happens to be in the source's buffer; this should be no problem as the user is faced with a reclaim job anyway.
When SUPERZAP is waiting for a numeric value, keying an X as the value will cause SUPERZAP to terminate the function and return to the menu. If SUPERZAP is waiting for a filespec, a null parameter will terminate the function.
When any of DD, DM, DFS, DTS or DMDB is suffixed with ',P', the sectors or memory pages will be printed as well as displayed. For DD,P, DFS,P or DTS,P, the user will be asked for the number of sectors to be printed. For DM,P or DMDB,P the user will be asked for the number of bytes. If the printer is not ready or drops ready, SUPERZAP will loop waiting on it without operator notification. Pressing the P key will cause printing to pause; press ENTER to continue. Pressing the H key will terminate printing.
6.1.2. Display Mode
For DD, DM, DFS, DTS and DMDB, while a sector or memory page is displayed, SUPERZAP is in the display mode and waits for a display mode command. Except for the F and L commands, the keyed command bytes are not displayed and do not require termination with ENTER; the command is executed as soon as all characters of a display mode command have been keyed. The display mode commands are:
X The current function is terminated and SUPERZAP returns to the menu.
g Redisplay the same sector or memory page.
+ or ; Display the next higher sector or memory page.
- Display the next lower sector or memory page.
J Restart the same function.
R Restart the same function, retaining the 1st parameter unchanged.
SCOPY DD and DTS only. The current sector is to be copied to a specified sector. SUPERZAP will ask for the destination sector's drive number and relative sector number. The destination sector may be the same as the source sector. SUPERZAP will read the destination sector and report its status. Then the source sector's contents are written to the destination sector. SCOPY is useful when a sector is found to have bad parity but, with the exception of a few bytes, is intact; by SCOPYing upon itself, new parity will be generated, and the sector can then be repaired. It is also useful for altering a sector's read protect status.
When SUPERZAP is in the display mode, it has a diskette, file, main memory or memory dump file search capability. The match is on 1 to 4 hexadecimal bytes (without the suffixed H) which are represented by aa,bb,cc,dd. When the search finds a match, the sector or memory block containing the first byte of the match is displayed with a thin vertical blinking cursor to mark its position. That cursor will disappear as soon as a key is depressed; however, the associated 'find' position is remembered in case the search is to be continued. When SUPERZAP is in display mode, the following commands to perform searching may be keyed in, terminated by ENTER.
F,aa,bb,cc,ddThe 1 to 4 hexadecimal match bytes are stored, and the search starts at the first byte of the diskette (if DD or DTS mode) or file (if DFS or DMDB mode) or main memory (if DM mode).
F,The same as above except the previously established match bytes are used.
Fxx,aa,bb,cc,ddThe 1 to 4 hexadecimal match bytes are stored, and the search starts within the current sector or block at the xxth relative byte where xx is a 2 digit hexadecimal number without the suffixed H.
Fxx or Fxx,The same as above except the previously established match bytes are used.
FThe search continues at the first byte following the position of the first byte of the last match, and the search uses the previously established match bytes.
L,aa,bb,cc,ddThis command is to be used instead of F,aa,bb,cc,dd when, in DFS mode, the file being searched is standard load module (i.e., SUPERZAP/CMD, LMOFFSET/CMD, etc.) and the user wants SUPERZAP to purge out all except actual object code bytes from the search. This allows a load module file search for two or more bytes without the imbedded loader control information interfering with the match. The resulting display will still contain the loader control information; the user must be prepared to occasionally see this control information imbedded within the matching bytes. Usually, but not always, this control information is 4 bytes long with the first byte being a hexadecimal 01. Except for purging this control information from the match, L,aa,bb,cc,dd works the same as F,aa,bb,cc,dd. The F command may be used to continue an L type search.
L,The same as above except the previously established match bytes are used. MODxx DD, DM, DFS and DTS only. SUPERZAPenters modify mode and positions the cursor to the first hex digit of relative byte xx (value 00H - FFH) of the current page or sector.
EXITEnd SUPERZAP and exit to 402DH (DOS READY).
If an error occurs during the keying in of a display mode command, the partial command is ignored and the sector or block is redisplayed again.
6.1.3. Modify Mode
SUPERZAP enters modify mode upon execution of the display mode command MODxx.
This mode allows the changing of individual bytes within the current disk sector or memory page. Responses while in modify mode are defined as follows:
Hexadecimal digit character- 9 or A - F.The hex digit at the current cursor position is replaced by the new hex digit, and the cursor is advanced one position. If the cursor wraps around, an error will occur if the next character inputted is a hex digit character. Replacements in a main memory page are for real while replacements in a sector are buffered until the sector is written or a 'Q' command cancels the pending update.
Space or right arrow.The cursor is advanced one position.
Left arrow.The cursor is retarded one position.
Shift right arrow.The cursor is advanced 4 positions.
Shift left arrow.The cursor is retarded 4 positions.
Down arrow.The cursor is advanced one display line.
Up arrow.The cursor is retarded one display line.
ZTxxThis sequence is displayed vertically in display7 and must terminate with ENTER. All hex digits from and including the cursor position to and including the 2nd hex digit of relative byte xx are zeroed. The cursor is left positioned to the 1st hex digit following relative byte xx, and if wrap around occurs, the next input char may not be a hex digit.
RTxx,jkThis command is similar to ZTxx except that each byte's 1st digit is replaced with the hex digit j, and each byte's 2nd digit is replaced with the hex digit k.
QFor sector operations only. Modify mode is terminated, any changes in the buffer are discarded, and SUPERZAP returns to display mode.
ENTERFor memory page operations, modify mode is terminated, and SUPERZAP returns to display mode. For sector operations, the operator is asked if he/she really wants to update the sector now. If not, SUPERZAP continues in modify mode. If so, the sector (with any changes) is written back to disk, modify mode is terminated, and SUPERZAP returns to display mode.
When modify mode encounters an error, it will display 'INVALID MODIFICATION MODE CHAR. REPLY '*' TO CONTINUE', Upon receiving * , SUPERZAP returns to modify mode.