Skip to main content

kimdos

Commodore serial bus (IEC) disk access for the KIM-1, PAL-1/PAL-II and other replicas: a 6502 library, and a shell built on it, that load and save CBM DOS files on a 1541, an SD2IEC/uIEC or anything else that speaks the bus, with JiffyDOS for devices that have it. Written from the protocol, not from Commodore's code.

The library uses no zero page, preserves the user port's spare bits, and links anywhere with ld65; an llvm-mos C version comes with a KIM-1 platform for that compiler. The shell runs over the monitor's TTY:

KIMDOS
>S PROG,2000,290D
00, OK,00,00
>L PROG,4000
$4000-$490D
>$
1 "                " 32 2A
10   "PROG"             PRG
65535 BLOCKS FREE.
>S PROG,2000,2001
63,FILE EXISTS,00,00

Install

pip install kimdos
kimtape load --port /dev/ttyUSB0 https://github.com/anarkiwi/kimdos/releases/latest/download/kimdos-2000.ptp --go 2000

Each release has the shell at $0400, $2000 and $C000 (kimdos-<org>.ptp, .bin, .lbl), also in the package (kimdos.build.packaged); it needs about 2.5K of RAM there. The package ships the llvm-mos C library: python -m kimdos.clib prints its directory.

To build, with cc65: make ORG=2000 writes build/kimdos-2000.{bin,ptp,lbl,map} and build/kimdos.lib; make clib builds build/c/libkimdos.a with llvm-mos in docker.

Shell

Command
$[pattern] directory, e.g. $, $0:A*
@ drive status
@command DOS command, e.g. @S:OLD, @R:NEW=OLD, @CD:GAMES
L name[,addr] load, to the file's own address or to addr
V name[,addr] verify against memory
S name,start,end save start-end inclusive; @0:name replaces
#[device] show or set the device number (decimal, default 8)
J[0|1] show, or turn off or on, JiffyDOS (default on)
Q return to the monitor; G then runs what was loaded

Names may be quoted. From the keypad, put the KIM tape ID in $17F9 and run ORG+3 to load the file named by its two hex digits, or set $17F5-$17F8 as for a tape save and run ORG+6 to save.

Simulator

kimdos sim --dir ./disk           # the shell against .prg files in ./disk
kimdos sim --no-jiffy             # against a drive without JiffyDOS
kimdos bench                      # cycles per byte and JiffyDOS margins
kimdos board --port /dev/ttyUSB0 --install '$' '@'

Documentation

Metadata

Release files for kimdos 0.2.0

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

Source distribution (sdist)

Source distribution for kimdos 0.2.0
File Size Uploaded
kimdos-0.2.0.tar.gz 60.1 kB Details

Built distribution (wheel)

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

Total release size: 117.5 kB

Release files / kimdos-0.2.0.tar.gz

Download URL kimdos-0.2.0.tar.gz
Size 60.1 kB
Tags Source
SHA-256 checksum
How to use checksums
bb9693d25059c8a7c7283da618aa7ccfac93ebe9d383ad2649d2fec449297d0a
BLAKE2b-256 checksum
How to use checksums
04178125f63862eb6c25abf97287e855b397c4c2f8acbb93b1b8975779b57327
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 11, 2026.

Transparency log

Release files / kimdos-0.2.0-py3-none-any.whl

Download URL kimdos-0.2.0-py3-none-any.whl
Size 57.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06de4d5c76a1746a4ccabe7e787b524daf44b0c9a57d2d1711d68ed8d1971e34
BLAKE2b-256 checksum
How to use checksums
ff1a482d4afbbff1f5e0dd0112997e142ab130c14ea2f8e7c2287c55bd394a97
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

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