IMD 1.16: 28/05/2007 17:09:29 -FOG/UTL042         -FOG/UTL042/UTL#042DOC*+EDFILE COMVEDFILE DOC !"#$%FUNCTDD COM&NSWP205 COMVNSWP205 DOC` NSWP205 UPD TABSET COM 'TABSET DOC()/UTL#042CRC, NSWP - A disk maintenance utility. Dave Rand 10232 - 160 Street Edmonton, Alberta Canada T5P 3E9  - 1 - NSWP 2 - A disk maintenance utility I N D E X Page Introduction ........................ 3 Overview of NSWP ............... 4 Invoking NSWP .................. 5 Single file commands ...  ............. 6 Help ........................... 7 Forward and Backward ........... 7 Exiting ........................ 8 Finding a file ................. 8 Viewing and Printing ........... 8 Deleting a file .......it replaces over 100K of utilities! NSWP is written entirely in assembly language, and will run on any CP/M 2.x, 3.x or MP/M based system with no changes. Since it is coded in 8080 assembler, any 8080, 8085 or Z80 compatible processor will wo......... 8 Copying ........................ 9 Renaming ....................... 9 The Space command .............. 11 The Log command ................ 11 Introduction to Multifile Commands .. 12 The Tag command ...........rk. Note that this program WILL NOT run on CP/M 1.4. When NSWP was conceived, the dominant file utility was SWEEP, and thus NSWP is syntax compatible with SWEEP, but with many extensions. This allows you to directly rename NSWP to ..... 12 Wildcard tagging ............... 13 The Untag command .............. 13 The Mass copy command .......... 13 After the mass (Again) ......... 14 Erasing files .................. 14 Squeezing and Unsqueezing files SWEEP, if you so desire, with no retraining period. I hope that you enjoy this program, and use it well. Any problems, or suggestions may be directed to myself at the address on the first page, or on one of the following RCP/Ms: Edmonton . 14 Setting file status ............ 15 Epilogue ............................ 16 Credits ............................. 16 Contributions ....................... 16 - 2 - NSWP RCP/M - (403) 454-6093 (300 or 1200 baud) Stadium RCP/M - (403) 479-3450 (300 baud only) or voice at: (403) 484-4114 Disclaimer and warning While this program has been tested on many systems, I will have no liability or responsi2 - A disk maintenance utility Introduction NSWP is a new disk utility than can replace many of the more common utilities that are used, such as DISK7, PIP, PRINT, PROT, SQ, STAT, SWEEP, TYPE, USQ and others. In only 12K of disk space bilty to the user or any other person or entity with respect to any liability, loss or damage caused, or alledged to be caused directly or indirectly by this program, including, but not limited to, any interruption of service, loss of bus  iness, anticipatory profits or consequential damages resulting from the use of this program. Furthermore, although this program has been placed into the public domain, I retain all copyrights to this program, both in the U.S.A and in Canada, The reference normally will be used in conjunction with the program to answer specific questions regarding NSWP. The tutorial is a broad coverage of all of the functions, and should be read through at least once. The most important tand pursuant to this, this program MAY NOT BE SOLD BY ANY PARTY unless specifically authorized by the author, Dave Rand, in writing, previous to the first copy being sold. As well, this program MAY NOT BE INCLUDED IN ANY OTHER PACKAGE FOR SAhing to remember when using NSWP is that it provides a list of your files in ALPHABETICAL order. Moving around in this list is quite easy, and will soon become second nature. In this documentation, all user input is underlined. As wellLE, even if this program is indicated as being 'in the public domain'. All of the above applies to both the original as well as derived, or modified copies of the original. Any modified copies of this program MUST NOT have the copyright not, when the"current" file is referenced in this documentation, it means the file just to the left of your input. This"current" file is often referred to as the file you are "on". ice violated, changed or altered. Please report any copyright violations to the author, at one of the above telephone numbers. Thank you. - 3 - NSWP 2 - A disk maintenance utility NSWP Overview  - 4 - NSWP 2 - A disk maintenance utility Invoking NSWP To make effective use of NSWP, you must know the various options available to you when you invoke NSWP. Here are some of the options: A>NSWNSWP is a directory and file manipulation program. With it, you can copy, delete, rename, unsqueeze and squeeze files. The documentation following is split into two major sections: A tutorial for the inexperienced, and a reference section. P This format simply loads NSWP, and scans the default drive and user for filenames. Once inside NSWP, you may change to a different drive and/or user, but when you exit you will be returned to the drive/user that you called NSWP from.   A>NSWP *.COM This format loads NSWP and scans the current drive and user for all filenames with the extension '.COM'. Note that NSWP can find system files as well, so no additional information need be given. A>NSWP B:*.COM * The area(s): No files. This display may also occur if you delete all the files out of a given specification. When this occurs, your menu choices are limited to ONLY 'S', 'L' or 'X'. This allows you to see the free Space on a drive, to Log to an presence of the second asterisk indicates to NSWP that you wish to scan all user areas of the indicated disk drive. In this case, all '.COM files on all user areas on drive B. Combinations of the above are acceptable, and you may even log other drive/user, or to eXit. No other choices are valid, nor will they be accepted. - 5 - NSWP 2 - A disk maintenance utility Command Structure There are two primary types of commands in NSWP: those that acto all user areas, and find all files with the specification '*.* *'. Once inside NSWP you are presented with a menu, then a report of which drive and user you are logged to, how much space is taken by the files you have specified, how mt on one file and those that act on many files. We will go through them both. Before doing that though, let's try moving around in NSWP first. To move in NSWP, you must first understand that the files on your selected drive/user will beany files have been found with the specifications given, and how much space is left on the disk. A sample follows: Drive A0: 596K in 36 files. 735K free. A special format of this line shows that you are logged to all user areas: Driv presented to you in a sorted manner. The files are sorted in this order: Filename, File extension, user area: 1. B0: -WORK .001 0K : 2. B0: ARCADD .COM 4K : 3. B0: ARCCOPY .COM 2K : As you can see, the files are B*: 950K in 234 files. 2956K free. From this point, you may execute any of the menu options. A special display occurs if no files are found with the specification you have given, or if there are no files in the given drive/user e numbered for your convenience. You may not directly use these numbers. As you can see, the file size is also shown (rounded to the nearest block size). Note that if you have enabled the reverse video sequence (see Epilog), you may see s  ome of the letters in the filename printed in reverse video. The chart below shows how to decode this information. FFFFFFFF RSA 12345678 /YR |||||||| OSC 4. B0: ARCDEL .COM 2K : As you can see, this looks confusing. OM 2K : B 3. B0: ARCCOPY .COM 2K : B 2. B0: ARCADD .COM 4K : B 1. B0: -WORK .001 0K : X A> Help At any point, you may request the main help menu by pressing '?'. 1. B0: -WORK .001 0K : ? NSWEEP - Version 2.Really, though, it is not. The tags F1-F8 normally are not used, but NSWP allows you set F1-F4 for your own use. The R/O tag means that the file may be read, but not written to. The SYS tag means that the file does not appear in normal DIR listing05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta A - Retag files : Q - Squeeze/Unsqeeze tagged files B - Back one file : R - Rename file(s) C - Copy file : S - Check remaining space D - Delete file : s, and in CP/M 3, MPM and CP/M 86 also means that this file is avaiable to all user areas. The ARC tag means that, if set, the file has been backed up since it was last accessed. Now that you understand how files are presented, we can go th T - Tag file for transfer E - Erase T/U files : U - Untag file F - Find file : V - View file L - Log new disk/user : W - Wildcard tag of files M - Mass file copy : Y - Set file status. P - Print file : ? - Display this helprough a sample session. Remember, user input is underlined. - 6 - NSWP 2 - A disk maintenance utility A>NSWP B: NSWEEP - Version 2.05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton,  X - Exit to CP/M : cr, sp - Forward one file Moving forward and backward As you can see, the two most common commands will be moving forward and backwards through the directory. Either the SPACE bar (), or the RETURN key ( 2. B0: ARCADD .COM 4K : 3. B0: ARCCOPY .COM 2K : 4. B0: ARCDEL .COM 2K : 5. B0: ARCDIR .COM 2K : B 4. B0: ARCDEL .C>) may be used to move forward. To move backwards simply use the 'B' key. Note that all commands in NSWP can be either in upper or lowercase. Internally, lowercase will be converted to uppercase. If you reach the end of the directory with eith  er command, you will be "wrapped around" to the other end automatically. - 7 - NSWP 2 - A disk maintenance utility Exiting To exit, just use the 'X' command as shown above. This will return you to the same le The View command, invoked with a 'V', will type the current file onto the screen unsqueezing the file if required. Note that this command will NOT prevent you from listing ANY type of file, so you must use your own judgement on what can adrive and user area that you invoked NSWP from, regardless of anything you may have done in NSWP. Finding a file Since you may have many hundreds of files selected, you may wish to move rapidly to a particular file. You may do this thnd cannot be listed. At the end of each page on the screen, view will stop, and allow you to abort the viewing with a ^C or a ^X. To get one more line from the file, hit the space bar. To get another page, hit the or RETURN key. Therough the 'F', or FIND command. 1. B0: -WORK .001 0K : F Which file? BASCOM 8. B0: BASCOM .COM 32K : The Find command always starts looking from entry number one. You may use the standard CP/M syntax for wildcarding (eg: to  Print command, invoked with a 'P', will send the current file, with no modifications or paging, to the current LST: device. You may abort the print with a ^C or ^X. All other features of the View command apply. Deleting a file find the first .HEX file, you may use *.HEX), and also note that the Find command will fill all blank spaces with question marks. This makes the search strings 'B*.*', 'B', and 'B??????.' all find the first file beginning with 'B'. As you experim You can delete the current file just by hitting the 'D' key. Before deletion occurs, you will be prompted. 12. B0: CDP1 . 40K : D Delete file? Y 12. B0: DEAD .DAT 100K : - 8 - NSWP 2 - A disk maintenance utilitent, you will find other interesting uses for this command. At this point, you now know how to move through your directory, both rapidly and one step at a time. Let's move on to some more useful commands. Viewing and Printing a fiy If any reply other than 'y' or 'Y' is given, the file is not deleted. If the file is deleted, it is removed from the list and the next file is given the current file's number. If the file is a Read Only file, you will be prompted aga  in: 12. B0: CDP1 . 40K : D Delete file? Y R/O. Delete? Y 12. B0: DEAD .DAT 100K : Copying a file While on any file, you may copy that file to: A) Another name, on the same drive/user B) Another name, on a different drive/user  the user number of the source file. If the filename is followed by a space, then a 'V', the file will be verify read after it is written. NSWP maintains a CRC of the file as it is writing the file, and verifies this CRC. Renaming files C) The same name, on a different drive/user NSWP will prevent you from copying a file to the same drive/user that the source file resides on. Other than that, there are no restrictions on where you wish the file to be. If a file ex The Rename command ('R') may be used to: A) Change the name of one file B) Change the names of many files C) Change the user number of one file D) Change the user number of many files To just change the name of one file, the syntax is ists on the same drive/user that you wish to place the destination file, the existing file is deleted automatically, even if it is Read Only. When NSWP copies a file, all the attributes of the original file are passed on to the destinatisimple: 12. B0: CDP1 . 40K : R New name, or *? CDP2 12. B0: CDP2 . 40K : - 9 - NSWP 2 - A disk maintenance utility You may also change the user number of the file, as follows: 12. B0: CDP1 . 40K on file. Thus, if a file is a SYS, R/O file, NSWP will cause the destination file to be SYS, R/O after the file copy has taken place. 12. B0: CDP1 . 40K : C Copy to (filespec)? C9:BACK.CDP If you wish to preserve the name of the: R New name, or *? B1:CDP2 12. B1: CDP1 . 40K : Note that if all user areas are not specified in the logon of NSWP, the file may not be shown on your list when renaming to another user area. To change a group of files from one  file, you may just enter the destination drive/user part of the filespec (eg. C9: in the preceding example would have copied the file to drive C user 9, retaining the name CDP1). Just entering the drive part of the filespec causes NSWP to retainname to another, you may enter the following command at any file: 9. B0: BASIC .COM 24K : R New name, or *? * Old name? *.HEX New name? *.BAK At this point all files with the extension .HEX will be renamed to the same filename   but with the extension .BAK. You will see a running display on the screen as each file is renamed. Any valid wildcard may be used to select the source files, and the destination files will take one character from the source for each '?' in th The Log command ('L') allows you to change your directory to another drive or user. Additionally, it allows you to re-specify the wildcard mask just like entering the NSWP program from CP/M. As well, the drive system is reset, so again you she name. An asterisk qualifies as filling the remainder of the field with '?'. If the destination file exists, the rename is not made. - 10 - NSWP 2 - A disk mainteould be able to change to a different diskette at this point or to another part of the same diskette. When the Log command is used, the instructions are reprinted for review. 16. B0: DD .COM 4K : L New drive/user/mask? A14:*.HEX nance utility You may also choose to rename a group of files to another user area, optionally changing their names as well: 9. B0: BASIC .COM 24K : R New name, or *? * Old name? *.HEX New name? B1:*.BAK This command  NSWEEP - Version 2.05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta Drive A14: 44K in 2 files. 1118K free. 1. A14:NSWP .HEX 22K: - 11 - NSWP 2 - A disk maintenance utiliwill rename all .HEX files on drive B user 0 to the same filename, but with the extension .BAK, and place the resultant file in user 1. You may want to try this command a few times to get the hang of it, but it is extremely powerful. The Spacety Introduction to Multifile commands Now that all the commands that affect single files have been described, it is time to introduce the concept of Multifile com- mands. These commands are ones that affect as few as one or as many command The Space command ('S') simply asks you for a drive code, then tells you the remaining space on the drive you specify. Before doing the space check, a drive reset is performed, so feel free to change disks. The Log Command  as all of the files on a single disk. To affect these files, though, we must have some way of describing which files need to be affected. CP/M has a way to do this, using "wildcards". This program, on the other hand, uses the concept of a file"tag"  . The Tag command Tagging a file, in its simplest form, can be accomplished just by depressing the 'T' key when the file to be tagged appears. What exactly is a tag? A tagged file is a file in the list of filenames that has an aorm any operation, other than to mark the file for a future"mass" operation. By now the astute reader will notice that I have cleverly skipped over the function of the second number display, the one in parenthesis. This number is the costerisk next to the colon after the name of the file, as shown below. 9. B0: BASIC .COM 24K :* A tagged file is different from an untagged file in that you may now request an operation that deals with several unrelated files (eg., Fmbined size of the tagged files, IN 1K BLOCKS. If you are using a computer system that supports many different disk sizes/formats, or a system with a hard disk attached, you may already know that CP/M can allocate storage only in "BLOCKS", ailes that will not match using only one wildcard). A sample"tag" session is shown: 9. B0: BASIC .COM 24K : T Tagged files = 24K ( 23K). 10. B0: BRUN .COM 16K : T Tagged files = 40K ( 39K). Note that the 'T' command automatind that these "BLOCKS" may be up to 16k in length. This means that NSWP would show a file containing say, 512 bytes in information, as being up to 16k long, depending on your computer. The second number in the tag display shows how much storage thecally performs a "move forward" operation. To the right of the 'Tagged files' message two numbers are displayed. The numbers are the total size in K, of the files you have tagged so far. This is useful if, for example, you are moving  cumulative files would take if they were stored on a single-sided, single-density, 8" diskette. - 12 - NSWP 2 - A disk maintenance utility Wildcard tagging Another way to tag files is the wildcard tag function.files from one size of diskette to another, smaller, size diskette. If the source disk holds 500K, and the destination holds 256K, you can stop the tagging operation when your size is just less than 256K. The tag function in itself does not perf This function accepts a CP/M type wildcard and proceeds to tag all the files that match the wildcard. To invoke this, just hit 'W' and you will be prompted with the message 'Which files? ' Enter any CP/M wildcard, right down to a unique filename,   and if that file exists it will be tagged and displayed. Untagging files If you can tag a file, you must be able to Untag a file as well. 9. B0: BASIC .COM 24K :*U Tagged files = 16K ( 16K). 10. B0: BRUN .COM 16K :*  the same drive and user area as the source. The copy is simply not made. - 13 - NSWP 2 - A disk maintenance utility After the mass After any mass file operation, the tags are "reset" as each file As you can see, the untag function subtracts the current file's size from the total then displays the total of the remain- ing files. The mass copy command Now that we have a number of files "tagged", what do we do with them? Well  is copied. Visually, they change from a '*' to a '#'. The files are logically untagged, and will respond as such. But, since NSWP remembers them, you can automatically retag these files. This is useful if, for example, you need to copy thethe Mass copy function is one of those that acts on many files. Its purpose is to copy the tagged file(s) from one drive/user area to another drive/user area. 12. B0: CDP1 . 40K : M Copy to drive/user? A14: V Copying --> B0: BRUN .C same files to a number of different diskettes or user areas on a drive. To invoke this, use the 'A' command. 12. B0: CDP1 . 40K : A Retagging--> B0: BRUN .COM Tagged files = 16K ( 16K) Erasing files You may want to copOM to A14: with verify Verifying --> file ok. The 'V' is optional, and it indicates that you wish to have the file verified after it is written. As you can see, the files have been sent to drive A, user 14. If you wish the tagged fy a group of files, then delete them from the source disk after the copy has been made. To do this, you can use either the 'C' command to copy, followed by the 'D' command, which is tedious, or a combination of the 'T', 'M', 'A', and the 'E' commandsiles to reside in the same user area as the source files after the copy, do not specify a user area in the Mass command. This will cause NSWP to put the file in the same user area as the source file. NSWP will not allow you to copy a file to. The 'E' command Erases tagged or untagged files at your option, on a global scale. 12. B0: CDP1 . 40K : E Erase Tagged or Untagged files (T/U)? T Do you wish to be prompted (Y/N/A)? N Deleting --> B0: BRUN .COM If you specify U  ntagged files, the untagged files will be erased. You may wish to be prompted before each file is to be deleted, and you can do this via the second question. Squeezing and Unsqueezing files The 'Q' command allows you to Squeeze and ueezing the file will simply be copied to the destination drive/user. If you select 'U' for Unsqueeze, all tagged files will be examined to see if they are squeezed. If they are, they will be unsqueezed, and moved to the destination drive/uUnsqueeze tagged files. This file squeeze program is compatible with the original squeeze/unsqueeze programs written in the 'C' language by Richard Greenlaw. After hitting Q, you will see the prompt: Squeeze, Unsqueeze or Reverse (S/U/R)? Aser. If they are not squeezed, then they are simply copied. If you select 'R' for Reverse, all files that are squeezed will be unsqueezed, and all files that are unsqueezed will be squeezed (if it is worth it), and moved to the desfter answering this skill-testing question, you will be asked which drive/user you wish to place the destination files. The syntax here is the same as for the Move command, except it is permissible to 'Q' the files back to the same drive/user tination drive/user. The most attractive feature of the 'Q' command in general is the ability to Squeeze files ONLY if it is "worth" it. This means that by using NSWP, you can archive data into the absolute minimum amount of space possiblthat they originated. - 14 - NSWP 2 - A disk maintenance utility When 'Q' is invoked, you are asked if you wish to Squeeze, Unsqueeze or Reverse. A carriage return here will return you to the command line oe. The SQ algorithm used in NSWP is better than the one in the original 'C' squeezer, and produces the smallest output file possible with current technology. The file squeezer section was done by Jim Lopushinsky, and is copyrighted separatelyf NSWP. If you select 'S' for Squeeze, all tagged files will be examined to see if it is "worth" squeezing them. Files that exibit ANY space reduction, even if it is only one sector, will be squeezed. If the files is not "worth" sq by him. He also has a public domain standalone squeezer. Setting the tagged files status You may set the attributes of a group of tagged files just like STAT, or PROT. To do this, tag the files and select the 'Y' command. 12. B0  : CDP1 . 40K : Y Which flags (1-4,R,S,A)? R,S Setting ---> B0: BRUN .COM to R/O SYS The flags you may set are the F1-F4 flags, as well as the Read Only, System, and Archive (MP/M, CP/M 3 only) flags. Any flags you do not specifyocation 105H. All seven bytes are currently set to zero. 10BH-111H - Turn reverse video off The first byte in this seqence of seven shows the length of the reverse video off sequence, which follows at location 10DH. All seven bytes are currentl will be reset. To reset all the flags (i.e., Change to R/W, DIR and no "Sysop tag") just enter a single comma or space at the "Which flags" prompt. Note that the flags in the "Which flags" question do not have to be entered with a comma between ty set to zero. Credits My thanks to all who made this program possible and particu- larly to Dave Mccrady for his help in composing the documentation and .HLP files for NSWP. Thanks also goes to Jim Lopushinsky, also of Edmonton,hem, as anything (or nothing at all!) will do. As far as the program is concerned 'RSA', 'R S A', and 'R,S A' are all valid. - 15 - NSWP 2 - A disk maintenance utility Epilogue All the functions of  since without him the SQ section of NSWP might never have been completed! Thanks to the use of his SQ section, NSWP can produce the smallest possible SQ'ed files. Contributions If you like, use and enjoy this program, feel free to sNSWP have now been described. The best way to get more familiar with the program is to actually USE it. I think it will be one of your most frequently used programs. There are several things in this version that you will want to alter: 103end a contribution (suggest $20). This will help me expand this program, and add even more features. I am currently working on a CP/M 86 version, and once that is running, I intend to port it to MSDOS. Suggestions for enhancement are also appreciH This byte controls the screen length used in the 'V'iew command. It is currently set to 23D (17H). 104H-10AH - Turn reverse video on The first byte in this sequence of seven shows the length of the reverse video on sequence, which follows at lated, and you may send them to: Dave Rand 10232 - 160 Street Edmonton, Alberta CANADA T5P 3E9 - 16 -    Notes on NSWP 205 - 04/11/84 ---------------------------- NSWP 204 introduced a bug that would not allow you to copy a file if that file was set to R/O, unless you had a destination that was ALSO R/O! Notes on NSWP 204 - 04/04/84 ----------u find anything else, please drop me a line... Dave Rand 10232 - 160 St. Edmonton, Alberta Canada T5P 3E9 (403) 484-4114 ------------------ NSWP 204 has a few new features! First, limited CPM 3 has been estab- lished, in that if you have BDOS version over 3.0 (which may include MPM), you may now run with ALV banked. NSWP will use the BDOS call to obtain the ALV information. This also applies to the 16 bit version. Before 204, if you attempted to delete a file that was currently tagged, it was not removed from the tagged file size. It is correctly handled in all cases now. NSWP now saves the SP, rather than (SP), in order to support totally non-standard implementations of BDOS and CCP. When using the '?' function, the current disk information, along with the tagged file size. The copy file speed has been further optimized by elimination of a re- dundanklmNSWP is copyright (c) 1983 by Dave Rand 10232-160 Street Edmonton, Alberta (403) 484-4114!9"1;*."6,2,2, 2,2,!], >>?!" ,",Ͷ ͖PDrive :,A+:,<>*+>?=_o&12,: t BDOS call (deleting a file, when we know it ain't there!). NSWP has been modified to better support MPM and MPM86 by doing a rename after a copy operation. This will drop the copy speed slightly, nullify- ing the effect of the above change. If yo !" ,#"*,",,U!;,J}+5#" ,C*,+" ,#b",!",".,"0,1;:,29,* ,#}ˆ No files.͈XʱLSwM*,b͈G!M!~ȸ#ʬ##ß^#V:,_:,_1ͷ*,,K in # files. **,K free.   B BB_XSwDgTUVyPnE8LCM A R#FEWY?wQE *,#",* , M!",M*,|+",M* ,",M Which drive? :AMQM :,GA2,PU**,K remaining on drive A+>:+x2,PM Which fla 2:,>2:, !^#6#p#~Gw" Copy to drive/user? !~M P#͢:C,:9,G::,s:8,G:, Can't copy to same drive and user.M*,b2D,E, >~29, Copy to (filespec)? !~M#"=,ͬ*=,q:] !E,] gs (1-4,R,S,A)? !k, 6#!~M#"=,*=,ͬ#"=,W!\k, Q#D,>,>Ï 1234zzzzRSA Delete file? ͈YM*,͋Mb]2\ >6>_^:e R/O. Delete? ͈Y:e2e\\* ,*~# :\=28,!E,] e!]E, 怶w#( !\j, >ʹ M Squeeze, Unsqueeze or Reverse (S,U,R)? ͈2,Sʉ Uʉ RM>Ï 2C,:,29,ʥ -!b~+F< x29,:C, :,G:8, :9,G::,  Skipping, same drive & user --> ,{ozg))))x#~# x* ,+" ,*, +", Erase Tagged or Untagged files (T/U)? ͈TqUMT>y2 , Do you wish to be prompted (Y/N/A)? ͈MAMNY>|23,!",b~G: ,3 Deleting ---> :3,$< :C,, C  Copying --> W  SQ/USQ --> W  Setting -->  to :C, !k, ~ģ #t !s, ~̺  ~ĺ #‘  ~+#© è 1 2 3 4 R/W R/O SYS ARC :8,A+::, :9,o&   Delete (Y/N/A)? ͈AGY3͘P͋5#* ,#}G+ !",M!",U ~6v#*0,"0,*.,".,*.,K (*0,K).ͧ*,bYB Tagged files = ͧ*,bvB~6#*0,>"0,*.,>"., New dri>:+:,  with CRC.:C,3 m ͺ 6 3 6͘U #* , Ҩ j  --- Aborted ---MD, >~6>29,!E,k, ~ww#” D,!E, >6 !b~  Retagging --> > +Y#* , Ҹ Mve/user/mask? !~M#"=,ͬ:\,:,<=2,::,E:*>E:,2,:] ]!]^ 6?>!\, >ü2,~ʄV#v2, Illegal drive code.Mq:,2:,:,28,~0چ:AچQ҆A28,#~:ȷ*0:'G#~:0602:,x(~# + )~ +## ",͸n *,"!,*,¬ v f *,:,U R ì *,:,Rv Uʬ !.`!*,¬ !D,j, 6>!s,~ £ 6Q#6Q#6Q(!k,# >.+# )%*,͸!D,v%9!.  Not a SQ file."=,  "A,::,͜2:,!\j,6 >%!ͺ 5 _! *A, 9 ERROR - Checksum error in file ssgon  Premature EOF on file... aborted.Mú ͸ :8,G:, :9,G::,ȸ͸!D,j, >2j,!"?,%*,"4,D,<0P,>:R,2R,D,*,+",}#>.} Directory full.M<h!=!o >*6, Ҟ OUT OF MEMORY? !v,w,6>j,  ~29, to Ͳ!m͹G:t2t#* , >. PÍ~ʯ F: ,ʜ?ʨG># œɯ/k,m> ?~#=º::,:9,:,A+ n&}  >:+y*4, *,"4, Destination disk full.M}o|g Find what? !"=,͜!]~ M ~ u6?#m !M",M Tag what? !"=,͜!]~ M !M Tagging --> b> +Yý#* ,  b > +`>.+`*,#. #~#> +K : [*[#y+~+#`>2<,2<,<22,Press ^X to abort, L to advance a line, cr to advance a page. >2;,*,b͸{ v !s*,"!,!. ! *]> ~?#*,b ~29, New name, or *? !"=,!lͯ#~ M ?ʶ#a::,v:9,w*,b͹. P*,* ,#" ,C*,+" ,", M!",M:,28,\2\ >:e:e2e:u2u\::,_:,"!,"ͤuu{suu_ 4:2,<22,:;,O:<,:2,G:͐Lklkuu22,:2,=22,M͐ Gͤʐ́GX!P,Q,6>D,2D, >~ͫ29,*,"!,",D,< Can't open file!M9,_!mE, >2D,ͫD,*,J}R Destination file exists! PM::,bG:9,Š:9,_\_!m >:9,_!\D, >ͫ2D,>?2P,*,D,J}}",ͫD,!mE, >ͫD,!)))))*, P,>D,_:8,_::,_ :,_:9,*,"%,"#,"',j,:s,2s,Ͳ<~:s,w:s,2s,ͲͲ< Destination disk directory full.M!v,w,6>D,< Can't close file!MͲj,j,  <:M,:s,2s,j,*',*#,G x1w#"#,9*#,*%, j,*#, I*%,"#,*,*!, ʇ~#"!,*,"!,", D,º*,",•s*!,*, s=* ,!;;:\=2,:m?>2,!,~ ,6? >:,&xy"py2:,͑L#*<6?>w+͑SB#6 L.|͑|#*l6?nw[͑ʃr#6 |#6…"=, =_.:;<> ì!,!yg)>g>!or$s%# »:,~# *?,O!,~4# >~##~#~  x>9'* ,",+|*,|ȯ|g}o",b#",* ,+}o|g",!",*,",*,*,",ʰڰ*,*,}o|g",ʰ*,#",*, My*,b" ,*,b", ~O##* ,*,F ~W$^"?,  ~#+ _{>F>L_!O! ~#G~>#T)))); NSWEEP - Version 2.05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta $ A - Retag files | Q - Sqwx# |}!",",#",* ,",]/}F*,",#",*,+",|#*,b* ,>*,#",*,b" ,*,b", #s* ,~ʵ F, xҵ:,ʢ?ʮG># ¢ɷ!",,* ,#}!;*,,",, x'  ueeze/Unsqueeze tagged files B - Back one file | R - Rename file(s) C - Copy file | S - Check remaining space D - Delete file | T - Tag file for transfer E - Erase T/U files | U - Untag file F - Find file | V - Vid } y00> +=% ; |1{0+ }0ҟ*.#*.~.vg xʇ|-q#m}o|g:),ʛ)=Ó"*,:,_.*:GxG|g}o ¹Û^)))))#~&o))))o$#:),8ew file L - Log new disk/user | W - Wildcard tag of files M - Mass file copy | Y - Set file status. P - Print file | ? - Display this help X - Exit to CP/M | cr, sp - Forward one file $"V!"X!!9"k A)}>o}}o}}o}#~#>a{_:,_.>:.2),".k&&* ,ͧvk&*=,ͬ!\w=&!\*=,ͬ:, O0O:!v;!>2R!2U!A!"\!*V!s{ Gp#j  A!"^!;!A >*X!"Z!|q A!s#r#A!s#r#*Z!+F 1>*V!*\!a{_USQ section (C) 1983, 1984 by Dave Rand (403) 484-4114!9"k :U! =2U!:T! >==2U!:T!2T!:S!O:R!   !sj O>=2R!yO*X!!##^#Vz y2S!z>8!{/|}sj sj go>2)" *!9"`*1`** *}o>k)")"*"*)2)5)¡!>n%v͆)¯!>n%}2)(|!A)"!)!#45"~6!G+~(!">(<(""#4~]&!)7-T&~6(&G+~ͣ&&T&>ͬ&<ͬ&T&T~%>ͬ&~6ͬ&:)2)ͣ&%:)o&>ͬ&<ͬ&>_)###ͱ&:)ʎ&G:)†&&>2)*)|>ž&*`*¬&ͬ&_)F#^#V:)O{_zW:) &&2)»&y2)}&|:*'':)*)*)G:¼!>(~6(:)2)(ü!:)/">(<(**^#V#N#zJ"#4">n%~**w#s#r#q#")>2)#^#V#N#~#2*{":)G**#͌)ڔ"####}"y2*ð"*)y2* }O|GT]+͵)+:*w#s#r#:*w*)####"):)<2)b":)!`("45"""#"!_(p2*2)Os#r#}' z'>''")")y2)!)4~>'2)!)~w:_(=GN'>n%:*\':*‚$!_(p:*#2*2*#_):)w#*)+2))͵)!")"))!)C+)!)p):)!*k)4!)5:*'*)6:)O}'7zW{_~'A+~+}' '~''s#*J(g2)2)<_)###!'(u'*)>+w+)կͪ))Â*((x!)4#4#4#4(((o&))**4#42)$2(2$G!)4:)x $q'$&,$2(2$q'&$:*( %:*o$!))ͪ)!*)ͪ):)=2*>2*2*$>2*!))͙)ڰ$2*!):*k):*Nw:*/<$G:*$4x2*$!*)ͪ)!):*k)~2*:*$w:*#!))ͪ)#>2*:_(!*4$>2*#~#4ɯGO**w#w#w#q#  )!)w#w#w#w#!))ͪ)!")A)oA)gsI)*)k)")!)4#4#4**Gk)xk)xo$շ#s)}o|g|}##~+~+~H + Ÿ)x ~#ê)x ~+õ)!)k)~2*ü$!)b*2)*)))>k))")!")!)p)~w6#w#w#wp)b*!)b**)*)͆)>n%*`**):)%""*!9"`*1`*!v&*)&!)")*"*#~ ʶ%&#¨%>.&xk)~ %&#%&*)&))*)~&#z%2)2)>2)A)T&A)yxX+G]T~w+r*kb n*x%+"*+",+Hi&)))#"2+!5+<+Aw#¡*!5+".+!<+"0+*,+A#º*!+A**+~w#*!2+5*#5%+*.+A~w#*y24+*0+DM*.+*,+#  :4+=24+*?**.+*0+".+"0+*7&+*.+xH "+!+ "+i`)))#"+A!+6#b+A*++~wn+kbA+~wy+Ҙ+*+!+Aw#Ž+!+5j+#455j+1 Vers: 01-10-84; by: J.C.Kaltwasser & M.J.Mosko, K3RL $=  **͂+}2'++*'&0+!'ͥ(}2'*'&!)*/!*!ͪ*͢*!'!)*"'*'!Z!b(!Z!!*!\8+!)*ʇ!Z*!*!ͪ*͢*!\+!\!!"'*'*"'*'!)*ʶ!"'!*'*! ͘(!i͇+*'!}2'"'2'*"'͹ !\"'*'! (!C)**'! (!O)*ͤ)*'! (!M)*ͤ)=!"'!!͟!\ͺ+|ʅ! ͪ*!*!ͪ*M! ͪ*!"'Ý*'&*ʖ_Ý!}2'!?ͪ**'&|*'&!E*!}2'*'&!g)!x)!}2'*'&*'&***u(}2'!!*'&!E)**'&!)*ͯ)9 !}2'*'&!Q)**'&!)*ͯ)b*'&!H)*t*'&!M)*ʆ*'&!B)*ʛ!"'*'&!Z)*ʷ*'!:*"'*'&!-)**'!)*'!:*"'*'!:*"'*'&!R)* !  *"'*'&!A)*b!*"'*'*':*!E**')"'|b!*':**'!E*"'*'&!O)*~!*"'*'&!S)**'&!C)*ͯ)ʠ]*'&! )**'&!+)*ͯ)*'&!=)*ͯ)!'(*'V)!"'*'*'*=͓ !\@+͢*'*'&|6 *'&}2'*'&}2'!>*'&!g)}2'K !}2'!}2'!>}2'*"'!}2'!}2'*'&*'&**| *}2(͟*(&! )*(&*ͤ)ʨ *(&"(!*()* !!!&*!\+| ! ͪ*!&*!ͪ*M! !è !*!*͓ ͓ !*͓ !*!͢ !*!͢ !1*͓ !E*!͢ !\*!͢ !s*͓ !*!͢ !*!͢ !*͓ !*!͢ !*!͢ !*͓ ! *͓ ͓ !- *͓ !B *!͢ !Z *!͢ !q *͓ ! *!͢ ! ()*M !!!&*!\ͺ+|> ! ͪ*!&*!ͪ*M! !è *X&*()*| !',)!)s !}2'*"'è *W&*()*ʨ !')!)ʢ !}2'*"'*'&|0 *(&! )*(&*ͤ)ʬ *(&"(*U&*()*d *'&|T *'&!)# *'*!͢ ! *͓ ! *͓ ! *͓ ͓ ! *͓ !͢ !!*͓ !͢ !7!*͓ !͢ !i!*͓ !͢ !!*͓ !͢ !!*͓ !͢ !!*͓ !͢ !"*͓ !͢ !U"*͓ !͢ !f"*͓ !͢ !"*͓ ! ͢ !"*͓ ! ͢ !"*͓ &!:*}2'!')!'ͺ)!}2'Q *'!)Q !6}2'!M}2'!')!'ͺ)!}2'a !')!}2'é *V&*()*y é !*()*ʩ !}2'*'&!)*ʩ !}2'!')- *(&}2(!)- *(&u(ͪ*!i*'!i*'(!*'&)ͤ)*(&*'! ͢ !+#*͓ !͢ !G#*͓ !͢ !o#*͓ !͢ !#*͓ !͢ !#*͓ !͢ !#*͓ !͢ !$*͓ ͓ !>$*!'!!*!'+!͢ !V$*͓ !͢ !$*͓ !͢ !$*͓ !$*͓ !͢ !#%*͓ !͢ !f%*͓ !͢ !&)ͯ)**'&*'&!i*'($=*(&! )*(&*ͤ)*(&" (*U&* ()*ʺ *'&!>)ʐ *'&!:*}2'!')!'ͺ)÷ *'!)ʷ !5}2'!M}2'!')!'ͺ) *V&* ()* ͍ !* ()* !}2' !* ()* !)}2(=%*͓ !͢ !%*͓ ͓ !͢ !%*͓ !͢ ! &*͓ !>&*͓ !&*!'!!*!'+!}2(*(&!)ʇ ͓ !(D)!!! ͪ*! ͪ*!9)ʵ ! ͪ*͇*!}2(*(&!Y!(2) !Y*(&(*!(D)!&*! }2!}2(*(&$!i*'*(&**'&*'&*(&3͍*'&! *'&)**n *'"5(*'&!S)*}!(!!*!}20(2'21(2(2'2'!}2(!!!&*!(+!(!(!(!!*!(!".(!(!(!)*(  !!!?ͪ**5("'!)}2'!}22(*2(&!)X!'*2(&!*!2(D)*.(!(!!(!((s*.((!\)*ʦ*(&!))}2(!.(%)X*.((!;)**1(&!))}21(!.(%)! *X*1(&| !'!'D)*.((u(*!.(|2*2(&}2'*}23(!!!@'*!}2'ù**A*}2;(*;(&!i!9((*'&ͤ)}2<(*'&|ʤ*<(&!aV)*<(&!z2)ͤ)ʤ*<(&!ͤ)͇**<(&͇**'&!)*!͇*!}2=(*=(&*'&2) !'*=(&(!9()*!)͇*%)! *X*.((!,)*-!.(%)!}2(X*(&|S!'!'D)!.(%)(*p!.(%)(u(}2 (* (&!A)* (&!F)ͯ)* (&!0)* (&!9)ͯ)ͤ)ʷ!ͪ*!}20(sP* (&!AV)* (&!F2)ͤ)* (&!A:*! }2 (* (&!0:*}2 (!!=(D)!͇**'&|*!'D)!}2'Ì*'&!6)^*'&!}2'!'D)!'%)!}2'Ì*'!)ʌ!}2'!>}2'!'D)!'%)!}2'*'&!M)ʺ*'&!}2'!'D)!'%)*'!)!}2'!>}2'!'D)!'%)!9!9(u(*!9(!A'*'&!'*'&(*(&* (&x)**(&!)*I!'D)!}2(!}2(*'&!)p!ͪ*!}20(sX*0(&|r!"7("9(}2'23(*'&*'&}22(*'&!C(ʹ!}2'!Uͭ|?!)}2'!}24(*4(&*'&2)?!'*4(&(!aV)!'*4(&)!9(!0:*͇*!9(!7:*͇**'&!:*!)*'&!>:*!:">(!>(K)^͓ !O'*!Z*!V'**'! !a'**'Ϳ!d'*!h'*!*!p'**'Ϳ!s'*͓ !v'*!}2@(*@(&!)*@(&*'!ͤ)3! ͪ*!@(D)!(!z2)ͤ)7!'*4(&!'*4(&(!ͤ)*!4(D)!}2'!Zͭ|Y!}2'!Oͭ||͓ !&*!:*"7(!Mͭ|ʙ͓ !'*}2'!Aͭ|ʹ*'!"'*!\ͺ+*3(&*'&)!'*3(&(*2(&N)*ͤ)!3(D)!}23(*3(&*'*!}2@(*@(&!)A*@(&*'!ͤ)!g)ͼ!@(D)͓ !'*!}2@(*@(&!)p!'*!@(D)!'**'!x)*'"'!}2@(*@(&!)V͓ *'*@(&"C(*C(d!'*!}2A(*A(&!)!i*@(&*A(&(3! ͪ*!A(D)!'&)*y!Oͭ*7(*9((ͤ)2!}23(!9(%)y*2(&*'&V)^*2(&*'&:*!}2'g*2(&}2'!}2'!)}2'!2(D)*2(&!V)!Bͭ|ʣ!'ͺ)é!'%)*'*'*!}22(!\ͺ+|*5("'!!!(!*!4'*!ͪ*!}2'*'*!}2A(*A(&!)=!i*@(&*A(&($!A(D)!<ͪ**@(&!}2@(Ñ͓   ''!9!9(!ͤ)*!9(!)Y!9(ͪ*`!.ͪ*͇*!9*"'!}2E(*E(&!2)*'!g)}2G(*'!E*"'*G(&! )*G(&!0}2F(*G(&!7}2F(!*E(&*F(&*!E()!!!*!(*!`(D)!F!(!)*X!}2a(*a(&!O)N! *!a(D)! *Ñ!}2a(*a(&!F!(2)ʑ!F*a(&(*!a(D)No File Specified. Not Found.Bad Record.RECORD = ADDRESS = OFFSET = HelpRead/Edit File Utility Function*! ͪ*͇*!9*"'!}2I(*I(&!2)*'!(ͤ)s*'! g)}2H(*'! E*"'!!I()*H(&!0**I(&!2)ʗ!!I()!0*!!!*!9*ʸ!*!͇*!}2J(*J(&!(/*J(&!:*}2J(!9**J(&)!ͤ)!0s:A - Address to dump B - Dump at beginning C - Continue SearchE - Enter Edit Mode H - This help list M - Expanded Help listO - Set address offsetQ - Quit this program R - Read & dump recordS - Search for string Z - Dump at end of fileCR}2K(*K(&!9)$*K(&!}2K(*K(&ͪ*͇*!9(!)!ͤ)!0}2L(*L(&!9)p*L(&!}2L(*L(&ͪ*!9(!ͤ)!0}2L(*L(&!9)ʯ*L(&!}2L(*L(&ͪ*͇*!9(!ͤ)!0}2M(*M(&!9)*M(&!}2M(*M(&ͪ*͇*! - (+/=) - Adv record(-/_) - Decr record Edit Mode Functions:^E - Toggle data fields^W - Write buffer out ^X - Abort Edit Mode ^J - Cursor Down ^K - Cursor Up ^H - Cursor Left ^L - Cursor Right Expanded HelpRead/Edit FileP(!!*!P(+!P(!(}2O(!P(!͂(!P(*O(&!(!H)*a!O()!}2V(h! }2V(!"X(!"Z(*O(&!}2N(*N(&!V)!P(*N(&(}2W(!0"\(*W(&!9)ʿ!7"\(*X(*Z(*W(&*\(:*x)"X(*Z(*V(&x)"Z(!N()*X(!}2^(*^( Utility Functions:A - Enter relative address to dumpB - Set record to beginning of file and dump dataC - Continue search. Restarts search on last entered search string.E - Enter Edit mode on current recordH - Brief description of the functionsM - Th&!@!(2)/!@*^(&(*!^(D)*E&!)g!9**E&*!9**E&*Û!9**E&!ͤ)*!9**E&!ͤ)*͇*!}2_(*_(&!P!(2)!P*_(&(*!_(D)!}2`(*`(&!K!(2)!K*`(&is help descriptionO - Enter offset address relative to start of file (.COM = 100h)Q - Quit programR - Enter record number to dumpS - Search for hex or ASCII string in file (starts at current record)'\' = ASCII string delimiters (ex: \Test\)',' = hex   and/or ASCII delimiters (ex: 41,\Test\,4A';' = select search optionsA - Start search from beginning of fileB - Search BackwardsM - Search on certain bits set; use mask xxO - Stop on xx occurrence of stringU - Translate lower case characters to upperxs(~# f(}a{ o~aڔ({Ҕ( w#Ä(~#Ü(!^#6~( (#÷(}|#~ (((6#÷(i`^#Vr+s|r)!„*+Ä*n caseZ - Search recognition on least significant 7 bits onlyHit for more -Z - Set record to end of file and dump dataCR - carriage return (or +/= key) - advances record and dumps the data-/_ key - decrements record and dumps the dataEdit modgr)!ڄ*+Ä*r)!ڄ*+Ä*(+|4ng*r)!+,)-|^#Vr+s|*r)!+E*|z{.zW{_-ʠ)җ)} DMoxGyOÁ)|}o|g}o|gK)#|5ng),|}o|gzʄ*|g}o)zʄ*}o|g)͑*e: ('^' refers to the Control key)^[ - (ESC) Accept next char into edit field even if a control char^E - Toggle between ASCII and hex data fields^W - Flush record to disk^X - Abort edit mode without updating record^J - Cursor down ^K - Curs#||!„*#Ä*~#fo}}|r)!ʄ*+Ä*}o|g"*."*{_zW**-"*ʄ*>)D**OxG|* ?T*} =Š*}/o|/g!+ñ*ÿ*o&ÿ*͙*!**͙*K* !+*ñ*͙*͙* ͙or up ^H - Cursor left ^L - Cursor right Input integers are decimal. Use 'h' suffix for hexadecimal entries.Hit to continue -Edit RecordWriting Buffer ** WRITE ERROR **EDIT ABORTED** READ ERROR **?Search String = Stop *_+͙*  ʴ*>ô*  ͙*͙*ñ*͙*ñ*͙*ñ*ñ*͙*ñ*͙*ñ*͙*ñ*͙*ñ*͙*ñ*ñ*͙*͙*ñ* ñ*͙* ͙*!ñ*͙*"ñ*͙*#͙*$͙*%͙*(ñ*on string occurrence = Enter string search mask = Not Found.SEARCH ABORTEDFile: Record: (H) LOF: (H) -- ---------------- - >h the same characters, hit ^F. You have to be careful here, as the string will be found only if it is an exact match for the one entered. In looking for a match, upper case letters are considered to be different   from lower case letters. H - Here is the start of a block of characters to be deleted or written to disk. D - Delete everything from the last "(esc)H" to the current cursor position. In order to use "(esc)H" a 2.2 and TurboDOS 1.2 and should run in any CP/M-80 type environment. EDFILE is approximately 11k in size. EDFILE may be freely distributed to whomever desires it. The date of this document should agree with the version date in nd "(esc)D", they must be issued as follows: 1) Move the cursor to the first character to be deleted. 2) Hit "(esc)H". 3) Move the cursor forward to after the last character to be deleted. EDFILE. FEATURES: ======== - Hex and ASCII display of record data. - Screen editing of selected record. - Hex or ASCII input when editing file records. - Fully programmable cursor control. - Powerful file search capabi 4) Hit "(esc)D". N - Set the file name to be used for I, W, S or X. The file name, in standard CP/M format is entered at the bottom of the screen. I - Insert the file named at the top of the screen into storaglities. - Forward and backward record scrolling. - Address and/or record number referencing. - Decimal or Hex number inputs. - Disk reset on input (prevents Disk R/O error). - Full online abbreviated help AND expanded help mene starting at the current cursor position. S - Save the current edited data into the file named at the top of the screen. If this save is the first one after doing a load, and the LOAD/SAVE file name has not been chus. INSTALLATION: ============ The following information will aid the user when installing EDFILE on a different terminal. The EDFILE original distribution program is originally configured for an ADM-3A type terminal or equiv EDFILE UTILITY USAGE Jan 10, 1984 by Mike Mosko, K3RL EDFILE is a public domain utility which allows display and editing of data in files. It has been tested and run under CP/M- 80 versionalent (I use a Digilog S1500). The terminal must be able to display 80 columns by 24 rows. The only absolutely necessary function required for proper use is the cursor positioning function. Other functions that can be added merel  y for visual purposes are the cursor on, cursor off and clear to end-of-line functions. If the clear to end-of-line function is not preprogrammed, it is performed in software. These functions are not implemented in the original distribut be issued as well. The ADM-3A requires an adjustment value (or offset) of 32 decimal (20 hex) be added to the row and column. For terminals that require a different offset, this value can be changed as well. The row is usually setion version of EDFILE. For ADM-3A type terminals, the following commands can be patched in EDFILE if these attributes are desired: Clear to end-of-line .... ESC 'Q' (1B,51) Enable Cursor ........... ESC 'X' (1B,58) Disable Curnt before the column, but if your terminal is different, i.e., the column must be issued first, then set the high order bit of the cursor offset value. This flags the cursor positioning routine to send the column before the row. The follosor .......... ESC 'Y' (1B,59) For example, to add the clear to end-of-line function, patch a 02 for the string length (2 bytes for the sequence) at address 146. Then patch a 1B in location 147 and a 51 in location 148. Certain functions are pwing addresses detail the location of the modifiable parameters for the terminal. Address Default (hex) Function ------- ------------- -------- 140 02,1B,3D,00,00 *Initial cursor positioning string sequence 145 20 rogrammable for the type of terminal in use. Five bytes are reserved for each terminal function (string sequence). The first byte represents the length of the string sequence. For example: the initial cursor positioning string for an ADM-3 *Row/column adjustment (set high bit for column/row) 146 00,00,00,00,00 Clear to end-of-line string sequence 14B 00,00,00,00,00 Enable cursor (cursor on) string sequence 150 00,00,00,00,00 Disable cursor (cursor off) A terminal is 'ESC ='. This is two bytes in length. Therefore, the values inserted into the cursor positioning sequence area are (in hex): 02,1B,3D. To complete the cursor positioning sequence for the terminal, the row and column musstring sequence 155 08 Cursor left (normally CTRL-H) 156 0C Cursor right (normally CTRL-L) 157 0B Cursor up (normally CTRL-K) 158 0A Cursor down (normally CTRL-J) 159    00..........00 Terminal initialization string (35 bytes) * - Must be implemented. If your terminal requires some sort of initialization string, either to preset it or to program a function key pad, this can be inserted into the terminalf the above modifications (patches) can be made easily with EDFILE itself. Of course, if it won't run at all, you'll have to resort to some sort of debugger such as DDT, SID, MONITOR, etc..., or better yet, use someone elses computer  initialization string area provided. The first byte represents the length of the string to be issued to the terminal. There are 35 bytes available for an initialization string. Why so many? The Digilog S1500 computer I use allows  with a (working) version of EDFILE to modify it for your terminal. EDFILE should work on virtually all terminals currently in use. There may be some real strange ones out there that I don't know about, but that's life. OPERATION: ====reprogramming of the numeric keypad. This requires 28 bytes. The actual control sequences for positioning the cursor (up, down, left and right) can be changed. This is provided for terminals that have cursor positioning keypads whic===== EDFILE is simple to use especially with the online help menus. Therefore, just a few tidbits of information is provided here for operation. To invoke EDFILE, simply type EDFILE followed by the name of the file you wish to dump and/or edith don't issue the same ones programmed here. For example: usually a CTRL-L moves the cursor one space to the right. However, if your cursor pad issues some other control character, like a CTRL-D (WordStar type), then patch a 04 (hex equival. Example: EDFILE EDFILE.COM The display should look similar to the following: ------------------------------------------------------------------------------- Vers: 01-10-84; by: J.C.Kaltwasser & M.J.Mosko, K3RL File: EDFILE.COM Reent of CTRL-D) for the cursor right value. Note, the help menus will still display the default values for up, down, left and right cursor movements. You'll have to make a note about this or, better yet, use EDFILE to patch the help menus. All ocord: 00000 (0000H) LOF: 00086 (0056H) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ---------------- 0100 - 31 EA 01 C3 EA 01 0D 0A 56 65 72 73 3A 20 30 3  1 >1j.Cj...Vers: 01< 0110 - 2D 31 30 2D 38 34 3B 20 62 79 3A 20 4A 2E 43 2E >-10-84; by: J.C.< 0120 - 4B 61 6C 74 77 61 73 73 65 72 20 26 20 4D 2E 4A >Kaltwasser & M.J< 0130 - 2E 4D 6F 73 6B 6F 2C 20 4B 33 52 4C 0D 0A 24 1A >.Moskt found, you'll get an error telling you this: " Not Found." Simple. At the ? prompt, type 'H'. The brief help menu will be displayed: ------------------------------------------------------------------------------- Read/Edit File Utilityo, K3RL..$.< 0140 - 02 1B 3D 00 00 20 00 00 00 00 00 00 00 00 00 00 >..=.............< 0150 - 00 00 00 00 00 08 0C 0B 0A 00 00 00 00 00 00 00 >................< 0160 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................<  Functions: A - Address to dump B - Dump at beginning C - Continue Search E - Enter Edit Mode H - This help list M - Expanded Help list O - Set address offset Q - Quit this program R - Read & dump record S - Se 0170 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >................< ? ------------------------------------------------------------------------------- EDFILE performs an automatic disk reset (^C) when executed. Therefore, don't parch for string Z - Dump at end of file CR - (+/=) - Adv record (-/_) - Decr record Edit Mode Functions: ^E - Toggle data fields ^W - Write buffer out ^X - Abort Edit Mode ^J - Cursor Down ^K - Cursor Up anic if you suddenly realized you forgot to perform a Control-C after making some changes. This prevents the infamous (and frustrating) Bdos Err on A: R/O from occuring when writing records. The LOF means the Length-Of-File which is the tota ^H - Cursor Left ^L - Cursor Right ------------------------------------------------------------------------------- Again at the ? prompt, type 'M'. This will display the expanded help menu. --------------------------------------------l number of records in the file. Record numbers begin at 0; the last displayable record number is actually the LOF - 1. If you don't specify a file on the command line, you'll get an error: "No File Specified."; or if the file is no----------------------------------- Read/Edit File Utility Functions: A - Enter relative address to dump B - Set record to beginning of file and dump data C - Continue search. Restarts search on last entered search string. E - Enter E  dit mode on current record H - Brief description of the functions M - This help description O - Enter offset address relative to start of file (.COM = 100h) Q - Quit program R - Enter record number to dump S - Search for hex  Cursor down ^K - Cursor up ^H - Cursor left ^L - Cursor right Input integers are decimal. Use 'h' suffix for hexadecimal entries. ------------------------------------------------------------------------------- Use or ASCII string in file (starts at current record) '\' = ASCII string delimiters (ex: \Test\) ',' = hex and/or ASCII delimiters (ex: 41,\Test\,4A ';' = select search options A - Start search from the '=' key (which has the '+') or the RETURN key to advance the record. You don't have to use the shift key with the '=' key. EDFILE will wrap around to the start of the file when attempting to advance beyond the end of the file. The following beginning of file B - Search Backwards M - Search on certain bits set; use mask xx O - Stop on xx occurrence of string U - Translate lower case characters to upper case  paragraphs expand on the features available in EDFILE. Most of the options are self-explanatory from the help menus. However, some require additional explanations and are provided below. ADDRESS/OFFSET OPTIONS ----------------------  Z - Search recognition on least significant 7 bits only Z - Set record to end of file and dump data CR - carriage return (or +/= key) - advances record and dumps the data -/_ key - decrements record and dumps the data EdThe address option allows you to specify an address within the file. This is useful for patching COM files and the like when the address of the patch is known. Note that when EDFILE'ing COM files, EDFILE automatically sets the offset to 0100it mode: ('^' refers to the Control key) ^[ - (ESC) Accept next char into edit field even if a control char ^E - Toggle between ASCII and hex data fields ^W - Flush record to disk ^X - Abort edit mode without updating record ^J -h. The offset can be changed by typing 'O' at the command level and entering the desired offset. The headings will be adjusted for the different offset automatically. The address option always references the starting offset so t  hat locations within programs which don't begin at 0100h (overlays, for example) can be easily referenced once the offset has been properly programmed. The Address option also has a wrap-around feature so that references below the current o When using the Occurrence ('O') and Mask ('M') suboptions, the program will prompt for the occurrence number and/or search mask to be used. The suboptions are inserted after a semicolon to delimit them from the search string entered. Noffset will be readjusted. This feature can be quite handy when tinkering around with COM files. You have to experiment a little to pickup the usefulness of these options. SEARCH OPTION ------------- The 'search' option is the most involved spaces should be inserted between the suboptions. Upper or lower case is acceptable. Example: ?Search String = \This is great\;auo Stop on string occurrence = 3 This means to search for the string 'This is great' starti because it offers so many different possibilites. The description provided here should provide enough information to effectively use it. String searches normally start from the current record and proceed until the end of the file (EOF)ng from the beginning of the file, ignoring the case of the string (i.e., translate lower to upper case) and stopping on the third occurrence of the string. ASCII strings must be delimitted by backslashes ('\'). The limi is encountered. Certain suboptions can alter this sequence. If a match is not found, the program will indicate this and restore the screen to the record last displayed. The search can be aborted at any time by simply striking a key. If a tation here, of course, is that you can't search for backslashes in the file. So use the hex equivalent if necessary: 5C. The 'U' suboption (translate lower case to upper case) will translate the search string to upper case automatstring match occurs across records, the search will stop on the last record read into its' local buffer and position the cursor at the end of the found string. It just wasn't worth putting in the extra code to handle this wierd situation.ically, as well as converting all lower case characters read from the file. So, you don't have to input the search string in upper case when using the 'U' suboption. When inputting hexidecimal values as part of a search key, they MUST   be two-digit HEX (not decimal) numbers. An invalid hex digit entry will cause an error and the string entry must be reentered. Two digits must be supplied for each hex number otherwise the search won't work properly. Upper or lower case ill may not be exactly what your looking for. ?Search String = 03;M Enter string search mask = 0Fh This will mask all upper nibbles (upper 4 bits of each byte) and then compare it to a 3. Therefore, any data bytes which hafor the hexidecimal letters is acceptable. Example: ?Search String = 40,FE,e5,05 You can mix hex entries with string entries within the search key. Example: ?Search String = 40,FE,\help me\,E5,05 The Backward search suboptiove a 3 in the lower nibble will cause a match with the search key. When the search string is found in the file, the search is temporarily terminated and the cursor is positioned at the start of the found string. Note, that the program n (B) will start the search from the current record and continue towards the start of the file. It DOES NOT reverse the search string key, that is, if you enter \HELP\ for a search string key, it will not search backwards for \PLEH\. It ois NOT in the edit mode, so the next key entered is a command not an edit control key. Hit a space (or any unrecognizable command) to redump the record and place the cursor on the command line. Hit an 'E' to go into the edit mode. The curnly refers to the direction the records will be read while searching for a matching string. Also, each record is searched from the start of the record. The search stops when the start of the file (SOF) is encountered. The Mask suboption issor will remain positioned at the start of the found string. CONTINUE SEARCH OPTION ---------------------- Hitting a 'C' at the command level will restart the search from the current record and cursor position (if previously defined). The for those cases where bytes in a file use certain bits for special meanings. The input mask is logically AND'd with each byte in the file before comparing it to the search string. Therefore, some bytes could pass the search test but st search facility will then look for the NEXT occurrence of the entered string sequence. The 'O' suboption is affective only on the initial start of the search. The Continue ('C') option effectively disables the occurrence value previously en  tered. The default string occurrence is 1, i.e., the first (or next) occurrence. The Continue option can be invoked at any time after a search string key has been entered. All other suboptions are in affect when continuing the search. rs (i.e., regular ASCII) can be typed in directly. To make the record changes permanently to the file, they must be flushed to the disk by typing a CTRL-W. Typing a CTRL-X will exit the edit mode without updating the file. BUGS: ==== There RECORD EDITING -------------- Record editing is accomplished by typing an 'E' at the command level. When in the edit mode, there are two modes of editing. You can edit the HEXIDECIMAL field area of the record or the ASCII field area. When  are currenly no know bugs. However, inputs are not completely validated, therefore, some conditions could cause different results. None, however, are know to cause file crashes or anything catastrophic. Any reports of bugs will be n entering the edit mode the cursor will be positioned at the upper left corner in the HEX data field of the current record. To switch to the ASCII data field of the record, simply enter a CTRL-E. This will toggle the cursor between the twooted and appreciated. USE UNDER TURBODOS: ================== EDFILE is especially useful under TurboDOS. Using the filename $.DSK or $.DIR upon entering EDFILE allows editing of the disk and/or directory. I use EDFILE in every case when  fields. The HEX field area will only accept hexidecimal digits for inputs. The ASCII field will accept all key inputs including control key inputs if they are preceeded by an ESC key. For example: to input a CTRL-K into the record at theI need to look at the disk directory and make changes to it. The search facility makes this task a breeze. BACKGROUND INFO: =============== EDFILE was written in a language called SIL (Systems Implementation Language) which was ob current cursor position, hit the ESC key followed by a CTRL-K. The ESC key simply means 'put the next input character into the record even if its' a control character'. This is only affective in the ASCII field area. Non-control charactetained from DDJ and then enhanced and improved at Digilog, Inc for use in writing systems programs and utilities. SIL is very similar to 'C' but allows true inline 8080/Z80 assembly language coding (very useful) and compiles to actual asse!  mbly mnemonics. The output of the compiler is passed to Digital Research Inc's Relocatable Assembler (RMAC) and then to DRI's Linker (LINK). No special tricks were used in this program; that is, no system specific calls or locations were referen)- - - - F U N C T I O N K E Y M E N U - - - - -($ ) 0: ($ ) 1: ($ ) 2: ($ ) 3: ($ ) 4: ($ ) 5: ($ ) 6: ($ ) 7: ($ ) 8: ($ ) 9: ($@$000000000000^A$00000000000^B$00000000000^C$00000000000^D$00000000000^E$0000000ced, therefore, it should run on any CP/M or equivalent system. Of course, Murphy is lurking around, so don't depend on that assumption. FUTURE VERSIONS: =============== On the wish list is to add the capability to read and edit the data0000^F$00000000000^G$00000000000^H$00000000000^I$00000000000^J$00000000000^K$00000000000^L$00000000000)($00000^N$00000000000^O$00000000000^P$00000000000^Q$00000000000^R$00000000000^S$00000000000^T$00000000000^U$00000000000^V$00000000000^W$00000000000 off of the disk on a track/sector basis. Any other ideas will be seriously considered in future versions of EDFILE. Thanks and good EDFILE'ing. Problems, suggestions or questions can be sent to me on my CompuServe number (#72345,1540) ^X$00000000000^Y$00000000000^Z$00000000000)($0000C–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# or via my home address: Mike Mosko 519 E. Station Ave. Coopersburg, PA 18036 ks and good EDFILE'ing. Problems, suggestions or questions can be sent to me on my CompuServe number (#72345,1540) ES FOR VERSION 2.A By: Frank Muennemann 1032 Ramona St. Palo Alto, CA 94301 Version 2.a is a heavily re-written VDO. I trans- lated all the source code into Z80 assembly language, in order to compact it and keep the .COM file under 4K.*.|g"! "!k"*^##"~Gk^{8̈́;ͮ#+*:=2 ͮ ͮ *.y*.>w*.|*w# xyKʤ2{_ҞzW:Êͽ͸ ͽ!8"*T]ͽ*} o|g"ɡ :6  Following are the changes made to the keyboard commands. Most changes are intended to make the structure more similar to WordStar. ^A - Left one word ^B - Turns Insert mode on (but not off) ^F - Right (forward) one word ^J - transpose characte"  rs (try it!) ^K - drop a marker. Markers are numbered 0...7 ^K1 drops marker 1. Note that the find command ALWAYS drops marker 0 ^L - Find (formerly ^F in version 1) ^M - Carriage return ^O - Oops! un-erases last erased character. ^Q - jumURCE FILE READ ERROR ++$!~% ڟ:R@:T> :U<2U*V#"V:S<2S:U†*V+"V:R}:Sʆ2U> *\#"\*^#"^2U>    2U*Z#"Z*^#"^:S2S> *X#"X2S2T2U':T/2T:S<2S:Up to marker. Like ^K: ^Q1 jumps to marker 1 ^T - erase next word (can be un-done with a series of oops!-es). ^U - Execute user defined command ^V - just as before: toggle insert ^Y - erase to end of line (can be un-done by series of oops!-> *V+"V=2U,*P}1"N>%TABSET A:HELLO.TXT 1) B>TABSET HELLO.TXT A:NAME.NEW 2) 1) uses original name for new file, original now named .BAK 2) original f tabs now:$ª!\!],!\; ;!] ê*P}e"N>Y<œ Ü CANNOT CLOSE OUTPUT$ ͵ *~#~¶~#_  |{0 ile stays intact, new file has new name$͵(T)ext - any key .ASM code: _T|2R͵ processing ASCII text code ß͵ processing .ASM source code :m µ!\ !l2|2\TABSET HELLO.TXT (1) ; B>TABSET HELLO.TXT NUNAME.DOC (2) ; B>TABSET A:HELLO.TXT (3) ; B>TABSET A:HELLO.TXT B:NUNAME.DOC (4) ; ; (1) Sets$   tabs in a file named HELLO.TXT. When finished the original ; file is named HELLO.BAK and the new file has the normal name. ; (2) The original file keeps the original name. The new file is now ; named NUNAME.DOC. ; (3) Just shows you can use two disks. The backup file will be on ; the same disk as the original and assumes the original name.. ; (4) The original file remains intact, the new file is on another ; drive and is named NUNAME.DOC. ; ;-------------------------------- DISK.DOC FOG/UTL.042 First Osborne Group (FOG) Utilities Disk EDFILE is like a full-screen DDT. It permits patching a file in ASCII or hex mode. The file may be searched for unique strings. Th--------------------------------------- ginal file remains intact, the new file is on another ; drive and is named NUNAME.DOC. ; ;--------------------------------is program is most useful with an 80 column screen. Place EDFILE.COM in drive A. At the A> prompt, type EDFILE d:filename.typ where filename.typ represents the file to be patched on (optional) drive d. Press H or M for help menus. Also, see EDFILE.DOC. FUNCTDD is a revision of FUNCTN2 found on FOG/UTL.009. This version will work with a double- density Osborne 1. It simply displays the current special function key (SFK) settings. Place FUNCTDD.COM in drive A. At the A> prompt, type FUNCTDD Also, see FUNC on FOG/UTL.039 and SUPERSET on FOG/UTL.032. Thanks to Bryan Stallard for categorizing this program. NSWP205 is an update of the NSWEEP generalized file maintenance utility found on FOG/UTL.031. This version%   will squeeze as well as unsqueeze tagged files; however, the resulting file(s) will not appear in the directory list until the disk is reloged. The find command requires only the first few characters of a filename. This version will occasionaled with standard CP/M TABs set at 8 column increments. PLace TABSET.COM in drive A. At the A> prompt, type TABSET filenam1 filenam2 where each filenamn may be of the form d:filename.typ. The first filename identifies the source file to bely quit with a BDOS R/O error when using the copy command C; execute the size or log command to insure proper reset after changing a disk. (This is not a problem when performing a mass copy with the M command.) A destination filename may be spe converted; the second filename identifies the result. If the second filename is not included, the source file will be renamed filename.BAK, and the result will be given the source filename. If no filenames are included on the command line, a hcified with copy. A wildcard file selection may be defined when loging a drive. Place NSWP205.COM in drive A. At the A> prompt, type NSWP205 Then press ? for a help menu. The program has been patched as outlined in the document to highlighelp screen will be displayed. When executed, two options are available: if the source file is a normal ASCII text file, press T; if the source file is an assembly language (ASM) file, press any other key. Refer to TABSET.DOC. Also, see TABS fot characters in filename.typ to indicate when flags 1 thru 4, R/O, SYS, or Archive are set. The highlight will appear as an underline on the Osborne 1. Flags may be reset by first tagging the file, then using the Y command. This is another exaund on FOG/UTL.028. Jim Woolley FOG Disk Librarian June 1984 ss T; if the source file is an assembly language (ASM) file, press any other key. Refer to TABSET.DOC. Also, see TABS fomple of user supported software; the author suggests a $20 donation. Refer to NSWP205.DOC for details. Also, see NSWP205.UPD. TABSET will replace blank spaces in a file with appropriate TAB characters to achieve the same results when displayand pursuant to this, this program MAY NOT BE SOLD BY ANY PARTY unless specifically authorized by the author, Dave Rand, in writing, previous to the first copy being sold. As well, this program MAY NOT BE INCLUDED IN ANY OTHER PACKAGE FOR SA&  LE, even if this program is indicated as being 'in the public domain'. All of the above applies to both the original as well as derived, or modified copies of the original. Any modified copies of this program MUST NOT have the copyright not, when the"current" file is referenced in this documentation, it means the file just to the left of your input. This"current" file is often referred to as the file you are "on". ice violated, changed or altered. Please report any copyright violations to the author, at one of the above telephone numbers. Thank you. - 3 - NSWP 2 - A disk maintenance utility NSWP Overview  - 4 - NSWP 2 - A disk maintenance utility Invoking NSWP To make effective use of NSWP, you must know the various options available to you when you invoke NSWP. Here are some of the options: A>NSW --> FILE: -FOG/UTL.042 CRC = 00 00 --> FILE: /UTL#042.DOC CRC = 47 78 --> FILE: EDFILE .COM CRC = F0 A7 --> FILE: EDFILE .DOC CRC = C2 18 --> FILE: FUNCTDD .COM CRC = 71 D3 --> FILE: NSWP205 .COM CRC = D7 7B --> FILE: NSWP This format simply loads NSWP, and scans the default drive and user for filenames. Once inside NSWP, you may change to a different drive and/or user, but when you exit you will be returned to the drive/user that you called NSWP from.P205 .DOC CRC = 97 D0 --> FILE: NSWP205 .UPD CRC = 42 7A --> FILE: TABSET .COM CRC = 97 59 --> FILE: TABSET .DOC CRC = D3 17 ---------------------> SUM OF CRCS = 88 3F  A>NSWP *.COM This format loads NSWP and scans the current drive and user for all filenames with the extension '.COM'. Note that NSWP can find system files as well, so no additional information need be given. A>NSWP B:*.COM * The hing to remember when using NSWP is that it provides a list of your files in ALPHABETICAL order. Moving around in this list is quite easy, and will soon become second nature. In this documentation, all user input is underlined. As well presence of the second asterisk indicates to NSWP that you wish to scan all user areas of the indicated disk drive. In this case, all '.COM files on all user areas on drive B. Combinations of the above are acceptable, and you may even log '  to all user areas, and find all files with the specification '*.* *'. Once inside NSWP you are presented with a menu, then a report of which drive and user you are logged to, how much space is taken by the files you have specified, how mt on one file and those that act on many files. We will go through them both. Before doing that though, let's try moving around in NSWP first. To move in NSWP, you must first understand that the files on your selected drive/user will beany files have been found with the specifications given, and how much space is left on the disk. A sample follows: Drive A0: 596K in 36 files. 735K free. A special format of this line shows that you are logged to all user areas: Driv presented to you in a sorted manner. The files are sorted in this order: Filename, File extension, user area: 1. B0: -WORK .001 0K : 2. B0: ARCADD .COM 4K : 3. B0: ARCCOPY .COM 2K : As you can see, the files are B*: 950K in 234 files. 2956K free. From this point, you may execute any of the menu options. A special display occurs if no files are found with the specification you have given, or if there are no files in the given drive/user e numbered for your convenience. You may not directly use these numbers. As you can see, the file size is also shown (rounded to the nearest block size). Note that if you have enabled the reverse video sequence (see Epilog), you may see sarea(s): No files. This display may also occur if you delete all the files out of a given specification. When this occurs, your menu choices are limited to ONLY 'S', 'L' or 'X'. This allows you to see the free Space on a drive, to Log to another drive/user, or to eXit. No other choices are valid, nor will they be accepted. - 5 - NSWP 2 - A disk maintenance utility Command Structure There are two primary types of commands in NSWP: those that ac