///1COMMANDS CP/M Plus Command Format: A>COMMAND {command tail} A CP/M Plus command line is composed of a command, an optional command tail, and a carriage return. The command is the name or filename of a program to be executed. The optional command tail can consist of a drive specification, one or more file specifications, and some options or parameters. ///2CONVENTIONS COMMAND CONVENTIONS The following special symbols define command syntax. {} surrounds an optional item. | separates alternative items in a command line. indicates a carriage return. ^ indicates the Control Key. n substitute a number for n. s substitute a string (group) of characters for s. o substitute an option or option list for o. [] type square brackets to enclose an option list. () type parens to enclose a range of options within an option list. RW Read-Write attribute - opposite of RO RO Read-Only attribute - opposite of RW SYS System attribute - opposite of DIR DIR Directory attribute - opposite of SYS ... preceding element can be repeated as many times as desired. * wildcard: replaces all or part of a filename and/or filetype. ? wildcard: replaces any single character in the same position of a filename and/or filetype. ///1CNTRLCHARS Control Character Function CTRL-A moves cursor one character to the left. CTRL-B moves cursor from beginning to end of command line and back without affecting command. CTRL-C stops executing program when entered at the system prompt or after CTRL-S. CTRL-E forces a physical carriage return without sending command to CP/M Plus. CTRL-F moves cursor one character to the right. CTRL-G deletes character at current cursor position if in the middle of a line. CTRL-I same as the TAB key. CTRL-H delete character to the left of cursor. CTRL-J moves cursor to the left of the command line and sends command to CP/M Plus. Line feed, has same effect as carriage return. CTRL-K deletes character at cursor and all characters to the right. CTRL-M same as carriage return. CTRL-P echoes console output to the list device. CTRL-Q restarts screen scrolling after a CTRL-S. CTRL-R retypes the characters to the left of the cursor on a new line; updates the command line buffer. CTRL-S stops screen scrolling. CTRL-U updates the command line buffer to contain the characters to the left of the cursor; deletes current line. CTRL-W recalls previous command line if current line is empty; otherwise moves cursor to end of line. CTRL-J,-M,-R,-U and RETURN update the command line buffer for recall with CTRL-W. CTRL-X deletes all characters to the left of the cursor. ///1APROPOS Format: APROPOS APROPOS is a simple utility displaying all HELP items available within the file HELP.HLP. After displaying this overview, the command HELP may be used for more specific information about a selected item. ///1ARK Format: ARK [-bksw] [ ...] The archive utility. Where: b = retain backup copy of archive k = force compression (crunch) s = suppress compression (store only) w = suppress warning messages ///1ASCII Syntax : ASCII {-opt} filespec.ext Program converts a text file created by LocoScript (ASCII conversion mode) or MS-DOS with IBM character set. Because the LocoScript converter produces non standard ASCII characters this converter performs that task. A new file will not be created but the old one will be updated. Options my be: -L Convert LocoScript character set to ASCII - Default -I Convert IBM character set to ASCII -Q Simple exchange invalid characters to question marks ? Filspec.ext may hold wildcards. ///1BASIC Syntax : BASIC {d:}{filespec}{.ext} This command starts the Mallard BASIC interpreter. The default file extension is BAS. **** For further information see the BASIC manual **** ///1BASREF Syntax: BASREF {{d:}filespec{.ext}} Explanation: BASREF is a utility to generate a reference list of variables and lines of a BASIC coded program. The default of ext is BAS. User may select one of the following options: V List variables A List arrays S List strings I List indexed strings L List line accesses N List numeric variables (V,A) T List text variables (S,I) C List all of the above F Load a new BASIC file E Exit BASREF One may select a print option as well as a long or short output within the program. Also possible are single item references. ///1BIG Format: BIG {src_drv:}filename{.ext} {dest_drv:} [option] Explanation: This splitting image package allows easier handling of big 'blown up' text files BIG without operands prints a small help text on screen. ///2OPTIONS S simply splits a big file into a lot of smaller ones Fnum simply splits a big file into a fixed number of smaller ones B builds one big file from smaller ones using index file R same as "S" but requires index file Enum extracts small file from a big file Xnum replaces small file within a big file C check big file D give statistic data about single files Options R, E, X and D require the B, S- or F- options for the used index file Options B and R may follow "-" indicating single or big file should not be deleted after processing Options S and F may follow "-" indicating processing index file "IDX" only The default extension is "MAC". The extensions of the small files are "001", "002" and so on. The extension of the index file is "IDX" ///2SPLIT The SPLIT part splits one large ASCII text file into a lot of smaller ones. This may be usefull editing files with a screen oriented editor which assumes all text fitting into memory. The default extension is .MAC, the new generated files are limited to about 15kBytes and start with extension .001, followed by .002, etc. ///2BUILD Program part appends incremental single files to one big file. 'ext' defaults to 'MAC', the single files are requested with same name as big file but with incremental 'ext' started with '001', '002' etc. The single files will be deleted and an index file with 'ext' 'IDX' will be created. If no destination drive is specified, it defaults to current drive. If source and destination drive are different, no file will be deleted. ///2REBUILD Program part splits one large text file into a lot of smaller ones. This may be usefull editing files with a screen oriented editor which assumes all text fitting into memory. Program part requires the [B] option for the used index file. 'ext' defaults to 'MAC', the single files are generated with same name as big file but with incremental 'ext' started with '001', '002' etc. The big file will be deleted and an index file with 'ext' 'IDX' is required. If no destination drive is specified, it defaults to current drive. If source and destination drive are different, no file will be deleted. ///1CHEK Format: CHEK [drive:] FILE Explanation: CHEK produces the checksum of the requested files: Sample runs: CHEK B:HELLO.ASM check only HELLO.ASM CHEK *.ASM check only .ASM files CHEK *.* check all files, check disk quality CHEK *.* F makes disk file named CHEKLIST.CRC CHEK *.* FF makes disk file named FF.CRC CHEK *.* FILE makes disk file named FILE.CRC CHEK *.* HELLO.ABC makes disk file named HELLO.ABC ///1CLINK Format: CLINK {drive:}file{.ext} Explanation: CLINK converts relocatable files produced by the Public Domain Assembler ZMAC into the same format which is produced by RMAC or M80. After conversion, this allows access to libraries or other relocatable utilities produced by the standard assembler RMAC or MICROSOFT M80. The default extension for the input file is .OBJ as used by ZMAC. The output file has the same name as the input file but with extension .REL ///1CLS Explanation: CLS simply clears the monitor screen ///1COMHEX Format: COMHEX {-Ohex_offset} {-Lhex_length} {drv:}filename{.ext} Explanation: COMHEX converts a binary file into INTEL ASCII hex format as produced by the Macro Assembler MAC. This allows simply copying binary files between CP/M hosts simply using PIP. After copying the file to the remote host, the file must be converted to binary again using the HEXCOM utility. It also allows converting COM files for loading by MLOAD defining optional offset The new file produced has an extension of .HEX. The default extension of the binary file is .COM. Default offset is 0100h but may be set to any other value Length will be determined by the record length of the file but may be set to any length less then record length expressed in a byte length. ///1COMPARE Format: COMPARE {file1.ext1 {file2.ext2}} Explanation: COMPARE compares text files. It reports any difference on screen including line number and content of the different text lines. Comparision only takes place if files are of same record length. Comparision will be aborted pressing the Control-C key or if more than 10 differences were found. File names may be defined within the command line or interactively. ///1COMSET Syntax : COMSET {language set} Explanation: The COMSET command allows simultaneously setting of screen as well as printer language option. So both devices are of the same setting. Without a parameter the default USA set is installed. The language set may be : USA, FRANCE, GERMANY, UK, DENMARK, SWEWDEN, ITALY or SPAIN Refer to the LANGUAGE command for further details. ///1CONVERT Syntax : CONVERT filespec{.ext} [option] or CONVERT file1=file2 [option] Program converts a text file to upper/lower case until ';' found. This is the delimiter for assembler comments. So only assembler mnemonics and labels will be set to upper/lower case, comments will stay intact. Of course constant text, enclosed in apostrophes, will also not be changed. The the default extension of the file is .MAC The first form may contain wildcards in filename. The name of the converted file will not be changed. The options are: L - to convert upper to lower case U - to convert lower to upper case ///1COPY Format: COPY {drive:}filespec {destination-drive} {-Q-B} Explanation: COPY is a short-and-sweet file copying utility which makes the task of trans- ferring given files between discs relatively easy. Note that a lone drive name is taken as 'drive name:*.*', so that 'A:' matches all files on drive A in the current user area. The destination drive name, if present, is a normal CP/M drive name such as B:. If left out, the default drive is used. The '-q' is the 'quiet' option switch. The '-b' is the 'back-up' option switch. ///2Sample COPY finds each file matching the '{drive:}filespec given and presents the name of each one to the user along with a prompt: Copy (Y/N/A/Q/P/B/W)? 'Y' corresponds to 'yes', 'N' to 'no', 'A' to 'this and all subsequent matching files' and 'Q' to 'quit'. Each file to be copied is copied to the destination drive WITH THE SAME NAME. Any file of the same name on the destination drive is deleted prior to the operation whether the copy succeeds or not, unless it specifically has been marked 'R/O'. 'P' corresponds to 'go back to the previous selection', 'B' to 'Create .BAK' file, 'W' to 'Write without .BAK'. If the -q option is present (the 'Q' may be in upper or lower case) in the command line then the 'Copy (Y/N/A/Q/P/B/W)?' prompt will not appear. COPY will run as if 'A' had been pressed in response to this prompt before any file names were displayed. In other words all files matching the specification are copied without prompting. Note that the -q option must be at the end of the the command line. If the source and destination drives are the same an error message is printed and no names are produced. If the copy fails for lack of disc or directory space a message is printed to the console and the new copy of the file deleted. ///1CPM2 Format: CPM2 Explanation: CPM2 installs an RSX for emulating CP/M 2.2 running with CP/M PLUS. All critical BDOS calls will be fixed for proper setting required parameters. When this RSX is installed it returns '22' as version number. So any CP/M PLUS program which uses CP/M PLUS facility may fail. For further details see differences between CP/M 2.2 and CP/M PLUS. See also CPM2DEL to remove the RSX. ///1CPM2DEL Format: CPM2DEL CPM2DEL removes the CP/M 2.2 emulation RSX. For further details see CPM2. ///1CREF80 The CREF80 is a special utility which converts .CRF files produced by the M80 macro assembler. Syntax: CREF80 {print-file}=cross-file The default extensions are : Print-file : .PRN Cross-file : .CRF The following device names may be used as source for the print-file: LST: : Current list device TTY: : Console ///2Examples CREF =MY The file MY.CRF will be converted into the file MY.PRN. CREF TTY:=SUB The file SUB.CRF will be converted and printed on the console ///1CRLZH Format: CRLZH {du:} {du:} { [id] } { / } Explanation: CRLZH is a text cruncher which may save up to 50 percent of space. is up to 4 letters immediately following a " /". "Q" = Quiet mode "I","T" = Inspect (tag) mode on "A" = Archive mode on "E" = Erase existing files "S" = Include System files Option letters toggle (reverse) the corresponding default setup. Both "du:" are of form DU:, UD:, D:, or U:. Second parameter is destination. "[id]" is date or any text enclosed in "[ ]". Everything is optional except filename. ///1CRUNCH Format: CRUNCH {du:}filename {du:} { [id] } { /Q | /O | /C | /A} Explanation: CRUNCH is a text cruncher which may save up to 50 percent of space. Both "du:" are of form DU:, UD:, D:, or U:. The second "du:" is the destination "[id]" is date or any text enclosed in "[ ]". Letter options are preceded by a space/slash. Pick 1 or less. Q means Quiet, C Confirm, O Overwrite without prompt mode toggle and A Archive bit mode toggle (In conjunction with CP/M 3.x archive support) Everything is optional except filename. ///1DASM Format: DASM Explanation: DASM is an intelligent Re-assembler which may produce source code for Z80 mnemonics. It is derived from ZZSOURCE/RESOURCE. ///2Commands ;addr,comment Enter Comment at addr ;addr List comment at addr ; List Comments Table ;addr, Delete Comment ;ON Symbol Comments ON ;OFF Symbol Comments OFF A (see L) Attempt to find DB's B (see L) Build Symbol Table C Dump Control Table Cnnnn Dump Ctrl Table at nnnn Cnnnn,x Set Ctrl (x=BEHISW) Dnnnn Dump from nnnn on Daaaa,bbbb Dump over range D,bbbb Dump thru bbbb D Dump 80H more D=nn Set Dump Size Default DS Dump the Symbol Table DS.symbol Dump starting at symbol Ennnn,.symbol Enter symbol into table Fnnnn,ssss Find nnnn after ssss F or Fnnnn Cont Find or Find nnnn Issss,oooo Inc addrs>=ssss by oooo K.symbol Kill symbol from table L List next 20 lines Lssss,eeee List over range L,eeee List to eeee Lssss List 20 lines from ssss L=nn[,others] Set list default O Print current offset Onnnn Set new offset Pssss,eeee Generate program prolog Q Quiet prefix Rfilename.COM Read file @ offset+100H Rfilename.CTL Read Control Table Rfilename.SYM Read Symbol Table Rfilename.DOC Read Comments Table Rfilename.ALL Read CTL, SYM, DOC, COM Sfilename.MAC Save MAC File Sfilename.CTL Save CTL File Sfilename.SYM Save SYM File Sfilename.DOC Save DOC File Sfilename.ALL CTL, SYM, DOC, MAC ( filename may be wildcard "*" if legal filename was defined previously ) X Restart DASM Z Write EOF to MAC File ? Print Statistics # Exit DASM ///1DASMF Format: DASMF Explanation: DASMF is an intelligent Re-assembler which may produce source code for Z80 mnemonics. It is derived from ZZSOURCE/RESOURCE. It works exactly like DASM execpt .COM files will be read using a buffer with fix length. See DASM for explanation of the commands (except O which is omitted). ///1DATE Syntax: DATE {CONTINUOUS} DATE {time-specification} DATE SET Explanation: The DATE command lets you display and set the date and time of day. ///2Examples A>DATE Displays the current date and time. A>DATE C Displays the date and time continuously. A>DATE 08/14/82 10:30:0 Sets the date and time. A>DATE SET Prompts for date and time entries. ///1DEL Format: DEL {{drive:}filespec} Explanation: DEL is a program which allows you selectively to delete files on a disc. DEL is invoked by typing its name followed by a standard CP/M 'ambiguous file speci- fication', such as B:*.COM. If no ambiguous file specification is given, DEL treats it as if '*.*' were entered. If a drive specification only is entered, such as B:, DEL treats it as '*.*' on the specified drive. ///2Sample The name of each file which is found to match this file specification is then displayed, along with a prompt: Delete (Y/N/A/Q)? If you hit the 'Y' or 'y' key, the displayed file is deleted. If you press the 'A' or 'a' key, THIS AND ALL SUBSEQUENT files which meet the specification are deleted without further prompting. If you press the 'Q' or 'q' key, the program ends and returns to CP/M without deleting the current file or subsequent files. If you press any other key, the file is not deleted and the name of the next matching file is displayed. If any file is set to 'Read Only' with the SET utility, then a message Cannot delete! is displayed and the program continues. ///1DELBR Format DELBR {DU:}lib-file{.ext} {DU:}{mask} {-C} Explanation: The library extractor for (NU)LU generated files. DELBR expects optional confirmation for each member to be extracted selected by -C. Defaults to no confirmation. Drive and user information may be given selecting files. Files may be selected by given mask. It defaults to all files The .ext defaults to .LBR ///1DELETE Syntax: DELETE filespec {[Option list]} Explanation: The DELETE command removes one or more files from the directory of a disk. Wildcard characters are accepted in the filespec. Directory and data space are automatically reclaimed for later use by another file. The DELETE commands is similar to the ERASE command, except each deletion must be quit by the user. This is such as the [CONFIRM] switch of the ERASE command. The option list allows files to be deleted with attributes RO or SYS which will be displayed with video set as follows : (NOTE : Escape sequences used for this feature are special JOYCE sequences) -Protected files will be displayed by setting revers video typing the file name on screen. -System files will be displayed underlining the file name. -Protected system files will be displayed such as protected files but with a prefixed asterisk '*' indicating the SYS attribute. Also allowed is a user area where files will be deleted from. ///2options Legal inputs in the option list are: [DIR] Delete directory files only (Files with no attribute). This is the default option [SYS] Delete system files only [RO] Delete protected files only. Using no other options deletes SYS files as well as DIR files [DIR,RO] Delete protected directory files only [SYS,RO] Delete protected system files only [Guser] With user group in range 0 .. 15 The User area option may be mixed with the other options. ///1DESPOOL The utility DESPOOL removes the SPOOL utility when, for example the printer is jamed, and it is necessary to start the printing again. ///2Messages DESPOOL: ? Requires CP/M 3.1 BDOS Function 13 does not return 31h SPOOL removed - output to LST: device not spooled Normal message for successful removal of the SPOOL RSX. << Cannot DESPOOL LST: spooler >> Unable to find SPOOL RSX because either it was not loaded or the SPOOL RSX has the wrong name or the RSX has the wrong remove flag. DESPOOL Error: SPOOLER already disabled The BIOS jumps have not been patched for pre-processing by the SPOOL RSX. SPOOLER is active - Abort spooler (Y/N) ? The SPOOL RSX has some characters saved for printing to the LST: device. If Y is answered then this output will be lost, otherwise DESPOOL without will terminate doing anything. << SPOOLER remains active >> The SPOOL RSX contains characters for output, and the DESPOOL utility is terminated without affecting the SPOOL operation. ///1DEVICE Syntax: DEVICE { NAMES | VALUES | physical-dev | logical-dev} DEVICE logical-dev=physical-dev {option} {,physical-dev {option},...} DEVICE logical-dev = NULL DEVICE physical-dev {option} DEVICE CONSOLE [ PAGE | COLUMNS = columns | LINES = lines] Explanation: DEVICE displays current logical device assignments and physical device names. DEVICE assigns logical devices to peripheral devices attached to the computer. DEVICE also sets the communications protocol and speed of a peripheral device, and displays or sets the current console screen size. ///2Options [ XON | NOXON | baud-rate ] XON refers to the XON/XOFF communications protocol. NOXON indicates no protocol and the computer sends data to the device whether or not the device is ready to receive it. baud-rate is the speed of the device. The system accepts the following baud rates: 50 75 110 134 150 300 600 1200 1800 2400 3600 4800 7200 9600 19200 ///2Examples A>DEVICE Displays the physical devices and current assignments of the logical devices in the system. A>DEVICE NAMES Lists the physical devices with a summary of the device characteristics. A>DEVICE VALUES Displays the current logical device assignments. A>DEVICE CRT Displays the attributes of the physical device CRT. A>DEVICE CON Displays the assignment of the logical device CON: A>DEVICE CONOUT:=LPT,CRT Assigns the system console output (CONOUT:) to the printer (LPT) and the screen (CRT). A>DEVICE LST:=SIO [XON,9600] Assigns the listing device (LST:) to the optional communications device (SIO) using protocol XON/XOFF and sets the transmission rate for the device at 9600. A>DEVICE LST:=NULL Disconnects the list output logical device (LST:). A>DEVICE SIO [XON,9600] Sets the XON/XOFF protocol for the optional physical device SIO and sets the transmission speed at 9600. A>DEVICE CONSOLE [PAGE] Displays the current console page width in columns and length in lines. A>DEVICE CONSOLE [COLUMNS=40 LINES=16] Sets the screen size to 40 columns and 16 lines. ///1DFC Format: DFC {-L|S|Mn|B|I|T|W} {d:{u}}file1 {d:{u}}{file2} Explanation: Differential file compare program. If unambiguous, either file1 or file2 may hold wildcards. Both filenames must be different or on different drives. With options: -L Select list output (default) -S Select editor output -Mn Select grade of synchronisation (default is 1) -B Ignore trailing blanks and treat all other strings of blanks as equivalent -I Ignore case of letters -T Expand tab characters in output lines -W Ignore all blanks in a line Utility compares text files and outputs result on files which are different in the following format: n1,n2d Delete lines n1 to n2 in file1 n1,n2cm1,m2 exChange lines n1 to n2 in file1 against lines m1 to m2 in file2 n1am1,m2 Append m1 to m2 lines from file2 after line n1 in file1 If n1=n2 or m1=m2, only one number will be printed ///1DIFF Format: DIFF file1 file2 {opt} Explanation: Program compares files and reports differences of these two files to an output device either CON, LST or file -- defaults to CON Special designed for CP/M .COM files Option selects device or file: DIFF file1 file2 Report differences to console DIFF file1 file2 [C] dto. DIFF file1 file2 [P] Report differences to printer DIFF file1 file2 diff_file Report differences to file File2 may be drive selection only. Extensions default to .COM ///1DIFFER Format: DIFFER [-opt1] file1 file2 [-opt2 [diff_file]] Explanation: Program compares files on a binary (opt1 H, default) or text base (opt1 A). It reports differences of these two files to an output selected by opt2: C reports to console - default P reports to printer F reports to file. Filname must follow the F ///1DIR The DIR command displays the names of files and the characteristics associated with the files. The DIR command has three distinct references: DIR DIRS DIR with Options DIR and DIRS are built-in utilities. DIR with Options is a transient utility and must be loaded into memory from the disk. ///2Built-in Syntax: DIR {d:} DIR {filespec} DIRS {d:} DIRS {filespec} Explanation: The DIR and DIRS Built-in commands display the names of files cataloged in the directory of an on-line disk. DIR lists the names of files in the current user number that have the Directory (DIR) attribute. DIR accepts the * and ? wildcards in the file specification. ///3Examples A>DIR Displays all files in user 0 on drive A that have the Directory attribute. A>DIR B: Displays all DIR files in user 0 on drive B. 2A>DIR B:ZIPPY.DAT Displays the name ZIPPY.DAT if the file is in user 2 on drive B. 4A>DIR *.BAS Displays all DIR files with filetype BAS in user 4 on drive A. B3>DIR X*.C?D Displays all DIR files in user 3 on drive B whose filename begins with the letter X, and whose three character filetype contains the first character C and last character D. A>DIRS Displays all files for user 0 on drive A that have the system (SYS) attribute. A>DIRS *.COM Displays all SYS files with filetype COM on drive A in user 0. A command (.COM) file in user 0 with the system attribute can be accessed from any user number on that drive, and from any drive in the search chain (see SETDEF). ///2withOptions Syntax: DIR {d:} [options] DIR {filespec} {filespec} ... [options] Explanation: The DIR command with options is an enhanced version of the DIR built-in command and displays your files in a variety of ways. DIR can search for files on any or all drives, for any or all user numbers. One or two letters is sufficient to identify an option. You need not type the right hand square bracket. ///3Options Option Function ATT displays the file attributes. DATE displays date and time stamps of files. DIR displays only files that have the DIR attribute. DRIVE=ALL displays files on all on-line drives. DRIVE=(A,B,C,...,P) displays files on the drives specified. DRIVE=d displays files on the drive specified by d. EXCLUDE displays files that DO NOT MATCH the files specified in the command line. FF sends an initial form feed to the printer device if the printer has been activated by CTRL-P. FULL shows the name, size, number of 128-byte records, and attributes of the files. If there is a directory label on the drive,DIR shows the password protection mode and the time stamps. If there is no directory label, DIR displays two file entries on a line, omitting the password and time stamp columns. The display is alphabetically sorted. (See SET for a description of file attributes, directory labels, passwords and protection modes.) LENGTH=n displays n lines of printer output before inserting a table heading. n is a number between 5 and 65536. MESSAGE displays the names of drives and user numbers DIR is searching. NOSORT displays files in the order it finds them on the disk. RO displays only the files that have the Read-Only attribute. RW displays only the files that are set to Read-Write. SIZE displays the filename and size in kilobytes (1024 bytes). SYS displays only the files that have the SYS attribute. USER=ALL displays all files in all user numbers for the default or specified drive. USER=n displays the files in the user number specified by n. USER=(0,1,...,15) displays files under the user numbers specified. ///3Examples A>DIR B: [FULL] Displays full set of characteristics for all files in user 0 on drive B. A>DIR M: [DATE] Lists the files on drive M and their dates. A>DIR B: [RW,SYS] Displays all files in user 0 on drive B with Read-Write and System attributes. 3A>DIR [USER=ALL, DRIVE=ALL] Displays all the files in all user numbers (0-15) in all online drives. B6>DIR [exclude] *.DAT Lists all the files on drive B in user 6 that do not have a filetype of .DAT. 3B>DIR [SIZE] *.PLI *.COM *.ASM Displays all the files of type PLI, COM, and ASM in user 3 on drive B in size display format. A>DIR [drive=all user=all] TESTFILE.BOB DIR displays the filename TESTFILE.BOB if it is found on any drive in any user number. A>DIR [size,rw] B: DIR lists each Read-Write file that resides on Drive B, with its size in kilobytes. Note that B: is equivalent to B:*.*. ///1DIRLBR Format: DIRLBR {d}{u}{:}{LBR_mask} {member_mask} Print tree of members of all (NU)LU generated library files found. The scan will be done through all user areas of selected or logged disk if no user is defined. An optional (wildcard) .LBR mask may be defined for selecting .LBR files. Members within a library may be selected by a second mask. ///1DISCKIT Syntax: DISCKIT Explanation: The Disc Kit program performs three operations for discs, namely copying, formatting and verifying. Copying is making an exact copy of one disc on another. Formatting is writing a new framework to a disc, called the format. Verifying is reading the whole of a disc to check for errors. DISCKIT can be used with one or two disc drives, it is even possible to perform the copy operation using only one drive of a two drive machine if necessary. The program uses all the RAM available to it. If the CP/M Plus system has any RSX's loaded, then these will not be disturbed by DISCKIT, the program will function normally with the smaller TPA. ///1DISKUTIL Format: DISKUTIL {command line} Explanation: The disk utility for expecting and modifying disk data on a track and record base. A command line may be typed interactively or as operand calling DISKUTIL. ///2commands Each command may be inputted as single command or separated by ';' for multiple commands. Command Action # the disk parameters. +(nn) Advance one or nn sector(s). -(nn) Backs up one or nn sector(s). / Repeas entire command -- defaults to "forever" /nn Repeat nn times -- nn may be 2 to 65535 ( Toggles the map display to show/not show erased files. When showing erased files '*' indicates that block duplicates in another file and it is not possible to restore this file. < Saves current sector in a 'save' buffer > Gets saved buffer. < and > may be used to move a sector to another place =string ASCII search, starting at current sector. hex may be imbedded or used alone. Since ';' is a command delimiter, you may use <3B> to search for a ';'. Also, since '<' is a hex escape character, use << to mean single '<'. NOTE : This is a very slow routine. It either finds the string or says ==== "OUT OF BONDS". ? Displays the help guide A Dump a sector, ASCII only CHaddr,val,val,.. Change hex values in sector CAaddr,char string.. Change ASCII values in sector. may be used here. NOTE : Use command W to write changed data to sector. ==== The command 'C' echoes the overlaid data for verification. CHaddr-addr,byte Repeats a change with one byte CAaddr-addr,byte Repeats an ASCII change D Dump sector, hex and ASCII Fname Print directory for file 'name' and position to its directory sector F Find next occurence of name in directory Gnn Position to group 'nn' and read G Show current position H Dump sector, hex only Kdu:filename.ext Save a file from "yanked" sectors. Drive and user are optional. Resets "yank" address. L Re-logs in the current drive Lx Logs in disk 'x', range A to P M Dumps a map of the group allocation for files Mn Shows which file is allocated to group 'n' N Resets CP/M via BDOS P Toggles the printer on/off Q Quiet -- preceeding any command suppresses CRT output R Reads into memory the sector currently positioned at. NOTE : 'R' is implicit in the 'G','+' and '-' command but NOT in the 'S' ==== and 'T' commands Snn Position to sector 'nn' and read Tnn Position to track 'nn' (no read) Ux Logs user 'x' for next 'F' command V Views current sector -- assumes ASCII data Vnn Views 'nn' sectors W Writes the current sector to disk. NOTE : May not be used after a 'F' command ==== X Exit back to CP/M Y "Yank" the current sector into sequential memory. Starts at 3000H, increments for each yank Z Sleep -- causes the program to pause -- Z is 1 second Znn Sleep nn tenths of a second -- Z50 = 5 seconds ///2examples DISKUTIL M;X Map the disk, then exit to CP/M DISKUTIL G0;D;G2;=OK<1A>;D Position to group 0 and dump. Then position to group 2, find string "OK" followed by cr (D), lf (A), eof (1A) and dump. NOTE : G0 is the directory group ==== DISKUTIL CH0-7F,E5;< Fill sector with 'E5' and save sector >;W;+;/16 Restore sector, write, next and repeat 16 times X Exit to CP/M ///2notes DUMP COMMANDS All dump commands (A, D, H) may be optionally followed by a starting and ending address: D0,7F The same as hust 'D' D3,5 A20,3F SAVING SEQUENTIAL MEMORY The command 'K' saves the current contents of sequential memory into a disk file. The contents of the sequential memory is determined by the 'yank' function and the pointer of that function is used here. If nothing has been yanked, an error occurs. Once the file has been saved, the 'yank' poiner is re-initialized to its original value (3000H). Control is returned to DISKUTIL. ///1DUMP Syntax: DUMP filespec Explanation: DUMP displays the contents of a file in hexadecimal and ASCII format. Example: A>DUMP ABC.TEX ///1DUMPASC Syntax: DUMPASC filespec Explanation: DUMPASC displays the contents of a file in ASCII format. Example: A>DUMPASC ABC.TEX ///1DUMP3 Format: DUMP3 filespec DUMP3 displays the contents of a file in hexadecimal and ASCII format and also diplays the current record of the file. Example: A>DUMP3 ABC.TEX ///1ED Format: ED input-filespec {d:|output-filespec} Explanation: Character file editor. To redirect or rename the new version of the file specify the destination drive or destination filespec. ///2commands ED Command Summary Command Action nA append n lines from original file to memory buffer 0A append file until buffer is one half full #A append file until buffer is full (or end of file) B, -B move CP to the beginning (B) or bottom (-B) of buffer nC, -nC move CP n characters forward (C) or back (-C) through buffer nD, -nD delete n characters before (-D) or from (D) the CP E save new file and return to CP/M Plus Fstring{^Z} find character string H save new file, reedit, use new file as original file I enter insert mode Istring{^Z} insert string at CP Jsearch_str^Zins_str^Zdel_to_str juxtapose strings nK, -nK delete (kill) n lines from the CP nL, -nL, 0L move CP n lines nMcommands execute commands n times n, -n move CP n lines and display that line n: move to line n :ncommand execute command through line n Nstring{^Z} extended find string O return to original file nP, -nP move CP 23 lines forward and display 23 lines at console Q abandon new file, return to CP/M Plus R{^Z} read X$$$$$$$.LIB file into buffer Rfilespec{^Z} read filespec into buffer Sdelete string^Zinsert string substitute string nT, -nT, 0T type n lines U, -U upper-case translation V, -V line numbering on/off 0V display free buffer space nW write n lines to new file 0W write until buffer is half empty nX write or append n lines to X$$$$$$$.LIB nXfilespec{^Z} write n lines to filespec; append if previous xcommand applied to same file 0x{^Z} delete file X$$$$$$$.LIB 0xfilespec{^Z} delete filespec nZ wait n seconds Note: CP points to the current character being referenced in the edit buffer. Use {^Z} to separate multiple commands on the same line. ///2Examples A>ED TEST.DAT A>ED TEST.DAT B: A>ED TEST.DAT TEST2.DAT A>ED TEST.DAT B:TEST2.DAT ///1ED80 Format: ED80 {filespec} {line_number} Explanation: Full screen editor. The full file will be loaded into memory, so note the possible overflow condition. If the optional line number is defined in the second parameter, the editor positions the cursor at the beginning of that line. To get help information about ED80 commands within an edit session, simply type ^J to get command summary. ///2commands ED80 Command Summary Cursor Moving commands ---------------------- ^S Character Left ^D Character Right ^H Character Left (Alt) ^A Word Left ^F Word Right ^O S Tab Left ^O D Tab Right ^Q S Start of line ^Q D End of line ^E Line Up ^X Line Down ^O E Top of Screen ^O X Bottom of Screen ^R Page Up ^C Page Down ^Q R Start of File ^Q C End of File Text deleting commands ---------------------- ^Y Delete Line [DEL] Delete last character ^G Delete this character ^O T Delete word left ^T Delete word right ^Q [DEL] Delete to start line ^Q Y Delete to end line Block commands -------------- ^K B Mark Start of block ^K K Mark End of block ^K V Move Block ^K C Copy Block ^K Y Delete Block ^O P Paste Deleted Block ^K R Read Block from disc ^K W Write Block to disc Quick cursor movement --------------------- ^O G Go to Line ^Q B Go to start of block ^Q K Go to end of block ^K 0 Remember position ^Q 0 Return to position Find and Substitute ------------------- ^Q F Find First ^L Find Next ^O L Substitute & Find ^O A Substitute All Leaving ED80 ------------ ^K Q Quit and Exit ^O Q Exit without Backup ^K X Exit with a Backup Toggles ------- ^V Toggle change/insert ^O I Toggle auto indent ^O F Toggle space display Miscellaneous ------------- ^I Deliver TAB character ^O R Restore line ^K F Disc Directory ^K J Erase file from disc ^P Control meta-key ^J Help key ///1EDT Format: EDT {filespec} {line_number} Explanation: Full screen editor. The full file will be loaded into memory, so note the possible overflow condition. If the optional line number is defined in the second parameter, the editor positions the cursor at the beginning of that line. To get help information about EDT commands within an edit session, simply type the FORM key to get command summary. ///2commands Cursor Moving commands ---------------------- <- Character Left -> Character Right SHFT WORT Word Left WORT Word Right ALT TAB Tab Left SHFT TAB Tab Right SHFT EZ Start of line EZ End of line CUP (Cursor) Line Up CDWN Line Down SHF CUP Top of Screen SHF CDWN Bottom of Screen SHF SEITE Page Up SEITE Page Down SHF EINH Start of File EINH End of File Text deleting commands ---------------------- AUSBL Delete Line <- DEL Delete last character DEL -> Delete this character SHF <- DEL Delete word left SHF DEL -> Delete word right ALT <- DEL Delete to start line ALT DEL -> Delete to end line Block commands -------------- [+] Mark Start of block [-] Mark End of block EINBL Move Block COPY Copy Block SHF AUSBL Delete Block SHF EINBL Paste Deleted Block F1 Write Block to disc SHF F1 Write Block to printer F3 Read Block from disc Quick cursor movement --------------------- F5 Go to Line SHF <- Go to start of block SHF -> Go to end of block Block Remember position SHF Block Return to position Find and Substitute ------------------- SUCHE Find First SHF [+] Find Next SHF SUCHE Substitute & Find ALT SUCHE Substitute All Controls: COPY Swap Search Buffer EINBL Get old buffer Leaving EDT ----------- STOP Quit and Exit SHF EXIT Exit without Backup EXIT Exit with a Backup Toggles ------- ALT Block Toggle change/insert CAN Toggle auto indent ALT AUSBL Toggle space display Miscellaneous ------------- TAB Deliver TAB character ALT EINBL Restore line F7 Disc Directory SHF F7 Erase file from FORM Help key In Input Mode CAN always cancels ///1EMPTY Explanation: The EMPTY command empties the buffer of the line printer. This may useful after pushing CTRL P the second time, because there will be remaining characters in the printer's buffer. ///1ERASE Syntax: ERASE {filespec} {[CONFIRM]} Explanation: The ERASE command removes one or more files from the directory of a disk. Wildcard characters are accepted in the filespec. Directory and data space are automatically reclaimed for later use by another file. The ERASE command can be abbreviated to ERA. ///2Option [CONFIRM] option informs the system to prompt for verification before erasing each file that matches the filespec. CONFIRM can be abbreviated to C. ///2Examples A>ERASE X.PAS Removes the file X.PAS from the disk in drive A. A>ERA *.PRN Confirm (Y/N)?Y All files with the filetype PRN are removed from the disk in drive A. B>ERA A:MY*.* [CONFIRM] Each file on drive A with a filename that begins with MY is displayed with a question mark for confirmation. Type Y to erase the file displayed, N to keep the file. A>ERA B:*.* Confirm (Y/N)?Y All files on drive B are removed from the disk. ///1EXL Format: EXL file Explanation: EXL is a typer, that understands squeezed, crunched, and LZH compressed files. It types it, pausing after each page. Hitting return will give another line, and any other key gives another screen. If the file has been compressed in any way, EXL will uncompress it automatically. ///2EXAMPLES EXL FILE.TQT EXL OTHER.DZC EXL REPORT.LYT will all decompress before typing: .?Q? is the conventional name for squeezed files, .?Z? is for crunched, and .?Y? means it is a LZH compressed file. In addition, EXL also understands about .LBR library files: so if PROG.DYC is a LZH compressed file in LIBRARY.LBR: EXL LIBRARY PROG.DYC will extract PROG.DYC, and then un LZH compress it, and print the results to the screen. The same applies to .?Z? and .?Q? compressed files in .LBR's as well, and normal (uncompressed) files can also be typed. As a special case: EXL LIBRARY . will print a directory of the files in the .LBR. Any of the above commands can be preceded by a '.': EXL . LIBRARY PROG.DYC EXL . FILE.TXT EXL . OTHER.DZC EXL . LIBRARY . to cause the output to be sent to the printer as well as the screen. Note that the paging feature of EXL is disabled in this case. EXL can also do single file extraction to disk: EXL = LIBRARY PROG.DYC will extract PROG.DYC from LIBRARY.LBR, un LZH compress it, and save the resulting file on disk in the current drive and user area. To save to a different drive / user area, add them after the '=', so: EXL =B5: OTHER.DZC would uncrunch OTHER.DZC, and put the result on B5: - note that the ':' after the drive user specification must be given: EXL =C7 A2:REPORT.LYT won't work. In all cases where a filename can be given, EXL will accept a drive / user specification: A:FILE.TQT B7:OTHER.DZC 19:REPORT.LYT are all acceptable, if either the drive or the user, or both, are missing, then they default to the current values. ///1EXPAND Syntax: EXPAND {-u} {d:}Infile.ext {{d:}Outfile.ext} Explanation: Program expands tabs to spaces or compresses spaces to tabs. Without option, program does the expand. Option -U does the compress. ///1FILE Format: FILE filespec Explanation: The FILE utility will search through all instances of filespec (which must be an unambiguous reference) to find the type of file, which may be either pure ASCII, ASCII or binary. Pure ASCII allows no control characters except TAB Tabulator BS Backspace FF Form Feed CR Carriage Return LF Line Feed ESC Escape ///1FILESPEC FILESPEC FORMAT CP/M Plus identifies every file by its unique file specification, which can consist of four parts: the drive specification, the filename, the filetype and the password. The term "filespec" indicates any valid combination of the four parts of a file specification, all separated by their appropriate delimiters. A colon must follow a drive letter. A period must precede a filetype. A semicolon must precede a password. The symbols and rules for the parts of a file specification follow: d: drivespec optional single alpha character (A-P) filename filename 1-8 letters and/or numbers typ filetype optional 0-3 letters and/or numbers password password optional 0-8 letters and/or numbers Valid combinations of the elements of a CP/M Plus file specification are: filename d:filename filename.typ d:filename.typ filename;password d:filename;password filename.typ;password d:filename.typ;password If you do not include a drive specifier, CP/M Plus automatically uses the default drive. Some CP/M Plus commands accept wildcard (* and ?) characters in the filename and/or filetype parts of the command tail. A wildcard in the command line can in one command reference many matching files on the default or specified user number and drive. (See Commands). ///1FIND Format: FIND filespec expression Explanation: The FIND utility will search through all instances of filespec (which may be an ambiguous reference) to find lines containing expression. Such lines will be presented on the console preceded by a line number, and classified by file. Expression may have the form LABEL|PATTERN or simply the form PATTERN. Both may contain: [p1|p2|...|pn] alternative strings {p1|p2|...|pn} repeated alternatives ? any single character @ for any alphanumeric: a-z, A-Z, 0-9 _ in place of horizontal tab When a label is present, lines will be numbered relative to the label. Example: X{?}:|[call|ret] will list calls and returns relative to labels like X0100: or X33:. LABEL begins in column 1, PATTERN can begin in any column. Squeezed files will be searched as well as unsqueezed ones. Use ^C to quit, any other key skips rest of file. ///1FREE Format: FREE drv: Explanation: FREE simply checks all user areas on given drive and displays whether it is free or not. ///1FSE (VDO25) Format: FSE {filespec} Explanation: FSE invokes the full screen editor, based upon VDO 2.5. This editor fits into 6 kBytes and works upon a command subset of Word Start. ///2Commands - Basic editing functions - =========================== ^A Word left ^F Word right ^G Delete char ^Y Delete line ^T Delete word DEL Destruct/BS ^C Page down ^R Page up ^V Toggle insert ^L Repeat find ^P Enter printer code ^N Insert C/R ^K Block cmd menu ^Q Quick cmd menu ^J Help level menue ^Q Commands [Quick Menu] ==================================== R Top of file C Bottom of file F Find a string A Find and replace B Find block start K Find block end S Find line start D Find line end T Change tab stop ^K Commands [Block Menu] ==================================== S Save/continue X Save/exit Q Abandon Z Zap file B Mark block start K Mark block end C Copy block V Move block Y Delete block W Write block R Read file P Print file L Set logged drive F Show disk directory ^J Commands [Help Menu] =================================== H Adjust Help level K Block menu Q Quick menu J Help menu M Basic editing menu ///1GENCOM Syntax: GENCOM {COM-filespec} {RSX-filespec} ... {[LOADER | NULL | SCB=(offset,value)]} Explanation: The GENCOM command creates a special COM file with attached RSX files. The GENCOM command can also restore a previously GENCOMed file to the original COM file without the header and RSX's. GENCOM can also attach header records to COM files. ///2Options LOADER sets a flag to keep the program loader active. NULL indicates that only RSX files are specified. GENCOM creates a dummy COM file for the RSX files. The output COM filename is taken from the filename of the first RSX-filespec. SCB=(offset,value) sets the System Control Block from the program by using the hex values specified by (offset,value). ///2Examples A>GENCOM MYPROG PROG1 PROG2 Generates a new COM file MYPROG.COM with attached RSX's PROG1 and PROG2. A>GENCOM PROG1 PROG2 [NULL] Creates a COM file PROG1.COM with RSX's PROG1 and PROG2. A>GENCOM MYPROG GENCOM takes MYPROG.COM, strips off the header and deletes all attached RSX's to restore it to its original COM format. A>GENCOM MYPROG PROG1 PROG2 GENCOM looks at the already-GENCOMed file MYPROG.COM to see if PROG1.RSX and PROG2.RSX are already attached RSX files in the module. If either on is already attached, GENCOM replaces it with the new RSX module. Otherwise, GENCOM appends the specified RSX files to the COM file. ///1GENGRAF Syntax: GENGRAF {COM-filespec} {[V | Q | R]} Explanation: The GENGRAF command creates a special COM file with the GSX loader installed. The GENGRAF command can also restore a previously GENGRAFed file to the original COM file without the loader. For more information about the CP/M graphic facility see item GSX. ///2Options V be verbose during load the GSX environment - default Q be quiet during load the GSX environment R remove GSX loader header ///2Examples A>GENGRAF MYPROG Generates a new COM file MYPROG.COM with GSX loader installed being verbose when invoked. A>GENGRAF MYPROG [Q] Generates a new COM file MYPROG.COM with GSX loader installed being quiet when invoked. A>GENCOM MYPROG [R] GENGRAF takes MYPROG.COM and strips off the GSX loader to restore it to its original COM format. ///1GENRSX Syntax: GENRSX file{.ext} Explanation: GENRSX extracts page relocatable files from combined ones generated with the utility GENCOM. GENCOM may extract .COM files only, while GENRSX does this for .RSX files only. The default extension of the combined file is .COM. The new files will be named as found in the header of the combined file. After extraction these files may be used to generate new combined ones. Note if GENCOM will also be used, call GENRSX first. That is because GENCOM deletes the .RSX files. ///1GET Syntax: GET {CONSOLE INPUT FROM} FILE filespec{[{ECHO|NO ECHO} | SYSTEM]} GET {CONSOLE INPUT FROM} CONSOLE Explanation: GET directs the system to take console input from a file for the next system command or user program entered at the console. Console input is taken from a file until the program terminates. If the file is exhausted before program input is terminated, the program looks for subsequent input from the console. If the program terminates before exhausting all its input, the system reverts back to the console for console input. With the SYSTEM option, the system immediately goes to the specified file for console input. The system reverts to the console for input when it reaches the end of file. Re-direct the system to the console for console input with the GET CONSOLE INPUT FROM CONSOLE command as a command line in the input file. ///2Options ECHO specifies that input is echoed to the console. This is the default option. NO ECHO specifies that file input is not echoed to the console. The program output and the system prompts are not affected by this option and are still echoed to the console. SYSTEM specifies that all system input is immediately taken from the disk file specified in the command line. GET takes system and program input from the file until the file is exhausted or until GET reads a GET console command from the file. ///2Examples A>GET FILE XINPUT A>MYPROG Tells the system to activate the GET utility. Since SYSTEM is not specified, the system reads the next input line from the console and executes MYPROG. If MYPROG program requires console input, it is taken from the file XINPUT. When MYPROG terminates, the system reverts back to the console for console input. A>GET FILE XIN2 [SYSTEM] Immediately directs the system to get subsequent console input from file XIN2 because it includes the SYSTEM option. The system reverts back to the console for console input when it reaches the end of file in XIN2. Or XIN2 may redirect the system back to the console if it contains a GET CONSOLE command. A>GET CONSOLE Tells the system to get console input from the console. This command may be used in a file (previously specified in a GET FILE command), which is already being read by the system for console input. It is used to re-direct the console input back to the console before the end-of-file is reached. ///1GSX GSX is the Graphics System Extension for the CP/M Operating system. It operates like a graphic interface, receiving calls from a GSX applications program and converting them to device dependent calls for the hardware. GSX is a device-independent interface, meaning that all graphic output devices look the same to it. Thus, the same graphics image can be sent to the monitor, a printer or to a plotter without amending the GSX applications program. The following device drivers are supplied : DDSCREEN.PRL The JOYCE screen driver DDFXLR8.PRL The JOYCE printer driver for low resolution DDFXHR8.PRL The JOYCE printer driver for high resolution The following files are required to build a GSX application : GSX.SYS The GSX system expansion ASSIGN.SYS The device definition file GENGRAF.COM The GSX loader, See item GENGRAF for further details. ///2EXAMPLES To get running a GSX application the GSX loader must be added to it. This will be done by the command GENGRAF {d:}file {[opt]} Where the file's extension is .COM The device definition file ASSIGN.SYS is a simple ASCII coded data file of the form device number {drive:}device driver Typing '@' as drive loads the driver from current drive. Where 'device number' is defined as a two digit number with usually 0i Screen driver 1i Plotter driver 2i Printer driver With i=1 for the first device type, i=2 for the next etc. The device driver are of the extension .PRL and must be loaded with the largest driver first in the device definition file. ///1HARDDISK Running the VORTEX system 2000, user may select one of four harddisk related utilities. ///2BACKDISK This is a menue drive backup utility. It supports: - Backup data to a series of floppy disks - Restore data - Definition of a disk ID ///2EX This utility allows dynamic assignment of logical to physical disk drives. Syntax: EX {0..4} Explanation: EX without numeric option displays the current setting. Default setting will be performed by option=0. Options in range 1 to 4 assign the floppy disks to drives E: and F: while drive A: to D: will be assigned to one of the four partitions of the VORTEX system 2000. In detail: Drive\Option-> 0 1 2 3 4 A: Floppy 0 Partition 0 Partition 1 Partition 2 Partition 3 B: Floppy 1 Partition 1 Partition 2 Partition 3 Partition 0 C: Partition 0 Partition 2 Partition 3 Partition 0 Partition 1 D: Partition 1 Partition 3 Partition 0 Partition 1 Partition 2 E: Partition 2 Floppy 0 Floppy 0 Floppy 0 Floppy 0 F: Partition 3 Floppy 0 Floppy 0 Floppy 0 Floppy 0 ///2PARK If the drive will be transported the head *MUST* be parked with this utility, preventing it from demage. ///2SYS2000 The menue driven hard disk manager supports: - Formatting the hard disk - Partition of the drive - Erase partitions - Mark defective sectors - Perform tests - Genarate bootable floppy disks ///1HEAD Syntax: HEAD [-n] {du:}files Explanation: HEAD executes the UNIX-like program head - display first few lines of specified files HEAD displays the first n lines of each filename on the console. The default value of n is 10 lines. If more than one file is specified, the start of each file looks like: ==>filename<== ///1HELP Syntax: HELP {topic} {subtopic1 ... subtopic8} {[NOPAGE|LIST|@drv]} Explanation: HELP displays a list of topics and provides summarized information for CP/M Plus commands. It requires the file HELP.HLP on the same drive HELP.COM is loaded from. This may be changed by option '@drv'. E.g. if HELP.COM resides on drive A:, HELP.HLP will be used on drive B: if HELP will be invoked by A:HELP [@B]. HELP topic displays information about that topic. HELP topic subtopic displays information about that subtopic. One or two letters is enough to identify the topics. After HELP displays information for your topic, it displays the special prompt HELP> on your screen, followed by a list of subtopics. - Enter ? to display list of main topics. - Enter a period and subtopic name to access subtopics. - Enter a period to redisplay what you just read. - Press the RETURN key to return to the CP/M Plus system prompt. - [NOPAGE] option disables the 24 lines per page console display. - Press any key to exit a display and return to the HELP> prompt. Examples: A>HELP A>HELP DATE A>HELP DIR OPTIONS A>HELP>.OPTIONS HELP>SET HELP>SET PASSWORD HELP>.PASSWORD HELP>. HELP> You may insert your own help hints using the [EXTRACT] option. This option extracts the help files to a ordinary file accessable by the ED functions. So you may insert new commands simply in the editor mode (Reference to the the description of the ED command). The counterpart of the [EXTRACT] option is the [CREATE] option. It simply creates a file readable by the HELP comand. ///1HEX Syntax: HEX filespec This utility converts a file to a BASIC readable form with extension .HEX. This converted file may be sequentially read by BASIC. Data are enclosed in quotes (") to allow each 32 character line read by a string ///1HEXCOM Syntax: HEXCOM filename Explanation: The HEXCOM Command generates a command file (filetype .COM) from a .HEX input file. It names the output file with the same filename as the input file but with filetype .COM. HEXCOM always looks for a file with filetype .HEX. Example: A>HEXCOM B:PROGRAM Generates a command file PROGRAM.COM from the input hex file PROGRAM.HEX. ///1HIST Syntax: HIST Explanation: The HIST command invoked the 1st time installes an RSX which samples commands such as the UNIX HISTORY utility. The HIST command invoked the 2nd time removes this RSX. Command history may be requested by: ^W Type all commands available ^_ Recall commands started with last command ^^ Recall commands started with first command ///1HISTCL Syntax: HISTCL Explanation: The HISTCL clears the internal commands sampled by the HIST RSX ///1INITDIR Syntax: INITDIR {d:} Explanation: The INITDIR Command initializes a disk directory to allow date and time stamping of files on that disk. INITDIR can also recover time/date directory space. Example: A>INITDIR B: INITDIR WILL ACTIVATE TIME-STAMPS FOR SPECIFIED DRIVE. Do you want to re-format the directory on B: (Y/N)?Y ///1KERMIT Format: KERMIT Explanation: Invokes the KERMIT file transfer protocol. ///1KICK Syntax: KICK Explanation: KICK is a menue driven file utility program. It copies, renames files etc. ///1L80 The L80 is the linker required to link modules produced by M80 the relocatable macro assembler. Syntax : L80 filespec{/option}{,..,filespec{/option}}/endoption The command line of the linker normally consists of one or more modules to be linked, the name of the resulting file and an end option. The follwing options are available : N Define name of resulting file. If no extension is set, a default of .COM will be set or .HEX for INTEL hex format S Search library file for undefined module names. The default is .REL for the extension of the library. X Store resulting file in the INTEL hex format Y Build symbol file. File name as defined by option N with default extension .SYM. E Exit linker after work to CP/M G Exit linker after work to following address H Define hex mode for console I/O (Default) O Define octal mode for console I/O P Set program origin D Set data origin U List undefined symbols M List some link statistics R Reset linker, restart ///2Examples L80 SYMB,SYMB/N/E Load SYMB.REL and link as SYMB.COM then exit to CP/M. L80 /P:4800/,D:9000,MULTI,MAR,B:MUL/N/G:MULT Set program start to 4800h and data start to 9000h. Load and link modules MULTI.REL and MAR.REL and save as MUL.COM on drive B:. Then start program at symbolic address MULT. L80 SIM.TST,B:LIB1/S,SIM/N/X/E Load module SIM.TST and get library LIB1.REL from drive B:. Save as SIM.HEX and exit to CP/M. ///1LABEL80 Format: LABEL80 {drive:}filename{.ext} Explanation: This utility inserts into a source file, which is written for any assembler, a delimiter ':' after any label found. This is important for the MICROSOFT macro assembler M80, because it expects this delimiter. On missing delimiters the M80 types an error message (code U). The only exception is a label followed by an 'EQU' statement, this may not use the delimiter, otherwise M80 types an error message (code O). The default extension is .MAC. A new file will not be generated, the existing one will be overwritten. ///1LANGUAGE Syntax: LANGUAGE n Explanation: The number is a language paramater. This is masked to give a value in the range 0-7: 0 = USA 1 = France 2 = Germany 3 = UK 4 = Denmark 5 = Sweden 6 = Italy 7 = Spain The screen matrices are then altered from the standard (USA) set so as to be suitable for the particular language chosen. ///2Denmark ASCII value Standard character Transformed character 91 '[' upper case AE dipthong 92 '\' upper case O slash 93 ']' upper case A ring 123 '{' lower case ae dipthong 124 '|' lower case o slash 125 '}' lower case a ring ///2France ASCII value Standard character Transformed character 64 '@' lower case a grave 91 '[' degree 92 '\' lower case c cedilla 93 ']' section 123 '{' lower case e acute 124 '|' lower case u grave 125 '}' lower case e grave 126 '~' umlaut ///2Germany ASCII value Standard character Transformed character 64 '@' section 91 '[' upper case A umlaut 92 '\' upper case O umlaut 93 ']' upper case U umlaut 123 '{' lower case a umlaut 124 '|' lower case o umlaut 125 '}' lower case u umlaut 126 '~' schaftes s ///2Italy ASCII value Standard character Transformed character 91 '[' degree 93 ']' lower case e acute 123 '{' lower case a grave 124 '|' lower case o grave 125 '}' lower case e grave 126 '~' lower case i grave ///2Spain ASCII value Standard character Transformed character 35 '#' Peseta symbol 91 '[' inverted exclamation mark 92 '\' upper case N tilde 93 ']' inverted question mark 123 '{' umlaut 124 '|' lower case n tilde ///2Sweden ASCII value Standard character Transformed character 64 '@' upper case E acute 91 '[' upper case A umlaut 92 '\' upper case O umlaut 93 ']' upper case A ring 94 '^' upper case U umlaut 96 '`' lower case e acute 123 '{' lower case a umlaut 124 '|' lower case o umlaut 125 '}' lower case a ring 126 '~' lower case u umlaut ///2UK ASCII value Standard character Transformed character 35 '#' Pound Sterling symbol ///1LB Syntax: LB {file{/switch} {,file{/switch}} Explanation: The SLR LIBrarian program. If no command is given, an percent (%) prompts for a command ///2SWITCHES /A Ask causes LB to prompt the console before including a paricular module in an operation /E Exit to CP/M closing library files properly /I Causes LB to read its commands from an indirect command file file.SUB /L List modules in the file specified /M List modules in the file specified and also lists also externals /N Name a new library /Q Quit LB deleting any library file in the process of being built to be deleted from disk. /R Reset LB, identical to /Q except LB is still running /U List symbols which could be undefined in a single pass through a library ///2MODULES 1) One module only For example: FILE1 includes only module MODZ of FILE1 2) Several discontiguous modules from one file For example: FILE1 includes modules MODZ, MODR and MODK. 3) From the first module through the named module For example: FILE1<..MODK> includes all modules from the first module in FILE1 through module MODK 4) From a named module through the last module For example: FILE1 includes all the modules, beginning with module MODR, through the last module in FILE1 5) From a named module through another named module For example: FILE1 include all modules starting with module MODZ, through module MODK 6) All modules in a file FILE1 includes all modules in FILE1 ///1LIB Syntax: LIB filespec{[I|M|P|E|U|R=(name)|D|N]} LIB filespec{[I|M|P|E|U|R=(name)]}=filespec{modifier} {,filespec{modifier} ... } Explanation: A library is a file that contains a collection of object modules. Use the LIB utility to create libraries, and to append, replace, select or delete modules from an existing library. Use LIB to obtain information about the contents of library files. LIB creates and maintains library files that contain object modules in Microsoft REL file format. These modules are produced by Digital Research's relocatable macro-assembler program, RMAC, or any other language translator that produces modules in Microsoft REL file format. You can use LINK-80 to link the object modules contained in a library to other object files. LINK-80 automatically selects from the library only those modules needed by the program being linked, and then forms an executable file with a filetype of COM. "filespec" may be preceded by optional disk and/or user in either way ///2Options I The INDEX option creates an indexed library file of type .IRL. LINK-80 searches faster on indexed libraries than on non-indexed libraries. M The MODULE option displays module names. P The PUBLICS option displays module names and the public variables for the new library file. E The EXTERNAL option displays module names, the public variables and external references for the new library file. U The UNKNOWN option displays unsolved names and checks valid library structure. Each symbol found is preceeded by one of the following letters: U Symbol undefined M Symbol multiple defined I Symbol defined before external reference In this case the library is inconsistent R The REFERENCE option searches for labels and reports modules referenced to indicating either ENTRY or EXTRN state D The DUMP option displays the contents of object modules in ASCII form. N The NOPAGE option does not stop screen on full page. ///2Modifiers Use modifiers in the command line to instruct LIB to delete, replace, or select modules in a library file. Angle brackets enclose the modules to be deleted or replaced. Parentheses enclose the modules to be selected. LIB Modifiers Delete Replace If module name and filename are the same this shorthand can be used: Select (modFIRST-modLAST,mod1,mod2,...,modN) ///2Examples A>LIB TEST4[P] Displays all modules and publics in TEST4.REL. A>LIB TEST2.IRL[U] Checks references in TEST2.IRL. A>LIB TESTLIB[R=(NAME)] Checks presence of label NAME in library TESTLIB.REL A>LIB TEST5[P]=FILE1,FILE2 Creates TEST5.REL from FILE1.REL and FILE2.REL and displays all modules and publics in TEST5.REL. A>LIB TEST=TEST1(MOD1,MOD4),TEST2(C1-C4,C6) Creates a library file TEST.REL from modules in two source files. TEST1.REL contributes MOD1 and MOD4. LIB extracts modules C1, C4, and all the modules located between them, as well as module C6 from TEST2.REL. A>LIB FILE2=FILE3 Creates FILE2.REL from FILE3.REL, omitting MODA which is a module in FILE3.REL. A>LIB FILE6=FILE5 Creates FILE6.REL from FILE5.REL, FILEB.REL replaces MODA. A>LIB FILE6=FILE5 Module THISNAME is in FILE5.REL. When LIB creates FILE6.REL from FILE5.REL the file THISNAME.REL replaces the similarly named module THISNAME. A>LIB B3:FILE6=D4:FILE5 Module THISNAME is in FILE5.REL on drive D, user area 4. When LIB creates FILE6.REL on drive B, user area 3, from FILE5.REL the file THISNAME.REL replaces the similarly named module THISNAME. A>LIB FILE1[I]=B:FILE2(PLOTS,FIND,SEARCH-DISPLAY) Creates FILE1.IRL on drive A from the selected modules PLOTS, FIND, and modules SEARCH through the module DISPLAY, in FILE2.REL on drive B. ///1LIB80 Syntax: LIB80 Explanation: The Micro Soft interactive LIBrarian program. After the asterisk (*) prompt enter command in the general form {destination=}source/switch ///2Switches E Exit to CP/M closing library files properly If no library is created or revised, use Control-C instead R Renames library currently being built (.LIB) to .REL L List modules in the file specified U List symbols which could be undefined in a single pass through a library C Clear commands from LIB80 without exiting program. The library under construction is cleared and the LIB80 session starts over O Set octal radix H Set hexadecimal radix (Default) ///2Syntax 1) If a command consists of filenames only, the entries are separated by commas only. For example: FILE1,FILE2,FILE3 2) If a command consists of filenames and module names, the module names must be enclosed in angle brackets. For example: FILE1,FILE2,FILE3,FILE4 3) If more than one module is named from the same file, the module names, enclosed in angle brackets must be separated from each other by commas. For example: FILE1,FILE2,FILE3 ///2Modules 1) One module only For example: FILE1 includes only module MODZ of FILE1 2) Several discontiguous modules from one file For example: FILE1 includes modules MODZ, MODR and MODK. 3) From the first module through the named module For example: FILE1<..MODK> includes all modules from the first module in FILE1 through module MODK 4) From a named module through the last module For example: FILE1 includes all the modules, beginning with module MODR, through the last module in FILE1 5) From a named module through another named module For example: FILE1 include all modules starting with module MODZ, through module MODK 6) Relative offset range (1..255) For example: FILE1 include the two modules immediately following mdule MODZ FILE1 include the three modules immediately preceding module MODK FILE1 includes all the modules between module MODR and module MODK (But neither module MODR nor MODK is included 7) All modules in a file FILE1 includes all modules in FILE1 ///1LINK Syntax: LINK d{u}:{filespec,{[options]}=}filespec{[options]}{,...} Explanation: LINK combines relocatable object modules such as those produced by RMAC, M80 and PL/I-80 into a .COM file ready for execution. Relocatable files can contain external references and publics. Relocatable files can reference modules in library files. LINK searches the library files and includes the referenced modules in the output file. See the CP/M Plus Programmer's Utilities Guide for a complete description of LINK-80. Filespecs my be defined including ZCPR style DU: setting. ///2Options Use LINK option switches to control execution parameters. Link options follow the file specifications and are enclosed within square brackets. Multiple switches are separated by commas. LINK-80 Options A Additional memory; reduces buffer space and writes temporary data to disk Dhhhh Data origin; sets memory origin for common and data area Gn Go; set start address to label n Lhhhh Load; change default load address of module to hhhh. Default 0100H Mhhhh Memory size; Define free memory requirements for MP/M modules. NL No listing of symbol table at console NR No symbol table file OC Output .COM command file. Default OP Output .PRL page relocatable file for execution under MP/M in relocatable segment OS Output .SPR system page relocatable file for execution under MP/M OX Output .RSX page relocatable file. Phhhh Program origin; changes default program origin address to hhhh. Default is 0100H. Q Lists symbols with leading question mark S Search preceding file as a library V Be verbose while linking $Cd Destination of console messages d can be X (console), Y (printer), or Z (zero output). Default is X. $Id Source of intermediate files; d is disk drive A-P. Default is current drive. $Ld Source of library files; d is disk drive A-P. Default is current drive $Od Destination of object file; d can be Z or disk drive A-P. Default is to same drive as first file in the LINK-80 command. $Sd Destination of symbol file; d can be Y or Z or disk drive A-P. Default is to same drive as first file in LINK-80 command. ///2Missing The following options are no longer supported: B BIOS link in banked CP/M Plus system. 1. Aligns data segment on page boundary. 2. Puts length of code segment in header. 3. Defaults to .SPR filetype. OR Output .RSP resident system process file for execution under MP/M ///2Examples A>LINK b:MYFILE[NR] LINK-80 on drive A uses as input MYFILE.REL on drive B and produces the executable machine code file MYFILE.COM on drive B. The [NR] option specifies no symbol table file. A>LINK m1,m2,m3 LINK-80 combines the separately compiled files m1, m2, and m3, resolves their external references, and produces the executable machine code file m1.COM. A>LINK m=m1,m2,m3 LINK-80 combines the separately compiled files m1, m2, and m3 and produces the executable machine code file m.COM. A>LINK MYFILE,FILE5[s] The [s] option tells LINK-80 to search FILE5 as a library. LINK-80 combines MYFILE.REL with the referenced subroutines contained in FILE5.REL on the default drive A and produces MYFILE.COM on drive A. 5A>LINK a1:m=m1,m2,m3,b6:lb[s] LINK-80 combines the separately compiled files m1, m2, m3 with the refer- enced subroutines contained in LB.REL on drive B, user area 6, and produces the executable machine code file m.COM on drive A, user area 1. ///1LN LN is the linker required to link modules in MICROSOFT-REL or SLR-REL format. Syntax : LN {command {,command}} Where command may be : {file}{option} If no command is given, an percent (%) prompts for a command. The command line of the linker normally consists of one or more modules to be linked, the name of the resulting file and an end option. The follwing options are available : /A:hhhh Select common loading base for ALL types /C:hhhh Select loading base for COMMON types /D:hhhh Select loading base for DATA types /E Exit linker after work to CP/M /F Force all undefined symbols to zero /G End of link, go execute program file/H Declare name of .HEX output file file/I Call indirect command file {file}/M Generate symbol table map either to file.SYM or console file/N Declare name of .COM output file /O:sym:hhhh Origin a symbol /P:hhhh Select loading base for prgram types /Q Quit, abort linker /R Reset linker, restart file/S Search library file for undefined module names. {file}/U Generate undefined symbol table either to file.SYM or console /V Select verbose operation ///2EXAMPLES LN SYMB,SYMB/N/E Load SYMB.REL and link as SYMB.COM then exit to CP/M. LN /P:4800/,D:9000,MULTI,MAR,B:MUL/N/G Set program start to 4800h and data start to 9000h. Load and link modules MULTI.REL and MAR.REL and save as MUL.COM on drive B:. Then start program LN SIM.TST,B:LIB1/S,SIM/H/E Load module SIM.TST and get library LIB1.REL from drive B:. Save as SIM.HEX and exit to CP/M. ///2HINTS If the load address is 0108H, LN generates the following code in front of the main code: ORG 0100H LD HL,(6) ; CP/M top of memory DEC HL LD SP,HL ; Set top of stack JP STARTADR ; Declared with an END statement If the load address is not standard (below 0100H), LN creates a file with extension .CIM ///1LT Format: LT [d[u]:]lbr/filename [d[u]:][component] [$u] Type/uncrunch/unsqueeze/unLZH files or LBR members. Drive/user after lbr/filename causes file output. $U at end disables unsq/uncr/unlzh of compressed files (wildcards permitted) ///2EXAMPLES B>LT A3:HELLO SOURCE.AZM [console] (defaults to HELLO.LBR) A>LT LZHENCOD.DYC [console] (handles LZH encoding) A>LT SQUEEZE.DQC [console] A>LT HELLO *.* [console, all typable] B>LT B:HELLO A4:SOURCE.AQM [file] B>LT B:HELLO A4:SOURCE.AQM $U [file with no unsqueeze] A>LT B:CRUNCH.AZM A: [file] ///1LU Format: LU [ [ ...]] [ [ ...]... where square brackets indicate optional parameters, and: is any operator. is any operand. ... indicates that the preceding parameter may occur multiple times in the parameter driven mode. LU may be called also without arguments entering the interactive mode. Explanation: Library Utility (LU) is a program to allow combining of multilple files into one larger file. ///2EXPLANATION An operator is defined as any two character string where the first character is a minus sign. Operators tell the program what to do. Valid operators are -a, -b, -c, -d, -e, -l, -n, -o, -r, and -u. Anything else with the same form is anoperator too, but an invalid one. Operands are any other input string. Normally, operand strings are presumed to be the names of files which are to be acted upon by the previous operator, for instance, added to or extracted from a library file, and to have the following general form: [u/][d:][filename][.ext] where u is an optional user area prefix. It is a decimal number from 0 to 31, and if present, must be followed by a slash (/) character. User areas greater than 15 should be used with care, as they cannot be accessed by any of the resident CCP (Console Command Processor) commands of CP/M, such as USER, TYPE or ERA. d is an optional drive designator. It is a single character in the range A to P, and if present, mustbe followed by a colon (:). ///2OPERATORS 1) -a add files to library. It causes subsequent operands to be treated as the names of files to be added to the open library. 2) -b buffer size set. It reads the subsequent operator as the size (in sectors) to allocate for a disk buffer. It defaults to 64. 3) -c close current library. If a library has been opened with the -o operator, -c causes it to be closed. Otherwise, it has no effect. 4) -d delete files from library. It causes subsequent operands to be treated as the names of members to be deleted from the open library. 5) -e extract files from library. It causes subsequent operands to be treated as the names of library member files to be extracted to normal free-standing CP/M files. 6) -h list short operator help info. 7) -l list current library map. It causes the directory of the current library to be listed on the console. 8) -n Name a member. Causes subsequent operand to be treated as a request to change the name of a member in an open library. 9) -o open a library. It causes the following operand to be treated as the name of a library file to be opened for use with subsequent operators. 10) -r reorganize library. It causes the currently open library to be reorganized. 11) -u use new default area. The -u can be used to change the default value for user number or drive. 12) -x eXit program. It causes the input line in which it is contained to be the last line scanned by the program. ///2ADVANCED Input and output from ordinary sequential files is also possible. The filename is specified on the command line preceded by a "<" or ">" character and no intervening blank. Examples: LU B:RECORD.DOC Would take interactive commands from the file BATCH.I and write console output to a file called RECORD.DOC on drive B. LU -O 3/SPECIAL -A B:ZOT.COM >20/C:LOGFILE.OUT Would add the file ZOT.COM from drive B, current user area, to the library SPECIAL.LBR, in user area 3 on the default drive. Console output would be written to a file called LOGFILE.OUT in user area 20 on drive c. The placement of the output name on the line does not matter and except for turning on redirected output, it is ignored by all operators. Normally, console file output is also echoed on the real console, except when input is also redirected, as in the last example. To force visible console output when both an input and output file are used, the ">" character preceding the output file name may be changed to a "+" like this: LU +RECORD.DOC MAC SAMPLE A>MAC SAMPLE $PB AA HB SX ///2options Use options to direct the input and output of MAC. Use a letter with the option to indicate the source and destination drives, and console, printer, or zero output. Valid drive names are A thru O. X, P and Z specify console, printer, and zero output, respectively. Assembly Options That Direct Input/Output A source drive for .ASM file (A-O) H destination drive for .HEX file (A-O, Z) L source drive for macrolibrary .LIB files called by the MACLIB statement. P destination drive for .PRN file (A-O, X, P, Z) S destination drive for .SYM file Assembly Options That Modify Contents Of Output File +L lists input lines read from macrollibrary .LIB files -L suppresses listing (default) +M lists all macro lines as they are processed during assembly -M suppresses all macro lines as they are read during assembly *M lists only hex generated by macro expansions +Q lists all LOCAL symbols in the symbol list -Q suppresses all LOCAL symbols in the symbol list (default) +S appends symbol file to print file -S suppresses creation of symbol file +1 produces a pass 1 listing for macro debugging in .PRN file -1 suppress listing on pass 1 (default) ///1MAIL232 This utility requires the hardware extension of the serial and parallel inter- face CPS8256. This extension installed allows emulation of a terminal and a file transfer from or to a host. For further details see the CPS8256 manual. ///1MKINLINE Format: MKINLINE { file1{.ext} {file2{.ext}} {[opt]} } Explanation: MKINLINE converts relocatable files as produced by the macro assembler RMAC or M80 into files readable by TURBO Pascal via the INLINE command. The first file has a default extension of .REL. If the second file name is not specified, it defaults to the first name. The default extension is .INL. There are three options available: [I] This option selects the 'normal' INLINE option. It allows EXTERNALS as well as RELOCATABLE code. This option is the default option. [C] This option allows a constant mode. It generates code without the statements 'INLINE' and 'END;'. It is usefull in constant arrays to load code into the CP/M PLUS common memory area. It should only be used with the M80 '.PHASE' option because neither EXTERNALS nor RELOCATABLE code are allowed. [P=hex] This is the constant mode for the RMAC assembler which does not allow the '.PHASE' option. The 'hex' value is the start address of the constant code. In this mode only RELOCATABLE code is allowed but no EXTERNALS. If only MKINLINE is typed, an optional help text may be printed on screen and files as well as the option are requested for interactively. ///1MLOAD Format: MLOAD [=] [,...] [] (brackets denote optional items) is the optional output filename are input file(s) is a hex load offset within the output file may be an optional non-HEX or -REL file to be patched by subsequently named HEX or REL files (specifying The filetype enables this function). Drive/user notation may be used in all file specifications (e.g., "B3:MYFILE.COM, "A14:MDM7.HEX"). ///1MOVE Format: MOVE file.ext newuser Explanation: The MOVE utility allows copying files between different user areas. In fact the 'file.ext' will be erased from current user area and copied into 'newuser'. NOTES 1 - No wildcard characters in 'file.ext' are allowed 2 - The new user area is limited from 0 up to 15 ///1MOVECCP Format: MOVECCP Explanation: MOVECCP moves the file CCP.COM into the system memory area of a PCW machine for a new version of the Console Command Processor. ///1NOBS Format: NOBS infile {outfile} Explanation: Delete BS and DEL characters from file If no outfile given, put result to NOBS ///1NOTATE Format: NOTATE file{.ext} Explanation: NOTATE invokes the 'Build comments into source file' utility. NOTATE scans each line for the ';' character which is the 'Comment' statement in most assemblers. If it finds none it awaits any input. RETURN only closes current line without comment. Control Z followed by a RETURN ends input session. The default 'ext' is set to .ASM as required by DR's macro assemblers MAC/RMAC. ///1NSWEEP Syntax: NSWEEP Explanation: Menue controlled copy program. ///2commands Command Action A Retag files. Reset marker to files after file transfer. B Back one file. Go back one element in the file list. C Copy file. Copy current file to any drive and user. So 'Cdu:' copies file to drive 'd' and user 'u'. D Delete file. Delete marked file. E Erase T/U files. Type 'T' if tagged files should be erased. Type 'U' for untagged files and type 'A' to abort command. Also verifying is included typing 'Y'. So the command 'EUY' erases all untagged files and waits for prompting. The letter 'N' erases all files without prompting. F Find file. Ask for file within element list. G Go to first file. Set pointer to start of element list. L Log new disk/user. Type drive and user to be selceted in the form 'Ldu:' M Mass file copy. Copy marked file(s) to any drive and user. So 'Mdu:' copies file(s) to drive 'd' and user 'u'. P Print file. Output current file to list device. Compressed files will be decompressed automatically. (But not on disk). Q Unsqueeze tagged files. Decompress marked files which are compressed by the PRESS utility. R Rename file(s). Rename marked files. S Check remaining space. Displays free space of selected drive in bytes. T Tag file for transfer. Mark file by character '*'. U Untag file. Remove marker of file. V View file. Type content of current file on screen. Compressed files will be decompressed automatiacally (But not on disk). W Wildcard tag of files. Mark files by character '*'. See 'T'. X Exit to CP/M. Y Set file status. Z Wildcard untag of files. Remove marker from different files. ? Display this help. cr, sp Forward one file. Get next element in file list. ///2examples LA: Log on drive A: W*.BAS Mark all files with extension '.BAS' ZC*.* Unmark all files starting with 'C' in filename MM10: Copy marked files to drive M:, user 10 A Reset marker ETN Erase all tagged (marked) files without prompting LM10: Log in drive M:, user 10 sp Control files at drive M:, user 10 sp .. X Exit to CP/M ///1NULU Format: NULU libraryfile Explanation: The New Library Utility (NULU) is a program to allow combining of multilple files into one larger file. NULU is the more advanced version of LU with built in SWEEP facility. ///2COMMANDS NULU Command Menu -A Add members -B Brief toggle -C Close the library -D Delete members/files -E Extract members -F Filesweep mode -G Get filespec -H Help -K Krunch library -L List members -N Rename members -O Open a library -P Print members/files -Q Unsqueeze members -R Replace members -S String search -T Replace/Add members -U Drive/User change -V View members/files -W Wildcard open -X Exit NULU -Y Disk directory -< Redirect input -> Redirect output ///2SWEEP NULU Filesweep Menu A Next member B Previous member C Close library D Delete member E Extract member F Find member L Log new drive/user M Mass operations O Open new library P Print member Q Unsqueeze member R Rename member T Tag member U Untag member V View member W Wildcard rename X Exit NULU Y Disk directory Z NULU command mode ? Help! ///1PALETTE Syntax: PALETTE n { n } Explanation: The first number specifies the intensity of ink 0, the second specifies ink 1. If ink 1 >= ink 0 then the screen is shown as light characters on a dark background. If ink 1 < ink 0 then the screen is shown as dark characters on a light background. Each intensity is given as a number in the range 0-63. Any number greater than 63 is masked with 63. If more than 2 numbers are given the remainder are ignored. Example: A>PALETTE 1 0 Sets dark characters on a light background. ///1PAPER Syntax: PAPER {attribute} ... Explanation: PAPER sets the printer to use paper with the given attributes. The attributes are specified by at least their first letter. Where an attribute has a parameter, this must be specified in full. Attributes can be separated by spaces or commas. ///2attributes Use attributes to specify the characteristics of the paper in the printer. Some attributes automatically cause other attributes to become set unless explicitly set otherwise in the same PAPER command. ATTRIBUTE PARAMETER MEANING and IMPLICATIONS FORM LENGTH n Set paper length to n lines (n=6-99) LINE PITCH=6, GAP LENGTH=0 GAP LENGTH n Number of lines to skip at bottom of page (n=0-98) LINE PITCH=6 LINE PITCH n Number of lines per inch (n=6 or 8) SINGLE SHEET Single sheet stationery PAPER OUT DEFEAT = ON CONTINUOUS Continuous stationery PAPER OUT DEFEAT = OFF PAPER OUT DEFEAT s Do not/Do check whether out of paper (s=ON/OFF) A4 Set for A4 paper FORM LENGTH=70, GAP LENGTH=3, LINE PITCH=6 SINGLE SHEET, PAPER OUT DEFEAT ON A5 Set for A5 paper FORM LENGTH=50, GAP LENGTH=3, LINE PITCH=6 SINGLE SHEET, PAPER OUT DEFEAT ON n Set paper length to n inches (n=1-17) CONTINUOUS, PAPER OUT DEFEAT OFF LINE PITCH=6, GAP LENGTH=0 DEFAULTS Save the current printer settings for use on printer reset ///1PASCAL Format: PASCAL {-library} filename {command list} Explanation: PASCAL allows running TURBO PASCAL 3.0 .CHN files out of a library file generated by the Library Utilities LU or NULU. The default is the library PASCAL.LBR. Note selecting another library requires the '-' sign. One of the modules in the library file must be the TURBO PASCAL Run Time Routines, TURBO.RTL. PASCAL loads the module TURBO.RTL and looks for member filenam.CHN which will be loaded behind the Run Time Routines. The .CHN files contain no Run Time Routines which will be about 8kBytes. The .CHN files will be created by TURBO PASCAL option 'H'. ///2RTL The Run Time Routine module, TURBO.RTL, must be generated once out of TURBO.COM This will be done in the following way: CP/M 2.2 User CP/M 3.0 User ============= ============= DDT TURBO.COM SID TURBO ^C WTURBO.RTL,100,20E1 SAVE 32 TURBO.RTL ^C ///1PATCH Syntax: PATCH filename{.typ} {n} Explanation: The PATCH command displays or installs patch number n to the CP/M Plus system or command files. The patch number n must be between 1 and 32 inclusive. Example: A>PATCH SHOW 2 Patches the SHOW.COM system file with patch number 2. ///1PCW Syntax: PCW -utility {options} Explanation: PCW combines the seven AMSTRAD utilities for PCW type machines. Utility and options are defined as: LANGUAGE option PALETTE option1 option2 SET24X80 ON or OFF SETKEYS file PAPER {option {option..}} SETLST file SETSIO {option {option..}} For detailed information please see description on specific item. ///1PIP (copy) Syntax: DESTINATION SOURCE PIP d:{Gn} | filespec{[Gn]} = filespec{[o]},... | d:{[o]} Explanation: The file copy program PIP copies files, combines files, and transfers files between disks, printers, consoles, or other devices attached to your computer. The first filespec is the destination. The second filespec is the source. Use two or more source filespecs separated by commas to combine two or more files into one file. [o] is any combination of the available options. The [Gn] option in the destination filespec tells PIP to copy your file to that user number. PIP with no command tail displays an * prompt and awaits your series of commands, entered and processed one line at a time. The source or destination can be any CP/M Plus logical device. ///2Examples COPY A FILE FROM ONE DISK TO ANOTHER A>PIP b:=a:draft.txt A>PIP b:draft.txt = a: B3>PIP myfile.dat=A:[G9] A9>PIP B:[G3]=myfile.dat COPY A FILE AND RENAME IT A5>PIP newdraft.txt=oldraft.txt C8>PIP b:newdraft.txt=a:oldraft.txt COPY MULTIPLE FILES A>PIP b:=draft.* A>PIP b:=*.* B>PIP b:=c:.*.* C>PIP b:=*.txt[g5] C>PIP a:=*.com[wr] B>PIP a:[g3]=c:*.* COMBINE MULTIPLE FILES A>PIP b:new.dat=file1.dat,file2.dat COPY, RENAME AND PLACE IN USER 1 A>pip newdraft.txt[g1]=oldraft.txt COPY, RENAME AND GET FROM USER 1 A>PIP newdraft.txt=oldraft.txt[g1] COPY TO/FROM LOGICAL DEVICES A>PIP b:funfile.sue=con: A>PIP lst:=con: A>PIP lst:=b:draft.txt[t8] A>PIP prn:=b:draft.txt ///2options PIP OPTIONS A Archive. Copy only files that have been changed since the last copy. C Confirm. PIP prompts for confirmation before each file copy. Dn Delete any characters past column n. E Echo transfer to console. F Filter form-feeds from source data. Gn Get from or go to user n. H Test for valid Hex format. I Ignore :00 Hex data records and test for valid Hex format. K Kill display of filespecs on console. L Translate upper case to lower case. N Number output lines O Object file transfer, ^Z ignored. Pn Set page length to n. (default n=60) Qs^Z Quit copying from source at string s. R Read files that have been set to SYStem. Ss^Z Start copying from the source at the string s. Tn Expand tabs to n spaces. U Translate lower case to upper case. V Verify that data has been written correctly. W Write over Read Only files without console query. Z Zero the parity bit. All options except C,G,K,O,R,V and W force an ASCII file transfer, character by character, terminated by a ^Z. ///1PMARC Format: PMARC [=][/w:] [d:][=][/BDHMNT] Explanation: PMARC is a file archiver with a high compression ratio. Options: /w : Work drive(default is current) /B : Binary file(ignore EOF) /D : Delete members in archive /H : High-speed mode /M : Make memorandums /N : No compression /T : Text file(stop at EOF) ///2EXTRACT The module PMSFX2.COM is also available for use with PMARC. It is used to make selfextracting (SFX) archives, like this: PMARC .COM=PMSFX2.COM [options] The archive-name must be .COM, not .PMA. Call .COM with possible options: A Attribute L C Check archive only Q Be quiet ///2EXECUTE The module PMEXE2.COM can only be used in combination with PMARC. It is used to make executable compressed COMfiles (just like LZEXE or PKLITE for MSDOS). To make such a file, type: PMARC .COM=PMEXE2.COM [options] The archive-name must be .COM, offcourse, not .PMA. ///1PMCAT Format: PMCAT Explanation: PMCAT is a utility for files compressed by PMARC. ///2MODES Three modes of PMCAT are available: 1) PMCAT [-S] [=] [ []] Catenate members in matching with to . If is fixed, copy the archive to , and do as the above. If is absent, all members are catenated. If is absent,it mean refresh . If switch -S is fixed,sort members in alphabetical order before catenating. 2) PMCAT -U [] Update directry by members in matching with . 3) PMCAT -D[D] Delete members in matching with . If fix -DD, rewrite directry. ///1PMEXT Format: PMEXT [[dev:][=][/A/B/C/I/L/M/N/Pn/Q/W]] Explanation: PMEXT is a file dearchiver for files archived by PMARC. Options: /A : Extract with attribute /B : Binary file(ignore EOF) /C : Check CRC of members /I : Indifferent to unmatching members /L : Display list of members /M : Nondisplay memorandums /N : Nondisplay hex-counter /P : Output by the page /Q : Work with question /W : Overwrite without question Examples: A>PMEXT B:SAVE ; Display list of members in B:SAVE.PMA A>PMEXT B:SAVE *.COM/L ; Display list of COM-members in B:SAVE.PMA A>PMEXT SAVE B: ; Extract all members in SAVE.PMA to drive B: A>PMEXT SAVE READ.ME=*.DOC ; Extract READ.ME as READ.DOC in SAVE.PMA A>PMEXT SAVE CON:READ.ME ; Display contents of READ.ME in SAVE.PMA A>PMEXT SAVE EXE:TERM ; Execute TERM.COM in SAVE.PMA A>PMEXT SAVE /C ; Check all members in SAVE.PMA ///1PMON Format: PMON {command line} Explanation: PMON is the professional version of the HiSoft debugger from the Devpak80 package. It also requires the file PMON.MON the current disk. The optinal 'command line' will be translated to standard CP/M format, thus filespec1 filespec2, options loads the 'filespec1' at address 005Ch, 'filespec2' at 006Ch and ',options' to location 0081h (0080h holds the length of this string) ///2EXPRESSIONS Numbers are one of the following: - a decimal number, preceded by a backslash '\' - a hex number, may be preceded by a hash character '#' - a binary number, preceded by a percent character '%' Literal characters and string must be enclosed in double (") or single (') quotes. Curly brackets indicate indirection and the value of the expression within the curla brackets ({..}) will be considered an address. ///2OPERATORS The following operators are available: + Plus .AND. or & Logical AND - Minus .OR. Logical OR * Multiplication .XOR. Logical XOR / Division .EQ. or = Equals .MOD. Remainder (Modulo) .LT. or < Signed less than .EXP. Exponential .GT. or > Signed greater than .NOT. Logical NOT .ULT. Unsigned less than .SHL. Shift left logical .UGT. Unsigned greater than .SHR. Shift right logical ///2BREAKPOINTS Four types of breakpoints are available: Hard Breakpoints Execution will always halt at the breakpoint and the front panel will be displayed showing the current state of registers, flags etc. Conditional Breakpoints A conditional breakpoint will only cause interruption if a particular condition is true at the time of the breakpoint. Watchpoints Watchpoints are not really breakpoints. It simply keeps a watch over the code, it counts how many times a particular instruction has been executed. Warm Boot Most programs terminate by jumping to location 0. When debugging, this should be done carefully, so PMON places a breakpoint at location 0. ///2COMMANDS All commands are two-character commands. After pressing the first character of the command, a list of second characters available will be displayed. At this time the ESCape character aborts the command. ///3MEMORY MA Set the memory pointer address MB Set the memory bank MC Compare memory MF Fill memory MM Memory move MV Memory view MW Memory window ///4WINDOW The following control keys are available for the MW command: ^E Cursor up ^X Cursor down ^S Cursor left ^D Cursor right ^R Page up ^C Page down TAB Flip between ASCII and hex display ESC Return to command mode ///3REGISTER RU Register update RV Register view ///3FILE FR File read FW File write FC File command line ///3SEARCH SB Search byte/string SM Search mnemonic SN, N Search next ///3BREAKPOINT BS (Hard) Breakpoint set BR Breakpoint reset BC Breakpoint conditional BW Breakpoint watchpoint BZ Breakpoint zap ///3EXECUTE EB Execute breakpoint EM Execute miss EL Execute long EQ Execute quick ES, Z Execute single EC Execute conditional ///3DISASSEMBLY DA Disassembly address DF Disassemble file DM Disassemble memory DP Disassemble program DN Disassemble next DW Disassemble window ///4WINDOW The following control keys are available for the DW command: ^E Cursor up ^X Cursor down ^R Page up ^C Page down ESC Return to command mode ///3DISPLAY PE Print expression PS Print screen ///3EXIT Q Quit program ///1PRINT Syntax : PRINT {d:}file{.ext} {[options]} Explanation: The PRINT command allows printing multiple files on the printer. The file may be contain wildcards The following options are available : C Don't process control characters such as carriage return, form feed, line feed and tab DEFAULT : Process control F Print form feed prior starting printing DEFAULT : No form feed inserted S Surpress first form feed DEFAULT : Don't surpress form feed E Define default extension Syntax : E=ext DEFAULT : ext=.PRN L Set line width (Switch characters/inch) Syntax : L=80, L=96 or L=136 DEFAULT : width=80 T Truncate line on overflow (If greater width) DEFAULT : Don't truncate, process next line D Delete file-list after printing DEFAULT : Don't delete file-list M Set left margin in centimeters Syntax : M=N, N in range 0 up to 9 DEFAULT : 0 centimeters The current printout may be interrupted by pushing the CAN key. The default drive d: is the current drive, while the default .ext is the type .PRN, which is generated by the MAC or RMAC command. The number of lines on a page is set to 70. If the page is full, a form feed will be be issued. ///2NOTES Because the number of characters printed to get the left margin is computed from the current switch of characters per inch, the option L may not be defined after setting option M. The character per line setting option L installs the width by printing an EPSON FX80 compatible sequence of control characters. These are defined as follows: ESC M .. switch to 96 characters ESC P .. switch back to 80 SI .. switch to 136 characters DC2 .. switch back to 80 ///1PRINT80 Format: PRINT80 filename{.ext} {/{S}{L}} Explanation: Program converts print files generated by the M80 macro assembler into format as generated by MAC or RMAC assembler. The symbol table and statistic pages will be extracted into a second file with extension .SMP, if option /S is selected. If option /L is selected, the form feed will be expanded to FF, CR, LF which may be useful on some printers. Filename may contain wildcards. ///2Sample Output produced by RMAC: ========================= 0000 3E05 mvi a,5 ; Set constant Output produced by M80: ======================= 0000' 3E 05 mvi a,5 ; Set constant Formatted output from M80 file: =============================== 0000' 3E05 mvi a,5 ; Set constant ///1PRINTER The PRINTER CONTROL state is entered by operating the paper load knob or pressing the PTR key. An information line is displayed at the bottom of the screen. This is used to display a number of 'buttons'. The left and right cursor keys can be used to move between buttons. The [+] and [-] keys can be used to operate the buttons. Pressing EXIT leaves printer control state. ///2buttons Printer control 'buttons' button 1 ACTIVE The printer is currently doing something ONLINE The printer is halted but ready to print [-] -> OFFLINE OFFLINE The printer is permanently halted [+] -> ONLINE BAIL BAR OUT After loading paper, before bail bar is replaced OUT OF PAPER No paper detected and PAPER OUT DEFEAT OFF WAITING FOR PAPER Beyond end of form in SINGLE SHEET stationery Cleared by loading paper or pressing [-] ERROR Hardware error detected, RESET will clear this state NO PRINTER The printer is not connected. If the printer is connected other than on booting CP/M, RESET will clear this state buttons 2, 3 and 4 (Note, all lines measured at 6 lines per inch) TOP OF FORM Logically at top of form AT LINE: n Logically at line n. [+] will set to TOP OF FORM LF [+] will feed paper one line FF [+] will feed paper to next top of form buttons 5, 6 and 7 s QUALITY printing quality [+] and [-] toggle s between DRAFT and HIGH PO DEFEAT: s action of paper out detector [+] and [-] toggle s between ON and OFF HEX: s Characters printed as normal graphics or as hex codes [+] and [-] toggle s between ON and OFF button 8 RESET Reset the printer and reset all values to default state ///1PRINTPAS Format: PRINTPAS {file{.ext} {[options]}} Explanation: PRINTPAS converts source files produced for the TURBO Pascal compiler into a format controlled by several options. The default ext is set to .PAS. Printout may be INTERRUPTED pressing the Control-H key Without any operand, PRINTPAS simply types a little help text on screen ///2Options The following options may be selected: F - Output Form Feed to printer before printing Default : None M - Set left margin in centimeters, M=n, n=0..9 Default : 0 D - Set density, D=n, n=80, 96 or 136 Default : 80 T - Truncate line Default : None P - Pretty printing, print PASCAL keywords fat Default : None I - Print INCLUDE files, too Default : No L - Set page length, L=n, n>=10 Default : 62 H - Include header each page Default : None NOTE: Option D may not be selected AFTER option M ///2Install The format PRINTPAS /I invokes the installer for printer dependent control code (Preset for FX 80) The installer prints all currently available code and expects any input closed by Control-C which may NOT be included into the control codes. The input is limited to eight characters. Note that no editing function is available. After modifying any code the updated file will be saved on disk. ///1PROLINK Syntax: PROLINK [command_line] Explanation: PROLINK is a linker supporting MICROSOFT REL-80 format as well as INTEL's HEX format. Also COM files may be overlayed by this linker. Normally, PROLINK will be called without a command line running interactively. ///2LINE PROLINK accepts multiple line input, each command separated by a semicolon ; ///2EXPRESSIONS Many PROLINK commands take a numeric and/or symbolic argument. Such an argument is called an expression. PROLINK expressions are integers. Valid operators are: + Add expressions - Subtract expressions * Multiply expressions / Divide expressions Parentheses may be used, so 6*8+9 results in 48+9=57 6*(8+9) results in 6*17=102 ///2FILENAMES Filenames are supported in standard or enhanced CP/M style. The enhanced style (so called ZCPR style) also supports a user area definition. Examples: C:MXO-SM13.HEX Current user on drive C: B3:OBJECT.REL User area 3 on drive B: 3:SYSLIB.REL User area 3 on current drive: ///2COMMANDS ///3BASIC ORIGIN aaaa Set the origin of the execution address. Defaults to 100H LINK fn[,fn] Link one or more files. Extension of files defaults to .REL SEARCH fn Search library for unsolved references. LOAD fn Load different types of files. Defaults to .HEX. - HEX Load INTEL hex format - SYM Load symbol table file of same format as for (Z)SID - xxx Load as image file. Typically these are .COM files. Image files will be loaded into memory starting at the current PC value, viewable by STAT, and changeable by SETLOC. RESET Reset linker to it's start-up state. ABORT Abort the session without writing a file. OUTFIL fn Define name of resulting output file. Normally the first name of the LINK command will be taken as the name of the file. EXIT [fn] Write result to output file and exit PROLINK. CLOSE [fn] Write result to output file and reset PROLINK. ///3AUTOMATION Complex applications making full use of PROLINK features will result in a lot of typing during the typical session. In such circumstances, it is advisable to use an editor to make a file of PROLINK commands, then use the READ command to execute these commands. The syntax is: READ fn [$E] The READ file type defaults to .LNK. Normally PROLINK will not echo the command lines it is executing from the READ file. However, the '$E' option will override this. A READ file may contain any valid PROLINK command except another READ command. Special commands in a READ file: . A period in the first character position will be interpreted as a comment. <..>;. A period in the first character position of a multiple command line has the same effect. .+ A period in the first character position followed by the '+' turns on the command echo, overriding the '$E' option. .- A period in the first character position followed by the '-' turns off the command echo, overriding the '$E' option. ///3QUERIES HELP Print list of available commands. STAT Display status of the linkage at any particular time. EVAL ex[,ex] Determine symbol values or arithmetic calculations. EVAL displays result both in hexadecimal and decimal. D[UMP] [][+][e] Display memory in hex and ASCII. Without an argument, DUMP will display from the previous ending DUMP address or program origin the first time for a length of 128 bytes. 's' defines a starting address. The ending 'e' address prefixed by the '+' causes the end-address to be considered a counts of bytes to display, rather than an actual ending address. ///3SYMBOLS SYMFIL [fn] [$ON] [$OFF] [$X] Specify symbol file name to turn on the symbol file - PROLINK, as a default, does not write a symbol file. To turn write to the file on really, option '$ON' must be used. Option '$X' turns on the X-option which will be described later. SYMBOL Display the current symbol table. UNDEF Display all undefined symbols. MULDEF Display all multiply-defined symbols. UNREF Display all defined but not referenced symbols. SORT Sort symbol table in alphabetical order. DEFINE sn ex Define non existent symbol 'sn' with expression 'ex' REDEF sn ex Redefine existent symbol 'sn' with expression 'ex' PURGE sn[,sn] Delete one or more symbols from symbol table. WRSYM [fn] Write symbol table to disk. PROLINK supports several special symbols, that may be freely referenced in object modules. $MEMRY This variable will be supported by the Digital Research linker LINK. It must be declared PUBLIC in the 'main' module. PROLINK will insert the first free memory address at this word location. ?MEMRY Same as $MEMRY. ?BEG? Holds the base address of the linked output image. Must be declared EXTRN. Must be referenced as immediate word operand. ?END? Holds the ending address of the linked output image. Must be declared EXTRN. Must be referenced as immediate word operand. PROLINK supports a special kind of symbol, called a re-defineable symbol. Such a symbol my be defined more than once. Those symbols end with the special character '@'. The first definition of such a symbol maps the '@' character to the character 'A', the second to 'B', and so on. ///3ADVANCE PATCH [adr]=val[,val] 'adr' specifies where to begin patching the image. It is not optional on the first PATCH command of a session. PROLINK provides a feature that can be useful in disassembling REL modules. The $X option ignores unresolved symbols writing them to a symbol file. Such symbol refers to a seed value which starts with the value of the special symbol ?END?. The $X option writes undefined symbols with the content of the seed value. This value will then incremented by one. SEED exp Define own start of the seed value. RESOLVE sym Specify a symbol that is used to resolve all otherwise un- defined globals. SETLOC exp Change the value of the location counter. ///2ERRORS Error messages are selfexpalantory. The only critical error is the 'Internal Error' which never should occur. ///2DIFFERENCES PROLINK supports all items of the REL-80 format except the extension link type. ///1PUT Syntax: PUT CONSOLE {OUTPUT TO} FILE filespec {option} | CONSOLE PUT PRINTER {OUTPUT TO} FILE filespec {option} | PRINTER PUT CONSOLE {OUTPUT TO} CONSOLE PUT PRINTER {OUTPUT TO} PRINTER Explanation: PUT puts console or printer output to a file for the next command entered at the console, until the program terminates. Then console output reverts to the console. Printer output is directed to a file until the program terminates. Then printer output is put back to the printer. PUT with the SYSTEM option directs all subsequent console/printer output to the specified file. This option terminates when you enter the PUT CONSOLE or PUT PRINTER command. ///2Options [ {ECHO | NO ECHO} {FILTER | NO FILTER} | {SYSTEM} ] ECHO specifies that output is echoed to the console. This is the default option when you direct console output to a file. NO ECHO specifies that file output is not echoed to the console. NO ECHO is the default for the PUT PRINTER command. FILTER specifies filtering of control characters, which means that control characters are translated to printable characters. For example, an ESCape character is translated to ^[. NO FILTER means that PUT does not translate control characters. This is the default option. SYSTEM specifies that system output as well as program output is written to the file specified by filespec. Output is written to the file until a subsequent PUT CONSOLE command redirects console output back to the console. ///2Examples A>PUT CONSOLE OUTPUT TO FILE XOUT [ECHO] Directs console output to file XOUT with the output echoed to the console. A>PUT PRINTER OUTPUT TO FILE XOUT A>MYPROG Directs the printer output of program MYPROG to file XOUT. The output is not echoed to the printer. A>PUT PRINTER OUTPUT TO FILE XOUT2 [ECHO,SYSTEM] Directs all printer output to file XOUT2 as well as to the printer (with ECHO option), and the PUT is in effect until you enter a PUT PRINTER OUTPUT TO PRINTER command. A>PUT CONSOLE OUTPUT TO CONSOLE Directs console output back to the console. A>PUT PRINTER OUTPUT TO PRINTER Directs printer output back to the printer. ///1RELHEX Syntax: RELHEX infile {outfile} Explanation: RELHEX converts a REL-80 file format to INTEL HEX format. This conversion may be usefull building overlays with the MLOAD utility. type defaults to .REL defaults to .HEX If given without type, defaults to .HEX NOTE Only ASEG data are accepted, so never use CSEG, DSEG or COMMON as assembler pseudo opcode. ///1RENAME Syntax: RENAME {new-filespec=old-filespec} Explanation: RENAME lets you change the name of a file in the directory of a disk. To change several filenames in one command use the * or ? wildcards in the file specifi- cations. The RENAME command can be abbreviated REN. REN prompts you for input. ///2Examples A>RENAME NEWFILE.BAS=OLDFILE.BAS The file OLDFILE.BAS changes to NEWFILE.BAS on drive A. A>RENAME The system prompts for the filespecs: Enter New Name:X.PRN Enter Old Name:Y.PRN Y .PRN=X .PRN A> File X.PRN is renamed to Y.PRN on drive A. B>REN A:PRINTS.NEW = PRINCE.NEW The file PRINCE.NEW on drive A changes to PRINTS.NEW on drive A. A>RENAME S*.TEX=A*.TEX The above command renames all the files matching A*.TEX to files with filenames S*.TEX. A>REN B:NEWLIST=B:OLDLIST The file OLDLIST changes to NEWLIST on drive B. Since the second drive specifier, B: is implied by the first one, it is unnecessary in this example. The command line above has the same effect as the following: A>REN B:NEWLIST=OLDLIST or A>REN NEWLIST=B:OLDLIST ///1REQINST Format: REQINST {libfile /option} Explanation: REQINST is the installer for the REQUEST utility. Program without operands displays the statistic of file REQUEST.COM. With operands, a libfile is the file to be inserted with option /I or to be deleted with option /D. ///1REQUEST Format: REQUEST filename Explanation: REQUEST inserts a request for libraries into a REL file generated by DR's assembler RMAC. This is the same effect as inserting the pseudo instruction .REQUEST into MICROSOFT's M80 assembler. Requests may be deleted or inserted by REQINST. ///1RESDISK Format: RESDISK drive: Explanation: If drive: is between A: and P: this utility resets one single drive and displays the drives still logged. If drive: is ? it only displays the drives currently logged. ///1RESET Format: RESET {language} Explanation: The utility sets back the PCW screen to initial state as well as the keyboard. This implies: - Status line enabled - Big window 90x31 - Preferred language is US - Reset key mappings to initial state (Mostly) Language may be 0 up to 7 as defined in the PCW manual. It defaults to '0' -> US ///1REZ Format: REZ Explanation: REZ is an intelligent Re-assembler which may produce source code for 8080 mnemonics. It is derived from ZZSOURCE/RESOURCE. It works like DASM, so see description there. The only exceptions are: - REZ produces source code with .ASM extension - The 'H' option in the 'C' command is not implemented - The 'I' command is not implemented - The '#' command is not implemented, use Ctrl-C instead - Wildcards "*" are not allowed in 'R' and 'S' command - Symbol comments cannot be turned ON or OFF ///1RMAC Syntax: RMAC filespec {$Rd | $Sd | $Pd} Explanation: RMAC, a relocatable macro assembler, assembles .ASM files of into .REL files that you can link to create .COM files. ///2options RMAC options specify the destination of the output files. Replace d with the destination drive letter for the output files. Option d=output option R- drive for REL file (A-O, Z) S- drive for SYM file (A-O, X, P, Z) P- drive for PRN file (A-O, X, P, Z) L- drive for .LIB files called by the MACLIB statement (A-O, X, P, Z) A-O specifies drive A-O. X means output to the console. P means output to the printer. Z means zero output. ///2Example A>RMAC TEST $PX SB RB Assembles the file TEST.ASM from drive A, sends the listing file (TEST.PRN) to the console, puts the symbol file (TEST.SYM) on drive B and puts the relocatable object file (TEST.REL) on drive B. ///1RSXCOM Format: RSXCOM file{.ext} {[option]} Explanation: RSXCOM converts page relocatable files into regular .COM files. This will be done by deleting the header and the bit map at the end of the file. The following options are available: R Expects a page relocatable file with legal RSX header which will be checked for legal code. The default extension is .RSX P Expects any page relocatable file without checking any header. The default extension is .PRL S Expects any page relocatable file 0000H relative without checking any header. RSXCOM relocates code to be 0100H relative The default extension is .SPR The default option is 'R', expecting legal RSX ///1SAVE Syntax: SAVE Explanation: SAVE copies the contents of memory to a file. To use SAVE, first issue the SAVE command, then run your program which reads a file into memory. Your program exits to the SAVE utility which prompts you for a filespec to which it copies the contents of memory, and the beginning and ending address of the memory to be SAVEd. ///2Example A>SAVE Activates the SAVE utility. Now enter the name of the program which loads a file into memory. A>SID dump.com Next, execute the program. #g0 When the program exits, SAVE intercepts the return to the system and prompts the user for the filespec and the bounds of memory to be SAVEd. SAVE Ver 3.0 Enter file (type RETURN to exit):dump2.com If file DUMP2.COM exists already, the system asks: Delete dump2.com? Y Then the system asks for the bounds of memory to be saved: Beginning hex address: 100 Ending hex address: 400 The contents of memory from 100H (Hexadecimal) to 400H is copied to file DUMP2.COM. ///1SCROFF Syntax: SCROFF Simply turns off the JOYCE screen. Pressing any key turns screen on again. This utility works like a screen saver. ///1SDIR Format: SDIR {{drive:}filespec} Explanation: SDIR produces and displays a more detailed listing of the files on a disc than that produced by the 'DIR' command. Like DIR, SDIR may be invoked by itself or it may be followed by a CP/M ambiguous file specification such as A:KNIFE.* ///2Examples For example, to get a complete listing, type: SDIR (or SDIR A: or SDIR b: etc) and to get a listing of all files with the 'COM' extension, type SDIR *.COM (or SDIR B:*.COM etc) The listing produced on the screen shows the name of the file in full, with the total number of records (in decimal) along with the number of K (1024-byte units) the file occupies (in decimal). If the file is marked as read-only (for example, with the SET utility), then SDIR displays an 'R' by its name. If the file is marked as a system file, there is an 'S'. Both attributes may be held by the same file. ///1SET Syntax: SET [options] SET d: [options] SET filespec [options] Explanation: SET initiates password protection and time stamping of files. It also sets the file and drive attributes Read-Write, Read-Only, DIR and SYS. It lets you label a disk and password protect the label. To enable time stamping of files, you must first run INITDIR to format the disk directory. ///2Label Syntax: SET {d:} [NAME=labelname.typ] SET [PASSWORD=password] SET [PASSWORD= ///3Examples A>SET [NAME=DISK100] Labels the disk on the default drive as DISK100. A>SET [PASSWORD=SECRET] Assigns SECRET to the disk label. A>SET [PASSWORD= Nullifies the existing password. ///2Passwords SET [PROTECT=ON] SET [PROTECT=OFF] SET filespec [PASSWORD=password] SET filespec [PROTECT=READ] SET filespec [PROTECT=WRITE] SET filespec [PROTECT=DELETE] SET filespec [PROTECT=NONE] SET filespec [attribute-options] ///3Modes Password Protection Modes Mode Protection READ The password is required for reading, copying writing, deleting or renaming the file. WRITE The password is required for writing, deleting or renaming the file. You do not need a password to read the file. DELETE The password is only required for deleting or renaming the file. You do not need a password to read or modify the file. NONE No password exists for the file. If a password password exists, this modifier can be used to delete the password. ///2Attributes RO sets the file attribute to Read-Only. RW sets the file attribute to Read-Write. SYS sets the file attribute to SYS. DIR sets the file attribute to DIR. ARCHIVE=OFF means that the file has not been backed up (archived). ARCHIVE=ON means that the file has been backed up (archived). The Archive attribute can be turned on by SET or by PIP when copying a group of files with the PIP [A] option. SHOW and DIR display the Archive option. F1=ON|OFF turns on or off the user-definable file attribute F1. F2=ON|OFF turns on or off the user-definable file attribute F2. F3=ON|OFF turns on or off the user-definable file attribute F3. F4=ON|OFF turns on or off the user-definable file attribute F4. ///3Examples SET [PROTECT=ON] Turns on password protection for all the files on the disk. You must turn on password protection before you can assign passwords to files. SET [PROTECT=OFF] Disables password protection for the files on your disk. A>SET MYFILE.TEX [PASSWORD=MYFIL] MYFIL is the password assigned to file MYFILE.TEX. B>SET *.TEX [PASSWORD=SECRET, PROTECT=WRITE] Assigns the password SECRET to all the TEX files on drive B. Each TEX file is given a WRITE protect mode to prevent unauthorized editing. A>SET MYFILE.TEX [RO SYS] Sets MYFILE.TEX to Read-Only and SYStem. ///2Default A>SET [DEFAULT=dd] Instructs the system to use dd as a password if you do not enter a password for a password-protected file. ///2Time-Stamps Syntax: SET [CREATE=ON] SET [ACCESS=ON] SET [UPDATE=ON] Explanation: The above SET commands allow you to keep a record of the time and date of file creation and update, or of the last access and update of your files. ///3Options [CREATE=ON] turns on CREATE time stamps on the disk in the default or specified drive. To record the creation time of a file, the CREATE option must be turned on before the file is created. [ACCESS=ON] turns on ACCESS time stamps on the disk in the default or specified drive. ACCESS and CREATE options are mutually exclusive; only one can be in effect at a time. If you turn on the ACCESS time stamp on a disk that previously had CREATE time stamp, the CREATE time stamp is automatically turned off. [UPDATE=ON] turns on UPDATE time stamps on the disk in the default or specified drive. UPDATE time stamps record the time the file was last modified. ///3Examples A>SET [ACCESS=ON] A>SET [CREATE=ON,UPDATE=ON] ///2Drives Syntax: SET {d:} [RO] SET {d:} [RW] Example: A>SET B: [RO] Sets drive B to Read-Only. ///1SET24X80 Syntax: SET24X80 { ON | OFF } Explanation: Some application programs require a standard 24 x 80 screen. SET24X80 sets the screen size to 24 x 80 regardless of the actual screen size. SET24X80 ON sets 24 x 80 mode. SET24X80 OFF restores the screen to its full size. The full size depends on the country and whether the status line is enabled. If the paramater is omitted then ON is assumed. ///1SETDEF Syntax: SETDEF { d: {,d: {,d: {,d:}}}} {[ TEMPORARY = d: ] | [ ORDER = (typ {,typ}) ]} SETDEF [DISPLAY | NO DISPLAY] SETDEF [PAGE | NOPAGE] Explanation: SETDEF allows the user to display or define up to four drives for the program search order, the drive for temporary files, and the file type search order. The SETDEF definitions affect only the loading of programs and/or execution of SUBMIT (SUB) files. SETDEF turns on/off the system Display and Console Page modes. When on, the system displays the location and name of programs loaded or SUBmit files executed, and stops after displaying one full console screen of information. ///2Examples A>SETDEF Displays current SETDEF parameters. A>SETDEF [TEMPORARY=M:] Sets disk drive M as the drive to be used for temporary files. A>SETDEF B:,* Tells the system to search for a program on drive B then, if not found, search for it on the default drive. A>SETDEF [ORDER=(SUB,COM)] Instructs the system to search for a SUB file to execute. If no SUB file is found, search for a COM file. A>SETDEF [DISPLAY] Turns on the system display mode. Henceforth, the system displays the name and location of programs loaded or submit files executed. A>SETDEF [NO DISPLAY] Turns off the system Display mode. ///1SETKEYS Syntax: SETKEYS filespec Explanation: SETKEYS reconfigures the keyboard from information contained in the command file. The command file contains the keyboard configuration data and has the following syntax: Each line contains a key definition or an expansion token definition. A key definition associates a key in a given shift state, or states, with a character or token value. An expansion token definition associates an expansion token with a string. When parsing the command file any line which contains an error is displayed on the console with an error message and ignored, parsing continues with the next line. ///2Key A key definition consists of a key number optionally followed by a shift state or states, followed by the required character in quotes. Any other characters on the same line are treated as comment. The shift states are S for shift, A for alt(control), E for extra and N or nothing to indicate no shift. More than one shift state may be given in which case the definition will apply to all the shift states given. The character associated with the key is either the character itself or an escape sequence. Characters in the range #20 ... #FF other than ^ or " stand for themselves. ^ introduces an escape sequence. Control codes must be represented by escape sequences. ^ followed by a character in the range #40 ... #FF masks the character with #1F thus ^A gives control-A. ^^ gives the character ^. ^" gives the character ". ^ followed by a number enclosed in single quotes gives a character of that value. ^'#D' gives carriage return. ^ followed by the name of a control code enclosed by single quotes gives that control code, ^'ESC' gives the ESC code. The names of the control characters are NUL, SOH, STX, EXT, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US, SP, DEL, XON, XOFF. Examples: 71 "z" lower case z 67 S "Q" upper case q 15 "^H" cursor left becomes ctrl h 08 N S A E SA "^'ESC'" exit is always escape ///2Token An expansion token definition consists of an 'E' followed by the token number followed by the expansion string in quotes, followed by a comment if required. Token numbers are in the range #80 ... #9E. Any key can be set to one of these values in which case it will return the expansion string. Examples: E #80 "DIR B:[FULL]^M" E #87 "USER 2^M" In an expansion token definition bit 7 of the token value is ignored. ///1SETLST Syntax: SETLST filespec Explanation: SETLST sends a string of characters to the LST: device in order to initialize the printer. A filespec is required which contains the information to send to the printer. Note that this file is not sent directly to the printer but is interpreted as follows: The command file contains the information to send to the LST: device. All information is represented by characters in the range #20 ... #FF. To send control codes to the printer escape sequences must be used. ///2Escape Characters in the range #20 ... #FF other than ^ stand for themselves. ^ introduces an escape sequence. ^ followed by a character in the range #40 ... #FF masks the character with #1F thus ^A gives control-A. ^^ gives the character ^. ^" gives the character ". ^ followed by a number enclosed in single quotes gives a character of that value. ^'#D' gives carriage return. ^ followed by the name of a control code enclosed by single quotes gives that control code, ^'ESC' gives the ESC code. The names of the control characters are NUL, SOH, STX, EXT, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US, SP, DEL, XON, XOFF. Any illegal escape sequence will produce an error message and the sequence will be ignored. Examples: ^'ESC'0 sets line spacing to 1/8" on the built in or an EPSON type printer ///1SETSIO Syntax: SETSIO { BAUD | BITS | STOP | PARITY | XON | HANDSHAKE } Explanation: The SIO serial interface is initialized as required. For Baud rates and the XON options the CP/M Plus character I/O table entry will be changed. If an option is given more than once, or if both Baud rate and TX Baud rate etc are given then the latter option in the list is used. Any illegal option will produce an error message and the option will be ignored. After the SIO has been initialized the current state of the SIO settings is displayed in the same form as the command as follows: 9600 Bits 8 Stop 1 Parity none Xon off Handshake on Thus the command SETSIO may be used to examine the current settings. ///2Options The options can be any, or all of the following in any order: Baud rate TX 300 sets transmitter baud rate to 300 baud RX 134.5 sets receiver baud rate to 134.5 baud 9600 sets both baud rates to 9600 baud The baud rate must be one of 50,75,110,134.5,150,300, 600,1200,1800,2400,3600,4800,7200,9600,19200 Number of data bits BITS 7 7 Data Bits The number of data bits must be one of 5,6,7 or 8 Number of stop bits STOP 1 1 Stop bit The number of stop bits must be one of 1, 1.5 or 2 Parity PARITY EVEN sets even parity PARITY ODD sets odd parity PARITY NONE sets no parity XON protocol XON ON enables XON protocol XON OFF disables XON protocol Control signal handshake HANDSHAKE ON enables handshake HANDSHAKE OFF disables handshake For the words TX, RX, STOP, BITS, PARITY, XON and HANDSHAKE only the initial letter is required, the remainder of the word is ignored Examples: SETSIO PARITY EVEN SETSIO SETSIO 9600, P NONE , HANDSHAKE=ON , STOP 2 ,BITS 5 ///1SHOW Syntax: SHOW {d:}{[SPACE |LABEL |USERS |DIR |DRIVE]} Explanation: The SHOW command displays the following disk drive information: Access mode and the amount of free disk space Disk label Current user number and Number of files for each user number on the disk Number of free directory entries for the disk Drive characteristics ///2Examples A>SHOW A>SHOW [SPACE] Instructs the system to display access mode and amount of space left on logged-in drives. A>SHOW B: Show access mode for drive B and amount of space left on drive B. A>SHOW B:[LABEL] Displays label information for drive B. A>SHOW [USERS] Displays the current user number and all the users on drive A and the corresponding number of files assigned to them. A>SHOW B:[DIR] Displays the number of free directory entries on drive B. A>SHOW [DRIVE] Displays the drive characteristics of drive A. ///1SID Syntax: SID {pgm-filespec} {,sym-filespec} SID {pgm-filespec} {*} SID ? Explanation: The SID symbolic debugger allows you to monitor and test programs developed for the 8080 microprocessor. SID supports real-time breakpoints, fully monitored execution, symbolic disassembly, assembly, and memory display and fill functions. SID can dynamically load SID utility programs to provide traceback and histogram facilities. Default extensions are .COM for pgm-file and .SYM for sym-file. Typing '*' instead of sym-filespec enables same name for sym-file as for pgm- file. Typing '?' as argument simply prints a help text. ///2Commands Command Meaning ? (Status) Print commands available and system addresses such as BIOS and BDOS entry A{s} (Assemble) Enter assembly language statements s is the start address -A (Assemble) Disable further L and A command Bs or B"s" (Find) Search for hex or string from address 0000 up to highest address. Hex and string may be mixed in either way Cs{b{,d}} (Call) Call to memory location from SID s is the called address b is the value of the BC register pair d is the value of the DE register pair D{W}{s}{,f} (Display) Display memory in hex and ASCII W is a 16-bit word format s is the start address f is the finish address -D (Display) Disable ASCII display Epgm-filespec (Load) Load program and symbol table for execution {,sym-filespec} E*sym-filespec (Load) Load a symbol table file Fs,f,d (Fill) Fill memory with constant value s is the start address f is the finish address d is an eight-bit data item G{p}{,a{,b}} (Go) Begin Execution p is a start address a is a temporary breakpoint -G (Go) Don't display pass points H (Hex) Displays all symbols with addresses in Hex H.a Displays hex, decimal, and ASCII values of a where a is a symbolic expression Ha,b Computes hex sum and difference of a and b where a and b are symbolic expressions Icommand tail (Input) Input CCP command line L{s}{,f} (List) List 8080 mnemonic instructions s is the start address f is the finish address -L (List) List without symbolic feature Ms,h,d (Move) Move Memory Block s is the start address h is the high address of the block d is the destination start address O{b} (Bank) Select memory bank -O (Bank) Select TPA bank P{p{,c}} (Pass) Pass point set, reset, and display p is a permanent breakpoint address c is initial value of pass counter -P{p} (Pass) Clear pass point Q (Quit) Quit the debugger Rfilespec{,d} (Read) Read Code/Symbols d is an offset to each address S{W}s (Set) Set Memory Values s is address where value is sent W is 16 bit word T{n{,c}} (Trace) Trace Program Execution n is the number of program steps c is the utility entry address. T{W}{n{,c}} (Trace) Trace Without Call W instructs SID not to trace subroutines n is the number of program steps c is the utility entry address -T{W}{n{,c}} (Trace) Trace without symbolic feature U{W}{n{,c}} (Untrace) Monitor Execution without Trace n is the number of program steps c is the utility entry address W instructs SID not to trace subroutines -U{W}{n{,c}} (Untrace) Disable pass point display V (Value) Display the value of the next available location in memory (NEXT), the next location after the largest file read in (MSZE), the current value of the Program counter (PC), and the address of the end of available memory (END) Wfilespec,s,f (Write) Write the contents of a contiguous block of memory to filespec. f is finish address X{f}{r} (Examine) Examine/alter CPU state. f is flag bit C,Z,M,E or I. r is register A,B,D,H,S or P. ///2Examples A>SID CP/M Plus loads SID from drive A into memory. SID displays the # prompt when it is ready to accept commands. A>B:SID SAMPLE.HEX CP/M Plus loads SID and the program file SAMPLE.HEX into memory from drive B. ///2Utilities SID utilities, HIST.UTL and TRACE.UTL are special programs that operate with SID to provide additional debugging facilities. The mechanisms for system initiali- zation, data collection, and data display are described in the CP/M SID User's Guide. The HIST utility creates a histogram (bar graph) showing the relative frequency of execution of code within selected program segments of the test program. The HIST utility allows you to monitor those sections of code that execute most frequently. The TRACE utility obtains a backtrace of the instructions that led to a particular breakpoint address in a program under test. You can collect the addresses of up to 256 instructions between pass points in U or T modes. ///1SM Syntax : SM {command} {,command} Explanation: SM invokes the SLR macro assembler. With no command an percent (%) prompts for it ///2COMMANDS The command_line may be: file{.drive} {/option} The 'drive' is used to modify the default drive selection. It is from one of three letters (@-P, where @ is the default drive) defined as follows: First letter Drive on which file.MAC is located Second letter Selects drive to receive output file. To disable binary file generation, use letter Z. If this letter is missing, output will go to the default drive. Third letter Selects the drive or device on which to place the listing output. To disable list file generation, use letter Z. To send the list file to the console, use X. For output to the printer, use Y.If this letter is missing, output will go to the default drive. ///2OPTIONS The command line may my closed by "/" followed by one or more legal options: /A Absolute mode. Output file is .COM /C Enable output to the console /D Don't do LOWER to UPPER case conversion /E Execute LOWER to UPPER case conversion /F Selects full listing (2 passes through source) /H Generate .HEX as output /I Special indirect command file /K Kill all console I/O /L List output partial (1 pass through source) /M Generate MICROSOFT .REL file as output /N New option byte /P Enable output to the list device /Q Quit assembler /R Generate standard SLR .REL file as output /S Generate alphabetized symbol table /T Input time and date string /U Declares undefined symbols as external /X Generate cross-reference /Y Disable cross-reference /6 Selects MICROSOFT-REL output, 6 significant /7 Selects MICROSOFT-REL output, 7 significant If the option /I is specified, it can be the only option. The option /T specifies time and date string for use in generating listings. Any following characters (up to 16) up to the next comma or carriage return are used as the time and date string. ///2EXAMPLES SM B:TEST The source program TEST.MAC on drive B: will be assem- bled producing TEST.REL on drive B: SM MUL/F,DUMP.ABZ/SXRP Assemble MUL.MAC on current drive, create MUL.COM as the binary output, and creates MUL.LST as the second pass full listing output. Next assemble DUMP.MAC, creating an SLR-REL file on drive B:, and generating a symbol table and cross-reference on the printer ///1SPOOL SPOOL is a utility which automatically spools all output to the LST: device (Printer) using the fast silicon ram memory disk M:. Using the spooler, the computer is available for additional processing whilst the printing continues in the background. In addition, many types of printing are actually produced faster with the SPOOL utility as the computer no longer has to wait for the printer to be ready during processing. The SPOOL utility is very easy to activate, simply type SPOOL and spooling automatically starts. This can be done as part of the initial procedures when the computer is first switched on. ///2Messages SPOOL: ? Requires CP/M 3.1 The SPOOL utility can only be used in a CP/M Plus environment. It cannot be used with CP/M 2.2 nor MP/M II. SPOOL installed - output to LST: device now spooled The normal message to confirm that the SPOOL utility has been successfully completed << Cannot install SPOOL >> The SPOOL utility could not be installed SPOOL: The SPOOL utility puts out this prompt when it starts. SPOOL: ERROR - SPOOL already installed An attempt is made to load the spooler a second time. SPOOL: *** Cannot load SPOOL - Insufficient common memory The SPOOL utility requires to be loaded into 'common' memory. The most likely cause of this error is the presence of other RSXs consuming the common memory space available. SPOOL: ERROR - No M: RAM DISK MEMORY found The SPOOL utility requires the logical drive name M: to be assigned to silicon ram memory. SPOOL was unable to select this disc drive or the M: drive failed to be validated as a silicon ram memory drive. SPOOL: Spooler file already exists - Delete it first (Y/N) ? The SPOOL utility uses a file of name M:spooler.$$$ and this file already exists perhaps because the SPOOL utility has been previously used. SPOOL: ERROR - Cannot delete old spooler file The SPOOL utility could not delete the file M:spooler.$$$ either because it is a read only file or because the M: drive was read only, or because the file was password protected. SPOOL: ERROR - Cannot create spooler file The SPOOL utility could not create the file M:spooler.$$$ because the M: drive directory is full. SPOOL: ERROR - Error accessing spooler file The file M:spooler.$$$ could not be accessed because of a disk i/o error. SPOOL: ERROR - Insufficient space on M: The drive M: has less than 16k free space on drive M:. SPOOL: LST: Spooler implemented in M: Specifies the the spooler has been implemented to spool all output to the logical LST: device using disk space on drive M: ///2Function The SPOOL utility is an RSX which is loaded at the top of the Transient Program Area (TPA) and the remove flag is not set forcing the RSX to remain in place. The RSX requires 8 pages of memory which includes a one page buffer area. The SPOOL RSX spools LST: output onto the file M:spooler.$$$ and removes data from this file whenever a console input request is made and no console character is ready and when the LST: physical device (or devices) are ready. ///1SQ Format: SQ list of operational { and directed I/O } parameters The file squeezer, SQ , compresses files into a more compact form. This provides: 1. Faster transmission by modem. 2. Fewer diskettes to distribute a program package. 3. Fewer diskettes for archival storage. Any file can be squeezed, but program source files and text files benefit the most, typically shrinking by 35%. Files containing only a limited character set, such as dictionary files, may shrink as much as 48%. Squeezed files look like gibbersh and must be unsqueezed before they can be used. The unsqueezer, USQ, expands squeezed files into exact duplicates of the original or provides a quick, unsqueezed display of the tops of (or all of) squeezed files. Unsqueezing requires only a single pass. Both SQ and USQ accept batches of work specified by lists of file names (with drives if needed) and miscellaneous options. They accept these parameters in any of three ways: 1. On the CP/M command line. 2. From the console keyboard. 3. From a file. ///2PARAMETERS If there are no parameters on the command line, SQ and USQ will prompt with an asterisk and accept parameters from the console. Each parameter must be followed by RETURN and will be processed immediately. An empty command (just RETURN) will cause the program to exit back to CP/M. Directed I/O parameters: file send most console output to file +file send most console output to file and console Only one input and one output redirection can apply to each program. Operational parameters: SQ operational parameters are a list of the following types: drive: set the current destination drive filename file to be squeezed drive:filename " " " " - Toggle debug mode (dumps tables) New, squeezed files are created with names derived from the original name but with the second letter of the file type (extention) changed to Q. When there is no type, QQQ is used. The original name is saved in the squeezed file. When a file to be written already exists, it is quietly overwritten. USQ operational parameters are a list of the following types: drive: set the current destination drive filename file to be squeezed drive:filename " " " " -count Preview (display on the console) the first "count" lines of each file, where "count" is a number from 1 to 65535. If the -count option IS NOT in effect then USQ creates unsqueezed versions of the listed files on the destination drive, which defaults to the current logged drive. The -count option is for previewing squeezed files. It allows to skim through a group of squeezed files, peeking at the first "count" lines in each. The > or + output redirection option could be used to capture this information in a file. ///2EXAMPLES In the simplest case either SQ or USQ can simply be given one or more file names (with or without drive names): SQ XYZ.ASM SQ THISFILE.DOC B:THATFILE.DOC will create squeezed files XYZ.AQM, THISFILE.DQC and THATFILE.DQC, all on the current drive. The original files are not disturbed. Note that the names of the squeezed files are generated by rules - you don't specify them. USQ XYZ.AQM will create file XYZ.ASM on the current drive, overwriting the original. The original name is recreated from information stored in the squeezed version. The squeezed version is not disturbed. A>SQ X.AQM B: Y.AQM Z.AQM C: D:S.AQM will create X.AQM on the current drive, A, Y.AQM and Z.AQM on the B drive and S.AQM on the C drive. Note that the first three originals are on drive A and the last one is on drive D. Remember that each parameter is processed in order, so change the destination drive before specifying files to be created on that drive. USQ -10 X.BQS B:Y.AQM will not take the time to create unsqueezed files. Instead it will unsqueeze the first 10 lines of each file and display them on your console. The display from each file consists of the file names, the data and a formfeed (FF). USQ - B:XYZ.MQC will unsqueeze and display the first 65,535 lines of any files listed. That's the biggest number available, and is intended to display the whole file. SQ OUT will send the progress comments to the file "out", which can be TYPEd later. The routine display of the program name and version, etc., will still go to the console. USQ {d{u}:}outfile} Explanation: The stream editor edits a text file on the base of a command format generated by the -S option of the DFC utility. DFC generates the following formats: n1,n2(D) Delete lines n1 to n2 in infile n1,n2(C)m1,m2 exChange lines n1 to n2 in infile against lines m1 to m2 defined in cmdfile n1(A)m1,m2 Append m1 to m2 lines from cmdfile after line n1 in infile If n1=n2 or m1=m2, only one number will be generated If unambiguous, either file may hold wildcards. Infile and outfile must be different or on different drives. The option -V lets SSED be verbose. ///1SUBMIT Syntax: SUBMIT {filespec} {argument} ... {argument} Explanation: The SUBMIT command lets you execute a group (batch) of commands from a SUBmit file (a file with filetype of SUB). ///2Subfile The SUB file can contain the following types of lines: Any valid CP/M Plus command Any valid CP/M Plus command with SUBMIT parameters ($0-$9) Any data input line Any program input line with parameters ($0 to $9) The command line cannot exceed 135 characters. The following lines illustrate the variety of lines which may be entered in a SUB file: DIR DIR *.BAK MAC $1 $$$4 PIP LST:=$1.PRN[T$2 $3 $5] DIR *.ASM PIP SUBMIT A>SUBMIT SUBA A>SUBMIT AA ZZ SZ A>SUBMIT B:START DIR E: ///2PROFILE.SUB Everytime you power up or reset your computer, CP/M Plus looks for a special SUBmit file named PROFILE.SUB to execute. If it does not exist, CP/M Plus resumes normal operation. If the PROFILE.SUB file exists, the system executes the commands in the file. This file is convenient to use if you regularly execute a set of commands before you do your regular session on the computer. ///1SUPERZAP Format: SUPERZAP Explanation: SUPERZAP is a full screen interactive disk update utility. The program is menu driven, and little additional documentation is required. The following help notes consist of a functional overview, plus notes on features not documented in the menus. One or more disks may be used - SUPERZAP determines if a selected disk is defined in the BIOS before attempting to access it. ///2COMMANDS The SUPERZAP command format may enter any operational mode directly - SUPERZAP enters SUPERZAP with a *.* directory list. SUPERZAP d: as above with d:*.* directory list. SUPERZAP [d:]afn as above with d:afn directory list. SUPERZAP [d:]ufn enters SUPERZAP in file relative mode, using the specified file. SUPERZAP [d:]DSK: enters SUPERZAP in Track Sector addressing mode on the specified drive. SUPERZAP enables disk sector editing in HEX or ASCII, using File Relative or Track/Sector addressing. In File Relative mode a sorted directory listing is used to select the file. In both modes forward and backward browse is provided, in addition to random record selection. The displayed sector may be copied to a scratchpad buffer, or exchanged with the scratchpad. The directory list may be full (*.*) or selective, eg *.ASM and the selection may be changed at any time. A file TYPE facility gives a paged, formatted display of any file. Control characters are displayed as "." except for TAB and Carriage return/Line feed which are processed normally. COM files are not formatted. ///2MODES DIRECTORY LIST MODE. In directory list mode the cursor is positioned on the first filename displayed. The cursor can be moved LEFT, RIGHT, UP or DOWN using Control keys. A file is selected by typing a command character against the required file name - "E" for file relative editting, or "T" for the TYPE function. Up to 32 file names are listed. If there are more files, the directory list may be paged forward and back. Other drives may be selected or the current disk changed - NOTE - if the disk in the current drive is changed, the "change disk" function should be used to select the same drive again. This provides a new directory list, and avoids CP/M making the disk Read Only. Track/Sector addressing is selected from the directory list display. The directory list selection may be changed - the default is *.* unless set by the SUPERZAP command. FILE RELATIVE MODE. In this mode the selected file is displayed in HEX and ASCII format with record number and file offset displayed. For .COM files the address when loaded at 0100H is diplayed. The record displayed may be selected by browsing forward and back, locating the first or last record, or by setting a record number (in HEX). When setting a record number, Hex digits are entered in "calculator style" - new digits are entered on the right while the number moves left. Backspace deletes last digit entered, and Escape restores the original number. These features are common to all number entries in SUPERZAP. The selected record is read when RETURN is pressed. If it is not found, the previous record number will be restored. The displayed record may be changed by typing "C". The cursor is positioned on the first hex digit, and is moved using the same control keys as are used in the directory list mode. Any valid hex digit may be typed to alter the record. The TAB key moves the cursor to it corrosponding location in the ASCII display, allowing character strings to be easily changed. Another TAB returns the cursor to the HEX display area. Two control codes are available to stop editing the record - one saves the changes and rewrites the record to disk, the other restores the record to its original contents. Return to directory list mode is made by typing "L". TYPE FILE Files are TYPEd with up to 72 characters per line, 18 lines per page. Except for .COM files, Carriage return/ Line feed codes are honoured, and Tabs are expanded. All other control characters are displayed as "." to prevent unwanted terminal control functions. Forward and backward paging operations are provided, including return to top of file. Following paging, the highest page displayed can be restored. DIRECTORY LIST SELECTION. The ambiguous file name used for the directory list may be edited by typing "M" in the directory list mode display. The existing file NAME and TYPE may be overwritten or edited using INSERT and DELETE control keys. Only those characters defined as legal in the CPM documentation are permitted. If "*" is typed at any point in the NAME or TYPE, the remainder of the field will be filled with "?". If a SPACE is typed the remainder of the field will be blanked out. Period also has this effect if used in the NAME field - an ambiguous file name may thus be entered in the normal fashion. The TAB key switches between editing the NAME and TYPE. The ESCAPE key restores the original selection, RETURN produces a new directory list. NOTE - insert and delete affect only the field being editted, - characters do not wrap between name and type. TRACK/SECTOR ADDRESSING. This mode is entered by typing "S" in directory list mode. The facilities provided here are similar to File Relative mode, but sectors are selected by setting (or browsing back and forward) track and sector numbers. The allocation block number is also displayed and may be set. When a block number is set, the first sector of that block is displayed. The record diplayed may be altered in the same manner as File Relative mode. The scratchpad facility is also available in this mode. Note that sectors saved in one mode are available for exchange in the other mode. ///1SYM Format: SYM file.PRN Explanation: SYM extracts the symbol table from a .PRN file produced by the M80 assembler into a file 'file.SYM'. This file may be used by SID or ZSID. NOTE: Producing a common .SYM file on multiple modules linked by the L80 linker will be done by the /Y switch. ///1SYMDASM Format: SYMDASM file{.ext} {/options} Explanation: SYMDASM converts any symbol table file - such as generated by LINK - into a sorted form readable by DASM - the intelligent Disassembler - or into a form of a sorted symbol table. The default extension of such symbol file is usually .SYM, the new extension will be .SSY - Sorted SYm If any character found in source file not acceptable for DASM it may be exchanged against a legal one. But take care: Program breaks if same multiple symbols found 'Options' may be /M Request a .MAP file as created by the PD Linker ZLINK - ext should not be defined this time. /F Request alternative format. /V Be verbose sorting symbols NOTE that ext overrides the option /M. Note also break on unknown ext ///2FORMATS The following symbol file: 0101 BB 0100 DATA will be converted to DASM format: 0101 BB 0100 DATA or special symbol table format (option /F): DATA: ;@ 0100 BB: ;@ 0101 ///1TAIL Syntax: TAIL [-n] {du:}files or TAIL +n {du:}files Explanation: TAIL executes the UNIX-like program tail - display last few lines of specified files TAIL displays the last n lines of each filename on the console. The default value of n is 10 lines. If n is prefixed by the plus sign, TAIL starts displaying at line n. If more than one file is specified, the start of each file looks like: ==>filename<== ///1TP Syntax : TP {I} This command starts the advanced TURBO pascal compiler. It also loads the TURBO error messages automatically. Option I allows definition of a terminal lead in and lead out sequence and the definition of screen dimensions. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Due to direct machine access, this TURBO pascal compiler will only run on !! !! a PCW8xxx CP/M 3.x machine !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Advanced features: FUNCTION EXIST(F:FILE):BOOLEAN; Results in TRUE if file does exist, FALSE otherwise. PROCEDURE APPEND(F:TEXT); Allows writing to an existing text file. FUNCTION WHEREX:BYTE; FUNCTION WHEREY:BYTE; Return current cursor position. FUNCTION GETMAXX:BYTE; FUNCTION GETMAXY:BYTE; Return current screen size. PROCEDURE WINDOW(LEFT,UPPER,RIGHT,LOWER:BYTE); Set up a window with given dimensions. FUNCTION FINDFIRST(MASK:STRING):STRING; Find frst entry of file with given mask. FUNCTION FINDNEXT:STRING; Find next entry of file defined by above MASK. PROCEDURE INC(VAL:INTEGER {,OFFSET:INTEGER}); PROCEDURE DEC(VAL:INTEGER {,OFFSET:INTEGER}); Increments or decrements an integer by offset or 1. **** For further information see the TURBO manual **** ///1TRUNC80 Format: TRUNC80 filespec1 filespec2 Explanation: This utility truncates lines which are longer than 80 characters. The filespec1 defines the source file, which will be truncated. The filespec2 defines the destination file with truncated lines. Note that filespec1 and filespec2 must be different. If the file names are equal, the files must reside on different drives or must be of different extensions. Tabs will be interpreted. The utility assumes each 8th column a tab setting. ///1TYPE Syntax: TYPE {filespec {[ PAGE | NOPAGE ]}} Explanation: The TYPE command displays the contents of an ASCII character file on your screen. [PAGE] Causes the console listing to be displayed in paged mode; i.e., stop automatically after listing n lines of text, where n normally defaults to 24 lines per page. [NOPAGE] Turns off Console Page Mode and continuously displays a typed file on the screen. ///2Examples A>TYPE MYPROG.PLI Displays the contents of the file MYPROG.PLI on your screen. A>TYPE B:THISFILE [PAGE] Displays the contents of the file THISFILE from drive B on your screen twenty four lines at a time. ///1TYPELZ Format: TYPELZ [d[u]:] [] [/o] Explanation: TYPELZ is the sqeezed/crunched file print utility. If two filenames are specified, it will be assumed that the first is a Library file, in which case the suffix .LBR will be added if it wasn't specified explicitly. Drive/user, drive only, or neither may precede the first filename. The current user# and the currently logged (default) drive will be used when either is not specified. ///2SWITCHES If '/N' is added to the command line, the file will be typed without stopping after every screenful of text. Otherwise the typing will stop after each screenful (default 23 lines for one line "overlap" on a 24 line screen). When stopped, the prompt '[more]' will be displayed. If "L", "l", or the space bar is hit, the screen will be advanced by a single line; any other character will cause a full screen advance. If '/L' is added to the command line, and the WHEEL byte is non-zero, the file will be output to the LST: device (printer.) Page ejects will be performed every 60 lines, and tabs will be expanded to the appropriate number of spaces. ///1U3 Format: U3 [d:]afn.aft [user area] U3 - CP/M PLUS UTILITY FOR RECOVERING ERASED FILES AND FOR CHANGING THE USER AREA OF A FILE. If no user area is specified U3 recoverers all erased files on drive d: (or the default if d: is not specified) matching afn.aft and places them is the current user area. If a user area is specified U3 moves all files in the current user area on drive d: (or the default if d: is not specified) matching afn.aft to the specified user area. ///1UF Format: UF [d:] [d:] Explanation: The fast file unsqueezer which expands squeezed files into exact the original form of the file; much faster than USQ. Optional drive specs are source and destination respectively. ///1UNARC Format: UNARC [d:]arcfile[.typ] [d:][afn] [N|P|C] Explanation: UNARC is the CP/M Archive File Extractor normally used on MS-DOS. Examples: B>UNARC A:SAVE.ARK *.* ; List all files in CP/M archive SAVE on drive A B>UNARC A:SAVE.ARC *.* ; List all files in MS-DOS archive SAVE on drive A A>UNARC SAVE ; Same as either of above A>UNARC SAVE *.* N ; Same as above (no screen pauses) A>UNARC SAVE *.DOC ; List just .DOC files A>UNARC SAVE READ.ME ; Typeout the file READ.ME A>UNARC SAVE READ.ME N ; Typeout the file READ.ME (no screen pauses) A>UNARC SAVE A: ; Extract all files to drive A A>UNARC SAVE B:*.DOC ; Extract .DOC files to drive B A>UNARC SAVE C:READ.ME ; Extract file READ.ME to drive C A>UNARC SAVE PRN.DAT P ; Print the file PRN.DAT (no formatting) A>UNARC SAVE *.* C ; Check validity of all files in archive ///1UNCR Format: UNCR {du:}filename {du:} { /Q | /O | /C} Explanation: UNCR is a text un-cruncher which is the counterpart of CRUNCH Both "du:" are of form DU:, UD:, D:, or U:. The second "du:" is the destination Letter options are preceded by a space/slash. Pick 1 or less. Q means Quiet, C Confirm and O Overwrite without prompt mode toggle Everything is optional except filename. ///1UNCRLZH Format: UNCRLZH {du:} {du:} { / } UNCRLZH is a text un-cruncher which is the counterpart of CRLZH is up to 3 letters immediately following a " /". "Q" = Quiet mode on "I","T" = Inspect (Tag) mode on "E" = Erase existing files "S" = Include System files Option letters toggle (reverse) the corresponding default setup. Both "du:" are of form DU:, UD:, D:, or U:. Second parameter is destination. Everything is optional except filename. ///1UNERASE Syntax: UNERASE filespec Explanation: The UNERASE is exactly the counterpart to the ERASE or DELETE command. This command is valid only IMMEDIATELY after erasing file(s). Otherwise the file may not be recovered. ///1UNZIP Format: UNZIP {d:}zipfile {d:}{afn.typ} Explanation: UNZIP is a program, which unzips files from an MS-DOS archive file. The extension of the zipfile defaults to .ZIP. If a destination is given, files are extracted. If not, files are checked and listed. ///1USER Syntax: USER {number} Explanation: The USER command sets the current user number. The disk directory can be divided into distinct groups according to a "User Number." User numbers range from 0 through 15. ///2Examples A>USER Enter User#:5 5A> The current user number is now 5 on drive A. A>USER 3 3A> This command changes the current User Number to 3. ///1USQ Format: USQ list of operational { and directed I/O } parameters Explanation: The file unsqueezer which expands squeezed files into exact the original form of the file. For detailed information see topic SQ. ///1USQC Format: USQC afn {afn .. afn } {drive:} {/N} Explanation: The simple file unsqueezer. Existing files will be overwritten after confir- mation only. Squeezed files will be deleted after unsqueezing by default. Deletion may be turned off by selecting option "/N" ///1UU Format: UU -option infile {outfile} {number mode} Explanation: CP/M-80 implementation of UNIX UUENCODE and UUDECODE UUENCODE converts binary to ASCII UUDECODE converts ASCII to binary With: UU -E infile {outfile} {number mode} UU -D infile {outfile} The UUxxCODE ASCII file extensions default to .UUE Wildcards or no source file name is only allowed if option -D is requested ///1WADE WADE is an interactive symbolic Z80 debugger with full assembly and disassembly using standard ZILOG mnemonics. Syntax: WADE { filename { symbol-filename }} ///2COMMANDS A {addr} Assemble B Display Breakpoints B adr {adr..} Set Breakpoints BI mexpr ;adr {adr..} Set Conditional Breakpoints BX Clear all Breakpoints BX adr {adr..} Clear specified Breakpoints BXI Clear Break Condition C {N}{J} {count} Trace over calls {Nolist}{Jumps} C {N}{J} W mexpr ..While C {N}{J} U mexpr ..Until D {from {to}} Dump memory E mexpr ;command Execute command conditionally F {command line} Specify Filename & command line G {to} {; breakadr} Go {with temp breakpoint} H Display Low and High addr of file H expr {expr..} Display result of expression(s) I {port} Input from port J file {params} Jump to macro file K Kill macro file L {from {to}} List disassembled code M begin end dest Move memory N Name (Symbol) list N expr symname ... Define Names NF filename Define Symbol File Name NS num Reserve Space for symbols NX Delete all Names NX symname ... Delete specified Names NR {offset} Read Symbol File NW Write Symbol File O {byte {port}} Output a byte to port P Display protect condition P mexpr Define protect condition PX Delete protect condition Q {J} begin end str Query {justified} for bytes R {offset} Read a File S {addr} Substitute memory S addr bytestring Substitute immediate T {N}{J} {count} Trace {Nolist} {Jumps only} T {N}{J} W mexpr ..While T {N}{J} U mexpr ..Until U User input trap V begin end begin2 Verify (compare) memory W start end {offset} Write a file to disk X Examine CPU state X' Display alternate Registers X regname Display & Change Register X regname expr Change Register Y Display Y-Variables Y n Display & Change Y-Variable n Y n expr Change Y-Variable n Z begin end bytestr Zap (fill) memory with a string ///2EXIT To exit WADE, issue a G command with the parameter 0. Command: g0 ///2PARAMETERS ///3EXPRESSIONS All numbers in commands and assembly lines may be an expression, except for "X regname", where a register name, not a register designation (Rx) must be used. An expression has the general form factor { operator factor ...} where operator is one of the following: + addition - subtraction * multiplication / integer division % remainder of integer division (modulus) & bitwise AND ! bitwise OR | bitwise OR (alternate representation) # bitwise XOR ^ bitwise XOR (alternate representation) << circular 16-bit left shift >> circular 16-bit right shift < less than <= less than or equal to > greater than >= greater than or equal to = equal <> not equal && boolean AND || boolean OR !! boolean OR (alternate representation) := assignment (word) == assignment (byte) where the factor which is assigned to may be an unsigned register or variable specification, or an address value. The result of this operator is the value on the right- hand side of the assignment operator, which is at the same time assigned to the register, variable or address specified on the left-hand side. Size adjustment is automatic for variables and registers. If an address is used as the destination, a word is stored. To store a byte only, use the operator '=='. Note that to assign to a register or variable, no sign or ex- pression may be used with the register or variable name, i.e. the expression RHL := 1234 will assign 1234 to register HL, whereas +RHL := 1234 will assign 1234 to the address contained in register HL. : extended memory specification the value of this operator is the value on the right-hand side of the operator. The value on the left-hand side specifies a (system dependent) extended address, which is used in memory references and with commands which expect an address. In all other cases, this value is ignored. An error occurs if the extended address is undefined in the target system, or if extended addressing is disabled. ///3FACTORS A factor has the form { sign } number where sign is + (plus), - (minus), or ~ (not) and number is (expression) byte at the memory location addressed by "expression" (expression). the word at the memory location addressed by "expression" [expression] the value of the expression hhhh hex number dddd. decimal number bbbb" binary number 'c' character string character string (only the last 2 characters are significant) Rx contents of CPU-Register x Yn contents of Variable Y0..Y9 H special variable H(igh) L special variable L(ow) M special variable M(ax) T special variable T(op) X special variable eXtended address default $ CPU-register PC .symbol Value of the symbol The variable L contains the standard load address (100h for CP/M) and is not changed by the debugger, but may be user assigned to a different value. The variable H contains the highest address read on the last file. It is updated each time an R-command is executed. The variable M contains the highest address read on all previous R- commands. The variable T contains the top address of the user TPA. It is up- dated if symbol table space is expanded. The variable X contains the default bank for all operations if extended addressing is enabled. It may be changed by assignment or by changing the PC with an extended address. The short-form '$' for PC may only be used in expressions, not in an X-command. The character '_' (underline) may be used in numbers to enhance readability. It is completely ignored. String: Any number of characters delimited by quotes ('). Use a two quotes ('') to represent a single quote within a string: 'It''s a quote'. Register names: primary: A, F, AF, B, C, BC, D, E, DE, H, L, HL, IX, IY, SP, PC alternate: A', F', AF', B', C', BC', D', E', DE', H', L', HL' control: IFF (interrupt enable flip flop) I (interrupt register) R (refresh register, read only) Symbols: Any number of characters, of which only the first characters are significant (the significant length of symbols can be changed by reassembling). The first character must be non- numeric. Symbols may consist of letters, digits, and the special characters @, ?, _, and $. Lowercase letters are translated to uppercase. Any underlines (_) are stripped. ///3MULTIPLE Multiple Expressions All commands expecting a condition will accept multiple expressions in sequence. Only the value of the last expression is used as the condition result. The general form for this "mexpr" is expression { {,} expression ... } ///3STRINGS Byte-Strings The commands Q(ery), S(ubstitute), and Z(ap) expect a byte-string as operand. In a byte-string, character strings are significant over their full length. The general form is expression-or-string { {,} expression-or-string ... } only the lower byte is significant for expressions in byte strings. Note that a string is evaluated first, so to enter the expression 'N'-40 in a byte- string, you have to use brackets: 'N'-40 1+2*3 'A'+2 => 'N', -40, 7, 'A', 2 ['N'-40] [1+2]*3 ['A'+2] => '^N', 9, 'C' ///3BOOLEANS Booleans For commands expecting a conditional expression, and for the boolean AND/OR operators, the value 0 represents FALSE, while any value other than 0 represents TRUE. The result of the relational and boolean operators is 0 for TRUE and FFFF for FALSE. An example to show the difference between bitwise and boolean operators: 1 & 2 is 0 1 && 2 is FFFF. 1 | 2 is 3 1 || 2 is FFFF. ///2BANKING Changing the Bank The current active bank is contained in the special register 'X' and may be displayed using the H or X' command. It may be changed by assignment: H X := 0 or by changing the program counter with the X-command: X PC 0:100 You can also use all memory reference commands with locations outside the current bank by specifying an extended address: L 0:100 Lists Bank 0, Address 100 S 5:e000 Substitutes Bank 5, Address E000 M 0:0 ff 100 Moves from Bank 0, Address 0 to FF, to Address 100 in the current Bank Z 7:0 ff 0 Sets Locations 0 to FF in Bank 7 to 0 You may even assign to locations in other banks: H 0:100 := (7:100). ///1WAIT Syntax : WAIT {d:} {filename} Explanation: Because the JOYCE (PCW8xxx) CP/M system may only be booted by drive A:, it may be useful to access files on drive B: which has a bigger storage capacity. So user may stop any SUBMIT process executed through the PROFILE.SUB file inserting any wait state to allow any activity on drive B:. With no filename, program simply stops and awaits any keypressed. With a filename, the file will be printed prior key stroke, allowing to send a message to the user. The default file extension is .DAT. If the file will not be found, NO ERROR message will be printed. ///1WC Syntax: WC {-cwlv} {du:}file(s) Explanation: WC is a universal count program for ASCII files As defined by any option, WC counts c Characters w Words l Lines in the file(s) v Be verbose on single files Without any option, WC reports all counts Files may hold wildcards Optional drive and user may be selected in either way ///1XIZ Format: XIZ B:8080FILE.TYP B:Z80FILE.TYP Explanation: XIZ translates Intel 8080 assembly language source code into Zilog Z80 assembly language source code. All parameters are optional - if omitted, the following values are assumed: 8080 source filetype - ASM Z80 output filetype - Z80 Z80 output file name - same as source file-name Drive - current drive Examples: XIZ PRGM1 (translates PRGM1.ASM to PRGM1.Z80) XIZ PRGM1 PRGM2 (translates PRGM1.ASM to PRGM2.Z80) XIZ PRGM1.TXT PRGM2.MAC (translates PRGM1.TXT to PRGM2.MAC) XIZ also has the following feature: A dot '.' is displayed for each 100 lines processed. ///1XLATE2 Format: XLATE2 source-filespec dest-filespec Explanation: XLATE2 translates 8080 assembly language source code into Zilog-Standard Z80 assembly language source code. . The Source File will have a type of ASM . The Destination File will have the same name as the Source File . The Destination File will have a type of MAC Its help menue is invoked by a command of the following form: XLATE2 / ///2Examples The following are examples of the use of XLATE2: XLATE2 DEMO1 <-- Translates DEMO1.ASM to DEMO1.MAC XLATE2 DEMO1 DEMO2 <-- DEMO1.ASM to DEMO2.MAC XLATE2 DEMO1.TXT DEMO2.GGG <-- DEMO1.TXT to DEMO2.GGG The following functions are also performed by XLATE2: . The M80 Pseudo-Ops .Z80 and ASEG will be inserted at the front of the MAC File . The text in the Destination File will be capitalized . All comment lines beginning with an asterisk will begin with a semicolon instead ///1XREF Syntax: XREF {d:} filename {$P} Explanation: XREF provides a cross-reference summary of variable usage in a program. XREF requires the .PRN and .SYM files produced by MAC or RMAC for input to the program. The SYM and PRN files must have the same filename as the filename in the XREF command tail. XREF outputs a file of type .XRF. Examples: A>XREF b:MYPROG A>XREF b:MYPROG $P ///1XZI Format: XZI B:Z80FILE.TYP B:8080FILE.TYP Explanation: XZI translates Zilog Z80 assembly language source code into Intel 8080 assembly language source code. All parameters are optional - if omitted, the following values are assumed: Z80 source filetype - .Z80 (or .MAC) 8080 output filetype - .ASM 8080 output filename - same as source filename Drive - current drive Examples: XZI PRGM1 (translates PRGM1.Z80 to PRGM1.ASM) XZI PRGM1 PRGM2 (translates PRGM1.Z80 to PRGM2.ASM) XZI PRGM1.MAC PRGM2.TXT (translates PRGM1.MAC to PRGM2.TXT) XZI also has the following feature: A dot '.' is displayed for each 100 lines processed. ///1ZSID Syntax: ZSID {pgm-filespec} {sym-filespec} ZSID {pgm-filespec} {*} ZSID ? Explanation: The ZSID symbolic debugger allows you to monitor and test programs developed for the Z80 microprocessor. ZSID supports real-time breakpoints, fully monitored execution, symbolic disassembly, assembly, and memory display and fill functions. Default extensions are .COM for pgm-file and .SYM for sym-file. Typing '*' instead of sym-filespec enables same name for sym-file as for pgm- file. Typing '?' as argument simply prints a help text. ///2COMMANDS Command Meaning ? Print commands available and system addresses such as BIOS and BDOS entry A{s} Enter assembly language statements. s is the start address -A Disable further L and A command Bs or B"s" Search for hex or string from address 0000 up to highest address. Hex and string may be mixed in either way Cs{b{,d}} Call to memory location from ZSID s is the called address b is the value of the BC register pair d is the value of the DE register pair D{W}{s}{,f} Display memory in hex and ASCII W is a 16-bit word format s is the start address f is the finish address -D Disable ASCII display Epgm-filespec Load program and symbol table for execution {,sym-filespec} E*sym-filespec Load a symbol table file Fs,f,d Fill memory with constant value s is the start address f is the finish address d is an eight-bit data item G{p}{,a{,b}} Begin Execution p is a start address a is a temporary breakpoint -G Don't display pass points H Displays all symbols with addresses in Hex H.a Displays hex, decimal, and ASCII values of a where a is a symbolic expression Ha,b Computes hex sum and difference of a and b where a and b are symbolic expressions Icommand tail Input CCP command line L{s}{,f} List Z80 mnemonic instructions s is the start address f is the finish address -L List without symbolic feature Ms,h,d Move Memory Block s is the start address h is the high address of the block d is the destination start address O{b} Select memory bank -O Select TPA bank P{p{,c}} Pass point set, reset, and display p is a permanent breakpoint address c is initial value of pass counter -P{p} Clear pass point Q Quit the debugger Rfilespec{,d} Read Code/Symbols d is an offset to each address S{W}s Set Memory Values s is address where value is sent W is 16 bit word T{n{,c}} Trace Program Execution n is the number of program steps c is the utility entry address. T{W}{n{,c}} Trace Without Call W instructs ZSID not to trace subroutines n is the number of program steps c is the utility entry address -T{W}{n{,c}} Trace without symbolic feature U{W}{n{,c}} Monitor Execution without Trace n is the number of program steps c is the utility entry address W instructs ZSID not to trace subroutines -U{W}{n{,c}} Disable pass point display V Display the value of the next available location in memory (NEXT), the next location after the largest file read in (MSZE), the current value of the Program counter (PC), and the address of the end of available memory (END) Wfilespec,s,f Write the contents of a contiguous block of memory to filespec. f is finish address X{f}{r} Examine/alter CPU state. f is flag bit C,Z,M,E or I. r is register A,B,D,H,S,P,X,Y or one of the alternate register A',B',D' or H'. ///2UTILITIES ZSID utilities, HIST.UTL and TRACE.UTL are special programs that operate with ZSID to provide additional debugging facilities. The mechanisms for system ini- tialization, data collection, and data display are described in the CP/M SID User's Guide. The HIST utility creates a histogram (bar graph) showing the relative frequency of execution of code within selected program segments of the test program. The HIST utility allows you to monitor those sections of code that execute most frequently. The TRACE utility obtains a backtrace of the instructions that led to a particular breakpoint address in a program under test. You can collect the addresses of up to 256 instructions between pass points in U or T modes.