Short: Mirror a Disk/File/Byteswap NSD64 >4GB Author: Holger.Hippenstiel AT gmx.de Uploader: Holger Hippenstiel nc-online de Type: disk/misc Version: 1.7 Replaces: disk/misc/DriveMirror.lha Architecture: m68k-amigaos >= 2.0.0 Distribution: Aminet Kurz: Kopiert Platte/File/Byteswap NSD64 >4GB DriveMirror V1.7 ================ TL;DR Allows to 1:1 copy a device/file to another device/file. Usage: DriveMirror SRC=SOURCE/A,DST=DESTINATION/A,BUFSIZE/N,BYTESWAP/S,IAMSURE/S Where SRC & DST is either a direct-access device or a filename. For example: scsi.device#0 or a (path+)filename(.hdf) *** SRC & DST must be defined. Same device for SRC&DST isn't recommended. *** It will mirror a device/file 1:1 to the destination. Destinationfile will get .hdf-Extension automaticly, if it's not already given. Because thats what DriveMirror creates, you can mount it in (Win)UAE. If you give IAMSURE as an Argument you wont have to type it for device-writes. BUFSIZE defines how much Kb to alloc for copies. (32-65536, def. AUTO) Autosize is upto 1/4 of your memory, but max 64Mb. BYTESWAP will swap the Low & Highbyte of a word. (see below) You can copy larger disks/files to smaller ones, but only the available space in the destination will be written. I'll allow that because some might mirror a 400Mb drive to a 520Mb one and later want to write it back. ****************************************************************************** * Note: It is highly recommended to REBOOT your Amiga after a device-write, * * because i can't know if partions were added/removed, if the file- * * system changed, blocksize changed and so on, manually doing a * * DiskChange may be ok if you just restored a backup. * ****************************************************************************** Update 1.5: BYTESWAP option is here, it will announce the Byteswap and if the Rigid Diskblock is found how it was swapped: "RDSK"<->"DRKS" or "DRKS"<->"RDSK" - or if it wasnt found within the first 16 blocks that an "unknown!"<->"nunkwo!n" swap took place. :) Own code for Word-Len/Longword-Len and Superscalar code for ULong blocks. Why Byteswap ? I remember when i got my first A1200, 2 1/2" HD's were still hell expensive and Big 3 1/2" Ata-Connector to 2 1/2" where not avail back then. I got a "semi-used" A1200 for cheap and got an A500 with External Boil-Controller with two 3 1/2" HD's, copied my System on one of them, soldered an 3 1/2" PATA-Cable by hand to the A1200 2 1/2" Connector, connected my drive - and only got garbage. Because A1200 swaps low&high-byte while writing to disc, so i had to write the code to swap low<->high for the entire HDD myself, and yeah it worked ! But i totally forgot about it back then. And while working on http://aminet.net/package/util/moni/SysinfoBoards i noticed for example: http://amiga.resource.cx/exp/atbus2008 states: "during transfers the high and low bytes are swapped as the A600/A1200/A4000 & PCs do so the drives formatted with them can be handled by the AT-Bus2008" So maybe other people got the low<->high problem aswell and there was no program which could fix that, so here is the solution ! :) Update 1.6: TD64 support is here ! Although Amiga-Filesystems currently can't handle files >4GB (and dos-functions only support 32-bit offsets/returnvalues) it's possible to read bigger files from a network-drive or from (Win)UAE folders then only the hosts filesystem is the limiting factor: Filesystem | Maximum filesize -----------+----------------------------------------------------- FFS | 2 GiB PFS3 | 4 GiB Fat32 | 4 GiB exFAt | theoretical limit 64 ZiB, recommended limit 512 TiB NTFS | theoretical limit 16 EiB, but OS limits it to 16 TiB ext4 | whole filesystem (since Kernel 2.6.25) So now you can mirror your >4GB drives to a network-share or UAE-Folder, or restore a >4GB drive - DriveMirror will then only show the sourcesize to be >4GB and instead of showing the remaining size, it will show how much was copied already. For Networkdrive check out: (Windows Network share) http://aminet.net/search?name=smbfs&path[]=comm&sort=date&ord=DESC http://aminet.net/search?name=samba&path[]=comm&sort=date&ord=DESC (Google Drive) http://aminet.net/search?name=drive&path[]=comm&sort=date&ord=DESC Limiting factor for the drivesize addressable with TD64 depends on the sectorsize: Sectorsize | Maximum drive size ------------+-------------------- 512 Bytes | 2 TiB 1 KiB | 4 TiB 2 KiB | 8 TiB 4 KiB | 16 TiB 8 KiB | 32 TiB 16 KiB | 64 TiB 32 KiB | 128 TiB Due to a bug in 1.5, it wasn't possible to define an own bufferssize, autosize has been used everytime. Now fixed. All sizes/offset-outputs are now in "Human readable format", for example instead of "132644864 Bytes", it will now show: "126.5 MiB" Update 1.7: NSD64 supported aswell, because according to Thomas Rapp (thanks for the infos ) -> https://thomas-rapp.homepage.t-online.de/filesyslimits.html there are a lot of scsi.devices which only support NSD64+Direct-SCSI. So in case TD64 fails, NSD64 will be used instead. Check out my other tools: http://aminet.net/search?readme=%22Holger+Hippenstiel%22&sort=date&ord=DESC DISCLAIMER This software is subject to the "Standard Amiga FD-Software Copyright Note". It is Giftware as defined in paragraph 4g. If you like it and use it regulary, please send me a small gift. For more information please read "AFD-COPYRIGHT". Diese Software unterliegt der "Standard Amiga FD-Software Copyright Note". Sie ist Giftware wie definiert in Absatz 4g. Falls du sie magst und regelmaessig benutzt, sende bitte ein kleines Geschenk. Fuer mehr Informationen lies bitte "AFD-COPYRIGHT". (/pub/aminet/docs/misc/AFD-FilesV-XX.lha V=Version,XX=Languages) AUTHOR Please send comments, bug-reports or small gifts like a Vampire V4 or a now "worthless :P" NVidia RTX 2080 Ti, or Paypal me to: Holger.Hippenstiel AT gmx.de Hauptstr. 38 71229 Leonberg Germany