From fa81fc0b576642d187606be93617ba4559eda4d9 Mon Sep 17 00:00:00 2001 From: Roman Dobosz Date: Wed, 2 Sep 2015 21:58:45 +0200 Subject: [PATCH] Added license and README file --- LICENSE | 24 ++++++++++++++++ README.rst | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ uc1541 | 47 ------------------------------- 3 files changed, 107 insertions(+), 47 deletions(-) create mode 100644 LICENSE create mode 100644 README.rst diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d992403 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2015, Roman Dobosz +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the organization nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL ROMAN DOBOSZ BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..d477758 --- /dev/null +++ b/README.rst @@ -0,0 +1,83 @@ +=================================================== +Midnight Commander virtual filesystem for d64 files +=================================================== + +This extfs provides an access to disk image files for the Commodore +VIC20/C64/C128 for Midnight Commander. It requires the utility c1541 that comes +bundled with Vice, the emulator for the VIC20, C64, C128 and other computers +made by Commodore. + +Features +======== + +* view, remove, copy files in and out of the image +* support for read from and write to d64 images +* gzipped disk images support +* onfly characters remapping (see below) + +Remarks +======= + +Due to different way of representing file entries on regular D64 disk images, +there could be issues with filenames that are transfered from/to the image. +Following rules was applied to represent a single file entry: + +1. An extension is attached to the end of a filename depending on a file type. + Possible extensions are: ``prg``, ``del``, ``seq``, ``usr`` and ``rel``. +2. Every non-ASCII character (which could be some of characters specific to + PET-ASCII, or be a control character) will be replaced by dot (``.``), since + ``c1541`` program will list them that way. +3. Every slash character (``/``) will be replaced by pipe character (``|``). +4. Leading space will be replaced by tilda (``~``). + +While copying from D64 image to filesystem, filenames will be stored as they +are seen on a listing. + +While copying from filesystem to D64 image, filename conversion will be done: + +1. Every ``$`` and ``*`` characters will be replaced by question mark (``?``) +2. Every pipe (``|``) and backslash (``\``) characters will be replaced by + slash (``/``) +3. Every tilda (``~``) will be replaced by a space +4. ``prg`` extension will be truncated + +Representation of a directory can be sometimes confusing - in case when one +copied file without extension it stays there in such form, till next access +(after flushing VFS). Also file sizes are not accurate, since D64 directory +entries have sizes stored as 256 bytes blocks. + +Rquirements +=========== + +* Python 2.7 +* Vice installation (c1541 program in path) + +Installation +============ + +* copy ``uc1541`` to ``~/.local/share/mc/extfs.d/`` +* add or change entry for files handle in ``~/.config/mc/mc.ext``:: + + # Disk images for Commodore computers (VIC20, C64, C128) + regex/\.(d64|D64|d6z|D6z|d6Z|D6Z)$ + Open=%cd %p/uc1541:// + View=%view{ascii} c1541 %f -list + Extract=c1541 %f -extract + +Configuration +============= + +Here are specific for this script variable, which while set, can influence +script behaviour: + +* ``UC1541_DEBUG`` - if set, uc1541 will produce log in /tmp/uc1541.log file. +* ``UC1541_VERBOSE`` - if set, script will be more verbose, i.e. error messages + form c1541 program will be passed to Midnight Commander, so that user will be + aware of error cause if any. +* ``UC1541_HIDE_DEL`` - if set, no DEL entries will be shown. + +License +======= + +This software is licensed under 3-clause BSD license. See LICENSE file for +details. diff --git a/uc1541 b/uc1541 index 6a78ef6..2210872 100755 --- a/uc1541 +++ b/uc1541 @@ -2,53 +2,6 @@ """ UC1541 Virtual filesystem -This extfs provides an access to disk image files for the Commodore -VIC20/C64/C128. It requires the utility c1541 that comes bundled with Vice, -the emulator for the VIC20, C64, C128 and other computers made by Commodore. - -Remarks -------- - -Due to different way of representing file entries on regular D64 disk images, -there could be issues with filenames that are transfered from/to the image. -Following rules was applied to represent a single file entry: - -1. An extension is attached to the end of a filename depending on a file type. - Possible extensions are: prg, del, seq, usr and rel. -2. Every non-ASCII character (which could be some of characters specific to - PET-ASCII, or be a control character) will be replaced by dot (.), since - c1541 program will list them that way. -3. Every slash character (/) will be replaced by pipe character (|). -4. Leading space will be replaced by tilda (~). - -While copying from D64 image to filesystem, filenames will be stored as they -are seen on a listing. - -While copying from filesystem to D64 image, filename conversion will be done: -1. Every $ and * characters will be replaced by question mark (?) -2. Every pipe (|) and backslash (\) characters will be replaced by slash (/) -3. Every tilda (~) will be replaced by a space -4. 'prg' extension will be truncated - -Representation of a directory can be sometimes confusing - in case when one -copied file without extension it stays there in such form, till next access -(after flushing VFS). Also file sizes are not accurate, since D64 directory -entries have sizes stored as 256 bytes blocks. - -Configuration -------------- - -Here are specific for this script variable, which while set, can influence -script behaviour: - -UC1541_DEBUG - if set, uc1541 will produce log in /tmp/uc1541.log file - -UC1541_VERBOSE - if set, script will be more verbose, i.e. error messages form -c1541 program will be passed to Midnight Commander, so that user will be aware -of error cause if any. - -UC1541_HIDE_DEL - if set, no DEL entries will be shown - Changelog: 2.8 Treat non standard discs a bit better 2.7 Added support for gzipped disk images