Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
sst-6809:memory_latch_select_256b [2025/05/23 19:51] – [RAM 64K Map Select] robert | sst-6809:memory_latch_select_256b [2025/05/23 19:55] (current) – [RAM Mapping Note] robert | ||
---|---|---|---|
Line 39: | Line 39: | ||
==== RAM Mapping Note ==== | ==== RAM Mapping Note ==== | ||
- | :!: Be sure you have RAM switching code in ROM before switching to RAM pages 2 or higher. | + | :!: |
+ | |||
+ | Be sure you have RAM switching code in ROM before switching to RAM pages 2 or higher. | ||
ROM code should include functions to: | ROM code should include functions to: | ||
- | * Block copy code and data from RAM pages 0 and 1 into pages 2 and higher | + | * Register-only |
* The block copy must be split in two halves: | * The block copy must be split in two halves: | ||
- | * The first half gets the source byte and prepares to hand it to ... | + | * The first half gets the source byte into a register (only) |
- | * The second half accessible from the destination RAM page | + | * Switch the RAM page page but let the Program Counter fall through into the next ROM instruction which is the start of the second half of the copy |
- | * Then transfer | + | * The second half takes the register and posts it into a destination address of the destination RAM page |
+ | * Then switch | ||
* Transfer the Program Counter into the destination address of the destination RAM page to start running code from | * Transfer the Program Counter into the destination address of the destination RAM page to start running code from | ||
===== Upper 32K ===== | ===== Upper 32K ===== |