Sig/M volume 17 miscellaneous CP/M utilies Name Size Description -CATALOG.017 contents of Sig/M volume 17 -CATALOG.ACK acknowledgement file 17.1 SCRAMBLE.DOC 2K command used to encode a CP/M file 17.2 SCRAMBLE.ASM 6K / 17.3 SORTV.DOC 2K sort program for variable length records 17.4 SORTV-12.ASM 13K / 17.5 TAG2.ASM 6K set/reset display the "no copy" flag 17.6 MNEXEC.COM 3K MicroNet executive 17.7 MNOVRLAY.ASM 4K overlay for MicroNet executive 17.8 WHICH/1.ASM 4K returns size and version of CP/M 17.9 STATUS.ASM 8K present various systems information under 2.2 17.10 NEWQCAT.ASM 5K quick catalog routine 17.11 WORM8/8.ASM 7K memory test 17.12 TFX12/18.ASM 21K CP/M to CP/M file transfer utility 17.13 XMODEM41.ASM 29K remote CP/M to CP/M file transfer 17.14 MOVPATCH.ASM 3K modifies MOVCPM for remote access 17.15 21BIOS.ASM 48K new BIOS for CP/M 2.0 17.16 21BIOS.DOC 3K / 17.17 21BOOT.ASM 4K / 17.18 MACRO.LIB 18K / 17.19 NPGEN.ASM 9K / 17.20 SPCLMAC.LIB 4K / 17.21 XDIR.ASM 13K updated CP/M directory display 17.22 XDIR.COM 2K / Sig/M acknowledges the following contributors: MOVPATCH.ASM submitted by Ron Fowler - 11/2/80 XMODEM41.ASM latest revision by Tim Nicholas - 2/17/81 original version by Keith Petersen W8SDZ STATUS.ASM submitted by Lauren Guimont - 6/26/80 TFX12/18.ASM submitted by Brent J. Crable - 12/18/80 NEWQCAT.ASM submitted by C. Strom - 2/4/81 WORM8/8.ASM submitted by Jim Eccleston - 7/19/80 with acknowledgement to Ward Christiensen and Bill Precht XDIR.ASM, XDIR.COM submitted by S. J. Singer - 5/24/80 SCRAMBLE.DOC, SCRAMBLE.ASM - 3/11/79 SORTV.DOC, SORTV-12.ASM - 1/14/81 submitted by Ward Christiensen TAG2.ASM original by Bruce Ratoff modified 2/17/81 by Tim Nicholas MNEXEC.COM, MNOVRLAY.ASM submitted by Homebrew WHICH/1.ASM submitted by David Fiedler - 11/25/80 modified by Ray Glueck - 1/12/81 adapted from TPA3.ASM by Ron Fowler 21BIOS.ASM, 21BIOS.DOC, 21BOOT.ASM, MACRO.LIB, NPGEN.ASM, SPCLMAC.LIB submitted by Robert M. White 5/24/80 May 24, 1980 To Whom it may concern: This disk contains a recently developed BIOS and support routines for CP/M (Copyright Digital Research). The BIOS was developed from rou- tines retrieved from the CPMUG, Tarbell Electronics, DR's CP/M 2.0 and J. S. Singer. It is meant to operate as a full blown BIOS under CP/M 2.0. In particular, it was developed to give the full disk capabilities that CP/M 2.0 and DFOCO, a disk utility by S. J. Singer, provide. It supports single and double density disks with 128, 256, 512 or 1024 sector sizes. The non-disk drivers fully support the virtual re-assignments allowed via the IOBYTE. Also, special utilities are provided to give the user quick access to the new functions being supported. The BIOS may be as large as 2.75k. Currently, it is limited to .75k by the way its stored on the diskette. To provide more room, I put the CCP on the disk as a regular disk file. For warm or cold starts, I merely open it as a regular file and read it in. Unfortunately, this takes more time than I really like due to required system overhead (I.E. System Reset, Disk Select, etc.). In the future, I plan to change it so that 3 tracks are used for system tracks instead of two. To generate the system, follow the instructions given in the BIOS. You will use files, 21BIOS.ASM and 21BOOT.ASM. The system generation is almost the same as if you were doing it for any old CP/M. To regenerate the system under itself, you MUST use the NPGEN.ASM file instead of SYSGEN and 21BOOT.ASM. These instructions can be found in the front of NPGEN.ASM. Please insure that you are familiar with system generations before tackling this one. Also, always keep a backup of your old system. This thing can become tricky! I look forward to any constructive comments and suggestions. Respectfully, Robert M. White H & W Computer Systems, Inc. 8530 Stonehaven Boise, ID 83704 (208) 377-0336 W-A-R-N-I-N-G 1. It may seem that some the files on this tape are repeats of old ones. Be advised that ALL files have been updated. That is, they are dif- ferent from the old ones. Please don't try to interchange them. 2. System generations may be hazardous to the health of your current sys- tem if you don't back it up. Always do so! Also, generate the new system 16k smaller than your current one. Then to check out problems with DDT, you can re-boot your current system and look at the new BIOS's areas. 3. All programs on this disk require MAC, the macro assembler distributed by Digital Research. SCRAMBLE is a command used to encode a CP/M file. The format of the command is: SCRAMBLE filename.type password where "password" is an 8 character password made of characters perissible in a file name (i.e. no ".", etc). To obtain a good "initial seed" for the scrambling process, no character in the password may appear more than twice. The requested file is scrambled, and re-written in place. To un-scramble the file, the IDENTICAL command is issued, i.e. SCRAMBLE filename.type password. This is because SCRAMBLE does an "exclusive-or" type modification to the file, and doing two identical exclusive-or's to data result in the same data being retuned. I feel a scrambled file is quite secure. Given that a file was scrambled and the password forgotten, I know of no way to determine what the original file was. Even a file which is all binary-0's, is sufficiently scrambled to defy finding out what the password or original data was. ...But I assume no responsibility for the "security" of files scrambled with SCRAMBLE as I am not a "student of cryptology". Note also, that if an attempt is made to unscramble a scrambled file, using the WRONG password, then the file is technically "double scrambled" and SCRAMBLE would then have to be executed TWICE, once with the original password, and once with the erroniously-used password. Because of the exclusive or-ing process, either password may be used either time. 03/11/79 Ward Christensen SORTV.DOC (vevised 1/14/81) Brief commentary on the use of SORTV by Ward Christensen SORTV is a "simple" sort program for variable length (CR/LF terminated) record files, i.e. the typical CP/M file of lists of things. It defaults to sorting from the 1st char in the line, but can skip past any particular characters that occur in the file. The file being sorted must fit in memory. You may write back to the input file, or to another. /// A typical use would be to sort a list of filenames into filetype sequence, i.e. names.sub from FMAP. Some examples: If you want to sort "files.nam" into se- quence: SORTV FILES.NAM; To sort a list of names (as pro- duced by FMAP *.* Q, for example) by filetype: SORTV NAMES.SUB @. The "@" means to sort "at", and the "." means at the period. Note EACH line must have the skip- character specified. To sort a file skipping a period, a comma, and 2 spaces: "SORTV NAME @., " where you put 2 spaces after the ",". Here's the general way to execute SORTV - To write back to file in place: SORTV name To write to another: SORTV inputname outputname If you should want to use a tab as a skip character, you must either specify an output filename, or use a single "." for the output name (causes input to be overlaid with output) This is because CP/M doesn't like having a con- trol character in a place it considers to be a filename (one of its two it may take on a command). Thus to skip a tab, a period, and another tab, writing "FILE" back to itself: SORTV FILE . @^I.^I where "^I" means you pressed the "tab" key. If you typed: SORTV FILE @^I.^I CP/M would reject the command because it thinks you are putting a tab into the second (output) filename. P.S. bug: file must end with cr/lf. Enjoy. Ward Christensen 01/14/81