Metadata-Version: 2.4
Name: oaknut-romfs
Version: 12.4.1
Summary: Python library for Acorn ROM Filing System (ROMFS) paged-ROM images
Author-email: Robert Smallshire <robert@smallshire.org.uk>
License-Expression: MIT
Project-URL: Homepage, https://github.com/rob-smallshire/oaknut/tree/master/packages/oaknut-romfs
Project-URL: Documentation, https://rob-smallshire.github.io/oaknut/disc/api/reference/romfs.html
Project-URL: Repository, https://github.com/rob-smallshire/oaknut
Project-URL: Issues, https://github.com/rob-smallshire/oaknut/issues
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: oaknut-file>=10.0
Requires-Dist: oaknut-discimage>=10.0
Requires-Dist: oaknut-filesystem>=10.0
Requires-Dist: oaknut-basic>=10.0
Provides-Extra: cli
Requires-Dist: oaknut-cli>=10.0; extra == "cli"
Dynamic: license-file

# oaknut-romfs

Acorn ROM Filing System (ROMFS) support for the [oaknut](https://github.com/rob-smallshire/oaknut)
family of packages.

ROMFS is the filing system for paged ROMs on the BBC Micro and Acorn
Electron — sideways ROMs and cartridges. It stores files in the same
block layout as the Cassette Filing System (CFS), with the ROM image
standing in for the tape: each file is a chain of CFS-format blocks
carrying Acorn load and execution addresses, a block number, a length,
a flag byte, and header and data CRCs, introduced by a standard
paged-ROM service header.

The medium is read-only ROM, so the filing system is flat: there are no
directories, and a file's metadata is the load/exec pair plus a lock
bit, exactly as on cassette.

This package contributes ROMFS to the `oaknut.filesystem` extension axis,
so ROMFS images are identified, listed and read through the `disc` CLI
alongside the disc-based filing systems.

## Status

Pre-alpha. The package is being built up format-first: see
[`docs/romfs-format-spec.md`](docs/romfs-format-spec.md) for the on-ROM
byte layout and [`docs/architecture.md`](docs/architecture.md) for the
package design and its mapping onto the `oaknut.filesystem` contract.

## Installation

```sh
uv add oaknut-romfs
```

## Licence

MIT — see [LICENSE](LICENSE).
