# 2023-09-11 — Dev notes ## ISA ### To do - Remove the END instruction, and use `$00` for NOP ### Goals I want to keep a basic "bare minimum" set at `$00`-`$0F`, since that serves the educational goal. That leaves the high byte free for adding more complex/convenience features. ### Possible additions #### Things that are hard to do otherwise - bitwise operations - rotate left - rotate right #### Conveniences - multiplication - division - add with carry - sub with borrow - comparisons - less than - greater than ### Layout idea Maybe try to roughly map additional features onto the same areas as the basic ones: | x | Mnm | Mnm | |---|-----|-----| | 0 | NOP | | | 1 | STO | ROL | | 2 | STO | ROR | | 3 | LDA | ARL | | 4 | LDA | ARR | | 5 | ADD | MUL | | 6 | ADD | MUL | | 7 | SUB | DIV | | 8 | SUB | DIV | | 9 | HOP | HLT hop < | | A | HOP | HLT hop < | | B | JMP | HGT hop > | | C | JMP | HGT hop > | | D | FTG | | | E | FHP | | | F | | | ### Extended system - Additional 'B' accumulator?? (cf. motorola 6800) ### Earlier notes - [2023-08-23](2023-08-23.md#isa---instruction-set-layout-notes) - [2023-09-04](2023-09-04.md#isa) - [2023-09-07](2023-09-07.md#isa) ## Pinout - [ ] TODO: review highlights in Petzold book ### Earlier notes - [2023-09-07: 1802 note](2023-09-07.md#1802-note) - [2023-09-07: pinout brainstorm ](2023-09-07.md#cpu-pinout-brainstorm) - [2023-08-30: 1802](2023-08-30.md#1802) - [2023-09-04: screen memory as DMA area](2023-09-04.md#screen-memory-as-dma-area-general-purpose)