Skip to main content

Write SAM Coupé disk images to USB floppy drive

Project description

writeusb

A Python script to write SAM Coupé disk images to a USB floppy drive so they can be used on real SAM hardware.

Source disk images should be normal 80/2/10/512 format and in MGT/SAD/EDSK disk image containers. SAMDOS/MasterDOS/BDOS and some custom loaders are supported.

Background

USB floppy drives are usually limited to 1.44M (18-sector) and 720K (9-sector) formats used by PC floppy disks. This is a problem for regular SAM disks, which use a 10-sector disk format.

This script re-maps the sectors used by the files on the source disk image so it uses only 9 sectors on each track. It also patches the boot loaders on converted disks to keep within these limits. Most SAM disks should support conversion.

Please note that this script will NOT help to read existing 10-sector SAM Coupé disks. The 10th sector on each track is inaccessible on USB floppy drives.

Requirements

  • Windows, Linux or macOS
  • USB floppy drive and double-density disks
  • Python 3.6 (or later)

Installation

To install:

python -m pip install mgtwriteusb

Or to install from local source code:

python setup.py install

Command-line Options

usage: writeusb [-h] [-o OUTPUT] [-n] [-f] [-a] [-s] diskimage

Write SAM disk image to USB floppy drive

positional arguments:
  diskimage

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        output to disk image file
  -n, --noverify        don't verify disk after writing
  -f, --force           write even if boot loader is unknown
  -a, --all             write all tracks, not just used tracks
  -s, --sniff           detect boot loader on source image

Examples

Convert image.dsk to 9-sector format, write used tracks to the connected USB floppy drive, then verify the written data:

writeusb image.dsk

Convert image.dsk to 9-sector format, save output to disk image output.img for use with SimCoupe or another disk writing program:

writeusb image.dsk -o output.img

Troubleshooting

macOS and Linux users may need to run the script under sudo, depending on the permissions and group ownership of the USB floppy device. Linux users may just need to be in the disk group, depending on distribution.

Be sure to use real double-density media, which usually has a blue cover. High density disks have different magnetic properties, so covering the density hole is not a good solution. HD disks are often unreliable after writing (YMMV).

If you're reusing existing SAM disks be aware that some USB floppy drives may not recognise the existing 10-sector format. You may have to reformat the disk as true 9-sector before it'll work. Under Windows try format a: /t:80 /s:9, or under Linux try ufiformat /dev/sdX (change sdX to the correct device name).

SAMDOS/MasterDOS/BDOS will retry after disk errors but custom loaders may not. The MNEMOtech loader used by MNEMOdemo 1 and 2 fails immediately fails with a Loading Error so you'll need good quality disks!

Expect disk errors. If in doubt try a different disk!

Limitations

Disk images containing custom formats are not supported and will be rejected. This prevents original copies of Lemmings, Prince or Persia, and maybe some other titles from working.

Reducing from 10 sectors to 9 sectors also reduces the disk capacity. The converted disk has 72 directory slots and 702K of free space, rather than 80 directory slots and 780K on a regular disk. Full disks may need to be split.

Disks storing data outside the normal filesystem structures will be missed by the conversion process. This affects the Pac-Man Emulator (v1.4 or earlier).


https://github.com/simonowen/writeusb

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mgtwriteusb-0.9.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

mgtwriteusb-0.9.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file mgtwriteusb-0.9.0.tar.gz.

File metadata

  • Download URL: mgtwriteusb-0.9.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for mgtwriteusb-0.9.0.tar.gz
Algorithm Hash digest
SHA256 28603aba1533f2c87841b45282083c9200366b79e334ecd250e3dfdfbd6bcdbc
MD5 2f5a196ed6b97c93335b1ad3d5d1ee1a
BLAKE2b-256 6deca34075fb938e0530d70d064e00aa4b4f2a52bc7653f6c448cfd2e420dfa2

See more details on using hashes here.

File details

Details for the file mgtwriteusb-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: mgtwriteusb-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for mgtwriteusb-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3af83216c2cf91474525374931e8ec58c32e561bebaf27d4200320de68a59cb9
MD5 ad142d8c94f3eccb37c6435ec85f5bbf
BLAKE2b-256 337f9506b5522ea55af046c9b1cc02d07201bf0c018ab222960140574370442d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page