CAT COMCATALOG DOCA UNERA COM COMPARE COM CRCK COM DISPLAY COMDU-V75 COM.DU-V75 DOC# name, such as '-WORK.023' or '-CBIOS.019', etc. The important thing was that each started with a '-' which meant it would sort to the top of the sorted listing. Eventually, I wrote 'FMAP' which creates a sorted directory listing, but also, if 'FMA!~#:V<2V0:<2:06æ6͈ 6͈R#?͈.r,r r~?G> #g7~?} g> #r*W|=¿\ʼ͊++READ ERROR OR EARLY EOF$!~#"W> > _ w#6?#͊ $tes. The first step was to make a 'DIR' listings with the printer on. Next I wrote a command called 'MAP' which printed the disk extent information also (but not any extent past the first). Then I wrote 'SMAP' which produces a sorted directory lisFMAP COM !"FMAP DOC#$LOOK COM%NFMAP COM&SAP COM'SD COM ()CATALOG 01 *+TURNKEY COM,!~#:V<2V0:<2:06æ6͈ 6͈R#MAST CAT NAME DISK NAME DISK $............ ............ FILES:ting. This made finding files in the listings easier. At this time I also adopted the convention of editing a 'dummy' file on each disk, called '-DISK.nnn' where nnn is the disk's serial number. Later I changed the word 'DISK' to any more meaningfulCAT.COM 2/2/80 $ !9"212]!4m!?J!] !_G6$\<•͊++UNABLE TO OPEN MAST.CAT$ *2͈)•͈͈ë>  Y >2 =ʐ!4?0?0!??0?0UCAT COM-.-WORK 001(THIS IS FILE CATALOG.DOC AS OF 3/13/78) CP/M DISK CATALOGING SYSTEM FOR COMPUTER HOBBYISTS BY WARD CHRISTENSEN -----OVERVIEW----- I have always wanted to be able to keep track of where files are on my CP/M disketP *.* F' is typed, writes 'NAMES.SUB' to disk with the names of all the files on the disk. This file of names then got me thinking about having a master file of names, or a 'master catalog'. That is what I did. I now have 1 disk file which contaname.type - namely the disk's name and serial. N-O-T-E that UCAT deletes the leading '-' when it places a disk name in the directory. Therefore you don't use the '-' when asking for a particular disk. Examples of 'CAT' command requests: CAT AT This will merge the file names in 'NAMES.SUB' (created by FMAP) with the names in MAST.CAT. It will report the names of any files which are added to, or deleted from, the catalog. -----USING THE CATALOGING SYSTEM----- 1) Whenever CATALOGING SYSTEM----- 1) Edit 'MAST.CAT' in order to place entries in it for the file names you don't want to be placed in the catalog. I already have ASM.COM, STAT.COM, PIP.COM, and others in the sample MAST.CAT. Since these are on nearly isk are deleted from MAST.CAT and the new ones added. This means the cataloging system properly keeps track of erased files also (i.e. erases them from the catalog when it no longer finds them on the disk being cataloged). If you want to re-catalog thCAT routine then takes this as the name of the disk. 3) Put the following files on this master disk: MAST.CAT FMAP.COM UCAT.COM CAT.COM -anyname.nnn 4) Type: FMAP A: Q This will creates NAMES.Sins the file names and disk names for every pertinent file I have. I also wrote a command which behaves like 'DIR' but scans the master catalog. -----PROGRAMS----- UCAT.ASM/COM Maintains 'MAST.CAT' CAT.ASM/COM Allows 'DIR' seen when 'NEW FILE' types, type control-c. This will leave the entry in the catalog, but will not take any data space. Then type:ERA *.$$$ (or ERA B:*.$$$) to erase the temporary file which was created by the editor. 2) Assuming the disk with t you put a new diskette into service you must place a '-anyname.nnn' entry in the directory. nnn should be the disk's unique serial number. The easiest way to place an entry in the directory, with 0 data as- sociated with it is to 'ED -anyname.nnn' thevery disk, I therefore don't want them to take room in the catalog. N-O-T-E you don't have to edit the file - you may type it and decide to take my defaults. NOTE The format of the 'empty' MAST.CAT is simply a list of names which you don't want put ie 'A' disk, type: FMAP A: Q then type: UCAT 3) Use the 'CAT' command to scan the catalog as you use 'DIR' to scan the directory of the current disk. The operands of 'CAT' are just like 'DIR' except that there is a second fileUB, which has the names of the files on this disk. The 'q' means to write the file to disk 'quietly'. If you want to see the listing, type: FMAP A: F Which will write the file, but also print the sorted directory listing. 5) Type: UCarch of 'MAST.CAT' FMAP.ASM Creates a file of the names on a diskette as input to 'UCAT.COM' along with 'MAST.CAT' FMAP is on CP/M library volume 8 as program number 8.14 -----INSTALLING THEhe catalog programs is on drive a, whenever you want to catalog the disk on drive b, type: FMAP B: Q then type: UCAT This results in the disk being added to the catalog. This can be done whenever you want, as the entries for the d '('. The last is followed by ')'. thus: (ASM.COM PIP.COM STAT.COM) 2) Pick a disk which will contain the master catalog 'MAST.CAT'. You m-u-s-t serial number (3 digits) all your diskettes, placing a file '-anyname.nnn' on each disk. The Un the catalog. This may be 1 or more file names. It cannot be zero names. If you want everything cataloged, put a name such as 'DUMMY.FIL' in the catalog. The format is as follows: Each name is on a separate line. The first name is pre- ceeded by a lists entire catalog CAT *.* *.002 lists entries for disk 002 CAT *.asm lists all asm files CAT A*.* lists all files starting with 'A' CAT *.BAS WORK.* lists all 'BAS' files on any s on a 1 disk system. You type QCAT, and the program asks you to mount the disk to be cataloged, and press a D. You do so. It then tells you to mount the catalog disk, and press return. You do that. This causes a "NAMES.SUB" file to be written to tiskette it is on, then cataloging that disk. If you crash a disk and want to erase all it's entries from the catalog, you have to edit a dummy 'NAMES.SUB' with just the disk name in it, then execute 'UCAT' which will be faked into thinking you are ca REN MAST.CAT=NEW.CAT Thus, there are 3 versions of the catalog on your disk at one time: MAST.BAK, MAST.CAT, AND NEW.CAT, so if your disk is low on space, you may sacrifice this integrity, and manually ERA MAST.BAK before running UCAT. The program disk with name 'WORK' (any serial) Note that what you type following the CAT command appears as the title of the resultant listing. This is particularly useful for keeping hard copy listings of your catalog, such as by typing: (such as "-MAC.005"). When the list of names on the disk is sorted, the leading "-" on this filename causes it to be sorted first. It is then taken as the disk name and serial, and is written to the master catalog next to each filename on the disk. he catalog disk. Type: UCAT which will then execute the catalog updating program, which alphabetically merges NAMES.SUB with the file MAST.CAT, then erases the NAMES.SUB file. NOTE that each disk to be cataloged must have a file "-diskname.serial" taloging an empty disk. This will cause all entries for the disk to be erased. EXAMPLE: Suppose disk '-WORK.023' crashed, and you want to delete all references to it from MAST.CAT. (you might first want to do 'CAT *.* *.023 to see could also be modified, to do the erase first. ------------------------------------------------- ------------------------------------------------- QCAT was submitted subsequently, with the following comments: QCAT allows cataloging disk CAT *.* *.* AS OF 02/17/78 this will result in the title: FILES: *.* *.* AS OF 12/17/77 appearing on each page of the catalog listing. 4) If you want to erase something from MAST.CAT you do so by erasing the file from the d You are referred to the previous documentation on the cataloging system for more details. ------ irst. It is then taken as the disk name and serial, and is written to the master catalog next to each filename on the disk. ---------------------------------------------- The UCAT program creates a file 'NEW.CAT', and ONLY when the update appears to be successful, does it do the following functions internally: ERA MAST.BAK REN MAST.BAK=MAST.CAT what was lost). Edit NAMES.SUB and place the following single line in it: -WORK.023 then run UCAT. This will result in all files referring to -WORK.023 being erased. ------------------------------------------------- N O T E S ---0 UNERASE Ver. 1.5 (12/10/81) (CP/M Version $2.2xx) $1.4xx) $:@d~:++FILE READ ERROR++$*|):o<|g}o"I R0k~k#~X> k> _:F{Ͳ2h2|:!\ /:\2!\ /\!\ /\!\ /\<7=Ɓo& UNERA DISK WRITE ERROR $ ILLEGAL DISK DRIVE SPECIFIED $ FILE RECOVERED - PLEASE DOUBLE-CHECK BEFORE USING $ NO FILENAME SPECIFIED $ FILE NOT FOUND $EGAL DISK DRIVE SPECIFIED $ FILE RECOVERED - PLEASE DOUBLE-CHECK BEFORE USING $ NO FILENA DISK FULL: CRCFILE$!"**#"ɯ22! "!"<~ f  NO DIR SPACE: CRCFILE$1 ͊F:ʤ:++FILE NOT FOUND++$:F<*}¸">Ͳ¬<  CANNOT CLOSE CRCFILE$CRCKLISTCRC0+>Y24+EOF FILE 1, NOT FILE 2 $  X:Yg^EOF FILE 2 BEFORE FILE 1 $  ͂FILES MATCH, LENGTH IS $   Ð ڥ0_w#¶N BYTES $2>)w\Ð|*w,"!~0}}:]!u}:\c<=2\  >*;Ԥ2}:\O͵|ʂ:0^#V"^#V#r}2!~2>02*:Gi::O͸:O͔ͻɯ2!COMPARE.COM 1/8/78 $ "1:m 8 ]!mͶD~# ;!\R ;y!ͼ G:6QxJS*u*w}|!"w*u{z*sR¾*w"wÐ*w"u!"w*s*u}>*w#"wɯ2^2r!"u"wR DISK FULL: CRCFIL3 w# $!ͧ DONE$!e ~!]w/!e/W --> FILE: XXXXXXXX.XXX CRC = \<«:++OPEN FAILED++$!"!"*| @\!~2#"#÷ :@> k ~V6>2:<2 :G:O͸:O͔ͻ‹:=2:<2#] # ]~#iu|g}o }}*M n     CRCK.COM 4.2 10/6/80!9" 1 d:] Lͧ++NO FILE NAME SPECIFIED++ $WCRCK ver 4.2 CTL-S pauses, CTL-C aborts :m2F~ïCRCKLIST$$$ ͖ ͖ Ăy0 4**}|$!"*{z**"  4!FILES UNEQUAL AFTER $  PLAST DATA READ FROM FILE 1: $ *-,~ ʨ w w ڱұ_:<2<2͝ $ 2> w>(_͜͜:2>)w\Ð|*w,"!~0*S#"Sɯ2:2N!"Q"S.<  NO FILE2 FILE$G /] /2h2|2((~$#~# x/ :F”*}T">ͲH<Œ uÌ CANNOT CLOSE CRCFILE$ͧ ++ABORTED++$ * !"B!":*:+":<C"@*<">*@*>DM*z +|9z>C#s#r>~Cn@~C+s#rt*z"~*~"@C+s#r@C+s#r*DM͇*u& ~2tO>Zһ:t2t:u<2u*g͇ g:2v!t6 !u6͟!Dq!D:t:v1:s/,H+s#r*,~/*,#",*,+",*,~ I*,+",6*,"!2r+s+q:0›>1P~CHҘ*~~ Ž*1+"1*~#"~`*1#"1>1Pz~CH*~~ *1+"1*~+"~âz~C*~#"~*~"!46~ File not found$ Illegal command$ۑ@!!\ #~?-#ʻMn+~OŸ+~CŸ++CAN'T DISPLAY .COM FILES$JŸ+~BŸ+~OŸ++CAN'T DISPLAY .OBJ FILES$\))덑o|g) =DM!>))> =6i`N#Fogo&ogn@~C+s#rt*z"~*~"@C+s#r@C+s#r*DM͇*u& ~!Display Ver.1.0, Oct.,30,1980$1Y.!\ -,_͗:[NL *zDM͇g:t mgYÅBy4E҅ !w6!":t- !w6͟:t02xO> *x&"͟:t02xO> *)))*) *x& "͟ú:tL*wM*PM:tCf*~~23 Z:3 '*3Mg!44P:4O>26!56:6!5P g!44#48*~#"~*~#"~ g*"8"~!76>!7ڈ!74u*~"*8"~!;p+q>:P¼~C"@*~">+*z"<>:P!"B>BP*<~ *B+"B*<#"<S   2[!mp+q*l  !nq*n& !pp+q*o  g g!rp+q*q A!s6!Y"z"~"*z"!6!6*"|!+p+q:sO**",|S!".![6>.P:[H*,DM1*,",*.+".ð:[!s6*,"P7>P+*/"*wM*P4*z"~"M:tDJ*DM͕MSgYLYv !\q*\& !]q*]& !_p+q*^ !ap+q*` 2[!cp+q*b 2[!ep+q*d !gp+q*f !ip+q*h 2[!kp+q*jDU.COM ver 7.5 1/23/81*." |2*""""<"D""\""""S:p"Å*.""6 DISK UTILITY ver 7.5 Universal Version Type ? for help Type X to exit ]!~GW##> !W2 >ctor may be invalid++ :O26 ++CANNOT WRITE UNLESS READ ISSUED s26 ++WRITE failed++ 6 Operands in brackets [...] are optional Numeric values: 'n' are decimal, 'x' hex +[n] step in [n] sectors; -[n] step out [n] se ** #>2\y y \D2|~.ʡ ʢ ;ʢ #y ~ ;#.#> ¢ ~ ; ͙ z( z *`*Ha ~ ; ͙ z*+| z :2͙ {$ @:1> x1F$POÁl~ ;#AOy2:ʥ|^#V#"!~#fo=*H`*|2g *"!"*#DMBK:=*H*`)o|g 6 :!WOʲ Ubbʚ| w#K+>*w> !Wɯʲ+yv~͇͇}  $6 Ϳ!W~ #ä>^>U > > `_O > :4 , no sector read. 26 Use G command following F, or R or S following T ~;] fyZ BK y;y#Z `i} , , :A~ }, }, {ʱ#}‘F:H1 ~ ~>.{#}1 ͿF{|Ϳ{|2212>2!"F:˜ ~ ;#2+ʫ - =ʃ#?uACʸ DF G HLfMNʨPQʹRl S T UViW XZ/ʿ26 ?26 +++ Out of memory +++ 6 Disk Informat  "#y * ~ ;#~ ;,- "͙ { yZ *. ~ ;:y 26 ++Can't read - not positioned Position by: Track then Sector, or Group >< >>: x y  *| *"* +"*"z *#*Q *#*J "!"] **ډ 6 G=*DM >:: >,6 T=* 6 , S=* 6 , PS=* Ϳ~#Z #- Z #BK ,H. A~ ; ~  ( ! x: : ͙ {:BK >-*#}R|wFʂzk{E ͊: ͊Ϳ* , |~> œ>(~ , #>., ~ ~> >)6 ++FREE++ :2ʿ>:, ~#  :y >2, ,:<2:8*ڤ"BK*"*`iҀ:š+Ú* :g:š&i"DMɯ26 ++not within tracks 0-* 6 ++ >226 ++READ failed, se~;  W T( SD Gʼ  *ڤH>2a z*`2g W ****+:G}2:GŒ "*2:2-« o&" ͙ *ڤ"2 H`2W bk:)= :o*ion: Tracks: *# 6 Sec/trk: * 6 Grpsize: : >*F~N Q #~7 #͙ zo {o ƀ_ɯ26 ++BAD DISPLACEMENT (NOT 0-7F) ~# ~ ;,->#0: AG0))))oâ #~ ;,-#0:0bk));26 = AT : Ϳa ~<#~<͙ >{:G*}b( 2*`*Hg !~#":͙ {z!F~~Ҥ ҫ ʫ ʫ ʫ~ î,}( *`*Hz6 ++EOF++ Ϳa :R26 ++Can't dump ~ *#"!~~N_#~N:BW#eC *+"|"!:!!>2:ʚ!26 ++NO "<" SAVE COMMAND ISSUED ~#ɯ2F!W6 a 4G~ for hex: To find "IN 0" use: =<0> or "(tab)H,0(CR)(LF)" use: =<9>H,0 hex may be imbedded, or used alone: To find "IN 0FEH": = Ignores bit 7 unless is used. L Re-logs in the current disk. You may pul> < save current sector into mem. buff. > restore saved sector ? give help A[ff,tt] ASCII dump (Type any char. to continue) C Change: CHaddr,byte,byte... (hex) or CAaddr,data... (Ascii) Allowed for the "Z" (sleep) command. USE: 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 Functions supported: Tnn Seek to track nn (no read) Snn Position to sector nn, and reaimer for certain non-standard versions of CP/M 1.4). The only parameter that should need to be changed will be the clock speed flag 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 W Write current sector X Exit program Z[nn] Sleep [nn tenths] /[nn] Repeat [nn (decimal) times] (Type any char. to continue) Cancel a function with C or Ctl-C. Suspend output with S or Ctl-S. Separate commands with ";". Exal out a disk, put in a new, and "L" just to log it in. Lx Logs in disk 'x', such as: LB Ux Logs user 'x' for next F command. Gives '?' error if not CP/M version 2.x. D Dump sector, hex + ASCII A Dump sector, ASCII only H Dump sect DU-V74.DOC by Ward Christensen with additional notes by Ron Fowler (revised 1/15/81) HOW TO USE DU ver 7.4 DISK UTILITY INSTALLATION: The 7.0 and later versions of DU are designed to be installed with a minimum of trouble.imbedded hex. or CHfrom-thru,byte e.g. ch0-7f,e5 or CAfrom-thru,byte D[ff,tt] Dump (hex+ASCII) Fn.t Find file Gnn CP/M Allocation Group nn H[ff,tt] hex dump L Log in drive Lx Log in drive x M[nn] Map [from group nn] ad Gnn Position to group nn and read. G Shows current position V Views the current sector. (assumes ASCII data) Vnn Views nn sectors Fname print directory for file "name", then positions to it's directory sector. (Won't position under #ɷ|g}o  }o|gBKx-!: T]x: 0:OÅ*.:^#"^#"~#2~#2^#"^#"^"!~:w* ""wmple: g0 +;d;z#20;/ would step in, dump, sleep 2 sec, and repeat until control-c typed. All "nn" usage except "/", "T", and "S" are HEX. Use #nn for decimal. See DU.DOC for complete examples. y#x}/o|/gOTE 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 verification. CHaddr-addr,byte or CAaddr-addr,byte repeats a change + advan!T ͱ!Y v:S K2K ͱY ͱ:S LD=P@͝:S KP>, a :S /~aF###~{xgya~=#:S /: ʆ͊®>-{ʗ* z>,{Ìî!yv:S /:J <2J >|{> { to: lb;g0;ch0-7f,e5;< >;w;+;/16 END ir. ch0-7f,e5 fill with e5 < save the sector >;w;+;/16 restore, write, next, repeat 16 ----This could be shortenedsummary # Prints the disk parameters M Dumps a map of the group allocations for files. Mn Shows which file is allocated to group "n". N Resets CP/M via the BDOS. This may make it possible under some implementations of CP/M to cha*F :  w#w#"F *N #"N *N DM! s#r#{_zW x;*N "P |]}=ʐ2R *P +" "P |ʐ! n ##* +" |s:R ]ͣ! "F :S ʢBʢ/ʢLʢ:S UY:T  ++ "U" OPTION REQUIRES VOLUME NUMBER AS IN "U23" OR "U123"$ < Saves current sector in a save buffer > Gets saved buffer. < and > may be used to move a sector to another place. / Repeats entire command. Defaults or /nn to "forever". NN may be 2 to 65535 multiple commands may be separated by "ce 1 sector (if below track 2, this advances to next numerical, if 2 or >, advances based on CP/M's normal sector scrambling algorithm, i.e. so + will get the next logical sector of the file - backs up 1 logical sector Note + and - maynge the disk format (e.g., density, sides, etc) R Reads the sector currently positioned to into memory. Note R (Read) is implicit in the G, +, and - commands, but N-O-T in the S and T commands (I did it because I was tired of disk readi:V *T "U >02T !` p  ~# :T 2 2' 2A 2x :U 2 2( 2B 2y :V 2 2) 2C 2z :H 2o :I =_o o <’ ++CAN'T MAKE NAMES FILE$:S U¢! eͱ *F ^#V#"F U 2K : S:S DP̈́:S M̈́͝:S LU;" Example: the following commands will erase the b disk directory to all E5's: lb log 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 take an amount: for example, +F steps in 15 sectors. Note also that "-" issued at the first logical sector of the disk will wrap back to the last. Further, "+" issued at the last sector will wrap forward to the first. ? Gives command +FMAP V2.3 - 12/07/81 FMAP H for help $!9" 1 :]HE:^ ʀ :\2H b<2I :\=_>?2\!mS ~# o:u2 U… ͊ !]~   6?#™>?2h͹<» ++NOT FOUND$:S B  FILENAME TYP EX RC #K EXTENTS...$͹<0c was too easy to hit over modem lines, so I decided on 2-byte (X, CR) to exit. P Toggle printer switch on/off Z Sleep - causes the program to pause, such as to look at a dump. Z is 1 sec. Znn is nn tenths of a second on a 2 MHz 8080.ng after T command before I had a chance to issue the S command) W Write back the current sector (N-O-T-E may not be used after an F command, as CP/M was used to find the file in the directory X Exit back to CP/M (Must press return). Ctl-2J *N +"N |¢:S +BB/BLB>F2S :S BB B/B>$2v :S ʨ Bʨ /ʨ Lʨ 2K > 1 o è FILES, K $͓" :S Bz*m |=ҳ: >?{>?{4^#: V#" ͓: : z| s is a B option: FMAP A: B The following all create a file called "NAMES.SUB" ON the logged in disk. The comments after the command show what is written to NAMES.SUB FMAP A: F fn.ft to NAMES.SUB (also lists to console) FMAP A: Q fn.ft ("ns: ons: ù$_ > ͟  ~`x>.`#"> `>?`_N7SY4> `> `_!v~0$ >1 > >$ >2 :S P> >$ >3 ~ {#±> {> {> {:S B / o  ) U znt over earlier FMAP in that the additional extents after the 1st are printed, and also for the new options: B, M, P, U. USAGE: FMAP Maps the logged in disk FMAP A: Maps disk A (Etc) Ambiguous references are allowed: FMAP A:*.ASM etc.K M N $1 $2 $3fn.ft SUBMIT MODEM Q N fn.ft P N $1 $2fn.ft$3 SUBMIT PIP Unnn Users group catalog nnn to -CATALOG.nnn Suboptions: .S selects names as listed; .P output to printer; .Unn selects only user nn VOLUME~___ DESCRIPTION: Np ))))xyO{x* & : |g}o=(: B)==|J} ++ ERROR COMPUTING #K - MORE THAN 255K/EXTENT$O! ~ʛx›!=ʛ)Ñ DM* #DM*F "m T] : 60# x¼: W: _*m )>1| ++ Insufficient room for table ![ :S K 2K ͱ![ 60#60#60*F ++^#V! F~G!] vB mM *N +|7*F ++^#V#N#F 7#l >*N +"N *F ##"F  }¹ *4~2 #~2 #~2 #~2 #~2 #~2   ~# x :I =_* :S / FMAP can also produce a bit map of disk allocation. Each bit is printed as a 0 if no file is allocated to that 1K block or a 1 if a file is allocated, or even a 2 or more if due to disk errors more than 1 file are allocated to the same block. ThiUMBER SIZE NAME COMMENTS CATALOG.___ CONTENTS~OF~CP/M~VOL.~___ / . 1 000K -CATALOG000NAMES SUBoptions: s or bit map ++$!v~# 80ڀ :Ҁ xGG x2M aGmG Q Oxgþp y0_:S FʘBʘ/ʘLʘ ̟: P{  :L O>2L \!o~ʹ: U:M ¹#] ?# ----FMAP.COM---- AUTHOR: Ward Christensen OVERVIEW: Prints a sorted list of files on disk, with their size in records and K, and a map of the allocation groups where the file resides. Optionally writes the selected names to a file. ImprovemeFMAP fn.ft [option][.suboption] fn.ft: ? and * allowed. Opt Console out? To disk as: Usage: --- -------- -------------- -------- / Y (across) B Y + bit map D Y $1 $2fn.ft $3 for SUBMIT F Y fn.ft UCAT input K fn.ft nnK L Y + seq# + # B/ // L/ :K / *k ~$ > w#"k }1 o P ++WRITE ERROR$!"k >. þ> > þ^#V#N#F #w ! ͉ ~{#~‰ >2R N#F#^q#Vpr+s:S B ! ͉ *m * #2{+|  þ $ Bit map: FMAP by Ward C. Help: q"uiet i.e. no list) FMAP A: D $1 $2fn.ft $3 e.g. submit names type b: $1 $2 FMAP A: M $1 $2 $3fn.ft (for use with SUBMIT and my MODEM program) e.g. submit names modem so.600 b: $1 $2 $3 FMAP A: P $1 $2fn.ft$3 (##:}=2}:>!f"1:BFOEE2!~G ~V~V:! 6# O:!<(::{!ou$NtO*-*Mv     :!:! ~G# >2:<2ͯ:<2!:<2!Ⱦfor use with submit, and PIP, where $2 is the disk, and $3 is typically the "[V]" option). FMAP B: Unn Creates "CATALOG.nn" on the B: disk, which is the skeletal CP/M Users Group catalog, with headings, serial numbers, the # of K, and alphabeticalN#F#^q#Vpr+s:BF‰>͎ͭEÉFILES[[ROOM]]d NAMES SUB ~͎K# Æ*. :BF«*Cw#"C|=̭E~++WRITE ERROR$!"C>.͎j> ͎> ͎j^#V#N#F #>2>o:01+X:BF‰>͎ͭEÉFILES$7j@ I0_ ~͎K#]> K   Æ*. :BF«*Cw#"C|=̭E~++WRITE ERROR$!"C>.͎j> ͎> ͎j^#V#N#F #>2>!9"w1+B'0]1:0O2b2pHBd W''} >=cBq=~Bt=N!tN#Fd*q:b2cͧʟ#"qÂ#"q+:c=2cʸ#ʤÂN>3*q+"q|}> 3!bN!d~> 3 !pyq>#!bN*q:!:! G~p# o&)))))>2!} o>$~0h h2#~$h#~$h#:w+6$+6$+6$:!<0*?(FMAP 3/19/80)!9".1.:m2B!]~ 3 6?#,\<2}WKXÉ++NOT FOUND$fXo:}ÖFILENAME TYP EX RC -----EXTENT-----$\<=!o*1 w#©w#µ"1:3<23Ê:3!fs#r# =:32==2>:==2}2=!fly sorted names. (Just thought you might be interested) DEPENDENCIES: 64 directory entries. 1.3 or 1.4 only. Probably gets mixed up by the high bits on in the filenames in 2.0. 1 |2O:\=Ot:Y|^#V"! ~#fo^#V"}!^#V"!^#V"*"{22!"b*DM!t$t*":<2!}ڧ*{#"{2!4~=!o&.22*"{!"b*DM!t't*":<2!} *))))?؅o0 !bw#_ B*wFinish address ........ $ NO MATCH$ $xy:pBNN+Fq#p!n~3#~3!nGw#xw0:!# "q|''> 3} >  How many bytes (0,1-9)? $ List bytes in hex ..... $ Start address ......... $ Finish address ........ $ NO MATCH$ $xy:pBNN+Fq#p!n~3#~3!nGw#xw0:!!9""1":m2$2%2 "(}a 2%:)a/ :% O>1:% 0C >2!\~r<2\@2!]~ ‰ 6?#‚>?2h:\=_2\:(##~2#~2##^#V"#^#V"*.;^#~2#~2#^""#)+""*{zҫ mat with the permission of The SIG/M User's Group Box 97 Iselin, NJ 07081 CAT. OM Part of Disk Cataloging System 01.3 2K COMPARE. OM Compare two files 01.4 2k CRCK. COM CRC a file (Checksum) 01.5 3K DISPLAY. COM k2*&&&>002(x0J:*>0:2*2 *  *  *#ڑW+}ʢzŒÈi`:ʱ)=¬   : Total of $k in $ files with $k space remaining.$>:> _K TURNKEY. COM Executes commands upon cold boot 01.15 2K UCAT. OM Part of disk cataloging system 01.16 1K UNERA. COM Unerase a file (if it's still there) Total of 45K in 18 fil\ >  (Strike any key to continue)$^#V#N#F_ #wl)) ) Nq#Nq)) ) N#F^#V_ #   2{*"es with 81K space remaining. This files on this disk were transferred from 8-inch disk format with the permission of The SIG/M User's Group Box 97 Iselin, NJ 07081.po 0 VOLUME 01 DESCRIPTION: CP/M UTILITIES FOR THE APPLE/Z-80 SYSTEM NUMBER SIZE NAME COMMENTS 2K CATALOG. 01 CONTENTS OF CP/M VOL. 01 01.1 9K CATALOG. DOC DOC on Cataloging System 01.2 1K "#"*{ozg"*"> ͎E**y**{ozgEE**#{z*!+"!""*+}ʝ ʁ*> b##"*+"k*^#V#" >  ^#~))))!o&:/o*"*#" >k*+}P" 01.12 1K SAP. OM Sort & pack directory (does work) 01.13 2K SD. COM DIR with file size (Kbytes) and space occupied/remaining (Kbytes) 01.14 1*.99<H?BO!~( O=x##  vbxʥ {˜~#o}oҡÇ.!p+q*DM͞:̓ ̓:}2:~!!:*& N̓!8!6:J#:J .B BJw# 26 #B6#J>2!8d6,#dr6.#r:µ4 {,ʭ.ʭ ʭʵw#r426 #­6#µ2!~ >0 >   BE 3 DIGITS$^!,/e!5/x++NO "-NAME.NNN" IN NAMES.SUB ++REISSUE: UCAT -name.nnn$ !,/(!5/4(!v4w#)4 xŒ++TOO MANY IGNORE NAMES FOR TABLE$++NO IGNORE NAMES IN MAST.CAT$++EOF READING F ~ _#> XXXXXXXX.YYY, . XXXXXXXX.YYY,XXXXXXXX.YYYXXXXXXXX.YYY,XXXXXXXX.YYY$$$ .SUB)SE MASTOUT$ò w# £! ͞! ͞MAST.CAT HAS ENTRIES.$ > >   ~ _#> _> _w#/#8>*}S">G<‹ tË CANNOT CLOSE MASTOUT$ò w# £! ͞! ͞MAST.CAT HAS ENTRIES.$ > >  "11MAST CATv;:0w  á*-*/}|ڊ!"/*-{z|*+ v*/"/H*/"-!"/*+*-}>*/#"/ɯ22*!"-"/ <  NO MASTIN FILE$NAMES SUBH USE FACTOR !/w OR IGNORE NAMES. MAY BE MISSING ) AFTER LAST NAME.$4 4JW:[:B!88ڝ E!,8ʋ8!Q/J!8JDEL: $!Q/!MADD: $8!Q/G! 6.# 6,v! ~ ) *" & DISK FULL: MASTOUT$!"**#"ɯ22!"!"<£  NO DIR SPACE: MASTOUT$MAST BAK CAT  !j8:-b:]-&:g ++SERIAL MUST"s**}|\!"*{zN*H*"*"!"**}>*#"ɯ22!""<ª  NO NAMES FILE$NEW CAT  NO Mw4N Y**}|I!"*{z;*充充充充充充充充