|
`0000mdddooooooss (0xUUUUuuuu)`
|
|
# Mathematical Opcodes
|
|
|
|
|
|
|
|
`0b0000mdddooooooss (0xUUUUuuuu)`
|
|
|
|
|
|
Use ALU(s) to do an operation. If m is 1 then all ALUs will be used, if 0 then only one ALU will be used.
|
|
Use ALU(s) to do an operation. If m is 1 then all ALUs will be used, if 0 then only one ALU will be used.
|
|
The 32-bit argument is optional. It must be included if u is used in the source or destination. It may not be included otherwise.
|
|
The 32-bit argument is optional. It must be included if u is used in the source or destination. It may not be included otherwise.
|
... | @@ -18,4 +20,30 @@ The 32-bit argument is optional. It must be included if u is used in the source |
... | @@ -18,4 +20,30 @@ The 32-bit argument is optional. It must be included if u is used in the source |
|
| `10` | RAM[u] |
|
|
| `10` | RAM[u] |
|
|
| `11` | ALURAM[u] |
|
|
| `11` | ALURAM[u] |
|
|
|
|
|
|
|
|
# Jumps and Calls
|
|
|
|
|
|
|
|
`0b001prccc_nnnnnnnn (0xNNNN)`
|
|
|
|
|
|
|
|
Generic conditional and unconditional relative and absolute(long) call/jump format. p = 1 for call, 0 for jump. r = 1 for relative, 0 for absolute. In a relative call/jump n is added to the PC. In an absolute call/jump, the extra uint16 N is loaded and PC = `(N << 8) | n`
|
|
|
|
|
|
|
|
| c (binary) | condition |
|
|
|
|
| ---------- | --------- |
|
|
|
|
| `000` | always |
|
|
|
|
| `001` | never |
|
|
|
|
| `010` | z flag |
|
|
|
|
| `011` | nz flag |
|
|
|
|
| `100` | g flag |
|
|
|
|
| `101` | ge flag |
|
|
|
|
| `110` | l flag |
|
|
|
|
| `111` | le flag |
|
|
|
|
|
|
|
|
# Extended
|
|
|
|
|
|
|
|
`0b11111111_0000rrrr 0xvvvv`
|
|
|
|
|
|
|
|
Load video control register r with value v
|
|
|
|
|
|
|
|
| r (binary) | register |
|
|
|
|
| ---------- | -------- |
|
|
|
|
| `0000` | pixel clock divider * 2 |
|
|
|
|
| `0001` | ???? | |
|
|
|
\ No newline at end of file |