Special "first command key" function toggle keys

There are fifteen (15) keys, which are only interpreted to have the special meaning shown below when input as the FIRST character of a command line, that is, when there is nothing else in the serial port's input buffer. They are not displayed, but are acted upon immediately. They cannot be entered across the nRF radio link, although the SRAM addresses which contain them can be changed using an "ES" command.

Bits in bFlags_Serial at SRAM address 0x4B:
Key   Key name ASCII value   Bit  Bit Name Purpose / Notes
_underscore 95 or 0x5F0BIT_SER_ECHO Echo each received BYTE back out
\backslash 92 or 0x5C1BIT_SER_INHIBITBR   Prevents BIT_SER_BLOCKRD from being autoenabled
[left bracket 91 or 0x5B2BIT_SER_QUIET Suppress usual script change output
single quote 39 or 0x273BIT_SER_SHOWCMD Show the enbuffered command before processing it
^up arrow 94 or 0x5E4BIT_SER_UPARROW For user use; no system logic uses it now
|verical bar 124 or 0x7C5BIT_SER_VERTBAR For user use; no system logic uses it now
(no key toggles this bit) 6BIT_SER_BLOCKRD Unprintable BYTEs autoenable it (unless BIT_SER_INHIBITBR)
(no key toggles this bit) 7BIT_SER_PROCESS A command is enbuffered; service pending

Bits in bFlags_Debug at SRAM address 0x125:
Key   Key name ASCII value   Bit  Bit Name Purpose / Notes
#pound 35 or 0x230BIT_DDT_EEPROM Details when a BYTE in EEPROM changes
%percent 37 or 0x251BIT_DDT_SLEEP Unused in the 328P; sleep details in other versions
]right bracket 93 or 0x5D2BIT_DDT_SCRIPT Enables detailed script process reporting
"double quote 34 or 0x223BIT_DDT_DETAILS Reports each script line as it is processed
+plus 43 or 0x2B4BIT_DDT_SEQCHG Terse info during sequencer mode changes
)right paren 41 or 0x295BIT_DDT_SEARCH Sequencer next Logic Block search details
*asterisk 42 or 0x2A6BIT_DDT_LEDS For user use; no system logic uses it now
}left brace 125 or 0x7D7BIT_DDT_REGS Enables output for DumpRegisters calls

The last one is the '$' Manager Mode toggle. It can also be turned OFF from the command line with "Log" (for "LogOut" or "LogOff") but cannot be toggled ON that way; only the '$' first key does that (and can be used to also toggle it off, of course, just like the others above.)

Example of how the '#' toggle key causes EEPROM changes to be displayed.

>DE+ 0x300 16
0300:  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  ................
>EW 0x300 = 42 S
EEPROM BYTE at address 0x0300 changed from 0xFF to 0x2A
EEPROM BYTE at address 0x0301 changed from 0xFF to 0x00
EEPROM BYTE at address 0x0302 changed from 0xFF to 0x81
EEPROM BYTE at address 0x0303 changed from 0xFF to 0x03
>DE+ 0x300 16
EEPROM contents:
0300:  2A 00 81 03 FF FF FF FF-FF FF FF FF FF FF FF FF  *...............
>EL 0x300 = -2
EEPROM BYTE at address 0x0300 changed from 0x2A to 0xFE
EEPROM BYTE at address 0x0301 changed from 0x00 to 0xFF
EEPROM BYTE at address 0x0302 changed from 0x81 to 0xFF
EEPROM BYTE at address 0x0303 changed from 0x03 to 0xFF
>DE+ 0x300 16
EEPROM contents:
0300:  FE FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  ................
>EL 0x300 = -1
EEPROM BYTE at address 0x0300 changed from 0xFE to 0xFF
>DE+ 0x300 16
EEPROM contents:
0300:  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF  ................
>                                                                               
Notes:
      These are "toggle" keys. Each time one is input, the system flips the state of the corresponding bit. So, for example, typing "$$" immediately enables Manager mode and disables it again. As the first key is acted upon and purged, there are still no character in the buffer and the second one also is the first key in the buffer. Neither key is echoed to the console since each is the first character on the line.
These BITs are all maintained in SRAM. After a reboot, all of them are OFF. The only one which the Operating System automatically sets after a reboot is BIT_SER_ECHO.

See also:
    The registers System Command as well as the DumpRegisters and DumpRegs_Begin System Functions.