Repository navigation
Releases: charlieh0tel/mc683xx
Releases · charlieh0tel/mc683xx
Release list
mc683xx 0.2.0
Peripherals on no chip select, and DSACK sized cycle by cycle.
Breaking changes
mc683xx_board::peripheral::PeripheralAccess::selectis nowOption<ChipSelect>:Nonefor a peripheral on no select.PeripheralAccess::newkeeps its signature;PeripheralAccess::on_no_selectbuilds a no-select access.mc683xx_board::chip::ChipBuildergains a required method,bus_peripheral, for a chip implementation outside this workspace.- Python:
PeripheralAccess.selectmay beNone.
New
- Bus peripherals:
Builder::bus_peripheral(peripheral, decodes, dsack)puts a peripheral on no chip select. It takes the cycles its own decode does (mc683xx_modules::peripheral::BusDecode: address windows, interrupt acknowledges) and drives DSACK itself, checked against PEPAR (DsackFault::BusUnassigned). It shares a cycle with any select that matches, the first DSACK ending it, and takes precedence over a fixed memory. The core serves no page a window touches. - Board files: an attachment
{ base = ..., size = ... }or{ iack = <level> }is on no select; such a peripheral statesdsack. Peripherals with the same decode share it by role and lane, as on a select. The board-file format stays version 1. - DSACK per cycle:
MappedPeripheral::dsack_portand the boardPeripheral::dsack_portlet a peripheral give each cycle's port size (16 bits on DSACK1, 8 on DSACK0 alone). - Python:
Builder.bus_peripheral(object, windows=..., acknowledges=..., dsack=...), a peripheral's optionaldsack_port,DsackFault.BusUnassigned. mc683xx_modules::peripheral::iack_address.
Install
cargo add mc683xx-board@=0.2.0
pip install mc683xx==0.2.0
mc683xx 0.1.0
The first release of mc683xx, an emulator of the Motorola MC68331.
What is in it
- mc683xx-cpu32: the CPU32 core, checked against the manuals, SingleStepTests' 68000 subset, and differential runs against Musashi and Unicorn.
- mc683xx-modules and mc683xx-mc68331: the SIM (clock, chip selects, ports, watchdog, periodic interrupt, bus monitor), the QSM (QSPI and SCI) and the GPT, composed into the chip.
- mc683xx-board: board files (
[chip],[[memory]],[[peripheral]],[[net]]), board time, nets and the run loop, with complete snapshots. - mc683xx-peripherals: stock chips as board-file peripherals: 74x164, 74x244, 74x373, 74x374, AD569, ADC0838, AT28C64B, MC144110, MC68681 and SCC68692.
- mc683xx-gdb: a GDB remote stub over the bare CPU, the chip and a board.
- mc683xx-run: the runner,
cargo install mc683xx-run. - mc683xx on PyPI: Python bindings, abi3 wheels for Python 3.10 and later on Linux, macOS and Windows.
Install
cargo add mc683xx-board@=0.1.0
pip install mc683xx==0.1.0
The crates depend on each other at exactly one version; pin them together.
See the README and docs/ for the host guide, board files, peripherals, tracing, Python and gdb.