Feature | Trincot's | www.101computing.net/LMC/ | peterhigginson.co.uk/lmc/ |
Assembler syntax | STA + OTC | STA | STA + OTC |
Assembles into 3-digit numbers | yes | no, middle zero is omited! LDA 1 becomes 51 instead of 501. It executes correctly, but it is problematic for self modifying code | yes |
Comment start character | Any non-alphanumerical | not supported | slash / |
Labels case sensitive | no | no | yes |
Rejects unresolved labels | yes | no, the label name gets stored in the mailbox | yes |
Rejects mnemonics as labels | yes | yes | yes |
Can use mailbox numbers | yes | yes | yes |
Rejects numerical labels | yes | no, overrides mailbox number | no, ignores them |
DAT range | {0,...,999} | any string | any decimal number |
DAT parses hexadecimal | no | no | yes |
DAT parses binary | no | no | yes |
DAT parses scientific notation | no | no | yes |
DAT parses label reference | yes | no | yes |
DAT forbids decimals | yes | no | no |
DAT forbids non-numerical | yes | no | yes |
DAT default value | 0 | 0 | 0 |
DAT without label definition | yes | no | yes |
DAT is optional | yes | no | no |
DAT without value, with comment | yes | no | no |
INP range | {0,...,999} | any string | {-999,...,999} |
INP parses hexadecimal | no | no, but calculation does | yes |
INP parses binary | no | no | yes |
INP parses scientific notation | no | no | yes, but only loads part before E |
INP parses label reference | no | no | no |
INP forbids decimals | yes, non-digit is taken as delimeter | no | yes, it ignores them |
BRA without argument is error | yes | no, execution stops | no, default mailbox is 0 |
INP with argument is error | yes | no, is appended to opcode | no, is ignored |
Accumulator after LDA | {0,...,999} | result of parseInt: floating point, NaN, Infinity | [-999.0, 1000.0) - Hangs when reading really BIG numbers with 300 digits |
Accumulator after INP | {0,...,999} | exact copy (string) | {-999,...,999} |
99: LDA 0 behaviour | error on mailbox 99 | continues to 100 and remains in executing state | continues to 100 and stops in fast mode, but in non-fast mode will continue to 101, 102, ... reading undefined |
99: BRA 0 works | yes | yes | yes, but have to encode the BRA instruction inside the mailbox |
Loading too large program is rejected | yes | no, execution remains at PC=100 | yes, clipped at 98, and mailbox 99 is always 0 |
BRP branches when | flag is not set | accumulator is not negative and not NaN | accumulator is not negative |
BRZ branches when | accumulator is zero and flag is not set | accumulator is zero | accumulator is zero |
0xx is executed as HLT | yes | no, left-most digit is taken as opcode | yes |
4xx is an error | yes | no-op | yes |
999 is an error | yes | no-op | yes |
Can run Sort program | yes | yes | yes |