Skip to main content

jennings

A py65-compatible 6502/6510 MPU, assembler, and disassembler with first-class support for all 105 documented NMOS 6510 illegal opcodes. Drop-in for py65: change import py65… to import jennings….

Where py65 stubs the illegals (inst_not_implemented — a 0-cycle skip), jennings executes them byte- and cycle-exact via deity-informant's hardware-validated lift + PcodeVM engine, and its assembler/disassembler decode them as real mnemonics instead of ???.

Install

pip install jennings          # pulls deity-informant (pure-Python engine)
pip install jennings[dev]     # + test/lint tooling (pytest, black, pylint, py65)

Use

from jennings.devices.mpu6502 import MPU
from jennings.memory import ObservableMemory
from jennings.disassembler import Disassembler
from jennings.assembler import Assembler

mpu = MPU(memory=ObservableMemory())     # same API as py65.devices.mpu6502.MPU
mpu.memory[0:2] = [0xAF, 0x10]           # LAX $10 — an illegal py65 cannot run
mpu.step()                               # a, x <- mem[$10]; cycle-exact

Assembler(MPU()).assemble("SLO $20")     # [0x07, 0x20]
Disassembler(MPU()).instruction_at(pc)   # (len, "SLO $20")

Compatibility

Mirrors the py65 API surface used in practice: devices.mpu6502.MPU (.step/.reset/.irq/.nmi, a/x/y/sp/p/pc/memory/processorCycles, ByteAt/WordAt, disassemble/instruct/cycletime/extracycles), memory.ObservableMemory, disassembler.Disassembler, assembler.Assembler, utils.addressing.AddressParser.

Every legal opcode is validated byte-, flag-, and cycle-exact against py65 in CI; the illegals are validated by NMS decomposition and (via the engine) byte-exact against sidplayfp. See docs/design.md, docs/illegal-opcodes.md, and docs/migrating-from-py65.md.

Limitations

No BCD (decimal-mode ADC/SBC), matching the deity-informant engine and the C64 target domain (playroutines run CLD). py65.monitor is not reimplemented.

Metadata

Release files for jennings 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jennings 0.1.3
File Size Uploaded
jennings-0.1.3.tar.gz 21.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jennings 0.1.3
File Interpreter ABI Platform
jennings-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 37.9 kB

Release files / jennings-0.1.3.tar.gz

Download URL jennings-0.1.3.tar.gz
Size 21.2 kB
Tags Source
SHA-256 checksum
How to use checksums
77c07b95719d12c50aa705869720c3acf7e56a1c04981a271c89da7933b8d5f4
BLAKE2b-256 checksum
How to use checksums
154c9bc2dac4a8ca066a88c1f77c50b6a2194f7622e89f317ec71f328ec6bc65
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 Jul 31, 2026.

Transparency log

Release files / jennings-0.1.3-py3-none-any.whl

Download URL jennings-0.1.3-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41b5738a4dc74c39de07f63c5a486712f4cfa30c786e8cd54c7d0bb77813f9d5
BLAKE2b-256 checksum
How to use checksums
eb4547548ff2d6e10365bd5dac6ecbc09711c7097b006e9f7858e6768b1c198d
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 Jul 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page