53 lines
1.1 KiB
Plaintext

* strip whitespace, leave one space before a keyword on a line, compress any
other whitespace to a single space
* white is blank, tab, /* ... */
* target-spec line comment, .e.g. #
* symbol = [letter | _ | . | $] [letter | _ | . | $ | digit]*
* stmt: {label}* { directive | instruction | empty }
* %r0..%r15 with %sp == %r15 ? (no, % is also an operator)
* $0..$15 with $sp == $15? (yes, these are just symbols)
* PDP10 syntax:
mnemonic accumulator,address
movem 1,foo
mnemonic accumulator,
popj 17,
mnemonic address
setzm foo
skipe 0(16)
address prefixed by "@" makes it indirect
setzm @foo
address suffixed by "(ixreg)" makes it indexed
setzm 3(16)
";" is line comment char
foo ;comment
radix is 8 by default; a single-digit number is always decimal
radix can be changed by the RADIX directive
a number can indicate its radix by a ^B, ^O, or ^D prefix (XXX: add ^X for hex)
symbols can use letters, digits, dot, dollar, and percent signs
exp1,,exp2 assembles two 18-bit expressions into a 36-bit value
< expr > parenteses
there is no "semi-colon" like symbol for putting multiple statements
on a single line