DriveWire 4.3.4e

DriveWire4 v4.3.4e

(Download Link at Bottom of Page)

!!PLEASE READ BEFORE DOWNLOADING!!

Back in 2014 or so, I was developing NitrOS-9 software (still do) for the Tandy Color Computer 3 for using various features of the DriveWire4 File Server. In talking with Aaron Wolfe (Drivewre4 developer) about certain aspects of using the DW4 commands, he offered to send me a recent test version of a new DW4 which was not available to the public. This was DriveWire4 v4.3.4a. This version didn't quite do what I needed, so over the next few days, and several enhancements later, I received DriveWire4 v4.3.4e, which not only did what I wanted, but also had a few extra features currently not available in the official release of DW4 4.3.3o. I was told not to release it publicly as it was not ready for release, so I kept it to myself, though I did share it with a couple of other developers at the time. It wasn't until a year or so later, I found Aaron had also sent the test version to other software developers as well. Aaron is no longer developing DriveWire4 and since it is Open Source software, I do not see any reason to keep this release private any longer as Aaron is obviously not going to release DW5 anytime soon.

DriveWire4 v4.3.4e is different in many ways from the official 4.3.3o release that has become the standard among DriveWire4 users, and I hope to explain these differences in this blog and (hopefully) how to use some of them. This will not be a DriveWire4 manual or tutorial, but an explanation of new features (and downfalls) of version 4.3.4e.

DriveWire4 v4.3.4e Features:

  • Unlimited memory use... originally, DriveWire4 set a maximum amount of memory allocated to instances and could only be altered via command line parameters or edits to the config file. Version 4.3.4e eliminates the need for this and allocates memory dynamically as needed.

  • Support for Multiple Instances... DriveWire4 has always supported multiple instances, but again, only available through complex command line parameters using multiple GUIs for each instance. Version 4.3.4e fixes this with a single GUI and a "Instance Manager" tab that allows the user to have many instances running at once (multiple Cocos/emulators), all using the single console, each selectable from within the "Instance Manager" menu. The "Create Instance" and "Delete" features of the manager were never completed, so instances have to be created/deleted by editing the DW4 config file manually (more on that later), but for the most part, there is no need for ANY command line parameters in this version of DriveWire4.

  • V-Port Sniffer... The V-Port Sniffer is a debug monitor (of sorts) that allows the user to monitor all incoming/outgoing data to/from the DriveWire4 server/client in hex and text format. This allows software developers to see exactly what is being sent or received and debug bad command syntax in their software. The V-Port Sniffer is a tab option on the main console. Just click the tab to activate it. Anyone familiar with NitrOS-9's "DEd" utility or common hex editors will recognize the interface format. This works ONLY on the "/Nx & /MIDI" ports available through NitrOS-9. It can be used with RSDOS/HDBDOS, but that's a whole new ballgame and will not be discussed here.

  • Sharing of VHD/DSK images across instances... Originally, DriveWire4 allowed the sharing of dsk images across instances (when and if you got multiple instances working correctly) by using the "Sync" functions of the disk interface, but if you didn't have enough memory allocated for the instances, you could easily crash your dsk and lose data. Version 4.3.4e fixes this by not only dynamically allocating memory as needed, but also by writing any changes of the memory copies of the image directly to the server's HD on every change to the memory copy of the image. Originally, DW4 loaded the dsk image into memory, working only with the memory copy and updating of the HD copy was only done when closing DW4 or when the "Dw Disk Write" command is issued from the DW4 client or console. This meant the image on your hard drive was not updated while you were working, only the memory copy was updated. Version 4.3.4e now writes all changes immediately, therefore anything you write to the disk on one instance, is immediately available on any other instance that has the same image mounted... and yes, you can mount the same image in multiple instances.

DriveWire4 v4.3.4e Quirks, Bugs, and Missing Features (as opposed to DriveWire4 v4.3.3o)

  • Config Editor... The config editor is still present in version 4.3.4e, but doesn't seem to work as it did before. Some selections do not seem work properly and some seem to not show up at all. Sometimes it seems not to write the config back to file, but I'm never sure. I prefer to just edit my config file in a text editor anyway so that was never a problem to me.

  • V-Port Sniffer... The V-Port Sniffer is an experimental and unfinished feature and has quite a few quirks of it's own. It was part of a plugin feature that Aaron was experimenting with and was never fully implemented. As it stands, sometimes the sniffer only shows data from the current selected instance, sometimes it will show data from the first instance only. I never really know which I will get and have to restart DW4 sometimes to get the instance I want in the sniffer. Also, the sniffer seems to have some sort of buffer that captures the data for the display and on lengthy transfers (like copying a file from PC to Coco), you have to wait until the buffer activity is done (sometimes forever) before being able to scroll and view the data, which also causes DW4 to pause operations (sometimes). There may be other bugs in the sniffer as well.

  • Library... The "Library" panel as well as it's built in internet browser have been removed. If I remember correctly, Aaron told me he was going to make this feature a plugin, but alas, it never happened. All the internal communications features (TCP/IP, telnet, etc) are still available, just the library/browser is gone.

  • Menu Items... Some menu items in the console no longer work. I really can't name them at the moment as I haven't used DW4 v4.3.3o since I received 4.3.4e back in 2014. Personally, I haven't missed them so they must not have been important to start with (at least not to me).

I'm sure there's things I'm missing here, but if I think of any, I will try to add them as I can. All I can say is that the ease of use with multiple instances, sharing of dsk images, and V-Port Sniffer alone are reasons enough to use DW4 version 4.3.4e. I wouldn't even know how to get my current DW4 setup to work in v4.3.3o anymore... and I don't want to know. I do remember it was a nightmare to setup before v4.3.4e.

Now, a little help...

Most things in v4.3.3e are pretty much self explanatory with the exception of setting up multiple instances. To setup multiple instances, you will need to open the "config.xml" file, found in the DW4 installation folder (use any text editor). You must scroll through the file (or search) until you find the <instance ....> entry tag in the file. Select this item and everything following it up to and including the </instance> end tag. Copy this selection and paste as many copies as you need instances to the line following the end tag (</instance>). Yes, this creates exact copies of the same instance, but we're going to fix that in a moment. Save the "config.xml" file, close it and start DW4.

Once DW4 is running, you will probably see a bunch of error messages scrolling in the "UI" pane, but do not be concerned as we will fix that. Also, as long as you keep your setup the same, this is a one time operation. At this point, you may want to click the tab labeled "Instance Manager", located just above the drive slot list. This will open the Instance Manager panel, which is movable and can be moved out of the way to get to the console when needed. To stop all the error messages, you can click the "Stop" button on each instance. This will effectively stop DW4 from trying to connect to non connected (for now) machines.

Now for the tricky part... first, you must decide on a port number for each instance (when using TCP/IP for emulators) as each instance must have a unique number. Since DW4 defaults to 65504/65505 (it actually uses both numbers for client/sever though only 65504 is shown), I usually use 65504, 65506, 65508, 65510 etc, etc, always in steps of 2. This is not needed when using just real Cocos. I use emulators, real Cocos, and the Coco3FPGA, so I have to keep up with all of it.

Now you decide on which machine will be the first instance. In the "Instance Manager" panel, click the very first instance button for ""Attach UI", which activates that instance in the console UI making it the "current instance". All menu choices and actions (including dsk mounts) now apply ONLY to this instance. Now, on the main console, got to the top menu bar, click "Config" then select "Simple Config Wizard", and go through your normal setup for your machine, whether it be a real Coco, emulator, or Coco3FPGA. Don't forget to set the port number when using emulators or the Coco3FPGA. Once you finish the wizard, click he "Start" button for that instance in the Instance Manager panel and then start your machine. You should have connection.

Repeat this process for all other instances, and remember to use different port numbers for each emulator/Coco3FPGA The same port number MUST be set in the emulator/Coco3FPGA as well.

If you've created instances that you are not using at the moment but plan to use later, you can click "Autostart" in the instance manager to turn it off and you will not get the connection error messages every time you start DW4 in the future until you are ready to use the instance again, just remember to click "Autostart" again if you plan to use it to make it start again. "Autostart" is only affected by a DW4 restart. You must start a "turned off" instance with "Start" or "Restart" if you do not want to restart DW4.

And remember, the dsk image slot panel reflects the current instance selected. You cannot mount a dsk image in instance 1 and expect it to be available in instance 2... you must click "Attach UI" in the Instance Manager for the desired instance, THEN mount you dsk image.

As a final note... ALL internal functions of DW4 v4.3.3e are identical to v4.3.3o. I have not found anything added or missing, meaning any "dw" commands or internal workings will work as normal. I have been using this version of DW4 since 2014 and have not had a single problem as I use the "dw" and "ui" command systems exclusively in all my NitrOS9 software projects. One of these days, I'll get around to writing a tutorial on using some of these commands from the Coco....

Now for what you've been waiting for... the download...

NOTE: I did not write this utility, I do not support this utility, I may or may not answer questions on this utility, I am only offering it here because I have it and most others don't. You can use it or abuse it, love it or hate it, download it or delete it.. I don't care and don't want to hear about it.

Other than that, Enjoy...

B.P.

DriveWire4 Version 4.3.3e — Aaron Wolfe's unreleased "Developer's" version of DriveWire4