Brief user documentation for Rug. The order of things in this document is pretty random. Someday someone should fix it. Basically Rug expects a symbolic expression followed by a command which operates on the expression, e.g. "FOO+5=" where "FOO+5" is the symbolic expression and "=" is the command. Commands may be one letter (e.g. "="), one letter following an escape (e.g. "$L" where escape will echo as a dollar sign), or a colon followed by up to six letters (such as ":HELP"). Symbolic expressions may contain any defined symbol, octal number, or decimal number (digit-string terminated with a period, e.g. "143." whereas "143" without the "." would be octal) connected with the arithmetic operators "+", "-", or space (which is equivalent to "+" for convenience). $Q (Escape Q) is a special symbol whose value is the last quantity that rug typed out. Further, the user can generate ascii or rad50 codes for characters and use these numbers in any symbolic expression: Typing single-quote followed by one letter produces the 16-bit quantity containing the letter in the low byte and zero in the high byte. Typing double-quote followed by two ascii letters will produce the 16-bit quantity containing the first letter in the low byte and the second in the high byte. Typing "&" followed by three letters produces the 16-bit rad50 equivalent of the letters. If the user types an undefined symbol in an expression, Rug will beep, generally allowing the user to rubout and correct the symbol. When the expression is done an error will usually result (unless the command doesn't care) if there was any undefined symbol within the expression. There is one exception to the beep-rule: if the first symbol in the expression is undefined, then the expression will be terminated immediately, not allowing the user to correct it. Many commands will produce different results depending on certain modes that the user can set. Most modes have "temporary" and "permanent" settings: temporary modes act until Rug prompts with a "*". The "*" prompt indicates that all modes have been reset to their permanent settings. There are several symbols with predefined values. These are listed below (note that "user" refers to the user program being run, e.g. "user R0" means the programs R0): . Contains the last address opened. %0 - %7 Standard register definitions (user regs). .M Mask for searches: .M has the 16-bit mask. .M+1 has the 16-bit low address. .M+2 has the 16-bit hi address. .STBEG Location containing pointer to bottom (low address) of symbol table. .STEND Address of bottom of predefined RUG symbol table. .START Address of RUG's starting address. .MXOFF Initially 200. A value must be within this distance symbol to be printed as that symbol+offset. ESCAPE COMMANDS ( is symbolic expression): $Q Value of last quantity typed out $G Start execution at default start address. $G Start execution of user program at . $$G Set default start addr to and start execution. $W Search from low-address (.M+1 contents) to high-address (.M+2 contents) for masked by contents of .M. Each match found will be shown by printing location and contents. Any type-in by user will stop the search. $E Same as W but effective address search. I.e. BR FOO will match an arg of FOO. $B Set a breakpoint at . (There are 8 breakpoints available. Use :LISTB to see where breakpoints are currently set.) $P Proceed user program after hitting breakpoint. If no , proceed until hitting any breakpoint. If then set this breakpoint's count to and proceed. If a breakpoint has a count, then it will only break after being hit count many times. $U Remove breakpoint at . If no then remove all breakpoints. $C Set temporary type-out mode "contants", i.e. type contents of open locations as octal numbers. $S Set temp type-out mode "symbols", i.e. type open location contents as symbols. $I Set temp type-out mode "instructions", i.e. type open location contents as instructions. $R Set temp type-out mode "relative addresses", i.e. type addresses as symbolic references, INC FOO. $A Set temp type-out mode "absolute addresses", i.e. type addresses as octal numbers, INC 14345. $" Set temp word type-out mode to "ascii", i.e. when opening words, type out ascii characters. $' Set byte word type-out mode to "ascii", ie. when opening words, type out ascii characters. Note that examining a location in Ascii mode that contains control characters will cause them to be shown as the usual ^ representation, (or $ for escape) except that Space, CR, LF and Bell will actually be sent to the terminal, Tab will cause the correct number of spaces to be sent,and FF will clear the screens on displays and CRLF on theirs. $& Set temp type out mode to radix 50. ASCII A - Z $ . % 0 - 9 Radix 50 (in octal) 1 - 32 33 34 35 36 - 47 $$C $$S $$I $$R $$A $$" $$' $$& Like $C $S $I $R $A $" $' and $& but set permanent type-out modes. $L Load program. Source loaded from depends on how this RUG was assembled and environment its running in. For stand alone disk system, takes block number after the L. $Y Dump program. Only meaningful in standalone disk system thus far. Takes arg of lblock number after the Y. $Z Zero all of core. I will change this to $$Z to be less dangerous soon. SINGLE-LETTER COMMANDS: : Define to be . (i.e. current location). = Print value of . > Define to be , e.g. 1234>FOO defines FOO to be 1234. / Open location as word. \ Open location as byte. (Carriage-return) Deposit into current location if it is open and then close the location and prompt. No means no change to current location. (Line-feed) Deposit into current location if open, then open next location. No means no change to current location. ^ Deposit and open previous location. No change if no . ] Open location as symbol. [ Open location as number. $K Half-kill so that it won't be used for printing symbolic addresses. $$K Kill all symbols in program. ^L Clear screen. ^N Proceed program in single-step mode: no means execute one instruction;q means execute instructions then return to RUG. _ Type out in symbolic mode, but don't set either the temporary or permanent modes. ; Type out in the last specified temporary or permanent mode (see $A, $C, $I, $R, $S). $; Like ; but also set the temporary mode to the last specified temporary or permanent mode. $$; Like $; but set permanent mode instead of temporary mode. @ Open location addressed by PC in instruction mode COLON COMMANDS: :HELP List the colon commands. :LISTB List all breakpoints set, and their counts. :EXIT Exists Rug