home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / program / szap50.arc / ZAP50.DOC < prev    next >
Encoding:
Text File  |  1990-10-31  |  28.3 KB  |  592 lines

  1.                                *--------------*
  2.                                | SuperZap 5.0 |
  3.                                *--------------*
  4.  
  5.      SuperZap is a screen-oriented disk- and file-update utility for CP/M-80.  
  6. Implementing an intuitive, single-keystroke-driven, menu-assisted interface, 
  7. it offers straightforward, no-nonsense access to the contents of any data file 
  8. or disk sector through an array of useful functions.
  9.  
  10.      Utilizing SuperZap's powerful facilities, you can
  11.  
  12.      o  efficiently view and edit the contents of any file or disk sector, 
  13.         even so-called "bad" or corrupted sectors.
  14.  
  15.      o  easily display ("dump") the data contents of any file to the screen, 
  16.         moving either forward or backward in a paged fashion
  17.  
  18.      o  quickly search for any string of ASCII characters or sequence of 
  19.         hexadecimal bytes, either within an individual file or on the entire 
  20.         disk
  21.  
  22.      SuperZap has two main modes of operation, Directory and Sector.  In 
  23. Directory mode, SuperZap will display an alphabetized list of the filenames 
  24. in any CP/M user area.  You can then selectively view any file's contents in 
  25. either a paged (Type submode) or sector (Edit submode) fashion.  Furthermore, 
  26. while in Edit submode, you can freely modify the contents of any file, in 
  27. either hexadecimal or ASCII format, and optionally write the changes back to 
  28. disk.
  29.  
  30.      In Sector mode, SuperZap will display, in both hexadecimal and ASCII 
  31. format, the contents of any CP/M sector (128 bytes) on any disk whose format 
  32. is recognized by your computer's BIOS.  SuperZap will read and write sectors 
  33. to and from the disk using BIOS functions directly, thus bypassing the BDOS' 
  34. safeguards and restrictions.  In this way, you can freely modify the contents 
  35. even of sectors that cause normal CP/M disk operations to fail because of a 
  36. BDOS error condition.  You can thereby attempt repair of "bad" sectors whose 
  37. control information (e.g., CRC data) has somehow been corrupted, recovering 
  38. valuable data that would otherwise be lost.
  39.  
  40.      To facilitate the repair of damaged sectors (and as a safety feature 
  41. during sector editing), SuperZap provides a handy "clipboard" to which you 
  42. can copy the contents of any file or disk sector, then transfer these contents 
  43. to any other file or disk sector on either the current or another disk.  Thus, 
  44. you might be able restore a damaged or "blown" sector simply by replacing its 
  45. invalid data with sector data from a reliable source.
  46.  
  47.  
  48. SYSTEM REQUIREMENTS
  49. -------------------
  50.  
  51.      SuperZap is written in optimized Z80 Assembler and is designed to run 
  52. under either CP/M 2.2 or CP/M 3 ("Plus") on any compatible computer that 
  53. employs or emulates a Zilog Z80 CPU.
  54.  
  55.      SuperZap requires a terminal that supplies a video display area of at 
  56. least 80 columns by 24 lines.  To install SuperZap for your CP/M computer, you 
  57. will need to consult a detailed listing of your terminal's screen-control 
  58. codes for the following functions:
  59.  
  60.      cursor left      \
  61.      cursor right      \
  62.      cursor up          \
  63.      cursor down         >  (must all be single characters)
  64.      tab                /
  65.      escape            /
  66.      del              /
  67.  
  68.      clear screen               \
  69.      clear to end of line        \
  70.      inverse video                \
  71.      normal video                  \
  72.      highlight on                   \
  73.      highlight off                   >  (can each be multiple characters,
  74.      blinking on                    /    e.g., escape sequences)
  75.      blinking off                  /
  76.      cursor on                    /
  77.      cursor off                  /
  78.      direct cursor addressing   /
  79.  
  80. You will then need to edit SuperZap's source code, inserting these terminal- 
  81. specific codes in their proper places by using your favorite text processor.  
  82. Note that if certain of the multiple-character sequences are not available on 
  83. your terminal, you can substitute one of the others (e.g., "highlight on" for 
  84. "blinking on") or deactivate them by using a zero (null string).  Finally, 
  85. you will have to assemble the complete program with a Z80 macro assembler, 
  86. either Microsoft's Macro-80 ("M80") or the popular public-domain Z80MR.
  87.  
  88.      For convenience of installation, along with the main source-code file 
  89. ZAP50.MAC, a separate, shorter file containing all the terminal-specific 
  90. parameters is included here in the correct format for each of these macro 
  91. assemblers:  ZAP.MAC for Macro-80 and ZAP.AZM for Z80MR.  (In fact, Z80MR 
  92. itself is also supplied!)  Printing out either one of these files as a first 
  93. step will make the overall installation task somewhat easier, besides 
  94. acquainting you with some of the long development history of this program.
  95.  
  96.  
  97.      Installation with Macro-80
  98.      ==========================
  99.  
  100.      Assembling SuperZap is a two-step operation:
  101.  
  102.      1. Generate a relocatable (.REL) file from the source code; a typical 
  103.         command line for Macro-80 is
  104.  
  105.           M80 =ZAP/M
  106.  
  107.         where the (optional) /M switch specifies that data-storage areas should 
  108.         autoMatically be initialized (i.e., filled with zeros).
  109.  
  110.      2. Link the .REL file into executable object code; a typical command line 
  111.         for Link-80 is
  112.  
  113.           L80 ZAP,ZAP/N/E
  114.  
  115.         where the /N switch Names the object-code (default is .COM) file and 
  116.         the /E switch instructs Link-80 to Exit back to CP/M upon completion.
  117.  
  118.  
  119.      Installation with Z80MR
  120.      =======================
  121.  
  122.      Assembling SuperZap is a two-step operation:
  123.  
  124.      1. Generate a hexadecimal (.HEX) machine-code file from the source code; 
  125.         a typical command line for Z80MR is
  126.  
  127.           Z80MR ZAP.AAZ
  128.                     ^^^
  129.                     |||
  130.                     ||+--- destination drive for the listing (.PRN) file
  131.                     ||        (i.e., A thru P, X = console, Z = no file)
  132.                     |+---- destination drive for the .HEX file
  133.                     +----- source drive for the .AZM file
  134.  
  135.      2. Load the resulting .HEX file into a command (.COM) file; a typical 
  136.         command line for LOAD.COM (the standard CP/M object-code generator)
  137.         is
  138.  
  139.           LOAD ZAP
  140.  
  141.  
  142. RUNNING SuperZap
  143. ----------------
  144.  
  145.      SuperZap can be invoked from the CP/M command line in several ways (each 
  146. is terminated by pressing RETURN or ENTER).  In the simplest case of typing 
  147. only the program's name,
  148.  
  149.           ZAP
  150.  
  151. will start up SuperZap in Directory mode in the current user area on the 
  152. current drive, or
  153.  
  154.           ZAP d:
  155.  
  156. will start up SuperZap in Directory mode on the specified drive.
  157.  
  158.           ZAP [d:]afn
  159.  
  160. will start up SuperZap in Directory mode on the optionally specified drive, 
  161. but additionally specifying an ambiguous filename ("afn"), e.g., "*.COM", will 
  162. cause SuperZap to apply a mask to the directory list, such that only those 
  163. filenames which satisfy the ambiguity will be displayed.  Being even more 
  164. specific,
  165.  
  166.           ZAP [d:]ufn
  167.  
  168. will start up SuperZap in Edit submode on the particular file specified by the 
  169. unambiguous filename ("ufn") on the optionally specified or current drive.  
  170. Finally,
  171.  
  172.           ZAP [d:]DSK:
  173.  
  174. will start up SuperZap in Sector mode on the optionally specified drive; the 
  175. first sector in the CP/M directory area will immediately be displayed.
  176.  
  177.  
  178. DIRECTORY MODE
  179. --------------
  180.  
  181.      Upon entering Directory mode, the following menu will appear at the top 
  182. of the screen:
  183.  
  184. ^?  Cursor left       N  Next directory page           D  Change Drive
  185. ^?  Cursor right      P  Previous directory page       S  Select track/Sector
  186. ^?  Cursor up         M  Set directory Mask            E  Edit file
  187. ^?  Cursor down       U  Change User number            T  Type file
  188. TAB Next file            (current:  0)                 Z  Exit SuperZap
  189.  
  190. followed by an alphabetized listing of the first 32 filenames in the CP/M 
  191. directory, with a header showing the current directory mask in use.  The 
  192. cursor will now be positioned next to the first filename in the list.
  193.  
  194.      Use the left, right, up, and down cursor/arrow keys (as installed) to 
  195. move quickly from one filename to another; hit the TAB key to move through the 
  196. filenames in alphabetical order; or hit RETURN to jump to the first filename 
  197. on the next line (cycling back to the top).
  198.  
  199.      If there are more than 32 filenames in the CP/M directory, only the first 
  200. block ("page") of the directory will be displayed.  Hit 'N' to view the next 
  201. directory page, or hit 'P' to view the previous page.
  202.  
  203.      Hit 'M' to change the current mask that SuperZap is applying to the 
  204. directory list.  The following menu will appear at the top of the screen:
  205.  
  206. ^?  Cursor left          ^V  Insert on/off            TAB Toggle name/type
  207. ^?  Cursor right         DEL Delete character         ESC Use current mask
  208.  
  209. followed by an editable display of the current mask:
  210.  
  211.               File name ==> ???????? <=
  212.  
  213.               File type ==> ??? <=
  214.  
  215. Use the left and right cursor/arrow keys (as installed) to move about the 
  216. field of the ambiguous file name or type (switching to the next field in a 
  217. circular fashion); hit the TAB key to toggle between these two fields.  Use 
  218. the DEL key to delete characters and close up the space; hit '^V' (CTRL-V) to 
  219. toggle insert on and off for changing or adding characters.  Type an asterisk 
  220. ('*') to fill from the cursor position to the end of the field with wildcards 
  221. ('?') and switch immediately to the other field.  Hit the spacebar to space- 
  222. fill ("blank") from the cursor position to the end of the field and switch 
  223. immediately to the other field.  While in the file-name field, type a period 
  224. ('.') to blank to the end of the field and switch immediately to the file-type 
  225. field.  When you are done, press RETURN to enter a new mask and return to 
  226. Directory mode; or hit ESC to revert to the current mask.
  227.  
  228.      Back in Directory mode, hit 'U' to change to a new CP/M user area; the 
  229. following prompt will appear:
  230.  
  231.                  Enter hex user number or press ESC ==>
  232.  
  233. Type a valid hexadecimal digit (0,1,...E,F) to change to the corresponding 
  234. user area 0 through 15 and view a new directory list, or hit ESC to abort the 
  235. numerical selection and return to the current list (the current user number is 
  236. shown in the menu panel).
  237.  
  238.      Hit 'D' to select a new drive; the following prompt will appear:
  239.  
  240.                     Enter drive letter or press ESC ==>
  241.  
  242. Type a valid drive letter to enter Directory mode on the specified drive, or 
  243. hit ESC to abort the selection and return to the current directory list.
  244.  
  245.      Hit 'S' to enter Sector mode on the current drive (as described below).
  246.  
  247.      Hit 'E' to enter Edit submode, or hit 'T' to enter Type submode, on the 
  248. file next to whose name the cursor is positioned (as described below).
  249.  
  250.      Finally, hit 'Z' to end your SuperZap session and exit back to the CP/M 
  251. prompt.
  252.  
  253.  
  254. SECTOR MODE
  255. -----------
  256.  
  257.      Upon entering Sector mode, the following menu will appear at the top of 
  258. the screen:
  259.  
  260. N  Next sector                T  Select Track          A  Find ASCII string
  261. P  Previous sector            S  Select Sector         H  Find Hex sequence
  262. I  Next track                 B  Select Block          L  Return to file List
  263. O  Previous track             D  Select Drive          Z  Exit from SuperZap
  264. C  Clipboard operations
  265.    Clipboard :- Empty                                  E  Edit sector
  266.  
  267. followed by a display, in both hexadecimal and ASCII format, of the contents 
  268. of the first CP/M sector (128 bytes) in the directory area of the current 
  269. disk.  Any ASCII characters with their high (eighth) bit set will be shown in 
  270. inverse video, for contrast.  Heading this display is a listing of the track, 
  271. sector, and block numbers (in hexadecimal) for the current disk sector, along 
  272. with the current drive designation:
  273.  
  274.       Current Track    Current Sector     Current Block      Current Drive
  275.            0001             0000               0000                A:
  276.  
  277. Offset    0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F   -----ASCII------
  278. 000000   00 43 4F 50  59 20 20 20  20 43 4F 4D  00 00 00 1E  |.COPY    COM....|
  279. 000010   02 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|
  280. 000020   00 44 20 20  20 20 20 20  20 43 4F 4D  00 00 00 17  |.D       COM....|
  281. 000030   03 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|
  282. 000040   00 44 41 20  20 20 20 20  20 43 4F 4D  00 00 00 0F  |.DA      COM....|
  283. 000050   04 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|
  284. 000060   00 44 44 54  5A 20 20 20  20 43 4F 4D  00 00 00 36  |.DDTZ    COM...6|
  285. 000070   05 06 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|
  286.  
  287. where "offset" indicates the relative location of each byte within the current 
  288. sector.  The cursor will now be positioned after a prompt to select the next 
  289. operation from the menu:
  290.  
  291.                                Select option ==>
  292.  
  293.      Hit 'N' to view the next disk sector, or hit 'P' to view the previous 
  294. sector (in a circular fashion).
  295.  
  296.      Hit 'I' to move to the next disk track (the sector number remains the 
  297. same), or hit 'O' to move to the previous track (in a circular fashion).
  298.  
  299.      Hit 'T', 'S', or 'B' to select a specified track, sector, or block 
  300. number, respectively, for sector display.  Enter the number in hexadecimal; 
  301. use the backspace key for corrections.  When you are done, press RETURN; or 
  302. hit ESC to abort the numerical selection and return to the current sector 
  303. display.
  304.  
  305.      Hit 'D' to enter Sector mode on a specified drive; type a valid drive 
  306. letter, or hit ESC to abort the selection and return to the current sector 
  307. display.
  308.  
  309.  
  310.      Searching the Disk
  311.      ==================
  312.  
  313.      Hit 'A' to find a specified string of ASCII characters on the disk, 
  314. starting from the current sector.  At the prompt "Find: ", enter up to 20 
  315. ASCII characters (including TABs); use the backspace or left cursor/arrow key 
  316. to move backward in the string (skipping over but not deleting characters), 
  317. and use the DEL key to delete characters and close up the space.  When you are 
  318. done, press RETURN to start searching for an ASCII string made up of all the 
  319. characters up to the cursor position; or hit ESC to abort the search operation 
  320. and return to the current sector display.  SuperZap will scan the disk, sector 
  321. by sector, stopping when it finds an occurrence of the specified string; a 
  322. flashing pointer '->' will indicate the string's beginning location within the 
  323. ASCII field of the sector display, and you will then be prompted whether to 
  324. continue searching for the next occurrence.  Hit 'Y' to continue, or hit 'N' 
  325. to stop the search operation and return to Sector mode on the sector within 
  326. which the string was just found.
  327.  
  328.      While entering an ASCII string to find, you can also recover a previously 
  329. typed string by using the right cursor/arrow key; the previous string will 
  330. reappear, character by character, facilitating repetitive searches on the same 
  331. string or variations thereof.
  332.  
  333.      Hit 'H' to find a specified sequence of hexadecimal bytes on the disk, 
  334. starting from the current sector.  At the prompt "Find: ", enter up to 20 
  335. bytes in hexadecimal digits (0,1,...E,F); use the backspace key for correc- 
  336. tions.  When you are done, press RETURN to start the search operation, or hit 
  337. ESC to abort the search and return to the current sector display.  SuperZap 
  338. will scan the disk, sector by sector, stopping when it finds an occurrence of 
  339. the specified sequence; a flashing pointer '->' will indicate the sequence's 
  340. beginning location within the hexadecimal field of the sector display, and you 
  341. will be prompted whether to continue searching for the next occurrence.  Hit 
  342. 'Y' to continue, or hit 'N' to stop the search operation and return to Sector 
  343. mode on the sector within which the sequence was just found.  If the specified 
  344. sequence is not found anywhere on the disk, SuperZap will redisplay the first 
  345. sector in the CP/M directory area.
  346.  
  347.      Striking any key during an ongoing search operation will interrupt 
  348. SuperZap's progress, and you then will be prompted to hit another key to 
  349. return to Sector mode at the point where the first keystroke was detected.
  350.  
  351.      Back in Sector mode, hit 'E' to enter Edit submode on the current disk 
  352. sector (as described below).
  353.  
  354.      Finally, hit 'L' to return to Directory mode on the current drive; or hit 
  355. 'Z' to end your SuperZap session and exit back to the CP/M prompt.
  356.  
  357.  
  358.      Editing a Disk Sector
  359.      =====================
  360.  
  361.      Upon entering Edit submode from Sector mode, the following menu will 
  362. appear at the top of the screen:
  363.  
  364. ^?  Cursor left                         CR  New line
  365. ^?  Cursor right                        TAB Toggle hex/ASCII field
  366. ^?  Cursor up                           ^W  Write changes to disk
  367. ^?  Cursor down                         ^Q  Quit and cancel changes
  368.  
  369. followed by the same header and sector display as before, but now with the 
  370. cursor positioned on the first hexadecimal byte in the current sector.
  371.  
  372.      Use the left, right, up, and down cursor/arrow keys (as installed) to 
  373. move around within this field; hit the TAB key to toggle between the hexa- 
  374. decimal and ASCII fields; or hit RETURN to jump to the beginning of the next 
  375. line in either the hexadecimal or ASCII field (cycling back to the top).
  376.  
  377.      While within the hexadecimal field, typing any valid hexadecimal digit 
  378. (0,1,...E,F) will immediately change the value of the current byte and advance 
  379. the cursor.  While within the ASCII field, typing any valid ASCII key will 
  380. immediately replace the current character and advance the cursor.  Note that 
  381. the corresponding byte or character in the opposite field will also change 
  382. immediately.  Illegal keystrokes in either field will simply generate a beep.
  383.  
  384.      Finally, hit '^W' (CTRL-W) to write the current sector back to the disk, 
  385. along with any hexadecimal or ASCII changes you might have made while in Edit 
  386. submode, and return to Sector mode on the freshly edited sector; or hit '^Q' 
  387. (CTRL-Q) to discard any changes and exit Edit submode back to the current 
  388. sector display.
  389.  
  390.      Because SuperZap reads and writes disk sectors by direct BIOS calls, 
  391. bypassing the BDOS' disk functions, you can view and edit even "bad" sectors 
  392. that would otherwise be unreadable from CP/M.  Oftentimes, a "bad" sector can 
  393. be made normally readable by simply writing it back to the disk, thereby 
  394. recovering its data contents for subsequent file operations.  You'll be glad 
  395. to have SuperZap's scalpel-like precision at your disposal if and when the 
  396. time comes for such delicate "disk surgery."
  397.  
  398.  
  399.      Clipboard Operations
  400.      ====================
  401.  
  402.      As an added safety feature, you may find it useful first to copy the 
  403. contents of the current sector to the clipboard before entering Edit submode.  
  404. Hit 'C' to activate the clipboard manager; the following menu will appear at 
  405. the top of the screen:
  406.  
  407.  C  Copy current sector to clipboard
  408.  X  Exchange current sector with clipboard
  409. ESC Return to sector display
  410.  
  411. followed by a header showing the status of both the current sector and the 
  412. clipboard, by drive designation, track, and sector number (in hexadecimal), 
  413. along with the contents (if any) of the clipboard in the same format as for a 
  414. sector display:
  415.  
  416. Current   :- Drive A: Track 0001 Sector 0000
  417. Clipboard :- Empty
  418.  
  419.      At the option prompt, hit 'C' again to copy the contents of the current 
  420. sector to the clipboard and immediately return to Sector mode.  The menu panel 
  421. will now be updated to show the current contents of the clipboard, by drive 
  422. designation, track, and sector number (in hexadecimal).
  423.  
  424.      Hit 'X' to exchange ("swap") the current sector with the clipboard.  
  425. SuperZap will actually write the contents of the clipboard (it must not be 
  426. empty) to the current disk sector, copy the previous sector contents to the 
  427. clipboard, and return you to Sector mode with the newly exchanged contents 
  428. displayed.  Besides allowing you to restore the original contents of a disk 
  429. sector even after editing it, this option also enables you to copy the con- 
  430. tents of one disk sector to any other, whether on the same or a different 
  431. drive.
  432.  
  433.      Hit ESC to return to Sector mode without performing any clipboard 
  434. operation.
  435.  
  436.      Back in Sector mode, hit 'L' to return to Directory mode on the current 
  437. disk; or hit 'Z' to end your SuperZap session and exit back to the CP/M prompt.
  438.  
  439.  
  440.      Editing a File Sector
  441.      =====================
  442.  
  443.      Back in Directory mode, select a file to edit by positioning the cursor 
  444. next to its name in the file list, and then hit 'E'.  The following menu will 
  445. appear at the top of the screen:
  446.  
  447. N  Next sector                T  Top of file             L  Return to file List
  448. P  Previous sector            B  Bottom of file          Z  Exit from SuperZap
  449. S  Select sector              A  Find ASCII string
  450. C  Clipboard operations       H  Find Hex sequence       E  Edit sector
  451.    Clipboard :- Empty
  452.  
  453. followed by a display, in both hexadecimal and ASCII format, of the contents 
  454. of the first CP/M sector (128 bytes) of the specified file.  Any ASCII char- 
  455. acters with their high (eighth) bit set will be shown in inverse video, for 
  456. contrast.  Heading this sector display is a listing of the current drive and 
  457. filename, the access privilege (R/W = read/write, R/O = read/only), the 
  458. current sector number (in hexadecimal), and the load address (starting at 
  459. 0100H for a .COM file) or file offset (starting at 0000H for all others):
  460.  
  461.    File Name    Access             Current Sector     Load Address
  462. A:ZAP     .COM   R/W                    0000             000100
  463.  
  464. Offset    0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F   -----ASCII------
  465. 000100   C3 17 02 5A  33 45 4E 56  01 1A 01 18  06 1B 42 30  |C..Z3ENV......B0|
  466. 000110   1B 42 31 06  1B 43 30 1B  43 31 03 1B  42 31 03 1B  |.B1..C0.C1..B1..|
  467. 000120   43 31 06 1B  42 30 1B 42  32 06 1B 43  30 1B 43 32  |C1..B0.B2..C0.C2|
  468. 000130   03 1B 42 34  03 1B 43 34  02 1B 3D 01  20 20 01 80  |..B4..C4..=.  ..|
  469. 000140   3E 0A 0D 0D  8D EA 2E 00  21 53 75 70  65 72 5A 61  |>....j..!SuperZa|
  470. 000150   70 20 35 2E  30 00 00 00  00 FF 00 00  00 00 00 00  |p 5.0...........|
  471. 000160   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|
  472. 000170   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 3F  |...............?|
  473.  
  474. where "offset" indicates the relative location of each byte within the current 
  475. file.  The cursor will be now positioned after a prompt to select the next 
  476. operation from the menu:
  477.  
  478.                                Select option ==>
  479.  
  480.      Hit 'N' to view the next file sector, or hit 'P' to view the previous 
  481. sector.
  482.  
  483.      Hit 'S' to select a specified sector number for display.  Enter the 
  484. number in hexadecimal; use the backspace key for corrections.  When you are 
  485. done, press RETURN; or hit ESC to abort the numerical selection and return to 
  486. the current sector display.
  487.  
  488.      Hit 'T' to jump to the top of the file, or hit 'B' to jump to the bottom 
  489. ("end of file").
  490.  
  491.      Hit 'A' to find a specified string of ASCII characters within the file, 
  492. or hit 'H' to find a specified sequence of hexadecimal bytes.  SuperZap will 
  493. operate exactly the same as when searching the disk from Sector mode, except 
  494. that now the search's range is limited to the current file.  If SuperZap 
  495. reaches the end of the file without finding an occurrence of the specified 
  496. string or sequence, you will be prompted to hit 'T' to redisplay the first 
  497. sector ("top") of the file; hitting any other key will cause SuperZap to 
  498. display the last sector ("bottom") of the file.
  499.  
  500.      Hit 'E' to enter Edit submode on the current file sector, but only if the 
  501. access privilege is read/write (R/W).  SuperZap will operate exactly the same 
  502. as when editing a disk sector, except that now file reads and writes are 
  503. through normal BDOS functions, and so SuperZap can be thwarted if it happens 
  504. to encounter a "bad" sector.  In such a circumstance, you will need to note 
  505. the precise number of the troublesome sector and then access the file data 
  506. indirectly through Sector mode, specifying its CP/M block number.
  507.  
  508.      Hit 'C' to activate the clipboard manager, exactly as in Sector mode.  
  509. Upon returning to Edit submode, the menu panel will be updated to show the 
  510. current contents of the clipboard, now by drive designation, filename, and 
  511. sector number (in hexadecimal).
  512.  
  513.      Finally, hit 'L' to return to Directory mode on the current disk; or hit 
  514. 'Z' to end your SuperZap session and exit back to the CP/M prompt.
  515.  
  516.  
  517.      Typing a File
  518.      =============
  519.  
  520.      Back in Directory mode, select a file to type by positioning the cursor 
  521. next to its name in the file list, and then hit 'T'.  The following menu will 
  522. appear at the top of the screen:
  523.  
  524. N  Next page              F  Forward paging          S  Select Sector
  525. P  Previous page          B  Backward paging         L  Return to file List
  526. G  Go to page No.         T  Top of file             Z  Exit from SuperZap
  527.  
  528. followed by a display of the first 16 lines ("page") of the file's contents.  
  529. As in Sector mode, any ASCII characters with their high (eighth) bit set will 
  530. be shown in inverse video, for contrast.  Heading this page display is a 
  531. listing of the drive designation and filename, the page number (in decimal), 
  532. and the current ranges of sectors (in hexadecimal) and lines (in decimal):
  533.  
  534. File:  A:ZAP     .MAC
  535. Page 0001                 Sectors 0000-0002                Lines 0001-0016
  536.         TITLE   SuperZap - CP/M Disk Utility
  537.  
  538. ;-----------------------------------------------------------------------------
  539. ;
  540. ;       SuperZap - A screen-oriented disk editor for CP/M-80
  541. ;
  542. ;       Usage:
  543. ;               ZAP             start in full directory of current drive/user
  544. ;               ZAP [d:]        start in full directory on selected drive
  545. ;               ZAP [d:]afn     start with directory mask on selected drive
  546. ;               ZAP [d:]ufn     start in file-relative view/edit mode
  547. ;               ZAP [d:]DSK:    start in sector-relative view/edit mode
  548. ;
  549. ;       Created by:
  550. ;               W.M. Davidson & H.J. Sheldrake
  551. ;               18 Dean Park Cr.
  552.  
  553.      For .COM files, a "line" consists simply of 79 consecutive characters, 
  554. displayed without format; thus, typing a .COM file amounts to a screen dump of 
  555. its contents.  For all other types of files, SuperZap will expand tabs and 
  556. break lines at a carriage return (including any special end-of-line markers, 
  557. as installed), so that most text files will appear as normal.
  558.  
  559.      SuperZap's Type submode is provided mostly for quick scanning of a file's 
  560. contents, to locate any ASCII strings of interest or other embedded patterns.  
  561. The particular points of interest can then be noted by sector number for 
  562. closer scrutiny in Edit submode.
  563.  
  564.      Hit 'N' to view the next page of the file, or hit 'P' to view the 
  565. previous page.
  566.  
  567.      Hit 'F' to page forward rapidly through the file without viewing the 
  568. contents of each page; hit any key to halt paging at a page, sector, or line 
  569. number shown in the running counters.  Likewise, hit 'B' to page rapidly 
  570. backward through the file.
  571.  
  572.      Hit 'G' to go to and view a specified page number.  Enter the number in 
  573. decimal; use the backspace key for corrections.  When you are done, press 
  574. RETURN; or hit ESC to abort the numerical selection and return to the current 
  575. page display.  If it has not already done so, SuperZap first will page forward 
  576. through the entire file to establish a "queue," and then display the specified 
  577. page.  (Unlike with 'F' and 'B', this paging operation is not interruptible.)
  578.  
  579.      Hit 'S' to select a specified sector number for display within the paged 
  580. format.  Enter the number in hexadecimal; use the backspace key for correc- 
  581. tions.  When you are done, press RETURN; or hit ESC to abort the numerical 
  582. selection and return to the current page display.  If it has not already done 
  583. so, SuperZap will first page forward through the entire file to establish a 
  584. "queue," and then display the page containing the specified sector.  If this 
  585. happens to fall on a page boundary, you may have to page forward or backward 
  586. to see the rest of the sector's contents.
  587.  
  588.      Hit 'T' to redisplay the first page ("top") of the file.
  589.  
  590.      Finally, hit 'L' to return to Directory mode, or hit 'Z' to end your 
  591. SuperZap session and exit back to the CP/M prompt.
  592.