💾 Archived View for mirrors.apple2.org.za › archive › apple2.archive.umich.edu › apple2 › gs › doc ›… captured on 2024-12-17 at 23:13:09.
-=-=-=-=-=-=-
Extended Command Processor - 16 ------------------------------- Copyright 1987 By Don Elton Carolina System Software +---------------------------+ | BETA TESTING RELEASE 0.14 | +---------------------------+ This is a very preliminary version of ECP-16 that is released for those who would like to assist in testing the product as it is developed. This program is Shareware and will sell for $40 (including ECP-8) and documentation for both ECP-8 and ECP-16. Official release for ECP-16 is still in the future as there are many features to be added just to get it to the same level as ECP-8. Requirements: This program requires ProDOS 16 on an Apple IIgs PC. It should run fine under the minimum memory configuration provided that you don't have 100K of desk accessories or other things installed on your system. Introduction: ECP-16 is a ProDOS 16 System program, program selector, controlling program, and operating system shell. This encompasses a lot of functions for this one program but it is basically a replacement to the Apple supplied desktop for users who would rather control their ProDOS 16 environment via a command line interface such as that familiar to users of ECP-8, CP/M, MS-DOS, or UNIX. ECP-16 shares some features in common with APW (Apple Programmer's Workshop) and with ORCA/M (ORCA/M for the Apple IIgs). The finished product will duplicate or improve on the better features found in APW and will add others. There will be some nice things that APW can do that ECP-16 will not do so if you are a developer, don't throw away APW yet. Goals for ECP-16: ECP-16 is aimed at two types of users. First for power users who would rather have fast functionality than a huge and cute desktop based operating system shell. Secondly, ECP-16 is offered as an alternative to APW for developers who would like to sell or give away ProDOS 16 shell based applications without requiring that the end user own APW (which currently costs about $100 or so). ECP-16 will run any APW or APW C EXE. ECP-16 also supports two APW/ORCA specific shell calls. These are the Init_Wildcard and Next_Wildcard calls. ECP-16 takes responsibility for launching your program and for passing the command line to the shell program (EXE file). This latter feature is handy. As an example, I downloaded a public domain C source for a file squeezing program. I made no modifications to this file at all. I compiled the program using APW C (pre-release version) and I can now execute this program under ECP-16 the same way you would do so on UNIX, CP/M, or MS-DOS by just typing the name (pathname) of the program along with any arguments that might be required by the program. I'm including the object code to this program in the library with ECP-16 for you to play with. I'm sure you can see the potential for this. C sources from MS-DOS (and there are a lot of them and many in the public domain) are useless under the DeskTop and before now could only be executed from APW (a huge package that's ok as a development environment but who wants to wait for it to load when all you want to do is some quick file manipulation?). Licensing: Oh yes, ECP-16 will be licensable to developers who would like to include it with thier ProDOS 16 applications and utilities that they sell. All I ask is that you pay me $60 per product per year and that you encourage your users to buy the full package (so they can get support and updates with the latest docs and all). Feedback: As with all of my programs I welcome suggestions and comments on my software and how it might be improved. If you want to wait until a more functional version of the software is ready before paying your shareware fee then that's fine. If you pay the fee right now you won't get any printed documentation for ECP-16 but you will get a bootable disk with ECP-16 and the full ECP-8 package (complete with docs). To a great extent the operation of ECP-16 will mirror ECP-16 when possible without sacrificing the nice features available under ProDOS 16. You can launch the following types of files: S16 These are ProDOS 16 system programs. Right now ECP-16 stays resident. SYS Note that calling a SYS program prevents you from automatically returning to ECP-16 but ECP-8 can relaunch ECP-16 if commanded to do so. EXE These are ProDOS 16 shell programs. Some will only run under APW but most will run under APW or ECP-16. BAT These are ECP-16 Batch files. (Described below) Filenames: ECP-16 supports any valid ProDOS-16 file naming convention. The following are all valid pathnames for any command in ECP-16 that requires a filename as an argument: .d1/subdir/file (uses device name in place of volume name) 1/subdir/file (uses a numbered prefix) ../subdir/file (references directory levels above the current one) /a/subdir/fi= (accept all file names that begin with "fi") /a/subdir/fi? (as above but prompt for matches) Setting up your system disk: ECP-16 can be set-up in a couple of different ways. One is to make the ECP-16 S16 file the START file program selector. To do this you just put ECP-16 in the SYSTEM subdirectory as shown below and name it as START. The second method is to name the ECP-16 S16 file as ECP16.SYS16 and put it in the volume directory of your ProDOS 16 system disk and make sure it appears in the directory before any other S16 or SYS files. /SYSTEM.DISK PRODOS ECP16.SYS16 (put ECP-16 here or below as the START file) CP.KEYS (autostart batch file for function keys etc) CP.STARTUP (second autostart batch) SYSTEM/ P8 P16 SYSTEM.SETUP/ TOOLS/ DESK.ACCS/ FONTS/ DRIVERS/ START (put ECP-16 here or above as the ECP16.SYS16 file) The CMDS subdirectory: You may set PREFIX 6 to the directory you want ECP-16 to look to if it can't find a file (EXE or S16) in the current directory. The default value is a subdirectory named CMDS in the boot directory for ECP-16. You may set this anywhere you like. The HISTORY buffer: ECP-16 keeps a 'history' buffer to store your most recently entered commands. As a typing aid, you can scroll back and forth into this buffer and re-edit or re-enter previously entered commands with just a few keystrokes. To go back in the buffer, press the up arrow key. To go forward in the buffer just press the down arrow key. Try it.. you'll figure it out. Batch files: Like ECP-8, ECP-16 supports powerful disk based Batch files. These files are standard ProDOS text files whose file type has been changed to BAT ($F5). These files can contain any valid ECP-16 command, either internal or external. When you enter a BAT file, the command line arguments for the BAT file are stored in the variables &1 - &9 with the argument count stored in &0. Bat file command lines are expanded into their full form prior to parsing and execution. Example: The Move Bat file ifeq &0 0;say "No arguments supplied^G^M^J";stop copy &1 &2 delete &1 The above Bat file would be called from the command line as :move <source> <destination> When the Bat file is executed, the following statements are parsed: ifeq 2 0;say "No arguments supplied^G^M^J";stop copy <source> <destination> delete <source> Startup BAT files: ECP-16 suppors two types of auto-start BAT files. The first file searched for at boot time is CP.KEYS. This file should be kept in the same directory with the ECP16.SYS16 program file. It is typically used to define function keys but it can be used for any activity you'd like to take place when ECP-16 is initially loaded. Next, ECP-16 looks in the current PREFIX 0 directory for a file named CP.STARTUP. This file can also contain any command but you may have more than one CP.STARTUP file on your disk, perhaps one in the directory of each other program you frequently run from ECP-16. i.e. if you exit AppleWorks and AppleWorks is stored in /a/appleworks then you might want to put a CP.STARTUP file in /a/appleworks that would do any clean-up activities you'd like executed when you exit from AppleWorks. This could include backing up a ram disk or just setting the prefix back to your root directory. I/O Redirection: ---------------- ECP-16 currently supports only Output redirection. You may direct output to the printer ".PRINTER", to the null device (i.e. no where) ".NULL", or to a named slot device ".S1, .S2, etc.", or to a file specified by the pathname. Output redirection currently routes only the STDOUT vectors. STDERR will be included in future versions. The following syntax is valid: cat /vol >.printer;# route to printer with init string sent cat /vol/subdir >spool.file;# route to 'spool.file' with no line feeds cat /vol/subdir >.s2;# route to slot 2 pascal compatible device Note that output redirection only lasts for the command that includes the ">" output specifier. You can output all command output to the printer by using the SET PRINTER ON command. Commands Documentation: ----------------------- Below are descriptions of the command that have been implemented in ECP-16 as of this version of the software. ! Anything Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No This is a comment command. The remainder of the current line is ignored by the command processor. # Anything Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No This is a comment command. The remainder of the current line is ignored by the command processor. ? <No Argument> ! <Command Name> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes Use this command to display a help file in the HELP subdirectory (designated by Prefix 5). Pressing any key will pause the display. Use ESC to abort this command. If no argument is supplied then the file "5/CMDLIST" will be displayed. BOOT <No Argument> ! <1-7> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command will boot the disk device in the slot (1-7) specified. If not slot is specified then the online devices will be searched in the default scanning order. CAT <Directory names> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The selected directories will be displayed. If no argument is supplied then the current prefix directory will be displayed. CHTYPE <file> <typename>!<type in hex> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command changes the ProDOS file type of <file> to the type specified. Types may be specified either by their 3 letter identifier or by their hexadecimal type number. COPY <Src file> <Dest file>!<Src file>!<Src file> <Dest Dir> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes Copies the <Sourc file> to either the <Destination file> or the <Destination Directory> or to the Prefix directory if no destination is specified. CREATE <directory names> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No The specified subdirectories are created. DELETE <pathnames> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The files specified by <pathnames> are permanently deleted from the disk directory. DUMP <pathnames> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The specified files are displayed to the screen as a hexadecimal dump with file offsets. ECHO <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No Batch file statements will be displayed to the screen as they execute after this command has been entered. FKEY <No Argument> ! <0-9!A-Z> ! <0-9!A-Z> <string> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes This command is used to display (with no arguments), cancel (with number or key argument only), or define user-defined function (macro) keys. Control characters are coded after the "^" character such that a carriage return is represented as "^M". Any character that may be typed into the line editor may be represented and multiple lines of input may be defined. Function key definitions are limited to 127 characters. Example: Fkey 1 "^XCat^MOnLine^M" The above definition assigns the indicated string to the Open Apple - 1 key combination. Pressing OA-1 will enter Cat, press return, enter Online and press return again. GOTO <label> Type: Internal Batch: Yes Keyboard: No Wildcards: No Use this command to unconditionally branch within a BATch program. A <label> is defined as the first word or quoted argument after a comment character in a Batch file. The following are legal labels: # <label> ! label # "label" HELP <No Argument> ! <Command name> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes Use this command to display a help file in the HELP subdirectory (designated by Prefix 5). Pressing any key will pause the display. Use ESC to abort this command. If no argument is supplied then the file "5/CMDLIST" will be displayed. IF <pathname> Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No If the specified pathname exists on an online device then execution will continue with the statements that follow the IF command on the same line. If the file does not exist or if the name is improperly specified then execution will continue with the following line. IFEQ <String 1> <String2> Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No If the two arguments are equal (case ignored) then execution continues with the statements on the rest of the current line. If they are not equal then the rest of the line is skipped with execution continueing on the next line. IFNOT <pathnames> Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No If the specified file does not exist on an online device then execution will continue on the same line. If the file does exist then execution will continue with the next line. IFSHELL <ECP16> ! <ECP8> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command, implemented in both ECP-8 and ECP-16 allows a running BATch program to determine which shell is executing it. This allows you to know which commands are available to you so you can have your BAT program branch to use appropriate syntax based on which shell is active. You can thus use the same BAT file under either ECP8 or ECP16. IFYES <No Argument> Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No This command will display a cursor on the screen and wait for a Y or N keypress. If the user presses the "Y" key then execution continues with the statements that follow on the same line. If the user presses anything else then the remainder of the current line is ignored with execution continuing with thje next line. LOCK <pathnames> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The specified files are locked (made read only). MEM <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command shows memory usage statistics. MON <No Argument> ! <Monitor commands> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No With <No Argument> this command will drop you into the system Monitor program. Press Control-Y <RETURN> to return to ECP-16. If you specify an argument, it will be passed to the system Monitor as a command with control staying in ECP-16. NOECHO <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No Batch file statements will not be displayed to the screen after this command is entered. This is the default condition. ONLINE <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No All OnLine disk devices will be displayed along with their device names, volume names, operating system type, and block usage statistics. PAUSE <No Argument> Type: Internal Batch: Yes Keyboard: Yes (though not useful) Wildcards: No The string "More..." is displayed to the screen and the command then waits for any keypress to continue. PREFIX <No argument> ! <directory> ! <prefix number> <directorType: Internal Batch: Yes Keyboard: Yes Wildcards: No This command either sets or displays system prefixes. QUIT <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No Returns control to the program that started ECP-16. RENAME <Original pathname> <New pathname> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No Renames <Original pathname> to <New pathname>. On a future version of ProDOS 16 this command will actually move a file entry from one directory to another but under version 1.1 only a simple renaming operation is supported. SAY <string> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No <string> will be displayed to the screen. <string> may contain control characters by coding them after a "^" character. Thus a carriage return becomes ^M and a line feed becomes ^J. Use ^^ to display the "^" character. Note that line feeds and carriage returns must be specified separately to implement the newline function. SET <No argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command, entered without arguments, will display all environment settings that are in effect at the time the command is entered. SET PINIT <string> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command allows you to specify the printer initialization string. The string may be enclosed in quotes and may include control characters by using the currently defined control token (default = ^). The default printer initialization string is "^I80N". SET PRINTER <ON ! OFF> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command will cause all subsequent command output to be routed to the printer device attached to PSLOT (normally 1) or it will turn off such output previously enabled. SET PROMPT <prompt character> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command allows you to set the prompt used when ECP gathers input from the keyboard. The default value is ":". SET PSLOT <0-7> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command determines which slot your printer is attached to. The default value is 1. A slot setting of 0 designates that you do not have a printer. SET TOKEN <token character> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command determines which character will be used as the control character token character. The default value is "^". Tokens are used by the FKEY, SAY, SET PINIT commands and others. SET VERBOSE <ON ! OFF> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command determines whether ECP will issue warnings before overwriting existing files when you tell ECP to do this via the COPY command. The default setting is "ON". SHELL <S16 Pathname> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No This command will execute a ProDOS 16 SYSTEM (S16) program while keeping ECP-16 active and in memory. If you just enter the name of an S16 program then ECP-16 normally shuts itself down and remains dormant. With the SHELL command you can execute S16 programs from BAT files provided that the S16 program doesn't close the BAT file being executed. STOP <No Argument> Type: Internal Batch: Yes Keyboard: No Wildcards: No Terminates execution of the current BATch program. SHIFT <No Argument> Type: Internal Batch: Yes Keyboard: Not useful Wildcards: No This command shifts all command line arguments down one variable and decrements the argument counter. TEST Varies Type: Internal Batch: Varies Keyboard: Yes Wildcards: Varies This is a command used by the program author to debug parts of the program. It may not be present in your release and could potentially cause a system crash so don't use it. TIME <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No Displays the current date and time using the format specified in the Control panel. TYPE <pathnames> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The specified files are displayed to the screen. Pressing any key will pause the display and pressing the ESC key will abort the display. Control characters and non-printing characters are displayed as periods. UNLOCK <pathnames> Type: Internal Batch: Yes Keyboard: Yes Wildcards: Yes The specified files are unlocked (changed to read/write/rename/destroy enabled). \ <No Argument> Type: Internal Batch: Yes Keyboard: Yes Wildcards: No The current prefix is backed up one directory level. The new prefix is then displayed to the screen. Information: For more information, contact the author, Don Elton at: Carolina System Software 3207 Berkeley Forest Drive Columbia, SC 29209-4111 Phone: 803-788-7360 CIS: 72010,37 ProLine: delton (619-281-7222 login:guest) (803-776-3936 login:guest)