deity-informant
NMOS 6510 toolkit: a 6510 -> raw-P-Code lifter + pure-Python P-Code VM (all 105 documented illegal opcodes are first-class), and a 6510 Ghidra/pypcode SLEIGH processor module. The jennings package supplies the opcode table, assembler and disassembler, and its py65-compatible MPU executes on this lifter + VM.
The C64 machine model (power-on RAM, interrupt-vector discovery, ROM-free IRQ dispatch) in anarkiwi/vagrant-moses.
Components
deity_informant/lifter.py—lift(mem, pc)->{"ops", "len", "cyc", "pen", "ctrl", "prov", "stk"}raw P-Code;CYCLETIME/EXTRACYCLEStables.deity_informant/vm.py—PcodeVMinterpreter over a flat 64 KiB image (SID/VIC/CIA volatile IO modeled);run_sub/run_irq/run_irq_drivendrivers (handler fixed, or resolved per entry viavector(addr)).deity_informant/cli.py—deity-informantconsole script.deity_informant/sleigh/— SLEIGH module (languages/6510.slaspec= stock 6502 +6510_illegal.sinc),smc.py(SMC context constructors),build.py, andpypcode_context()(a loaded pypcodeContextfor the 6510).ghidra/6510/headless/— headless Ghidra integration test, run viaDockerfile.ghidra.deity_informant/hello_world.py— 33-byte C64 program usingLAX/ISC+ self-modifying code; the fixture for the VM and Ghidra tests.tools/doclinks.py— every[text](target)indocs/andREADME.mdresolved: the file, and the#anchoragainst the target's own headings.
Install
pip install deity-informant # from PyPI; the SLEIGH sources ship as package data
pip install -e ".[dev]" # from a checkout: + test/lint tooling, py65, pypcode
CLI
deity-informant disasm IMAGE [--org ADDR] [--start ADDR] [--count N] # illegal-aware disassembly
deity-informant pcode IMAGE --at ADDR [--org ADDR] # raw P-Code for one instruction
deity-informant run IMAGE --init ADDR [--play ADDR --frames N] # execute in PcodeVM, dump $D400.. grid
deity-informant emit-sleigh [-o DIR] [--magic 0xEE] # build/install the 6510 SLEIGH module
Python API
from deity_informant import lift, PcodeVM, run_sub
vm = PcodeVM(mem); run_sub(vm, entry, {}, lift) # execute a subroutine to its RTS
Ghidra
deity-informant emit-sleigh -o "$GHIDRA_INSTALL_DIR/Ghidra/Processors/6510/data/languages"
Resolves the stock 6502.slaspec + SLEIGH compiler from $GHIDRA_INSTALL_DIR or a pypcode install; the stock spec's JSR/RTS return address and SBC borrow are patched to the hardware's. Import a C64 image as Raw Binary, language 6510:LE:16:default. docker build -f Dockerfile.ghidra -t di-ghidra . && docker run --rm di-ghidra runs the headless integration test.
Tests
black --check deity_informant/ tests/ && pylint deity_informant/
deity-informant emit-sleigh
pytest tests/ -n auto --cov=deity_informant --cov-fail-under=85
References
Illegal-opcode semantics and cycles: "No More Secrets — NMOS 6510 Unintended Opcodes" (csdb.dk/release/?id=258111).
Metadata
Release files for deity-informant 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| deity_informant-0.6.2.tar.gz | 41.5 kB | With provenance | Details for deity_informant-0.6.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| deity_informant-0.6.2-py3-none-any.whl | Python 3 | none | any | Details for deity_informant-0.6.2-py3-none-any.whl |
Total release size: 74.9 kB
Release files / deity_informant-0.6.2.tar.gz
| Download URL | deity_informant-0.6.2.tar.gz |
|---|---|
| Size | 41.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fb5efcaa292fc439ce3f45a94060874b2f2a967f9fe6d62f833216f8fbe0d19
|
|
BLAKE2b-256 checksum How to use checksums |
824310353607575a2504392da0f385516a828c2a45d2c985b7a7b3d971ce0225
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 31, 2026.
Transparency logRelease files / deity_informant-0.6.2-py3-none-any.whl
| Download URL | deity_informant-0.6.2-py3-none-any.whl |
|---|---|
| Size | 33.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
090afb61e2187bd6c03a86dc65de1627c3e832a54abc9f0fb9bf77ec2080565e
|
|
BLAKE2b-256 checksum How to use checksums |
9aaf6d432e62538417f2eca47b50a3ec4774c449ac04ee2ac3e7c2f20e3cae4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 31, 2026.
Transparency logSecurity for deity-informant 0.6.2
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for deity_informant-0.6.2.tar.gz
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 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.