Files
RISC-B/docs/memory.md
2025-02-18 14:44:08 +01:00

53 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Memory Map Documentation
#### PCM Buffer
| Function | Address |
|----------------------------------|----------|
| **PCM Voice Buffer (High Byte)** | `0xDF00` |
| **PCM Voice Buffer (Low Byte)** | `0xDF01` |
If you want to write to both, write low byte first
#### Voice Generators
| Voice | Volume | Waveform | Phase | Frequency (High Byte, write last) | Frequency (Low Byte) |
|-------------|----------|----------|----------|-----------------------------------|----------------------|
| **Voice 0** | `0xDF02` | `0xDF03` | `0xDF04` | `0xDF05` | `0xDF06` |
| **Voice 1** | `0xDF07` | `0xDF08` | `0xDF09` | `0xDF0A` | `0xDF0B` |
| **Voice 2** | `0xDF0C` | `0xDF0D` | `0xDF0E` | `0xDF0F` | `0xDF10` |
#### Display Controls
| Display | Address |
|---------------|----------|
| **Display A** | `0xDF12` |
| **Display B** | `0xDF13` |
| **Display C** | `0xDF14` |
| **Display D** | `0xDF15` |
| **Display E** | `0xDF16` |
| **Display F** | `0xDF17` |
| **Display G** | `0xDF18` |
| **Display H** | `0xDF19` |
#### Switch Inputs
| Switch Bank | First 2 rows Address | Last 2 rows Address |
|----------------|----------------------|---------------------|
| **Switches A** | `0xDF20` | `0xDF21` |
| **Switches B** | `0xDF22` | `0xDF23` |
| **Switches C** | `0xDF24` | `0xDF25` |
| **Switches D** | `0xDF26` | `0xDF27` |
### GPU Memory
- **Base Address:** `0xEF00`
- **Size:** `160 × 160` pixels
- **End Address:** `0xEF00 + (160 × 160) = GPU_END`
- **Color Encoding:**
- Red: Bits `[7:5]` scaled (0-7 → 0-255)
- Green: Bits `[4:2]` scaled (0-7 → 0-255)
- Blue: Bits `[1:0]` scaled (0-3 → 0-255)
- Pixels are stored in a texture-compatible `RGBA8888` format.
## Memory Operations