vagrant-moses
A standalone C64 machine model: the memory map, the $01-banked bus and ROMs
(sidplayfp's ROM-less set, or the real ones fetched and SHA-256 verified into a cache),
the VIC-II and two CIAs over a shared two-phase event scheduler, a cycle-exact 6510
machine matching libsidplayfp, KERNAL file/keyboard traps, the power-on RAM, the
installed-interrupt-vector discovery, the ROM-free IRQ dispatch path, and native
extraction of files from release media (zip/gzip, d64/d71/d81, t64, p00).
Pure Python with no runtime dependencies; the CPU-driven parts (Machine, flat_mpu,
KernalHost) run on jennings via the cpu extra; the media CLI's progress bar
needs the cli extra. The SID audio model and SID-file knowledge (PSID/RSID
containers, subtune headers, drivers) are deliberately not here.
Install
pip install -e ".[cpu]"
Use
from vagrant_moses import Cia, Machine, Scheduler, Vic, c64
mem = bytearray(c64.poweron_ram()) # 64 KiB power-on image
vec, kernal = c64.installed_vector(mem, written, (lo, hi))
entry_pc = c64.install_irq_entry(vm, vec, kernal, img=(lo, hi))
sched = Scheduler()
vic = Vic(sched, ntsc=False, irq=lambda on: ..., set_ba=lambda on: ...)
cia = Cia(sched, interrupt=lambda on: ..., new=False)
machine = Machine(sids={0xD400: sid_device}) # cycle-exact C64
machine.ram[0x1000:0x1000 + len(code)] = code
machine.run(machine.reset(0x1000) + 985248) # one PAL second
from vagrant_moses import iter_prgs
for path, prg in iter_prgs("release.zip", blob): # zip -> d64.gz -> d64 -> PRG
...
pip install "vagrant-moses[cli]"
vagrant-moses media extract dl/ -o prg/ # prints sha256 size $load path
Docs
- The machine model: memory map, bus, ROMs, chips, machine, KERNAL and IRQ dispatch
- Release media: nested containers, disk geometries, tapes, and the CLI
Develop
pip install -e ".[dev]"
black --check src tests scripts && pylint src tests scripts && pytest
Metadata
Release files for vagrant-moses 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vagrant_moses-0.4.0.tar.gz | 60.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vagrant_moses-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 105.8 kB
Release files / vagrant_moses-0.4.0.tar.gz
| Download URL | vagrant_moses-0.4.0.tar.gz |
|---|---|
| Size | 60.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ab61377ab3b6aec16d857f4c9f0b0fed8411f627d2b11be8d3d1e6e88acf35be
|
|
BLAKE2b-256 checksum How to use checksums |
26f4e3a3dc8178abab9e5cda9db2f942835ad49359809448b41596edda03fc06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / vagrant_moses-0.4.0-py3-none-any.whl
| Download URL | vagrant_moses-0.4.0-py3-none-any.whl |
|---|---|
| Size | 45.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46e357c7f27a89f74706daa2cc8ff229fb54f97680983ffa75f53422cfff0062
|
|
BLAKE2b-256 checksum How to use checksums |
a1bbc083ccb08b7126aa3041c345b4a1a47fc03a0d5c398e1a3ac2bdacab8bda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log