More comfort with CP/M 2.2 ...
New Generation Systems published 1982 several handy tools for CP/M users, their Microshell and their Microtools were well done, but unfortunately not wide spread.
Their second version of Microshell, Microshell 2.0, was published in 1983, it was a major break through for the CP/M 2.2 power users, because now even complicated batch files and menu shells could be written. Redirection of console output to a file or to a printer were already available with the old version, but this new version was almost unbelievable.
So redirection to another command is possible similar to MSDOS with the help of the '|' sign, changing the prompt is easy, and there are a lot of predefined shell variables which can be used in scripts also.
Also, interactive requesting for variable content is possible (showing that MSDOS is weaker than microshell).
An example for showing the true strength:
%print -n "Enter file name to edit: "
%getstr % 1 <$T
%if %1 = "" then exit
ws $1 <$T
There are not only build in commands for making decisions, also expressions can be evaluated, 'goto' can be used, simple arithmetic functionality is included - here a list of commands:
%IF expr THEN action
%IFFILE filename PRESENT THEN action
%IFFILE filename ABSENT THEN action
%RETURN assignment (example: %RETURN %C=1)
%GETCHR var reads character from console into a var
%GETSTR var reads string
%MEMNUM var adress stored on 80H and 81H moves to a var
%MEMSTR var string stored up from 82H moves to var
%PRINT var prints var
%PRINR constant prints constant
%PRINT -N st prints without start CR,LF
%#ARGS var number of arguments (parametrs) moves to a var
%BCHAR "BREAK" character (default ESC)
%BREAK ON break enable
%BREAK OFF break disable
%CLEAR clears string variables
%CLRSTR string definition of screen clear string (default ^Z)
%ERASE clears screen (CLS)
%EXCHAR char character for "exit" in shell-file
%FTYPE string max 8 file-types that are auto-searched
%LOCASE string conversion upper->lower case
%PATH string max 6 drives on which files are searched
%SCHAR char revert to Shell file character
%SDRIVE drive help files drive
%SHTEXT string Micro-shell files type
%SHIFT variables shift (%0=%1 ; %1=%2 ...)
%status ON CONST READY all the time
%STATUS OFF previous CONST
%TCHAR char revert to keyboard character
%UPCASE string conversion lower->upper case
%PATH "STR" DISK DRIVE SEARCH (e.g. PATH:AB)
%FTYPE "STR" FILE TYPES-AUTO SEARCH
%SHEXT "STR" FILE TYPE-SHELL FILES:SUB
%SDRIVE CHAR SCRATCH DRIVE-SHELL FILES: A
%CLRSTR "STR" SCREEN CLEAR STRING: ^Z
%BREAK ON/OFF BREAK DURING SHELL FILES: ON
%BCHAR CHAR BREAK CHARACTER: ESC
%EXCHAR CHAR PROGRAM EXIT CHARACTER: NONE
%TCHAR CHAR REVERT TO KEYBOARD CHAR: NONE
%SCHAR CHAR REVERT TO SHELL FILE CHAR: NONE
Compared to the later published ZCPR it was also a much stronger tool, but like already mentioned, it was not used widely so much.
To get convinced please take a look into the PDF and try it for your own CP/M system - documentation and executables can be found in a ZIP file here.
Hint: You have to use 'autocpm' and also 'sysgen' to get it permanently running as a replacement for the original CCP.