Package: atrip
Python library for hierarchical filesystem parsing on Atari 8-bit and Apple ][
disk images. The successor to atrcopy, this is under heavy development and is
still in a beta state. It is the basis for disk image support inOmnivore 2.Pronounced “uh-trip”, the name is a happy coincidence that a dictionary word
exists that is the quasi-portmanteau of “ATR” (the Atari 8 bit disk image
container) & “rip” (extracting stuff from images). The actual word is a
nautical term: “atrip” as in “the anchor is atrip”, meaning the ship’s anchor
is off the bottom. I have no particular affinity for ships, but that I had some
justification in the portmanteau is enough for me.ContentsPrerequisitesPythonRuntime DependenciesDevelopment DependenciesInstallationFeaturesSupported FormatsSupported Disk Image TypesSupported File System FormatsOther Supported FormatsArchivesSupported Compression FormatsSegment StructureReferencesRelated Atari ProjectsRelated Apple ProjectsPrerequisitesPythonSupported Python versions:Python 3.6 (and later)Runtime Dependenciesnumpyjsonpicklelz4It will be automatically installed when installing withpipas described
below.Development Dependenciespytestpytest-cov (optional)The test suite uses pytest and pytest-cov, but these are not required for
normal installation.InstallationATRipis available in thePyPIand installable usingpip:pip install atripLinux and macOS note: if numpy needs to be installed on your system, it may be
compiled from source which can take several minutes.Featureslist contents of disk imagescopy files to and from disk imagesdelete files from disk imagescreate new disk imagesconcatenate binary data together into a file on the disk imagecompile assembly source into binary files ifpyatasmis installedSupported FormatsSupported Disk Image TypesXFD: XFormer images, basically raw disk dumpsATR: Nick Kennedy’s disk image format; includes 16 byte headerDCM: Disk Communicator images, Bob Puff’s compression format for Atari disk imagesCAS: Atari cassette imagesDSK: Apple ][ DOS 3.3 disk image; raw sector dumpSupported File System FormatsFile SystemPlatformReadWriteStatusDOS 2 (90K)Atari 8-bitYesYesFully supportedDOS 2 (180K)Atari 8-bitYesYesFully supportedDOS 2.5 (130K)Atari 8-bitYesYesFully supportedDOS 3 (130K)Atari 8-bitNoNoUnimplementedSpartaDOSAtari 8-bitNoNoUnder developmentMyDOSAtari 8-bitPartialNoUnder developmentDOS 3.3Apple ][YesYesFully supportedProDOS 8Apple ][NoNoUnimplementedOther Supported FormatsFormatPlatform/descriptionReadWriteStatus.xexAtari 8-bit executable filesYesYesFully supportedKBootAtari 8-bitxexin boot diskYesYesFully supported.carAtari 8-bit cartridge imagesYesNoRead onlyBSAVEApple ][BSAVEdataYesYesFully supportedNote:Atari ROM cartridges are supported in both both plain binary and
atari800.carformatArchivesArchives containing multiple disk images are supported, where each disk image
within the archive will be given a disk number and is addressable using that
prefix.ContainerFile ExtReadWriteStatusZip File.zipYesYesFully supportedTar File.tarYesYesFully supportedArchives may also be compressed with any of the general purpose compression
formats listed below.Supported Compression FormatsCompression is supported transparently, so any type of disk image compressed
with any of the following formats can be used directly, without first
decompressing it before runningATRip.Chaining is supported to an arbitrary depth, meaning that one compression
algorithm can be applied to the output of another. This is not practical except
in limited cases, as in a Disk Communicator image that is subsequently gzipped
(image.dcm.gz). But cases that actually make compression worse will be handled
as well, like image.gz.bz2.xz.bz2.gz.gz.gz.Compression FormatFile ExtReadWriteStatusgzip.gzYesYesFully supportedbzip2.bz2YesYesFully supportedlzma.xz, .lzmaYesYesFully supportedlzw (Unix compress).ZYesNoRead only[1]lz4.lz4YesYesFully supportedDisk Communicator.dcmYesYesAtari images only[2][1]Contains code from theBSD-licensed python implementationof Mark Adler’s reference C implementation of unlzw. See LICENSE.unlzw in the
source distribution for more details.[2]Not general purpose compression; Atari 720 or 1040 sector disk images only.
Contains my own python reimplementation of the DCM algorithms based on theGPL code in acvtSegment StructureCollection:      example.atr: plain file
Container:          D1: 92176 bytes, compression=none
Header:                 ATR Header (16 bytes)
DiskImage:              Atari SD (90K) Floppy Disk Image, size=92160, filesystem=Atari DOS 2
BootSegment:                Boot Sectors (384 bytes)
Segment:                        Boot Header (6 bytes)
Segment:                        Boot Code (378 bytes @ 0006)
VTOC:                       DOS2 SD VTOC (128 bytes)
Directory:                  Directory (1024 bytes)
Dirent:                         File #0  (.2.u. ) 004 DOS     SYS  035
FileType:                           DOS.SYS (4375 bytes) Unknown file type
Dirent:                         File #1  (.2.u. ) 039 DUP     SYS  054
AtariObjectFile:                    DUP.SYS (6708 bytes) Atari 8-bit Object File
ObjSegment:                             Segment #1 (6706 bytes)
Segment:                                    [$2949-$4376] (6702 bytes)Referenceshttp://www.atariarchives.org/dere/chapt09.phphttp://atari.kensclassics.org/dos.htmhttp://www.crowcastle.net/preston/atari/http://www.atarimax.com/jindroush.atari.org/afmtatr.htmlhttps://archive.org/details/Beneath_Apple_DOS_OCRRelated Atari Projectsatrcopy: Precursor toATRip; stable and includes command line utility to manipulate disk images.franny: (C, macOS/linux) Command line program to manage Atari DOS 2 and SpartaDOS II image and file systemsdir2atr: (Win) Suite of command line programs to manage Atari disk images and DOS 2/MyDOS file systemsatadim: (Win) Graphical program to manage Atari disk images and DOS 2/MyDOS file systemsRelated Apple ProjectsTurns out there are a ton of Apple ][ disk image viewers and editors! I was pointed to the list from thediskii project, so I’ve included most of that list here.a2disk(Python 3) DOS 3.3 reader and Applesoft BASIC detokenizercppo(Python) a script from thea2serverproject to read DOS 3.3 and ProDOS disk imagesDriv3rs(Python) Apple III SOS DSK image utilityc2d: (C, Win/macOS/linux) Command line program to create bootable Apple disk images (no file system)Apple Commander: (Java) Command line program to manage Apple disk images and file systemsCider Press: (Win) Graphical program to manage Apple disk images and file systemsdiskii: (Go) Command line tool, under developmentCadius(Win) Brutal Deluxe’s commandline toolsdsktool(Ruby)Apple II Disk Tools(C)libA2(Perl)AppleSAWS(Qt, Win/macOS/linux) very cool looking GUIDiskBrowser(Java) GUI tool that even displays Wizardry levels and VisiCalc files!dos33fsprogs(C)apple2-disk-util(Ruby)dsk2nib(C)standard-delivery(6502 assembly) Apple II single-sector fast boot-loader