sd:sd-8516_programmer_s_reference_guide
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sd:sd-8516_programmer_s_reference_guide [2026/03/30 11:24] – appledog | sd:sd-8516_programmer_s_reference_guide [2026/03/30 12:07] (current) – appledog | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| === Key Specifications | === Key Specifications | ||
| * 16-bit architecture with 16 general-purpose registers | * 16-bit architecture with 16 general-purpose registers | ||
| - | * 32-bit and 64-bit register pairing | + | * 24-bit addressing with register pairing system |
| - | * Clock speed: **125 MIPS** on a Geekbench 6 baseline | + | |
| * Memory: 256KB addressable via 4-bank system | * Memory: 256KB addressable via 4-bank system | ||
| * ~40× performance improvement over legacy 8510 design | * ~40× performance improvement over legacy 8510 design | ||
| Line 25: | Line 24: | ||
| === Default Performance: | === Default Performance: | ||
| * Standard clock speed: 4MHz (1.28 MIPS) | * Standard clock speed: 4MHz (1.28 MIPS) | ||
| - | * Overclocked: | + | * Overclocked: |
| - | * Memory bandwidth: | + | * Memory bandwidth: |
| * Sound system overhead: < 5% CPU time | * Sound system overhead: < 5% CPU time | ||
| * Video refresh: 60 Hz (16.67ms frame time) | * Video refresh: 60 Hz (16.67ms frame time) | ||
| Line 334: | Line 333: | ||
| == Appendix 4. Instruction Set Architecture | == Appendix 4. Instruction Set Architecture | ||
| * Moved to: [[Appendix 4 Instruction Set Architecture]] | * Moved to: [[Appendix 4 Instruction Set Architecture]] | ||
| - | |||
| - | FIXME | ||
| - | |||
| - | more to come! | ||
| - | |||
| - | **Examples: | ||
| - | <codify armasm> | ||
| - | ; ld/st example | ||
| - | LDA # | ||
| - | LDAL #$42 ; Load immediate byte $42 into AL | ||
| - | LDA [$F000] | ||
| - | STA [2: | ||
| - | </ | ||
| - | |||
| - | === Arithmetic Operations | ||
| - | |||
| - | |= Instruction |= Description |= Flags Affected | | ||
| - | | ADD | Add | Z, N, C, V | | ||
| - | | SUB | Subtract | Z, N, C, V | | ||
| - | | MUL | Multiply (result in AB) | Z, N | | ||
| - | | DIV | Divide (quotient in A, remainder in B) | Z, N | | ||
| - | | MOD | Modulo | Z, N | | ||
| - | | INC | Increment | Z, N | | ||
| - | | DEC | Decrement | Z, N | | ||
| - | |||
| - | === Logic Operations | ||
| - | |= Instruction |= Description |= Flags Affected | | ||
| - | | AND | Bitwise AND | Z, N | | ||
| - | | OR | Bitwise OR | Z, N | | ||
| - | | XOR | Bitwise XOR | Z, N | | ||
| - | | NOT | Bitwise NOT | Z, N | | ||
| - | | TEST | Bitwise AND (no write) | Z, N | | ||
| - | |||
| - | === Shift/ | ||
| - | |||
| - | |= Instruction |= Description |= Flags Affected | | ||
| - | | SHL | Shift left | Z, N, C | | ||
| - | | SHR | Shift right | Z, N, C | | ||
| - | | ROL | Rotate left | Z, N, C | | ||
| - | | ROR | Rotate right | Z, N, C | | ||
| - | |||
| - | === Comparison & Branching | ||
| - | |||
| - | |= Instruction |= Description |= Flags Affected | | ||
| - | | CMP | Compare (subtract, discard result) | Z, N, C, V | | ||
| - | | JMP | Unconditional jump | None | | ||
| - | | JZ | Jump if zero | None | | ||
| - | | JNZ | Jump if not zero | None | | ||
| - | | JC | Jump if carry set | None | | ||
| - | | JNC | Jump if carry clear | None | | ||
| - | |||
| - | === Subroutine Operations | ||
| - | |||
| - | |= Instruction |= Description | | ||
| - | | CALL | Call subroutine (push IP, jump) | | ||
| - | | RET | Return from subroutine (pop IP) | | ||
| - | | PUSH | Push register to stack | | ||
| - | | POP | Pop from stack to register | | ||
| - | | PUSHA | Push all registers | | ||
| - | | POPA | Pop all registers | | ||
| - | | INT | Software interrupt | | ||
| - | |||
| - | === Flag Operations | ||
| - | |||
| - | |= Instruction |= Description | | ||
| - | | SSI | Enable Sound System Interrupts | | ||
| - | | CSI | Clear Sound System Interrupts | | ||
| - | | SEC | Set carry flag | | ||
| - | | CLC | Clear carry flag | | ||
| - | | SEZ | Set zero flag | | ||
| - | | CLZ | Clear zero flag | | ||
| - | | SEN | Set negative flag | | ||
| - | | CLN | Clear negative flag | | ||
| - | | SEV | Set overflow flag | | ||
| - | | CLV | Clear overflow flag | | ||
| - | |||
| - | === Other | ||
| - | |||
| - | |= Instruction |= Description | | ||
| - | | TSX | Transfer SP to register* | | ||
| - | | TXS | Transfer register to SP* | | ||
| - | |||
| - | * (*) these opcodes were suggested by stackminer from the Fantasy Console 2.0 discord. Thank you, stackminer! | ||
| - | |||
| - | === System Operations | ||
| - | |= Instruction |= Description | | ||
| - | | CART | Cartridge trigger, used for Cartridge BASIC and others. | | ||
| - | | YIELD | Poll UI, System Clock, Sound Chip, Video Chip, and others | | ||
| - | | NOP | No operation | | ||
| - | | HALT | Halt CPU (set H flag) | | ||
| == Appendix 5. Sound System (SD-450) | == Appendix 5. Sound System (SD-450) | ||
sd/sd-8516_programmer_s_reference_guide.1774869899.txt.gz · Last modified: by appledog
