cardiograph-computer/2023-09-11.md

75 lines
1.6 KiB
Markdown

# 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)