Using NitrOS-9 EOU in Emulators with DriveWire Becker Port

Using NitrOS-9 EOU in Emulators with DriveWire Becker Port

The latest version of NitrOS-9 Ease Of Use Beta 6 comes with some limited DriveWire support for real CoCo Hardware. This article guides you through the process of modifying that setup to use EOU with DriveWire on MAME or VCC Emulators.

Initial Setup

The first step is to get EOU running in your emulator of choice You can use MAME or VCC. Download the EOU Beta 6.0.1 package from either the Color Comptuer Archive or the main L. Curtis Boyle NitrOS-9 EOU page. You can use either the 6309 or 6809 versions.

Note: The EOU distribution comes in both 6809 and 6309 versions. I’ve written these instructions for 6809, but they will work equally well for the 6309 version. Just substitute "63" or "6309" every place you see "68" or "6809" in these instructions.

The download package contains two disk image files:

  1. 68SDC.VHD – This is the main Virtual Hard Drive Image
  2. 68EMU.dsk – This is a boot disk image for Emulators

It is highly recommend to make a working copy of these. I named them 68becker.dsk and 68becker.vhd and will use these names throughout.

You also want to use the Obsolete Computer Systems EOU Customization Pack, available from here:

Attach the 68becker.dsk image to Floppy 1, The eou_dw_pack_6809.dsk image to Floppy 2, and the 68becker.vhd image to Hard Drive 1. If you are MAME command line user you can use the following command line:

mame -window coco3 -flop1 68becker.dsk -flop2 eou_dw_pack_6809.dsk -hard1 68becker.vhd

Start your emulator and type DOS. NitrOS-9 Should boot up.

NitrOS-9 Kernel Customization

The next step is to customize the kernel so it can work with the DriveWire Becker Port which is included in both MAME and VCC Emulators.

  1. First step is to install the additional boot packs into EOU
  2. Run the installer by typing /d1/cmds/packinstall /d1 /dd This command will look for the packs on drive /d1 and install them to the main hard drive image /dd.
  3. The installer will prompt you to install various boot packages. For this guide you want to install the EMUDWBECKER package. When prompted type y to install this package and n to skip the others if you want.
  4. Now that the boot pack is installed, you can run the swapboot command to perform the installation.
  5. Again select the EMUDWBECKER boot pack. This will do the actual installation onto the 68becker.dsk boot disk.
  6. Quit swapboot
  7. Issue the reboot command. You will be dropped back into RS-DOS.
  8. Shut down the emulator for now.

DriveWire Server and Emulator Setup

At this point we turn to configuring the DriveWire Server and your Emulator to talk to it. This will work equally well with pyDriveWire and the DriveWire 4 Java server.

Configure your DriveWire server to listen on tcp port 65504. For pyDriveWire the command line is:

./pyDriveWire —accept 65504 <additonal_options>

If you are using a pyDriveWire config file, put these lines in your config:

option accept
option port 65504

Please start your desired DriveWire server now. It must be running before starting the emulator side.

The emulator side:

MAME: The Becker Port needs to be enabled. You can do this through the Machine Configuration page in the OSD, or by config file. Note, this sample is for coco3(6809). For 6309 use coco3h. If you already have a coco3.cfg or coco3h.cfg, you need to add the line starting with <port tag=":beckerport" to your existing config file:

<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
    <system name="coco3">
        <input>
            <port tag=":beckerport" type="CONFIG" mask="1" defvalue="0" value="1" />
        </input>
    </system>
</mameconfig>

VCC:

To use the Becker Port, you must insert the Becker Port cart into a slot on the MPI. Just open the Cartridge menu and select an empty MPI slot and select insert. Navigate to the Vcc installation folder and select becker.dll.

Once the cart is loaded, you will find configuration options for this interface on the bottom selection of the Catridge menu: DriveWire Server.

If you are running DriveWire on the same computer that you run Vcc, enter 127.0.0.1 as the server IP address and 65504 as the TCP port (already default). This will match the settings used by the simple configuration wizard in DW4 if you choose emulator as your platform and leave the other settings at their defaults. You can also connect to a server on another computer or even at another location by specifiying it’s IP address and port.

Starting everything up

Ensure that your DriveWire server is running before proceding. Again ensure that it is listening for incoming TCP/IP connections on port 65504, which is the default for both MAME and VCC.

If you have not done so already, attach some disk images to your DriveWire server for testing.

Ensure that the 68becker.dsk image is attached to Floppy 1, and the 68becker.vhd image to Hard Drive 1. Power on your Emulator, and then type DOS. You should see NitrOS-9 EOU boot up again.

After it boots up, run the following commands to see if DriveWire is functioning or not.

dw disk show

This command will show which Disks, if any, are attached to the DriveWire server:

dw disk show
Drive  File
-----  --------------------------------------
0      /demo/EOU/b601/6809/68becker.vhd
1      /demo/EOU/b601/6809/68coco3fpga.vhd
2      /demo/sysgo_dev.dsk
3      /demo/NOS9_6809_L2_becker.dsk

To test actual disk access, you can do dir /x0 to see the contents of DriveWire drive 0. There are 4 drives available 0-4.

If you are having problems with this guide please go to the #drivewire channel on the CoCo Discord Server. If you tag me @mikeyn6il I will likely see your query fairly quickly and respond as soon as I can!