Preparing Disk Images for an Elektronika DVK-3 MX Controller
Preparing Disk Images for an Elektronika DVK-3 MX Controller
Ok, get ready, I'm dumping a whole lot of information here about practical use of a DVK-3! :D
Now that the HxC is known to be a viable way to run software on the DVK-3, I have researched where to get software and found this wonderful repository at
http://archive.pdp-11.org.ru/ukdwk_archive/ . I've found various games, utilities (like PARK.SAV & STOPDW.SAV), and programming languages. (I'd love to know if this computer has any GPIO or at least how to interface with the serial port in code.)
Since I have the MX disk controller, my drive supports the following formats (with 11 sectors per track, 256 bytes per sector):
40 tracks, 1 side, 112640 bytes
40 tracks, 2 sides, 225280 bytes
80 tracks, 1 side, 225280 bytes
80 tracks, 2 sides, 450560 bytes
Unfortunately, the format of the DSK files used for a DVK-3 isn't anything understood by WinImage, MagicISO, CPCDiskXP, or even the HxC software itself. However, with enough searching, I came across a "packer plugin" for Total Commander that will allow you to read & write the correct format of DSK files for the DVK-3. Here's the link to the forum:
http://zx-pk.ru/threads/11015-rt-11-dsk-total-commander-wcx-plugin.html
This will make a DSK file of arbitrary size that totally wraps up all the content you selected. It's easy to use, but has some idiosyncrasies that were not intuitive to me and required experimentation to get around:
* I couldn't figure out how to install it by unzipping the archive and then navigating the plugin settings of Total Commander to direct it to the plugin file. It is easier if you navigate to the ZIP/RAR file itself that contains the plugin, and then try to open that archive in Total Commander. Then, TC will recognize it contains a packer plugin and will install it.
* Beware of these three things that could possibly cause an error with the plugin:
- You try to save the DSK file to a location you don't have write permission to (for me, the default C:\ is still write-protected by Windows, and I'm too lazy to change that, so I end up having to type out the whole path where I want it to save the file each time).
- You have files that do not follow the 6.3 naming convention (xxxxxx.xxx), or have spaces, or have illegal characters.
- You have file paths that are not plain ASCII and/or have spaces. For instance, the plugin refused to open files in C:\<user name with a space>\Downloads\ДВК-3 , but did open files in C:\Utilities\DVK-3.
The second step of this is to seek out a utility that converts DSK files into HFE files useful with the HxC hardware. Luckily, someone has written a Perl script that does this. The script is easy to find, being mentioned in the HxC support forums
http://torlus.com/floppy/forum/viewtopic.php?f=19&t=1384 and also available at this software archive
https://mirrors.pdp-11.ru/_pdp-11/_soft/MX/ . The script only manages the four formats listed above, so it won't be useful to make any 800K disk images for MY controllers. (Maybe I'll cross that road when I get there, but it's unlikely I'll go out and seek an MY controller.)
This next part is important:
the Perl script will complain if the size of the DSK file is not exactly as specified above. This means you need to add padding into the image to make it fill out the entire disk capacity. For this, I make the disk image as usual by selecting the files in Total Commander and using File -> Pack. Once the image is made, I subtract its size from 450560 and then use a hex editor to write enough zeros to a file to fill up the image. I select this "zeros" file and File -> Pack it once again, specifying the same path I wrote the image to earlier. This adds the zeros file to the image and increases the image's size on disk. To make it truly unused space, I can delete the zeros file from inside the DSK archive while it is open in Total Commander, and the DSK image file will remain the same size but now show "Unused" space.
(I'm sure this whole process could be automated inside Perl anyway; I'll have to look into it if this toolchain becomes too time-consuming for me.)
Unfortunately, once you convert the DSK image to HFE, the HxC software itself still won't be able to show you the contents of the disk. You'll just have to trust that the tools worked correctly and put it into your computer.
Running the HxC as two floppy disk drives is easy. Since I haven't figured out how to make my own bootable disk yet, I'm still using a completely filled-up half-size disk (a 225280-byte image) to load RT-11 and then using my own DSHD images as my secondary. Since I'm pretty sure the LCD panel & buttons on the HxC only allow you to change what's in the "A" drive, I put the RT-11 image onto the "B" drive (specified by means of the HXCSDFE.CFG config file set to load both STARTUPA.HFE and STARTUPB.HFE) and then tell the DVK-3 to boot with MX1: rather than MX0:. I haven't tried changing disks on MX0: yet in this manner, but previously, when loading the OS from MX0: and then changing the MX0: disk image on the HxC, the system would become unresponsive upon further queries to the disk drive.
Now, I'm going to grab a blank 5.25" disk and see if I can get RT-11 to format it with a real FDD as MX1: and the HxC as MX0:.
Your board is 22-bit, and data register is at 17777566.
I tried this address and it worked as expected. Thanks, shattered, for all your help & insights so far!
And here's a pic of the computer in action (showing the Tetris welcome screen) at Saturday's local Retrocomputing meetup in Dallas: