Z80onDSK now compatible with +3e with ZXMMC or similar

edited May 2019 in Sinclair Miscellaneous
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
╔═══════════════════════════════════════════════════════════════════════════════
║ 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
╚═══════════════════════════════════════════════════════════════════════════════
Post edited by TomD on

Comments

  • 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
    ╔═══════════════════════════════════════════════════════════════════════════════
    ║ 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
    ╚═══════════════════════════════════════════════════════════════════════════════
    
  • Thanks a lot!!! It's a powerful utility and it works fine...
    I'm especially happy because of the compatibility with +3e
  • Kedindin wrote: »
    Thanks a lot!!! It's a powerful utility and it works fine...
    I'm especially happy because of the compatibility with +3e
    Thanks :-)
Sign In or Register to comment.