Z80onDSK now compatible with +3e with ZXMMC or similar

Show us what you're working on, (preferably with screenshots).
Post Reply
User avatar
TomD
Manic Miner
Posts: 374
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Z80onDSK now compatible with +3e with ZXMMC or similar

Post by TomD »

Just updated my utility to work on Spectrums equipped with +3e ROMs and IDE storage. I've tested this with ZXMMC at the moment but don't think there will be any problems with other storage options.

I had to move part of the decompression out of bank 7 to get this working and move it to the screen area which does cause some corruption but unavoidable as there is even less spare space with +3e than on a normal +3. Tested with Heartland 48k and Three Weeks in Paradise 128k.

You can download v2.3 here https://tomdalby.com/speccy/Z80onDSK.zip

TomD

Code: Select all

╔═══════════════════════════════════════════════════════════════════════════════
║ Z80onDSK v2.3 for WINDOWS (c) 2019 Tom Dalby
╠═══════════════════════════════════════════════════════════════════════════════
║ Usage: Z80onDSK [global options] <snapshot>.z80 [snapshot settings] <name>
║
║  <name>: output filename, if nothing specified z80 snapshot filename used
║
║  [global options]
║   -t: output to tape as well as disk
║   -q: quiet mode, turn off all text output (other than error messages)
║   -m: dump memory banks and full compression to binary files. These will
║       named after the SPECTRUM filename
║   -b: do not add autorun basic routine to disk, useful if you want to add
║       your own loader routine later
║   -h: make the loader code, autorun basic & 128k 2nd file visible on disk
║       default is hidden to make things neater when cataloging the disk
║   -e: use +3e compatible loader. Note incompatible with snapshots created
║       without this option & causes a lot of screen corruption so only
║       recommended for +3e with reduced space in bank 7 for unpacking
║
║ [snapshot settings]
║   -o <name>: define SPECTRUM filename, if nothing is specified snapshot
║              filename used. Truncated to 8 chars with non-alphanumeric
║               & spaces removed to ensure PLUS3DOS compatibility
║   -s <name>.scr: use an alternate loading screen. Must be a .scr 6912bytes
║   -bN: use an alt mem location for 17byte run code, default 23734 (CHANS)
║     1: @16384 (top left of screen pixel area)
║     2: @22511 (bottom right of screen pixel area)
║     3: @23296-23552 program will scan for continuous block of zeros
║          in printer buffer, if no space exists program will error
║     4 <mem>: @16384-32751 user specified memory location
║   -fN: force machine type
║     1: force 16k. Clears top 2 memory banks to remove erroneous data in upper
║        memory for 16k games. Helps reduce snapshot compressed size. If stack
║        or PC are in upper mem (>0x7fff) utility will exit with error.
║     2: force 48k + paging. Works on 128k & 48k snapshots. Only banks 5,0 & 2
║        are stored, retains paging & Amstrad ROM.
║     3: force 48k no paging. For 128k snapshots as this is default for 48k.
║        Only banks 5,0 & 2 are stored, paging off & Amstrad ROM in place.
║     4: force 48k old skool. Only banks 5,0 & 2 stored, paging off &
║        original Sincliar ROM patched in. Note this causes upper mem to be
║        contended which may cause issues with some games.
║
║ Batch Mode is activated if more than one z80 snapshot specified, example:
║
║     Z80onDSK snapshot1.z80 snapshot2.z80 compilation1
║       where "compilation1" is the filename of the resultant disk/tape file
║       (if nothing specified the first snapshot name is used as above)
║
║   each snapshot can have its own settings but options are global, example:
║
║     Z80onDSK -q snapshot1.z80 -s screen1.scr snapshot2.z80 -b1 compilation1
║         which runs in quiet mode, snapshot 1 has an alternate loading screen
║         snapshot 2 has the run code located top left of screen pixel area
║         all outputed to "compliation1.dsk"
║
║   max 16 snapshots per disk/tape
╚═══════════════════════════════════════════════════════════════════════════════
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
User avatar
TomD
Manic Miner
Posts: 374
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: Z80onDSK now compatible with +3e with ZXMMC or similar

Post by TomD »

I've cleaned up the +3e mode a little including adding an extra option which just creates the files needed to be copied over to a HDF file. You can then just use one of the many utilities (drvimage or hdfmonkey) rather than copy from a +3 disk. You can grab v2.4 here https://tomdalby.com/speccy/Z80onDSK_v2.4.zip

TomD

Code: Select all

╔═══════════════════════════════════════════════════════════════════════════════
║ Z80onDSK v2.4 for WINDOWS (c) 2019 Tom Dalby
╠═══════════════════════════════════════════════════════════════════════════════
║ Usage: Z80onDSK [global options] <snapshot>.z80 [snapshot settings] <name>
║
║  <name>: output filename, if nothing specified z80 snapshot filename used
║
║  [global options]
║   -t: output to tape as well as disk
║   -q: quiet mode, turn off all text output (other than error messages)
║   -m: dump memory banks and full compression to binary files. These will be
║       named after the SPECTRUM filename
║   -b: do not add autorun basic routine to disk, useful if you want to add
║       your own loader routine later
║   -h: make the loader code, autorun basic & 128k 2nd file visible on disk
║       default is hidden to make things neater when cataloging the disk
║   -e: use +3e compatible mode. Causes a lot of screen corruption so unless
║       a loading screen is specified a copy of the main screen is taken to be
║       displayed during loading. Combine with -c to only produce data files for
║       hdf transfer. Note this forces the -b2 & -h options and is incompatible
║       with images created in non-+3e mode
║   -c: dump compression data files only & suppress disk production. Useful if
║       you want to copy the images to a disk or hdf manually. As for -m the
║       files are named after the SPECTRUM filename
║
║ [snapshot settings]
║   -o <name>: define SPECTRUM filename, if nothing is specified snapshot
║              filename used. Truncated to 8 chars with non-alphanumeric
║               & spaces removed to ensure PLUS3DOS compatibility
║   -s <name>.scr: use an alternate loading screen. Must be a .scr 6912bytes
║   -bN: use an alt mem location for 17byte run code, default 23734 (CHANS)
║     1: @16384 (top left of screen pixel area)
║     2: @22511 (bottom right of screen pixel area)
║     3: @23296-23552 program will scan for continuous block of zeros
║          in printer buffer, if no space exists program will error
║     4 <mem>: @16384-32751 user specified memory location
║   -fN: force machine type
║     1: force 16k. Clears top 2 memory banks to remove erroneous data in upper
║        memory for 16k games. Helps reduce snapshot compressed size. If stack
║        or PC are in upper mem (>0x7fff) utility will exit with error.
║     2: force 48k + paging. Works on 128k & 48k snapshots. Only banks 5,0 & 2
║        are stored, retains paging & Amstrad ROM.
║     3: force 48k no paging. For 128k snapshots as this is default for 48k.
║        Only banks 5,0 & 2 are stored, paging off & Amstrad ROM in place.
║     4: force 48k old skool. Only banks 5,0 & 2 stored, paging off &
║        original Sincliar ROM patched in. Note this causes upper mem to be
║        contended which may cause issues with some games.
║
║ Batch Mode is activated if more than one z80 snapshot specified, example:
║
║     Z80onDSK snapshot1.z80 snapshot2.z80 compilation1
║       where "compilation1" is the filename of the resultant disk/tape file
║       (if nothing specified the first snapshot name is used as above)
║
║   each snapshot can have its own settings but options are global, example:
║
║     Z80onDSK -q snapshot1.z80 -s screen1.scr snapshot2.z80 -b1 compilation1
║         which runs in quiet mode, snapshot 1 has an alternate loading screen
║         snapshot 2 has the run code located top left of screen pixel area
║         all outputed to "compliation1.dsk"
║
║   max 16 snapshots per disk/tape
╚═══════════════════════════════════════════════════════════════════════════════
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
Post Reply