On Saturday, February 23, 2013 8:58:36 PM UTC-5,
rzh_...@yahoo.com wrote:
> Hi All - I'm using an old version of ZCPR on a few of my CP/M systems (as given in the subject line). It knows all of the familiar resident commands (DIR, LIST, TYPE, ERA, SAVE, REN), and a number of others that I can make a pretty good guess about what they do (BELL, GO, GET, JUMP, PEEK, POKE, BOOT). But then there are a few that have me puzzled (USER, PAGE, ERAQ, SAK, DFU, and SCL). USER is pretty obvious (used to change user number), but it's supposed to cough up the current user number when run with no arguments, isn't it? All it does for me is set the user number back to zero. I can guess at PAGE (a smarter TYPE to handle long lines that wrap?), and ERAQ (same as ERA, but ask first?). I think SAK is "strike any key"? But what the heck do DFU and SCL do? Anybody know, or can anybody point me to some documentation? I have Richard Conn's book ("ZCPR3"), and I've gotten some help with some of the above from there, but DFU and SCL are still a mystery. Thanks.
*Somewhere* I have the actual documentation file for ZCPR-D&J (an enhancement of ZCPR 1.0) and will look for it. In the meantime, to answer your questions:
1. The USER command does not return the current user number when called without an argument, but there's no need for that, since the user number should be visible from the operating system prompt, e.g, A3> indicates you are in user 3 on drive A. By the way, you don't need the USER command to change user areas: you switch from user 0, for example, to user 4 simply by typing 4: at the operating system prompt, just as if you were changing the logged disk drive.
2. SAK in indeed strike any key (essentially a "pause" command for use in a SUB file)
3. ERAQ in indeed equate with query.
4. DFU changes the "default user area" (normally 0) when the command processor searches for a COM file that is not in the current directory. Normally, if you give the name of an executable file at the command prompt, and it's not in current drive and user, it will then search the default user area on the current drive, followed by the default user area on drive A: (if that is not the logged-in drive). This allows you to put your most-used utilities in A0:, for example, and have them always available. But depending on how you have your files organized, you might want it to search some user area other than 0 which you can do simply by typing, say, DFU 4 at the operating system prompt if you want the command processor to look in that user number when it can't find the file in the current user.
5. SCL means "single command line", i.e., only one command per line. ZCPR-D&J allows multiple commands to be entered separated by semicolons. For example,
A0:>era *.bak;dir
will run the ERA command, then the DIR command. This is fine unless the command your are running needs to accept a semicolon as an argument. To allow the semicolon to be passed on to the program, you need to disable the multiple-command facility by typing SCL. The command is a toggle, and you can revert to multiple-command mode by typing SCL again.
6. PAGE sends a form feed to the printer. The built-in TYPE command automatically "pages" its output by pausing every 20 lines. An optional argument "P" will defeat the paging and result in continuous scrolling, e.g.,
A0>type sample.txt p
(I haven't looked at the source in a while, and it may be that you can set continuous scrolling as the default, with the P then causing paging).
Hope this helps. I'll post a message if I find the documentation file, which I'll be happy to email (and maybe someone with server space could post it?).
Steve Mitchell
Alexandria, Virginia