As tu58fs understands the structure of binary image files, it also can extract files from images and compose images from file sets.
Get the files
For example, we extract everything in 11XXDP.DSK. The magic word is "unpack".
"Unpack" be used stand-alone, or to expand an image into an directory before a "-ds" device definition.
joerg@vmubuprog:~$ sudo ./tu58fs --xxdp --unpack 11XXDP.DSK 11xxdp.dir
ENTRY# FILNAM.EXT DATE LENGTH START VERSION
1 XXDPSM.SYS 1-MAR-89 29 000050
2 XXDPXM.SYS 1-MAR-89 39 000105
3 DRSSM .SYS 1-MAR-89 24 000154
4 DRSXM .SYS 1-MAR-89 48 000204
5 DATE .SYS 1-MAR-89 2 000264
6 DB .SYS 1-MAR-89 2 000266
7 DD .SYS 1-MAR-89 3 000270
8 DIR .SYS 1-MAR-89 7 000273
9 DL .SYS 1-MAR-89 4 000302
10 DM .SYS 1-MAR-89 4 000306
11 DR .SYS 1-MAR-89 3 000312
12 DU .SYS 1-MAR-89 4 000315
13 DUSZ .SYS 1-MAR-89 2 000321
14 DY .SYS 1-MAR-89 3 000323
15 LP .SYS 1-MAR-89 1 000326
16 MM .SYS 1-MAR-89 3 000327
17 MS .SYS 1-MAR-89 4 000332
18 MU .SYS 1-MAR-89 4 000336
19 HELP .TXT 1-MAR-89 29 000342
20 PATCH .BIC 1-MAR-89 31 000377
21 SETUP .BIC 1-MAR-89 27 000436
22 UPDAT .BIC 1-MAR-89 29 000471
23 XTECO .BIC 1-MAR-89 26 000526
24 FLOAT .BIN 1-MAR-89 18 000560
FREE BLOCKS: 126
info: Files extracted from "11XXDP.DSK" and written to "11xxdp.dir".
info: No units were specified, emulator not started.
joerg@vmubuprog:~$
Now all files from the image are in directory "11xxdp.dir". The listing shown is the XXDP view of the directory. However, a look into the shared directory reveals two more files:
joerg@vmubuprog:~$ sudo ls -l 11xxdp.dir/
insgesamt 240
-rw-r--r-- 1 root root 512 Jan 20 20:14 $BOOT.BLK
-rw-r--r-- 1 root root 1020 Mär 1 1989 DATE.SYS
-rw-r--r-- 1 root root 1020 Mär 1 1989 DB.SYS
-rw-r--r-- 1 root root 1530 Mär 1 1989 DD.SYS
-rw-r--r-- 1 root root 3570 Mär 1 1989 DIR.SYS
-rw-r--r-- 1 root root 2040 Mär 1 1989 DL.SYS
-rw-r--r-- 1 root root 2040 Mär 1 1989 DM.SYS
-rw-r--r-- 1 root root 12240 Mär 1 1989 DRSSM.SYS
-rw-r--r-- 1 root root 24480 Mär 1 1989 DRSXM.SYS
-rw-r--r-- 1 root root 1530 Mär 1 1989 DR.SYS
-rw-r--r-- 1 root root 2040 Mär 1 1989 DU.SYS
-rw-r--r-- 1 root root 1020 Mär 1 1989 DUSZ.SYS
-rw-r--r-- 1 root root 1530 Mär 1 1989 DY.SYS
-rw-r--r-- 1 root root 9180 Mär 1 1989 FLOAT.BIN
-rw-r--r-- 1 root root 14790 Mär 1 1989 HELP.TXT
-rw-r--r-- 1 root root 510 Mär 1 1989 LP.SYS
-rw-r--r-- 1 root root 1530 Mär 1 1989 MM.SYS
-rw-r--r-- 1 root root 16384 Jan 20 20:14 $MONI.TOR
-rw-r--r-- 1 root root 2040 Mär 1 1989 MS.SYS
-rw-r--r-- 1 root root 2040 Mär 1 1989 MU.SYS
-rw-r--r-- 1 root root 15810 Mär 1 1989 PATCH.BIC
-rw-r--r-- 1 root root 13770 Mär 1 1989 SETUP.BIC
-rw-r--r-- 1 root root 14790 Mär 1 1989 UPDAT.BIC
-rw-r--r-- 1 root root 13260 Mär 1 1989 XTECO.BIC
-rw-r--r-- 1 root root 14790 Mär 1 1989 XXDPSM.SYS
-rw-r--r-- 1 root root 19890 Mär 1 1989 XXDPXM.SYS
There are now an additional "$BOOT.BLK" and a "$MONI.TOR".
These are the content of boot block 0 of the tape, and the blocks which contain the XXDP system core.
To generate a bootable tape, simple copy these two files into the shared directory, among other needed *.SYS files. If you delete them, the special tape areas are filled with 00's.
Compose an image
Making an image from the files in a directory works with the "pack" option:
joerg@vmubuprog:~$ sudo ./tu58fs --xxdp --pack 11xxdp.dir 11XXDP.repacked.DSK
The original "11XXDP.DSK" image and the new "11XXDP.repacked.DSK" will not be binary identical, as the file order on the "tape" may have changed.