mirror of
https://github.com/rkujawa/rk65c02.git
synced 2026-03-11 03:16:11 +00:00
- 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
14 lines
606 B
ArmAsm
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
|