SWEEP COMV SWEEP DOC SWEEP DOC_ !"#$%&'(UNERA COM)*+,DU-V87 COM;-./01234DU-V87 DOCY56789:;<=>?@DU-V87 HLP.ABCDEFBUTCH G 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,] !" ,#"*,",,U!;,J}+5#" ,C*,+" ,#b",!",".,"0,1;:,29,* ,#}ˆ No files.͈XʱLSwM*,b͈G!M!~ȸ#ʬ##ß^#V:,_:,_1ͷ*,,K in # files. **,K free. Delete (Y/N/A)? ͈AGY3͘P͋5#* ,#}G+ !",M!",U ~6v#*0,"0,*.,".,*.,K (*0,K).ͧ*,bYB Tagged files = ͧ*,bvB~6#*0,>"0,*.,>"., New driBUTCH BAKHgs (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\\* ,* B BB_XSwDgTUVyPnE8LCM A R#FEWY?wQE *,#",* , M!",M*,|+",M* ,",M Which drive? :AMQM :,GA2,PU**,K remaining on drive A+>:+x2,PM Which flave/user/mask? !~M#"=,ͬ:\,:,<=2,::,E:*>E:,2,:] ]!]^ 6?>!\, >ü2,~ʄV#v2, Illegal drive code.Mq:,2:,:,28,~0چ:AچQ҆A28,#~:ȷ*0:'G#~:0602:,xkNSWP 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,: ,{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,$~# :\=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 --> ~4# >~##~#~  x>9'* ,",+|*,|ȯ|g}o",b#",* ,+}o|g",!",*,",*,*,",ʰڰ*,*,}o|g",ʰ*,#",*, My*,b" ,*,b", ~O##* ,*,F<0P,>:R,2R,D,*,+",}#>.} Directory full.M<h!=!o >*6, Ҟ OUT OF MEMORY?!s,~ £ 6Q#6Q#6Q(!k,# >.+# )%*,͸!D,v%9!.  Not a SQ file."=,_: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,]> ~?#*,b ~29, New name, or *? !"=,!lͯ#~ M ?ʶ#a::,v:9,w*,b͹. P*,* ,#" ,C*,+" ,", M!",M:,28,\2\ >:e:e2e:u2u\::,_:< :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&   > +`>.+`*,#. #~#> +K : [*[#y+~+#`>2<,2<,<22,Press ^X to abort, L to advance a line, cr to advance a page. >2;,*,b͸{ v !s*,"!,!. ! *,ͯ:k, M!b,ͅb Renaming -->  ~29, to Ͳ!m͹G:t2t#* , >. PÍ~ʯ F: ,ʜ?ʨG># œɯ/k,m> ?~#=º::,:9,:,A+ n&}  >:+y"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,<:M,:s,2s,j,*',*#,G x1w#"#,9*#,*%, j,*#, I*%,"#,*,*!, ʇ~#"!,*,"!,", D,º*,",•s*!,*, s=* ,!;;:\=2,:m?>2,!,~ ,6? >9,_!mE, >2D,ͫD,*,J}R Destination file exists! PM::,bG:9,Š:9,_\_!m >:9,_!\D, >ͫ2D,>?2P,*,D,J}}",ͫD,!mE, >ͫD,!)))))*, P,>D,>:+:,  with CRC.:C,3 m ͺ 6 3 6͘U #* , Ҩ j  --- Aborted ---MD, >~6>29,!E,k, ~ww#” D,!E, >6 !b~  Retagging --> > +Y#* , Ҹ M,"!,"ͤ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!M*4, *,"4, Destination disk full.M}o|g Find what? !"=,͜!]~ M ~ u6?#m !M",M Tag what? !"=,͜!]~ M !M Tagging --> b> +Yý#* ,  b"4,*6,  :, Verifying --> !v,w,6>j,*,#",*,b" ,*,b", #s* ,~ʵ F, xҵ:,ʢ?ʮG># ¢ɷ!",,* ,#}!;*,,",, x'  r*)/w#6#")}!)4>_)###!'(u'*)>+w+)կͪ))Â*((x!)4#4#4#4(((o&))**4#4¼!>(~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:,&xy"py2:,͑L#*<6?>w+͑SB#6 L.|͑|#*l6?nw[͑ʃr#6 |#6…"=, =_.:;<> ì!,!yg)>g>!or$s%# »:,~# *?,O!,]&!)7-T&~6(&G+~ͣ&&T&>ͬ&<ͬ&T&T~%>ͬ&~6ͬ&:)2)ͣ&%:)o&>ͬ&<ͬ&>_)###ͱ&:)ʎ&G:)†&&>2)*)|>ž&*`*¬&ͬ&_)F#^#V:)O{_zW:) &&2)»&y2)}&|:*'':)*)*)G:!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! d } y00> +=% ; |1{0+ }0ҟ*.#*.~.vg xʇ|-q#m}o|g:),ʛ)=Ó"*,:,_.*:GxG|g}o ¹Û^)))))#~&o))))o$#:),82)$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*#~*J(g2)2)<F>L_!O! ~#G~>#T)))); NSWEEP - Version 2.05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta $ A - Retag files | Q - Sq)Os#r#}' z'>''")")y2)!)4~>'2)!)~w:_(=GN'>n%:*\':*‚$!_(p:*#2*2*#_):)w#*)+2))͵)!")"))!)C+)!)p):)!*k)4!)5:*'*)6:)O}'7zW{_~'A+~+}' '~''s#!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~)}>o}}o}}o}#~#>a{_:,_.>:.2),".k&&* ,ͧvk&*=,ͬ!\w=&!\*=,ͬ:, O0O:!)k)~2*ü$!)b*2)*)))>k))")!")!)p)~w6#w#w#wp)b*!)b**)*)͆)>n%*`**):)%""*!9"`*1`*!v&*)&!)")*"*#~ ʶ%&#¨%>.&xk)~ %&#%&*)&))*)~&#z%2)2)>2)A)T&A)ew 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 Aueeze/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 - Vi#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 ~+õ)onsibilty 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 files. 14 Setting file status ............ 15 Epilogue ............................ 16 Credits ............................. 16 Contributions ....................... 16 - 2 - to 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: Edmon............... 8 Copying ........................ 9 Renaming ....................... 9 The Space command .............. 11 The Log command ................ 11 Introduction to Multifile Commands .. 12 The Tag command .....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*.+*,+#ce, 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 wi NSWP 2 - A disk maintenance utility Introduction NSWP is new disk utility than can replace many of the more common utilities that are used, such as STAT, PIP, USQ, SQ, TYPE, PRINT, SWEEP, DISK7, PROT, and others. In only 12K of disk spa NSWP - A disk maintenance utility. Dave Rand 10232 - 160 Street Edmonton, Alberta Canada T5P 3E9 ton 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 resp........... 12 Wildcard tagging ............... 13 The Untag command .............. 13 The Mass copy command .......... 13 After the mass (Again) ......... 14 Erasing files .................. 14 Squeezing and Unsqueezing:4+=24+*?**.+*0+".+"0+*7&+*.+xH "+!+ "+i`)))#"+A!+6#b+A*++~wn+kbA+~wy+Ҙ+*+!+Aw#Ž+!+5j+#455j+ll serve. 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 NSWPds ................ 6 Help ........................... 7 Forward and Backward ........... 7 Exiting ........................ 8 Finding a file ................. 8 Viewing and Printing ........... 8 Deleting a file . - 1 - NSWP 2 - A disk maintenance utility I N D E X Page Introduction ........................ 3 Overview of NSWP ............... 4 Invoking NSWP .................. 5 Single file comman business, 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 Canad 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 SWP 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 fro notice 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 many 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: Drwell, 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". a, and 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 FOe 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 lom. 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 * Th NSWP 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 sectionive 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 - 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>NR SALE, 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 g 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, howt thing 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 . 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 importananother 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 ass 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 through the 'F', or FIND command. 1. B0: -WORK .001 M 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.0e 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 suse 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 either command, you will be"wrapped around" to the other endrough a sample session. Remember, user input is underlined. - 6 - NSWP 2 - A disk maintenance utility A>NSWP B: NSWEEP - Version 2.02 03/14/1984 (c) Dave Rand, 1983, 1984 Edmonton, Act 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 bE - 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 help X - Exit to CP/M | cr, sp - Forward one file 2 03/14/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 | T - Tag file for transfer 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. 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 drive and user area that you invoked NSWP from, regardlelberta Drive B0: 850K in 64 files. 118K free. 1. B0: -WORK .001 0K : 2. B0: ARCADD .COM 4K : 3. B0: ARCCOPY .COM 2K : 4. B0: ARCDEL .COM 2K : 5. B0: ARCDIR .COM 2K : B 4. B0: ARCDEL .COe 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 ar 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 () may be used to move forward. To move backwards, simply 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 thReally, 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 listing 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 find the first .HEX file, you may use *.HEX), and also noDP2 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 : R New name, or *? B1:CDP2 12. B1: CDP1 . 40K : 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 exists on the same drive/user that you wish to place the 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 and cannot be listed. At the end of each page on the silename 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 The Rename command ('R') may be used to: A) Chathe 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 again: 12. B0: CDP1 . 40K : D Delete file? Y R/O. te 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 experiment, you will find other interesting uses for this commall 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 file, you may just enter the destination drive/user p 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 destination file. Thus, if a file is a SYS, R/O file, NSWP wicreen, 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. The Print command, invoked with a 'P', will send the currentnge 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 simple: 12. B0: CDP1 . 40K : R New name, or *? CDelete? 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 C) The same name, on a different drive/user NSWPnd. 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 file The View command, invoked with a 'V', will typeart 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 retain the user number of the source file. If the fkey. 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 utility If any reply other than 'y' or 'Y' is given 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 You can delete the current file just by hitting the 'D' 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 name to another, you may enter the following command at 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 files from one size of diskette to another, smaller, s 1983, 1984 Edmonton, Alberta Drive A14: 44K in 2 files. 1118K free. 1. A14:NSWP .HEX 22K: - 11 - NSWP 2 - A disk maintenance utility Introduction to Multifile commands er of the field with '?'. If the destination file exists, the rename is not made. - 10 - NSWP 2 - A disk maintenance utility You may also choose to rename a 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. Files that will not match using only one wildcard). A sairectory 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 should be able to change to a different diskette at thisany 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 iles, 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 sim Now that all the commands that affect single files have been described, it is time to introduce the concept of Multifile commands. These commands are ones that affect as few as one or as many as all of the files on a single disk. To affect these f 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 will rename all .HEX files on drive B user 0 to the sammple"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 automatically performs a"move forward" operation. To 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 NSWEEP - Version 2.02 03/14/1984 (c) Dave Rand,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 the name. An asterisk qualifies as filling the remaindplest 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 asterisk next to the colon after the name of the file, 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 The Log command ('L') allows you to change your de 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 Space command The Space command ('S') simply asks youize 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 perform any operation, other than to mark the file for a 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 Untagged files, the untagged files will be erased. You 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 files to reside in the same user area as the source files aThis 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 the cumulative files would take if they were stored on 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 copy a group of files, then delete them from the source disk current file's size from the total, then displays the total of the remaining files. The mass copy command Now that we have a number of files"tagged", what do we do with them? Well, the Mass copy function is one of those that act 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 combined size of the tagged files, IN 1K BLOCKS. If yimply not made. - 13 - NSWP 2 - A disk maintenance utility After the mass After any mass file operation, the tags are"reset" as each file is copied. Visually, they change from a '*' to a '#'. Tfter 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 same drive and user area as the source. The copy is sa 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. This function accepts a CP/M type wildcard and procafter 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' commands. The 'E' command Erases tagged or untagged files, at youron many files. Its purpose is to copy the tagged file(s) from one drive/user area to another drive/user. 12. B0: CDP1 . 40K : M Copy to drive/user? A14: V Copying --> B0: BRUN .COM to A14: with verify Verifying --> file ok. Theou 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", and that these "BLOCKS" may be up to 16k in length. he 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 the same files to a number of different diskettes or user ed. 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 :* As you can see, the untag function subtracts the eeds 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 displaymay 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 Unsqueeze tagged files. This file squeeze program is comp0BH-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 currently set to zero. Credits My thanks to all 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 - 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 of NSWP. If you select 'S' for Squeeze, all taggedar 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: 103H This byte controls the screen length used in the 'V'iew comthe '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 possible. The SQ algorithm used in NSWP is better than the one in atible 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)? After answering this skill-testing question, you will be 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 them, as anything (or nothing at all!) will do. As far as the --> 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 specify will be reset. To reset all the flags (IE: Change to R/W, 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" squeezing, the file will simply be copied to the destination drmand. 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 location 105H. All seven bytes are currently set to zero. 1the 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 separately by him. He also has a public domain standalone squeezer. 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 that they originated. - 14 - 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 NSWP have now been described. The best way to get more famili 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 destination drive/user. The most attractive feature of ive/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/user. If they are not squeezed, then they are simply copied. who made this program possible, and especially to Dave Mccrady for his help in composing the documentation and .HLP files for NSWP. Thanks also goes to Jim Lopushinsky, also of Edmonton, since without him the SQ section of NSWP mightGAIN $ k |͌}͌!HL =$}o|g!&s %/ !\6# > w#@ #6 2 *|g>o~2 #" * #~+:† ~@!\w##: 2 : G!].ʛ w#Ž ! e~#£ \< ͣ ++NO FILE OPEN ++$COM!  - _ !\é !CPM Wild Card Rules with * and ? apply ? $ Valid CPM file names allowed - up to 8 char filename and up to 3 Chars in file type - form: XXXXXXXX.TTT. CPM wild card characters * and ? are allowed. Use * to match trailing chars in filename and/or2 - 160 Street Edmonton, Alberta CANADA T5P 3E9 - 16 - e reverse video off sequence, I intend to port it to MSDOS. Suggestions for enhancement are also appreciated, and you may send them to: Dave Rand 1023covered = $ Erased file = $ Input any Character to continue ? $ files on selected drive 3 - Recover erased files 4 - Input drive where erased files are located - A,B,C,..,P ? $ File to recover = $ File re A2 # +" >2 * ; ~ *3>?'M!.M Yͫ #N!h#C 0 k !; >2O u*!* ^#V* +DM3DM$* DM! '!u-!w#¡!͡! File RECOVER program - Version 2.1 100-108 Works with CPM 2.X --- 06 Sep 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 send a contribution (suggest $20). This will helpt four positions in filename ABC: match ABC char for last three positions in filename ?: match any char for first position in filetype TT: match TT char for last two postions in filetype $ TYPE: 0 - Exit program to recovered drive file type. Use ? to match any characters in exact position in filename and/or filetype. Common examples: *.TTT or XXXX.* or *.* XXX*.TTT or XXX.T* Specific example: ????ABC.?TT ????: match any char for firs1 :2 < 2 ͠ ͻ ͵ ͠ ͖ 8{ *0~#D!ͼx ! > ͔ k 1 ! 2 x k ͜ 0ʵ 1ʚ23ʲ4ex  k ͜ A2 ʹe! _!!~_>W}# !V=, !h|}! ,!k e>2covered = $ Erased file = $ Input $y Character to $ontinue ? $$ @`s o!_! !> ] > ] ! * !w#” !P ʵ ͫ !a{_!: !~G2_! ~O! k R DATA ERROR DETECTED - TRY A82 Author - F. Roland Bjorklund Copyright 1982 (c) MNH Applied Electronics Inc. 5501 Cherokee Ave. #204 - Alexandria VA 22312 For non-profit use only - not for resale ctl-C exits program at any input request $ Input file name to recover 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 appreciated, and you may send them to: Dave Rand 1023 1 - Select the drive to recover files on 2 - List erased files on selected drive 3 - Recover erased files 4 - Print HELP message ? $ Input drive where erased files are located - A,B,C,..,P ? $ File to recover = $ File rew#͙! k qͅq~~~~͌x >!: <2  k ͜ x x >2 !>he!x~] #q!=> ] !>.] !G͢x͢!0:ڭ] !x >2 >2 k !+ > ͔ ̈́ !;  > ͔ !+ ~ex !+ F#qx !, F#>: xO x : O "   ͫ*  ͫ ͫ* " *  ͫ!" " * #" * #ڂ!" * #" * " " * ##]m2H :H <2H bʹá!=_!I ^! "M ~#~ :O ; *M # ?#! k *M  \7é !!s w, !6v#6v!:|=!2|:h<2h\2|!\é ! { ! w u !~# x— !  !w# x¯ !TEMP $$$  KIL&"=! *͍V"=2?6 ͮ͡2NÓbk:)=; :?o*}qP *}* # >2L\  \<ª 2K++ FILE NOT FOUND ++ f=2Ko&))))) >D2u ~. : ; # ~ ;#.:4#> |2Qʹ   *"A!"C*#yyDM/BK:=R͌*Aͮ*C͡! x,͌*A"\*C"^{ʐ*Z͍?ڐ*͍VÓ*Z DM:YĎ'>-:> 2f*#}¼|~z{ʯ 'Ø '**\͍*^"AC*Aͮ͡ÿ  ++ EOF ++ î :Oœ 2P++ Can't dump, no sector read ++ 2PUse G command following F, or R or S following T W~;ʧ °  ͣBK ; #ͣ`i}<uu:uA ~<}u}u{ #} ~W Sec/trk 00: *WS> :6 Sec/non-trk 00: *}S> :6 Groups: *S> :' Dir groups: *ZS> :6 Sec/group: : :6 Dir entries: *#S> :6f :RO͹f2Pf(z*8#|W#e *d|>*2f"d *I+"I|*d:G:h҅:O*g! LAST ADDR=*g "g+|<}< f2P++ YANK MEMORY FULL ++ f:O! >2@f:@! f2P++ NO "<" SAVE COMMAND ISSUED *\"Aͮ͡2NÓ*=! u|h~> 0>(:~<u#ͨ>.:ͨ:f:~<~> b>):À ++FREE++ ::2:>2Y::›ã>::u2Y~# ڶ~ڼÿ:¨*#"I!"d!/:;#~$~!$~_#~$:DU.COM v8.7 05/14/84*."g "`}0! 6! "!0"g*"*"4"h"0қ""""R"""P:`ʇ"+Û*.!"+!"b DISK UTILITY v8.7 Universal Version under :a>M>C:P/M :`>0:::uHB z~  ~ >.:{+ #} z~W{ f{ f~;[ _ ÓTr Sʎ G 4(*S͍Vͮ >2Nî (z4*}͍̈́4͡2Nʹ Ó**A͍*}͔*C+:G}2?:Gy "=*2L:K2?- o"8*8!zf"8|fW:`4({ 4z4 f:<2<f{T @:i>i] xi~WTf&ˆ00Oùͤf~ ;  #AOy2R͓> ͙:`|4^#V+"b! ~#foʹ*ͮ*E++ W~# ɯ2O~% !6 î y G~{4:MŒ *4} 2M*C*Aͮ͡ʹ !~#"4:O4 {¿ !~& ~ ~ ~ :, & *SO TO U Vʮ WXJY;ZJ/(@2P?W:;/2;f 2P+++ OUT OF MEMORY +++ WStatistics for drive :RA:>:: Tracks: *S#S> :6 Sys tracks: *S> :6*W*}͍ Sec/track: 7>.:0: Type ? for help Type X to exit ͕!~WGW## > !^2Pc>282912:>2M!"4~W:L ~ W;#f 2u+ʏ-=% <ʨ>#t?ʰA- BaCD- Fd GO H- K LʞMdNP?QR ɯ2x\ +~#:V !]~ @2\#~ M ~ H yO~0O#2 y<2x]  "{ *g|0 } Empty! É 2y:xʙ =_ \< File exists! Delete? 0 Y N ÀY \\<No dir space! with C or Ctl-C Suspend output with S or Ctl-S Separate commands with ";" Example: G0 +;D;Z#20;/ would step in, dump, sleep 2 seconds and repeat until CTL-C is typed All "nn" usage except "/", "T", and "S 'x' hex +[n] step in [n] sectors -[n] step out [n] sectors # print disk parameters for current drive =Abc search for ASCII Abc from current sector caution: upper/lower case matters use for hex: -ͣ#BK,4HjA4~ f;f :~:@C:"sd #yWf*s!~ f;f4#~ f;f,i"6{<yʖf*6j~ f;f4:Nµ͡f2P++ Can't read - not positioned ++ Position by: Track then Sector,] [More] N New disk P Printer toggle switch Q Quiet mode (no msgs) R Read current sector Snn Sector nn Tnn Track nn Unn User nn for Find command (CP/M-2 only) V[nn] View [nn]#DM:Q?+?*b ͓*>͙-:~5g:`?&i"EDM͓Q> ͙ɯ2P++ Not within tracks 0-*SS ++  W`i"i͓ڞ> Ù>2O͓ڽt*i 2P++ READ failed, sector may be invalid ++ :O1À!0"v2z*v\7Write error x!z4*v"v*gz{*z&S sectors written. !0"g\:y_ *{f~ ʥ;ʥz4z¥*C*Aͮ͡î ~ ;z4*C+|*A|*S"A*U+"A*} this guide) A[ff,tt] ASCII dump B[nn] Boot track number of sectors per track [More] CHANGE: CHaddress,byte,byte... (hex) CAaddress,data... (ASCIIx Allowed for imbedded hex CHfrom-through,byte, e.g. CH0-7F to find "IN 0" use: =<0> or "(tab)H,0(CR)(LF)" use: =<9>H,0 < save current sector into memory buffer > restore saved sector ( toggle map display of erased files ? help (displays or Group ff><:<>>::2x<y<x<yE N0: \ |S{0:> :>*:~W~—0WÚ:#~€#z¸{ƀ_ɯ2P++ BAD DISPLACEMENT (NOT 0-7F) ++ W#~#'~  ;,- ASCII sectors W Write current sector X Exit program Y Yank current sector into sequential memory Z[nn] Sleep [nn tenths] /[nn] Repeat [nn (decimal) times] [More] Cancel a function 2P++ CANNOT WRITE UNLESS READ ISSUED ++ ^ ͓OtV*i >͙Rr2P++ WRITE failed ++ > ͙> ͙:G =:`0"q"o`i"m2kk2 Operands in brackets [...] are optional Numeric values: 'n' are decimal,"Czî*C#*}͍̈́A*A#*S͍4"A!"C*S*A͍;*U͍;4(zq*}|*}͍4"Wf*A|‘*W͙f**A͍G=*=DM'>:::?<, T=*AS, S=*CS, PS=*ES~ #ͣ#,E5 CAfrom-through,byte D[ff,tt] Dump (hex+ASCII) Fn.t Find file Gnn CP/M Allocation Group nn H[ff,tt] hex dump K[du:]filename[.ext] Dump sequential memory to disk L Log in drive LX Log in drive X M[nn] Map [from group nn:#>^:>U:c> :> :`_O S> ::HCÍ b b y:Py y>2HÅ څ:H<2H:<đ͓ک>͙*S͍V"ABK͓> ͙*"C*A͍`i͓+:2G:Wy>#04:A4G40))))o#~#~  ;,->#04:40bk)))o|g1 :!0O  ʬʹʹ ow#:o+>*:ow:> :!ɯ +y~:ooj  $6 !~ o" are hex (use #nn for decimal) (See DU.DOC for complete examples) fyo#x}/o|/g#ɷ|g}o&҈,%ƒ}o|gBKx¤!ñ T]xʱ ç:`} *}"W*.:^#"}"W^#"~#2~#2^#"^#"MISC: ( toggles the map display to show/not show erased files /nn repeat previous command nn times (repeats indefinitely if nn omitted) Bnn boot nn sectors per track LX log in disk X P printer toggle Q before a command does it "quietly"etter commands much like "SID" OR "DDT". For ease of use, multiple commands may be placed on one line, separated by ";". In addition, a given command or string of commands may be repeated -- either indefinitely (until ^C is pressed) or a given numberk -- where the files are located Mxx map starting at group xx Vnn views (like CP/M type) nn sectors CHANGING: CAnn,VAL change data in ASCII (with escape to hex) CHnn,VAL change data in hex Unn change user to nn SEARCHING: =Abc sature. The only alteration that needs to be done is to use DDT to set the byte at 103H for your clock speed. Use 0 for 2MHz, 1 for 4MHz, 2 for 6MHz. (This only affects the "Z" SLEEP command.) 2.0 USE: === To invoke "DU", simply enter "DU" at t^"!?~:w*6 "U"Sw.:́:́&"Z&҈,%ƒ}o|gBKx¤!ñ T]xʱ ç:`} *}"W*.:^#"}"W^#"~#2~#2^#"^#"y track +nn going ahead nn sectors -nn going back nn sectors I/O: < puts current sector "away" into a buffer > recalls previously saved sector K writes "yanked" sectors to a file (see "saving sequential memory" in notes below) R reads of times. To avoid an accidental ^C from dropping out of "DU", only the explicit "X" command will exit "DU". 2.1 COMMANDS, BY FUNCTION === HELP: ? displays the help guide POSITIONING: Gnn by allocation group Snn by sector Tnn b DU-V87.DOC ---------- By Ward Christensen (revised 05/14/84) additional notes by Ron Fowler, Irv Hoff, and Jeffrey Nonken This version of DU is compatible with CP/M 1.4, 2.x and 3.x and does not require alteration for varican for Abc (IN ASCII) from current sector on (very slow, allow up to 15 minutes to scan an entire disk. Either finds the answer or says: "out of bounds". FNAME find a file in the directory F find next occurrence (extent) of same name he CP/M prompt. A>DU An initial command string may optionally be placed as an operand of the original "DU" command, i.e.: A>DU M;X for example, if you want to only map the disk, and then exit: Once "DU" is running, it expects single-l sector W writes sector Y "yanks" current sector into sequential memory DISPLAYING: # shows disk parameters A dump sector in ASCII D dump the sector (hex + ASCII) G shows current group, track, sector H dump sector in hex M maps the disSUMMARY 3.0 NOTES 4.0 INTERPRETATING DIRECTORY DATA 4.1 SINGLE DENSITY 4.2 DOUBLE DENSITY 1.0 INSTALLATION: === "DU" should require no changes to the source file because of the use of the automatic adaption feous hardware configurations. It adjusts itself automatically to the correct number of sectors, tracks, directory size, etc. INDEX 1.0 INSTALLATION: 2.0 USE: 2.1 COMMANDS, BY FUNCTION 2.2 ALPHABETIC COMMAND X exit to CP/M Znn sleep (nn tenths of a second) to allow viewing data before it scrolls off 2.2 ALPHABETIC COMMAND SUMMARY === # Prints the disk parameters + Advance 1 sector (if below track 2, this advances to next numerical,rements for each yank) Z sleep -- causes the porgram to pause -- such as to look at a dump. Z is 1 second Znn nn tenths of a second Z50 = 5 seconds 3.0 NOTES === * Multiple commands: May be separated by ";" EXAMPLE: The following ce in directory Gnn position to group nn and read G shows current position H dump sector, hex only Kdu:filename.ext save a file from "yanked" sectors. drive, user are optional. Resets "yank" address. see "saving sequential memory" ibe possible to restore this program without errors. If there are no "*" in this complete file, it can be correctly restored. < saves current sector in a "save" buffer =Abc ASCII search, starting at current sector. hex read TNN seek to track nn (no read) Ux logs user "x" for next "F" command V views the current sector -- assumes ASCII data Vnn views nn sectors W writes the current sector to disk NOTE: may NOT be used after an "F" command as CP/M nge hex values in sector CAADDR,CHAR STRING... change ASCII calues in sector NOTE: may be hex imbedded in the ASCII string: CA00,OK<0D><0A><1A> ----> W writes changes to disk note that the "C" command echoes the over- if 2 or more, advances based on CP/M"s normal sector scrambling algorithm, i.e., allows + to the next logical sector of the file. - backs up 1 logical sector NOTE: + and - may take an amount: For example, +15 advances 15 secations for files Mn shows which file is allocated to group "N" N resets CP/M via BDOS -- this may make it possible under some implementations of CP/M to change the disk format, i.e., density, sides, etc. P toggles the printer on/off Qn notes below. L re-logs in the current disk -- you may pull out a disk, put in a new one, and "L" just to log it in. (see "logging in disk" in notes below) LX logs in disk "X", such as: LB, LC, LA, etc. M dumps a map of the group alloc may be imbedded or used alone. To find the ASM instruction: "IN 0FEH" use: = (Ignores bit 7 unless using .) Since ";" is a command delimiter, you have to use <3B> to search for a ";". Also, since "<" is a hex was used to find file in the directory X exit back to CP/M (must press return). ^C was too easy to hit over modem lines -- requires two bytes: (X,CR) to exit. Y "yank" the current sector into sequential memory (starts at 3000H, inc laid data for verification. CHADDR-ADDR,BYTE repeats a change CAADDR-ADDR,BYTE repeats a change D dump sector (hex + ASCII) FNAME print directory for file "NAME", then positions to its directory sector. F find next occurrence of namtors / repeats entire command -- defaults to "forever" /nn nn may be 2 TO 65535 ( toggles the map display to show/not show erased files. When showing erased files "*" indicates that block duplicates a block in another file. It may not quiet -- preceedintg any command, suppresses CRT output R reads into memory the sector currently positioned at. NOTE: "R" (read) is implicit in the G, +, and - commands but NOT in the "S" and "T" commands Snn position to sector nn, and : "OUT OF BOUNDS". > gets saved buffer. < and > may be used to move a sector to another place. ? displays the help guide A dump sector (ASCII only) Bnn boot nn sectors per track -- not all disks have 26. CHADDR,VAL,VAL,VAL... cha escape character, use << to mean a single "<". NOTE: This is a very slow routine. It can take 15 minutes or longer to search an entire double- density double-sided disk so be patient. It either finds the string or saysommands will erase the B: disk directory to all E5"s: LB log in B: drive G0 position to directory CH0-7F,E5 fill with E5 < save the sector >;W;+;/16 restore, write, next, repeat 16 ---- this could be shortened to: LB;G0groups for the same file. Be very careful when patching a directory under double-density. For exmaple: CH10,38,39,3A,3B... This might try to access group 3938 with resultant angry noise from the disk stepper as it attempts to find where it shcommand, or just doing "D" (dump) of the directory sectors, which are located in groups 0 and 1 on a single-density disk. SAMPLE RESULT OF "FSID.COM" COMMAND: 40 00534944 20202020 20434F4D 0000003A *.SID COM...:* 50 33343536 3738393A 00, would be to seek to the unused inner tracks of the first disk, do the read, then change disks. That way, if it writes anything, you won"t have destroyed anything -- assuming the disk is not completely full. Another technique (assuming the second diskunning on a double- density system: :FSID.COM 00 00534944 20202020 20434F4D 0000003A *.SID COM...:* 10 38003900 3A003B00 00000000 00000000 *8.9.:.;.........* G=0000:00, T=2, S=1, PS=0 The primary difference is that the groups now occemory into a disk file. The contents of sequential memory are determined by the "yank" function, and the pointer of that function is used here. If nothing has been yanked, you get an error. Once the file has been saved, the "yank" pointer is re-initi;CH0-7F,E5;< >;W;+;/16 * DUMP COMMANDS: All dump commands (D, A, H) may be optionally followed by a starting and ending address: D0,7F the same as just "D" D3,5 A20,3F * LOGGING IN DISK: If you have a disk with a "blown directo extent-^^ || || || || || || file size in sectors-^^ || || || ^^-00 = file active other values (E.G 03) = user # || E5 = file erased ^^-displacement of line in directory sector SECOND LINE - 50 33343536 3738393A 00000000 00000000 *3456789:........* FIRST LINE - 40 00534944 20202020 20434F4D 0000003A *.SID COM...:* || ||| | || || | | || ||^---hex file name/type--^ || || ^file name^ || || || || in ASCII || || does not contain a CP/M system, would be to seek to track 1, do the read there, then change disks to the blown one. * SAVING SEQUENTIAL MEMORY: Since CP/M v 3.0 does not have a SAVE function, one has been added. Syntax is: Kdu:filename.ext ^^upy 2 bytes, i.e., 38 00" "39 00" ... this follows the Intel and CP/M convention of putting 16-bit values high-byte-first. This it means group 0038, 0039 etc. Note that in double-density, each group stood for 2k not 1K, so there were half as many alized to its original value (3000H). Control is re- turned to DU. 4.0 INTERPRETATING DIRECTORY DATA === 4.1 SINGLE DENSITY === The following explains the format of a CP/M directory entry as shown by "DU", using either the "F" (find file) ry", try logging in a good disk of the same density, then put in the "blown" disk without logging it in. You are opening yourself to possible problems because of the buffering of physical sectors in the "BIOS". The best technique, (but not guaranteed)000000 00000000 *3456789:........* | | | | | ^- allocation groups ^-----allocation group numbers-----^ (just happened to be printable) 4.2 DOUBLE DENSITY === The following is a sample of "FSID.COM" rted. If so, omit the colon as well. Drive must be specified if the user is. If the user # is omitted, the current user is used. If the drive is omitted, the current CP/M default drive is used. This function saves the current contents of sequential m^ ^ ^ ||| | +-- file extension (0-3 characters) ||| +-------- file name (1-8 characters) ||+--------------- user # (or none) |+---------------- drive designation (A-P or none) +----------------- DU command Drive and user may be omitould go for the data. ... This might try to access group 3938 with resultant angry noise from the disk stepper as it attempts to find where it shfication. CHaddr-addr,byte or CAaddr-addr,byte repeats a change. :Search commands Fname Prints the directory entry for file "name", then positions to its directory sector. F Finds the next occurrence of the same name. =aaaa Scan for aaaa s the first sector of an allocation group. (nn = the allocation group in hex -- lowest value is 00) Tnn Positions to a specific track (nn = the track in decimal -- lowest value is 0) (does not do a read, must execute the S (sector) command first) or in a save buffer. > Recalls previously saved sector. Y Saves the current sector in the yank buffer. K Dumps memory to a file previously stored using the Y (yank) command. (requires the operand: [du:]filename[.ext]) :Change commands CHadis example will print a map of the disk and then exit. :Display Commands # Shows the disk parameters. A Dumps a sector in ASCII. H Dumps a sector in hex. D Dumps a sector in hex and ASCII. These commands may add ff,tt (from,to) to dump a ranhex -- if omitted, 1 sector is assumed) If "-" is issued at the first logical sector of the disk, the sector number will wrap back to the last sector. If "+" is issued at the last sector, the sector number will wrap forward to the first sector. Snn Positions to and reads a specific sector. (nn = the sector in decimal -- lowest value is 1) (the T (track) command must be executed first) +nn advances nn sectors and reads. -nn backs up nn sector and reads. (nn = the number of sectors in Purpose and Use Display Commands Positioning Commands I/O Commands Change Commands Search Commands Logging Disks Miscellaneous Examples of command use Interpreting DU lines DU-V87 Installation : Disk Utility by Ward Christensen dr,val,val,val... change hex in sector. CAaddr,char string... change ASCII in sector. NOTE that may be hex imbedded in the Ascii: ca0,OK<1a> Use W to write changes to disk. Note that the C command echoes the overlaid data for verige of sectors. G Shows the current group, track, and sector. M Maps the disk. Mxx Maps the disk starting at group xx. Vnn Views (much like CP/M type) nn sectors. ? Displays the help screen. :Positioning commands Gnn Positions to and read:I/O Commands R Reads the currently positioned sector into memory. Note: R (Read) is implicit in the "G", "+", and "-" commands, but NOT in the S and T commands. W Writes the currently positioned sector from memory. < Saves the current sectles, including directory entries and system tracks that have been destroyed. To invoke the program simply enter "DU" at the CP/M prompt: A>DU An initial command string may optionally be placed as an operand to the "DU" command: A>DU M;X Th (revised 6/13/84) DU-v87 is a CP/M utility that provides the user capabilities to inspect and modify data on a diskette directly by specifying either track and sector or by specifying allocation unit. The program may be used to recover fi(in ASCII) from current sector. (Specify upper or lower case, user for imbedded hex. :Logging a disk L Logs in a disk. Lx Logs in disk "x", such as: LB. Ux Logs user "x" for next F command. N Resets CP/M via the BDOS. This may make i it' als nic quic referenc t th comman synta and examples. Pete DU-V87.DOC is the documentation for the program. DU-V87.HL i reall hel fil fo th CP/ hel utility buDU uses the disk parameter block of CP/M to determine the characteristics of the disk environment. (see the disclaimer for certain non-standard versions of CP/M 1.4). The only parameter that should need to be changed will be the clock speed flxamples Multiple commands may be separated by ";". Any valid command string may be placed as an operand of the original DU command, i.e.: A>DU G0;D;G2;=OK<1A>;D The following commands will erase the disk directory to all E5's: lb loA.CO i littl utilit t recove delete files I brings up a small menu and doesn't need any documentation. DU-V87.CO i CP/ dis secto editor I additio t direc secto editing i provide dis mappin an automati file size in sectors-^^ || || || ^^-0x = file active/user area || E5 = file erased ^^-displacement of line in directory sector Second 50 33343536 3738393A 00000000 00000000 *3456789:........* line | | ^---allocation grot possible under some implementations of CP/M to change the disk format. (e.g., density, sides, etc) :Miscellaneous X Exits back to CP/M (Must press return). P Toggles printer switch on/off. Z Sleep - causes the program to pause, such as ag at 103H. Leave this byte zero if you have a 2 mhz clock. Patch it non-zero for 4 mhz. This is only needed for the "Z" (sleep) command. g in b drive g0 position to dir. ch0-7f,e5 fill with e5 < save the sector >;w;+;/16 restore, write, next, repeat 16 This could be shortened to: lb;g0;ch0-7f,e5;< >;w;+;/16 :Interpretation of a directory entry. The following expfollowin o file fro secto t sector an ca sav secto dat int buffe t b rewritte t ne file. DU-V87.DOC is the documentation for the program. DU-V87.HL i reall hel fil fo th CP/ hel utility buup numbers-------^ :Installation DU 7.0 and later versions of DU are designed to be installed with a minimum of trouble. In fact, in almost all cases, no changes to the source file should be necessary to get DU up and running. This is because to look at a dump. Z is 1 sec. Znn is nn tenths of a second on a 2 MHz 8080. /nn Repeats previous command nn times. Q Before a command does it "quietly". ( Toggles map display of erased files. B Boots track number of sectors per track. :E10/24/85 Here are three file and disk utility programs. SWEEP.CO i genera fil managemen utilit that' becom somethin o CP/ standard Ther ar severa simila MS-DO version available SWEEP.DO i smal book. UNERst 40 00445520 20202020 20434F4D 0000003B *.DU COM...:* line || | | || | | | || ||^----hex file name-----^ | | || ^file name^ || || | | || in ASCII || || extent-^ ^ || || || || || || lains the format of a CP/M directory entry as shown by DU, using either the "F" (find file) command, or just doing "D" (dump) of the directory sectors, which are located in groups 0 and 1 on a single density disk. Sample result of "FDU" command: Fir10/24/85 Here are three file and disk utility programs. SWEEP.CO i genera fil managemen utilit that' becom somethin o CP/ standard Ther ar als severa simila MS-DO version available SWEEP.DO i smal b th CP/ hel utility bu it' als nic quic referenc t th comman synta and examples. Pete itte t ne file. DU-V87.DOC is the documentation for the program. DU-V87.HL i reall hel fil foook. UNERA.CO i littl utilit t recove delete files I brings up a small menu and doesn't need any documentation. DU-V87.CO i CP/ dis secto editor I additio t direc secto editing i provide fo automati followin o file fro secto t secto an trac t track an ca sav dat secto b secto int buffe t b rewritte t ne file. DU-V87.DOC is the documentation for the program. DU-V87.HL i reall hel fil fo