1
0
mirror of https://github.com/rkujawa/rk65c02.git synced 2026-03-11 03:16:11 +00:00
Files
rk65c02/examples/mmu_multitasking_kernel.s
Radosław Kujawa ee826da6ec MMU: host-pluggable translation, TLB, JIT coherence, docs and examples
- Add MMU API: translate and fault callbacks, begin/mark/end_update, TLB
- Translation result: ok, paddr (32-bit), perms (R/W/X), fault_code, no_fill_tlb
- Internal TLB (transparent); no_fill_tlb for context-dependent mappings
- JIT: invalidate only code on changed pages; code-page refcount
- Fault: EMUERROR, mmu_last_fault_*; resume by re-run after mapping update
- doc/MMU.md: design goals, API reference, usage, guest contract, limits
- examples/mmu_cart: C64-style bank switch (host + guest asm)
- examples/mmu_multitasking: minimal task switch (host + guest asm)
- test_mmu: MMU tests; bench_mmu: ns/insn for MMU configs
- README: MMU feature and example links

Made-with: Cursor
2026-03-07 04:05:50 +01:00

14 lines
606 B
ArmAsm

; =============================================================================
; MMU Multitasking — Shared kernel (loaded at physical $8000)
; =============================================================================
; Assemble to mmu_multitasking_kernel.rom. The host loads this at $8000-$8FFF.
; Virtual $8000-$FFFF is identity-mapped (shared); all tasks see this code.
; =============================================================================
.org 0x8000
kernel:
lda #0
sta 0xFF00 ; request task 0 (host sets mapping, writes 0 to 0xFF01)
jmp 0x1000 ; run task 0 at virtual 0x1000