November 06 1985 Version 1.03 Many thanks to Stuart Rose for his modifications to CCP+, most of which are included in version 1.03 (some slightly modified). -Jim Lopushinsky ------------------------------------------- November 04 1985 This "B" release of the version 1.02 CCP CP/M+ replacement both fixes a couple of bugs related to drive/user validation, and allows a more customizable CCP at assembly time with the additon of several equates. Bugs: The DRVSPEC routine had a bug in which a partial drive/user parse would return with the correct flags set, but it would also set either the user byte or drive byte of the command FCB to a no-zero value, indicating a successful parse later on. This has been fixed. The CCP was also a little sloppy in checking for a valid drive/user when requesting a COMfile, SUBfile, or PRLfile to be run. This allowed unprotected executable programs in protected directories to be run by non-privileged users. If a drive/user spec is given, it is now always checked against MAXDRV and MAXUSR (unless, of course, if the WHEEL byte is set). New Equates and Flag Options: All new equates live in CCPHDR.MAC for easy configuration at assembly time. As a result the accompanying version must be used for a successful assembly of the new CCP source: Flags Mnemonics: The "flags" byte was originally set using a decimal (or hexadecimal) value. To make things a little less cryptic, all bits of the flag byte are given mnemonics: time = 01H - display time in CCP prompt byechk = 02H - check for a BYE RSX noxoff = 04H - disable flow control XON/XOFF (^Q/^S) yesprl = 08H - allow PRLfiles yeslbr = 10H - allow a library command processor whllbr = 20H - test WHEEL byte before invoking CMDRUN expand = 40H - expand user's "universe" Under original conditions, the "flags" byte was set as: flags db time + byechk + yeslbr + expand EXPAND: If the user, through the WHEEL byte, or directory names enters a user-area outside those boundaries specified by MAXDRV and MAXUSR, then these new values are normally written back to MAXDRV and MAXUSR. This effectively expands the "universe" for the current user. By removing this option from the flag byte, these new "expanded" values for the maximum drive and user are NOT written back into the MAXDRV and MAXUSR bytes. If you prefer the original CCP configuration, include this option with the flag byte. WHLLBR: If the "yeslbr" bit is set in the "flags" bytes, then a library command processor is invoked if the current command cannot be located. If this option is included, then the library command processor will only be invoked if the WHEEL byte is set to 0FFH (super-user). If you prefer the original configuration, remove this option from the flag byte. Note that this option has no affect if the "yeslbr" bit is not set. MAXDRV, WHEEL, and MAXUSR bootup values: CCP102 was sent out with MAXDRV = 15, WHEEL = 0FFH, and MAXUSR = 16. If you wished different values you had to locate the appropriate place in in CCP102 source and change. They may now be set in the header source: mydrv = 'n' + drvoff - sets your maximum drive to "n:" mywhl = n - sets your initial wheel byte value to n myusr = n + usroff - sets your maximum user to n Note: It should not be necessary to modify the initial ZCPR values, as I cannot think of a reason why the system needs help from the CCP in restricting drive/user access during a Cold start. These values should be set by a utility included in PROFILE.SUB for non-remote access or by the BYE program for remote access. -JEL Many thanks to Jim Lopushinsky for the original CCP source and support programs. An added mention to Jim Dunn of the Sparrow RPC/M+ for his comments and suggestions. Stuart Rose Mississauga RCP/M+ System Mississauga, Ontario (416)-624-4935 300/1200 baud ---------------------------------------------- Edited and incorporated into version 1.03: Jim Lopushinsky Meadowlark RCP/M Edmonton, Alberta 403-435-6579 300/1200 baud