{ "info": { "author": "Rob McMullen", "author_email": "feedback@playermissile.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "=======\nATRip\n=======\n\nPython library for hierarchical filesystem parsing on Atari 8-bit and Apple ][\ndisk images. The successor to atrcopy, this is under heavy development and is\nstill in a beta state. It is the basis for disk image support in `Omnivore 2\n`_.\n\nPronounced \"uh-trip\", the name is a happy coincidence that a dictionary word\nexists that is the quasi-portmanteau of \"ATR\" (the Atari 8 bit disk image\ncontainer) & \"rip\" (extracting stuff from images). The actual word is a\nnautical term: \"atrip\" as in \"the anchor is atrip\", meaning the ship's anchor\nis off the bottom. I have no particular affinity for ships, but that I had some\njustification in the portmanteau is enough for me.\n\n.. contents:: **Contents**\n\nPrerequisites\n=============\n\nPython\n------\n\nSupported Python versions:\n\n* Python 3.6 (and later)\n\nRuntime Dependencies\n---------------------\n\n* numpy\n* jsonpickle\n* lz4\n\nIt will be automatically installed when installing with ``pip`` as described\nbelow.\n\nDevelopment Dependencies\n------------------------\n\n* pytest\n* pytest-cov (optional)\n\nThe test suite uses pytest and pytest-cov, but these are not required for\nnormal installation.\n\nInstallation\n============\n\n``ATRip`` is available in the `PyPI `_\nand installable using ``pip``::\n\n pip install atrip\n\nLinux and macOS note: if numpy needs to be installed on your system, it may be\ncompiled from source which can take several minutes.\n\nFeatures\n========\n\n* list contents of disk images\n* copy files to and from disk images\n* delete files from disk images\n* create new disk images\n* concatenate binary data together into a file on the disk image\n* compile assembly source into binary files if `pyatasm `_ is installed\n\n\nSupported Formats\n=================\n\nSupported Disk Image Types\n--------------------------\n\n* ``XFD``: XFormer images, basically raw disk dumps\n* ``ATR``: Nick Kennedy's disk image format; includes 16 byte header\n* ``DCM``: Disk Communicator images, Bob Puff's compression format for Atari disk images\n* ``CAS``: Atari cassette images\n* ``DSK``: Apple ][ DOS 3.3 disk image; raw sector dump\n\nSupported File System Formats\n-----------------------------\n\n+----------------+-------------+---------+-------+-------------------+\n| File System | Platform | Read | Write | Status |\n+================+=============+=========+=======+===================+\n| DOS 2 (90K) | Atari 8-bit | Yes | Yes | Fully supported |\n+----------------+-------------+---------+-------+-------------------+\n| DOS 2 (180K) | Atari 8-bit | Yes | Yes | Fully supported |\n+----------------+-------------+---------+-------+-------------------+\n| DOS 2.5 (130K) | Atari 8-bit | Yes | Yes | Fully supported |\n+----------------+-------------+---------+-------+-------------------+\n| DOS 3 (130K) | Atari 8-bit | No | No | Unimplemented |\n+----------------+-------------+---------+-------+-------------------+\n| SpartaDOS | Atari 8-bit | No | No | Under development |\n+----------------+-------------+---------+-------+-------------------+\n| MyDOS | Atari 8-bit | Partial | No | Under development |\n+----------------+-------------+---------+-------+-------------------+\n| DOS 3.3 | Apple ][ | Yes | Yes | Fully supported |\n+----------------+-------------+---------+-------+-------------------+\n| ProDOS 8 | Apple ][ | No | No | Unimplemented |\n+----------------+-------------+---------+-------+-------------------+\n\n\nOther Supported Formats\n-----------------------\n\n+----------+----------------------------------+---------+-------+-----------------+\n| Format | Platform/description | Read | Write | Status |\n+==========+==================================+=========+=======+=================+\n| ``.xex`` | Atari 8-bit executable files | Yes | Yes | Fully supported |\n+----------+----------------------------------+---------+-------+-----------------+\n| KBoot | Atari 8-bit ``xex`` in boot disk | Yes | Yes | Fully supported |\n+----------+----------------------------------+---------+-------+-----------------+\n| ``.car`` | Atari 8-bit cartridge images | Yes | No | Read only |\n+----------+----------------------------------+---------+-------+-----------------+\n| BSAVE | Apple ][ ``BSAVE`` data | Yes | Yes | Fully supported |\n+----------+----------------------------------+---------+-------+-----------------+\n\n**Note:** Atari ROM cartridges are supported in both both plain binary and\natari800 ``.car`` format\n\n\nArchives\n-----------------\n\nArchives containing multiple disk images are supported, where each disk image\nwithin the archive will be given a disk number and is addressable using that\nprefix.\n\n+---------------------+----------+------+-------+------------------------------+\n| Container | File Ext | Read | Write | Status |\n+=====================+==========+======+=======+==============================+\n| Zip File | .zip | Yes | Yes | Fully supported |\n+---------------------+----------+------+-------+------------------------------+\n| Tar File | .tar | Yes | Yes | Fully supported |\n+---------------------+----------+------+-------+------------------------------+\n\nArchives may also be compressed with any of the general purpose compression\nformats listed below.\n\n\nSupported Compression Formats\n---------------------------------------\n\nCompression is supported transparently, so any type of disk image compressed\nwith any of the following formats can be used directly, without first\ndecompressing it before running ``ATRip``.\n\nChaining is supported to an arbitrary depth, meaning that one compression\nalgorithm can be applied to the output of another. This is not practical except\nin limited cases, as in a Disk Communicator image that is subsequently gzipped\n(image.dcm.gz). But cases that actually make compression worse will be handled\nas well, like image.gz.bz2.xz.bz2.gz.gz.gz.\n\n\n+---------------------+------------+------+-------+------------------------------+\n| Compression Format | File Ext | Read | Write | Status |\n+=====================+============+======+=======+==============================+\n| gzip | .gz | Yes | Yes | Fully supported |\n+---------------------+------------+------+-------+------------------------------+\n| bzip2 | .bz2 | Yes | Yes | Fully supported |\n+---------------------+------------+------+-------+------------------------------+\n| lzma | .xz, .lzma | Yes | Yes | Fully supported |\n+---------------------+------------+------+-------+------------------------------+\n| lzw (Unix compress) | .Z | Yes | No | Read only [#]_ |\n+---------------------+------------+------+-------+------------------------------+\n| lz4 | .lz4 | Yes | Yes | Fully supported |\n+---------------------+------------+------+-------+------------------------------+\n| Disk Communicator | .dcm | Yes | Yes | Atari images only [#]_ |\n+---------------------+------------+------+-------+------------------------------+\n\n.. [#] Contains code from the\n `BSD-licensed python implementation `_\n of Mark Adler's reference C implementation of unlzw. See LICENSE.unlzw in the\n source distribution for more details.\n\n.. [#] Not general purpose compression; Atari 720 or 1040 sector disk images only.\n Contains my own python reimplementation of the DCM algorithms based on the\n `GPL code in acvt `_\n\n\nSegment Structure\n==================\n\n::\n\n Collection: example.atr: plain file\n Container: D1: 92176 bytes, compression=none\n Header: ATR Header (16 bytes)\n DiskImage: Atari SD (90K) Floppy Disk Image, size=92160, filesystem=Atari DOS 2\n BootSegment: Boot Sectors (384 bytes)\n Segment: Boot Header (6 bytes)\n Segment: Boot Code (378 bytes @ 0006)\n VTOC: DOS2 SD VTOC (128 bytes)\n Directory: Directory (1024 bytes)\n Dirent: File #0 (.2.u. ) 004 DOS SYS 035\n FileType: DOS.SYS (4375 bytes) Unknown file type\n Dirent: File #1 (.2.u. ) 039 DUP SYS 054\n AtariObjectFile: DUP.SYS (6708 bytes) Atari 8-bit Object File\n ObjSegment: Segment #1 (6706 bytes)\n Segment: [$2949-$4376] (6702 bytes)\n\n\n\nReferences\n==========\n\n* http://www.atariarchives.org/dere/chapt09.php\n* http://atari.kensclassics.org/dos.htm\n* http://www.crowcastle.net/preston/atari/\n* http://www.atarimax.com/jindroush.atari.org/afmtatr.html\n* https://archive.org/details/Beneath_Apple_DOS_OCR\n\nRelated Atari Projects\n----------------------\n\n* `atrcopy `_: Precursor to ``ATRip``; stable and includes command line utility to manipulate disk images.\n* `franny `_: (C, macOS/linux) Command line program to manage Atari DOS 2 and SpartaDOS II image and file systems\n* `dir2atr `_: (Win) Suite of command line programs to manage Atari disk images and DOS 2/MyDOS file systems\n* `atadim `_: (Win) Graphical program to manage Atari disk images and DOS 2/MyDOS file systems\n\nRelated Apple Projects\n----------------------\n\nTurns out there are a ton of Apple ][ disk image viewers and editors! I was pointed to the list from the `diskii project `_, so I've included most of that list here.\n\n* `a2disk `_ (Python 3) DOS 3.3 reader and Applesoft BASIC detokenizer\n* `cppo `_ (Python) a script from the `a2server `_ project to read DOS 3.3 and ProDOS disk images\n* `Driv3rs `_ (Python) Apple III SOS DSK image utility\n* `c2d `_: (C, Win/macOS/linux) Command line program to create bootable Apple disk images (no file system)\n* `Apple Commander `_: (Java) Command line program to manage Apple disk images and file systems\n* `Cider Press `_: (Win) Graphical program to manage Apple disk images and file systems\n* `diskii `_: (Go) Command line tool, under development\n* `Cadius `_ (Win) Brutal Deluxe's commandline tools\n* `dsktool `_ (Ruby)\n* `Apple II Disk Tools `_ (C)\n* `libA2 `_ (Perl)\n* `AppleSAWS `_ (Qt, Win/macOS/linux) very cool looking GUI\n* `DiskBrowser `_ (Java) GUI tool that even displays Wizardry levels and VisiCalc files!\n* `dos33fsprogs `_ (C)\n* `apple2-disk-util `_ (Ruby)\n* `dsk2nib `_ (C)\n* `standard-delivery `_ (6502 assembly) Apple II single-sector fast boot-loader", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/robmcmullen/atrip", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "atrip", "package_url": "https://pypi.org/project/atrip/", "platform": "", "project_url": "https://pypi.org/project/atrip/", "project_urls": { "Homepage": "https://github.com/robmcmullen/atrip" }, "release_url": "https://pypi.org/project/atrip/0.5.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Utility to manage file systems on retro computer disk images", "version": "0.5.0" }, "last_serial": 5493251, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d4424df7223a8ad822a653b0b2878c4d", "sha256": "a3f00b87d602f433cee5f920211032ce85f2b1d4d74ca475788451278f3dbbc2" }, "downloads": -1, "filename": "atrip-0.1.tar.gz", "has_sig": false, "md5_digest": "d4424df7223a8ad822a653b0b2878c4d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 376217, "upload_time": "2019-04-08T22:01:55", "url": "https://files.pythonhosted.org/packages/38/8c/73c2add7562e6a4aaaa0066a95044026d21bd70fc3d2841745736f5696ad/atrip-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5dd0614e1d5861d976926a0fae5a6118", "sha256": "5328132fadace9eee57691c2b57c24605a3a02d4090965642547dc612ce15325" }, "downloads": -1, "filename": "atrip-0.2.tar.gz", "has_sig": false, "md5_digest": "5dd0614e1d5861d976926a0fae5a6118", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 613595, "upload_time": "2019-06-02T18:11:56", "url": "https://files.pythonhosted.org/packages/86/0f/288e907f6c042fc342b7cc7ef5ee61c52b18b31669d0495f544376c6646c/atrip-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "b7be982435d38438cdc24f661fef9641", "sha256": "ca9969274377a64ee8a76d61d1e83ffa67e74500571da07d3b4f3418d736e625" }, "downloads": -1, "filename": "atrip-0.3.tar.gz", "has_sig": false, "md5_digest": "b7be982435d38438cdc24f661fef9641", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 613597, "upload_time": "2019-06-02T19:05:42", "url": "https://files.pythonhosted.org/packages/10/44/5cb0107a0bc32c770ee5e48e36647cbb4e05a2b0692fa384402b9a36567a/atrip-0.3.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "158c4e04546862ab78499fccfaf35c4c", "sha256": "7c4027dfeae3de7e01e90f4b2f5608fc342b7740fbe41c8394afb9241c4f8f40" }, "downloads": -1, "filename": "atrip-0.4.1.tar.gz", "has_sig": false, "md5_digest": "158c4e04546862ab78499fccfaf35c4c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 616673, "upload_time": "2019-06-14T06:12:02", "url": "https://files.pythonhosted.org/packages/05/05/20fdb0e4bec7882c429afe9717d94e7fe9c627cd61c76dafa114bde1127f/atrip-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "86a573e779f3916d49261fa6c30057eb", "sha256": "20346f45a3694ffe9fc50ef6b8006e12f256d178b5263409c20f6aa2516818b7" }, "downloads": -1, "filename": "atrip-0.4.2.tar.gz", "has_sig": false, "md5_digest": "86a573e779f3916d49261fa6c30057eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 617067, "upload_time": "2019-07-01T18:46:59", "url": "https://files.pythonhosted.org/packages/88/e5/0a3dc4f8002a54925158cf6b535498a1b33deeea795484e2fba3d0106533/atrip-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b2fba49525a0791df8aa95bec1336d8e", "sha256": "bcc7bc7849518fba628ac83e395864c4daf07870b55fed0604ecb3c29e95fc80" }, "downloads": -1, "filename": "atrip-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b2fba49525a0791df8aa95bec1336d8e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 632533, "upload_time": "2019-07-05T22:19:34", "url": "https://files.pythonhosted.org/packages/87/5c/c4b337126d9b2cebf947093c9b7eb215c3e3cab42ab7dd72250f3187e8e2/atrip-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2fba49525a0791df8aa95bec1336d8e", "sha256": "bcc7bc7849518fba628ac83e395864c4daf07870b55fed0604ecb3c29e95fc80" }, "downloads": -1, "filename": "atrip-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b2fba49525a0791df8aa95bec1336d8e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 632533, "upload_time": "2019-07-05T22:19:34", "url": "https://files.pythonhosted.org/packages/87/5c/c4b337126d9b2cebf947093c9b7eb215c3e3cab42ab7dd72250f3187e8e2/atrip-0.5.0.tar.gz" } ] }