  ++ Q   P S E U D O - M A C R O S ++

Notation: <calling sequence>-<approximate function> **=Macro works from TTY
See end of this help for "active pseudomacros" which return dynamic information
^N^@-Jump to start of current macro
^NA-obey next 2 chars if at end of line
^NB<tab id>-obey next 2 chars if cursor before spec'd tab position
^NP<tab id>-obey next 2 chars if cursor past spec'd tab position
^N[<tab id>-obey next 2 chars if file pos'n before value in spec'd tab
^N]<tab id>-obey next 2 chars if file pos'n after value in spec'd tab
^NC-obey next 2 chars if in a command
^ND-push a link to 3rd char following (call s/r if followed by ^N<macro name>)
^NU-pop a link from the stack (return from s/r). Exits if empty stack.
^NG<char>-obey next 2 chars if screen cursor at a <char>
^NE-force insert mode off                                                   **
^NS-skip next 2 chars (can reverse sense of a conditional)
^NL-(long skip) skip next 4 characters (e.g. for conditional ^ND^N<macro name>)
^NJ-(long jump) jump over the # of chars spec'd by the next character. (-ve OK)
^NI-(UPPLUS next) increment link - ^NU returns 2 chars further on
^NO<tab id>-remembers cursOr position \ Remember by \ In all these the      **
^NR<tab id>-sets cursoR position      / last 2 chars \ 1st char of the pair **
^NF<tab id>-remember File position \ Remember by 1st / remembers, and the   **
^NN<tab id>-set file positioN      / & last chars   / 2nd sets.             **
^NM<macro id>-Define macro to be current line or command on screen + ^NU    **
^NW<macro id>-Set ALU Q-register to:                                        **
                                   -1: calling this macro would error
                                    0: calling this macro ok but length N/A
                               length: of macro. Excludes ^NU for pseudos
                                                 and ALU memory locations
^N\-Force error exit with BELL (in fact undefined).
^NT-Trust user to do things not normally allowed
^NX-exit macro. (Next char from command source)
<tab id> is 1-9 plus the next 71 ASCII chars. 1 -> 1st tab &c. (H AS for list)

For help on any of the above pseudo-macros, type 'H CN-<pseudo-id>' eg 'H CN-A'
for ^NA. Special cases: ^N\ 'H CN-BSLSH'; ^N[ 'H CN-LHB'; ^N] 'H CN-RHB'

Unless specified otherwise, pseudos cannot be called directly from the command
source because, for instance, you can see if you're at the end of a line or in
a command. Those unconditional macros flagged ** in the table are allowed.

There is a second group of pseudo-macros, tentatively named "Active Pseudos"
which returns dynamic (ie changing, dependent on the environment) informaion.
Because these occupy the second bank (octal 4000 to octal 7777), none may be
invoked from the keyboard directly. But the standard FNDTN.QM macro set gives
access to N4002 (current edit file) via the ^N^P^P macro. The FI command allows
keyboard access to any of them.

N4000  expands to the current FMODE setting, in octal. Macros may save this then
       amend any FMODE setting, or Brief/None/Verbose, Indent, FF, & FC as
       required, being able to restore these afterwards.
N4001  returns the screen height-1 or the number of lines to EOF, whichever is
       less. It is really specifically designed for the ^N^V (view next
       screenful) macro in FNDTN.QM, but may prove useful elsewhere.
N4002  expands to the pathname of the file being edited curently. This may not
       be the same file as would be accessed by "Q $0". In the event there is no
       current file (because you typed Q then started editing), N4002 will
       expand to a null string and *NOT RETURN* to a calling macro. This is to
       prevent possible interpretation of a following argument to the command
       invoking N4002 from being interpreted as a file name. As mentioned,
       FNDTN.QM gives keyboard access to N4002 via the ^N^P^P macro.
N4003  expands to the directory name where HELP files and released macros are.
       This directoy name does not have a terminating separator (use "%s/%s").
N4004  returns the screen height-1 or some other number if near EOF or SOF. Like
       N4001, it is specifically designed for the ^N^Q (view previous screenful)
       macro in FNDTN.QM.
N4005  returns screen width.
N4006  returns screen height.
N4007  returns format in effect for displaying FPU memory locations.
       The user can set this pseudomacro e.g. "n 4007 %.16e"
N4010  returns format in effect for displaying the current time.
       The user can set this pseudomacro e.g. "n 4010 %F %T %z"
N4011  returns the current local time as formatted by ^N^<4010>
N4012  returns the current UTC time as formatted by ^N^<4010>
N4013  returns format in effect for displaying ALU memory locations.
       The user can set this pseudomacro e.g. "n 4013 %ld". ALU memory locations
       are stored as longs, so the format should always contain an 'l' (ell).
N4014  returns stdout from last time n4014 or n4015 was defined. The user
       defines this macro to be some external command e.g. "n 4014 pwd".
       If the external command fails, Q is set nonzero and the macro fails.
N4015  returns stderr from last time n4014 or n4015 was defined. The user
       defines this macro to be some external command e.g. "n 4015 pwd".
       If the external command fails, ALU register Q is set nonzero.
N4016  returns name of most recent keylog file and name length in Q.
N7ooo  returns contents of ALU memory location ooo.
N13ooo returns contents of FPU memory location ooo.
