Emulate your CoCo on your PC

There are several freely available emulators for CoCo 1 and 2' and 3's.  What follows here is some info I recorded as I made the emulators work. Note that these examples worked with my system, may not work with all others. Check out Paul Burgin's , Jeff Vavasour's, David Keil's, MESS, or Russ Le Blang's emulators.  Jeff has CoCo disk functions on his that allow import and export of actual CoCo media on a 5 1/4 PC drive, you may prefer this if you have a disk system, but this is also the oldest emulator, you may find it works the best on older PC's. Jeff recently released an update to solve some excessive speed issues with modern processors, updated version is 1.6. T3 by Paul Burgin works well with Win 95, but at present does not support disk functions. One of the latest emulators out is Return Of CoCo, can support virtual disks. The MESS emulator seems to be updated fairly frequently, but I have not tried it. As of Jan 1, 2002 Jeff Vavasour's CoCo3 emulator has been released as freeware.  My new favorite has to be David Keil's CoCo emulator. Currently supporting CoCo 1 and 2, it also supports disk functions including physical drives, and hardware emulation of other devices.

The first step in running an emulator is to download it. Follow these offsite links to the emulator of your choice!

 Paul Burgin's T3 CoCo emulator        Jeff Vavasour's CoCo Emulators         Return of CoCo Emulator        MESS emulator        David Keil's CoCo Emulator
 

Some older information, mostly applicable to Vavasour's emulator is on site here under the following links.
 Obtain your own roms                  Transferring CoCo-PC by Disk        Taking emulator screenshots
 Ready made roms                        Transfer Pc-CoCo by disk
 Running under Windows 95/98
 

David Keils CoCo2 Emulator

I have only used this for a couple of days, but it is already appearing that this will be the emulator of choice. I mainly use the emulators to move my CoCo software into the PC, and back to an actual CoCo, with Windows as the PC's operating system.  This emulator works well with a 5 1/4" physical drive, as well as with existing .dsk and .pak file formats. What I will list here now is basically differences between this and Jeff Vavasour's CoCo 2 emulator. I will probably move all information for this emulator to a seperate page in the near future

- Works with Windows! This is a real plus especially if your PC uses Windows ME.

- I installed a 360K drive in my PC to handle the CoCo transfers. I could not get this emulator to work with the same 1.2MB drive that I used with Jeff Vavasour's emulator. The plus side is this 360K drive operates flawlessly, no tricks required to get it to work.

-The Roms are included with the emulator! What you will get is Color Basic 1.2, Extended Basic 1.1, and Disk Basic 1.1. These are the typical roms found in an early model CoCo2. Roms are the actual dumps, no preambles, are 8192 bytes long .

-You load in Disk Basic by installing the disk controller pak into the Multi-pak Interface, same as you do with a real CoCo. Access the Multi-pak interface by pressing F4. I put the Disk Controller in slot 4, just tab up to slot 4, hit enter, type in DSKBASIC, enter it,  move the select switch to 4, and reset the emulator. Next time you start the emulator, it will have remembered this configuration, no need to do this every time.

-Select up to 4 virtual drives. To select a physical drive, you don't enter its drive letter as in Jeff's emulator. You select from a table of drive specs, which you should have downloaded seperately in the cocosupp.zip file. For example, for my 360K drive in the PC's B: location, I selected FDD1_360.DSK as one of the virtual drives.

-Has its own cartridge rom format, similiar to the .pak files that the other emulators use. Save your cartridge as a .rom file, and the emulator will help you create a seperate .car file to label the cartridge once you install it in the emulated Multi-pak. You can still use your existing .pak files, just load them in under the snapshot selection. If you are uploading your own paks to use with this emulator, simply dump the rom image itself, no need to calculate its length or add a preamble.

-Appears to have its own format for virtual disk files, but it does support the existing .dsk files also. Swapping .dsk files between Jeff Vavasour's emulator and this one seems to work fine.

More on this emulator later.......
 

Previous emulator information;

Making the emulator work

You should have downloaded and unzipped the contents of your emulator. View the readme documentation that came with the emulator. What you will find that is common between them is that they both require a CoCo rom image to work. As the roms are copyrighted, you will not find them included with the emulator. There are a few roms around on the net, but what follows here is some info to obtain your very own CoCo's rom. Follow the instructions that came with Jeff's emulator. What you are trying to accomplish is to read in 8-24K of machine code that resides in your CoCo and move it to the PC. 3 methods available are transfer via cassette, cable or disk. I had no luck with the cassette transfer, I ended up with a corrupt rom when transferring with this method. Not realizing it at time I started the emulator, which crashed my PC and part of my hard drive. Two methods I have had success with are as follows:
 

Obtain your rom via disk

If you are fortunate enough to have a 5 1/4 drive on your PC and a CoCo disk system, use this method. If you don't have a 5 1/4 drive, and are planning on moving files back and forth between your CoCo and the emulator, it is well worth installing a 5 1/4 drive in your PC. You need Jeff Vavasour's emulator to use this method. From a DOS prompt in the emulator's directory, run the DSKINI utility. Place a double density 5 1/4 floppy in your PC. Enter DSKINI drive COCOUTIL
Typically your 5 1/4 floppy is Drive B, so your line will be   DSKINI B: COCOUTIL. The PC will now format and write an actual CoCo disk. Place this disk in your CoCo and enter in RUN"GETROM"  The CoCo will now write all 3,  8K roms to the disk. Take the disk and place it back in the PC. Again from a DOS prompt in the emulators directory, type
RETRIEVE /R B: COCO.ROM (assuming that your 5 1/4 floppy is the B drive) Examine the resultant file COCO.ROM , must be exactly 24578 bytes long. Do not start the emulator if it is not, try repeating the procedure. If all looks okay, starting the emulator will give you the DISK EXTENDED startup screen, the same as you see with your CoCo drive connected to the real machine.

Obtain your rom via cable

This method requires a couple of items, but it does work well. You need a terminal program on your PC, and a  serial cable to connect your CoCo to the PC. The same cable can also be used to upload CoCo disk or rom pak software to the PC. With the cable in place, set the PC's terminal program to 2400 baud, 8N1, where 8 is 8 bit length, N is no parity, 1 is one stop bit. Enter a file capture mode, and set the parameters to read in raw data, binary or whatever will read in pure data. Not all terminal programs will work, I know I have one that will transfer everything except for a binary 0.

Enter this Basic program on the CoCo and run it;

     10 POKE 150,18
     20 PRINT#-2,CHR$(0);CHR$(128);
     30 FOR X=32768 TO A
     40 PRINT#-2,CHR$(PEEK(X));
     50 NEXT X

For a Colour Basic upload only, edit line 30 FOR X=40960 TO 49151
For Extended and Colour Basic, in line 30,  A=49151
For Colour, Extended and Disk Basic, in line 30,  A=57343

Once the OK prompt returns on the CoCo, your transfer is complete. Manually inspect the received file for errors. Usually checking its length is all that's required. Color Basic rom only will be 8194 bytes (1 8K rom), Extended will be 16386 bytes (2 8K roms), and Disk Extended will be 24578 bytes ( 3 8K roms). File lengths must be exact. Label the received file COCO.ROM and move it into the emulator's directory. Be sure the rom you want to start the emulator with is labelled this way, as the emulator automatically looks for this file on startup. Say you have the Disk Extended rom as the active rom (named COCO.ROM) and you want to emulate just a Extended Basic system. Rename the existing COCO.ROM to DISKROM.ROM and rename the Extended rom to COCO.ROM. The same can be done with the Color Basic rom if need be.

 This upload will generate a useable rom file for Jeff Vavasour's CoCo2 emulator. You can run any one of the 3 roms on this one, (8K, 16K or 32K). Paul Burgin's T3 will only run the Extended Basic rom (16K).

One other emulator that is fussy about its rom is the MESS emulator. It actually performs a checksum on the rom before the emulation begins. The rom it is looking for is from an early CoCo2 with Colour Basic 1.2 and Extended Basic 1.1. If you are creating the rom file using the above program, delete line 20, as the 2 byte preamble is not used. This emulator is also only using the Extended Basic rom (16K). Total length on this rom file should be 16,384 bytes.

Ready made roms

If you have been searching my my site wondering where the roms are, well there aren't any here.  Here are some links to sites that have some ready to go, although I have not tested any of these personally.

     MESS roms      http://www.cocoemulation.cjb.net/
 
 

Moving downloaded software to your actual CoCo

Unless you have an actual CoCo surfing the net, you need some way to transfer CoCo files you can download to your CoCo.
Here again the best method is to have or have access to a PC with a 5 1/4 drive. Be sure you have Vavasour's CoCo2 emulator loaded on this PC. The most common form of CoCo software will be in .dsk format. This is a virtual disk image commonly used by the emulators, consisting of a single sided 35 track disk. This disk image is ~ 158K or 161,280 bytes long.
You can fit approximately 9 CoCo disk images on a 1.44 Mb floppy disk, if you happen to have to go over to your buddy's place to use his old 386 with a 5 1/4 drive to write your actual CoCo disks.

There are utilities included with the CoCo2 emulator to create a disk in DOS, but I find it easier and sometimes more reliable to create the CoCo disk from within the running emulator. Before you start the emulator, be sure the disk images are moved into the same directory as the emulator. Start the emulator, press F6 for the menu and check item I . 1.2 Mb drive as...........
You will see either 40 or 80 tracks. Set this to 40, just pressing the letter I toggles this setting. Notice that this calls for a 1.2 Mb drive, 360K's will not work in the PC.

Use a double density disk, not a high density as you think would be required by the PC drive. Install it in your drive. Next press F2 for the virtual disk menu, it will list 4 virtual drives. Enter the drive letter of your physical drive, usually B: after selecting a virtual drive by pressing its letter. Next select another virtual drive and enter the name of the .dsk file you want to transfer. Hit ESC to exit this menu and return to the running emulator. Do a DIRx where x is the virtual drive number (0-4) of the .dsk file you had entered. If there are any files on the disk, you will get a listing, if blank, just the OK prompt returns. Next do a DIRx of your physical 5 1/4 drive. This is where the problems usually begin. Expect an IO ERROR with no disk in the drive, or a non CoCo formatted disk. Hopefully atleast the light came on and the drive spun. If the drive did not do anything, go back to the F2 menu, make sure it is properly selected. If it did run, change to this drive with a DRIVEx command and then DKSKINI it. Once formatted, simply do a BACKUP .dsk virtual drive TO physical drive, entering the appropriate drive letter. If everything worked, you should now have an actual CoCo disk, written by your PC.
 

Moving software from your CoCo to the PC emulator

Now that you have the emulator working, you may want to move your CoCo software onto the PC. Again the best method is to transfer using a 5 1/4 drive on your PC, but it can also be done with a serial upload cable if you don't have that drive on your PC or are running a cassette based CoCo system.
 

Transfer using 5 1/4 drive on your CoCo and your PC

Requirements for this are a 5 1/4 floppy on your PC, Jeff Vavasour's CoCo emulator, and a CoCo disk system. Start the emulator, set up the PC floppy drive as a physical drive by entering its drive letter as one of the CoCo drives under the Virtual Disk menu. For example on my system, I set Drive 3 as the physical 5 1/4 drive by entering    B: on the drive list.  Start the emulation, switch to the physical drive with the DRIVEx command where x is 0 to 3, whichever drive you selected under the Virtual Disk menu. Now try a DIR, your 5 1/4 PC drive should now work. Expect an IO ERROR with no disk installed. Next put in your CoCo disk and try to pull up a directory again. If the directory comes up, you have a good interchange and can start moving your software into the PC. If the emulator returned an IO ERROR, here are a couple of tricks to try;

Trick 1 : Be sure you are using double density disks, high density disks sometimes cause problems

Trick 2 : Install a blank disk in the PC and DSKINI it from the running emulator. Don't use the
              DSKINI routine from the DOS prompt that is included with the emulator for this
              particular trick. Remove the disk, and reinstall the original CoCo disk you were trying to
              read and try to read it again.

Trick 3 : Take the disk that the PC formatted in Trick 2, and using your CoCo system COPY the
              disk you are trying to read onto the PC formatted disk. Then move this fresh copy back
              to the PC drive and try and read it.

Once you have found that you can interchange disks, you can start transferring. The emulator saves complete CoCo disks under a disk name with a .dsk extension. In the emulator, this disk is entered in the Virtual Disk menu as one of the CoCo drives, where it is then accessible. If you are only moving a few files, you can use the CoCo's COPY command to move files from the physical drive to the virtual disk you have selected. If you want to copy an entire disk, it is fastest to use the RETRIEVE command from the DOS prompt. Install your CoCo disk, and from the prompt enter
RETRIEVE B: name.dsk. This will load the entire disk into the emulator's directory.

Alternatively, you can move files from your PC to your CoCo. If you have an entire disk to move, use the DSKINI utility from the DOS prompt. Put in a blank disk in the PC drive, enter
DSKINI B: name.dsk. This is assuming that your PC floppy is the B drive. If you have just a single file to move, use CoCo COPY command to move from a virtual disk to an actual CoCo disk in the physical 5 1/4 drive.
 

Program transfer using serial cable

You need the  serial upload cable and a terminal program on your PC. This procedure is similiar to the procedure done to transfer the rom via cable. Here are some examples to transfer individual disk files and cartridge program paks to the PC.

Program Pak Transfer using cable

Follow this procedure to read the rom on your program pak, and transfer it to the PC. Connect the serial cable, and prepare the pak for examination. It is necessary to disable the cartridge interrupt that auto executes the pak. To accomplish this, simply use some tape to cover pins 7 and 8 of the pak's connector. With the label up, connector towards you, push the spring loaded door back to expose the connector. Pin 7 is on top, pin 8 is on the bottom directly under it. Usually 7 and 8 are the first traces from the left, as most paks don't use pins 1-6. Install the pak with your CoCo off, and power it up, should be at the Basic prompt. If the pak started, or the CoCo crashed you are on the wrong pins, or are insulating more than just pins 7 and 8. If you have a CoCo3, enter
POKE 65502,0 to read the pak rom. This is not necessary if you have a CoCo 1 or 2.
The next step is to determine the length of  rom pak. Most older paks are 4, 6, 8K long. I don't believe I have any 16 or 32K game paks so the following program will have to be modified if you have one. The largest one I have transferred has been my Edtasm pak at 10K long. Manually determine the length of the pak by checking for a repeat of the data that is at the very start of the pak. Peek at locations 49152 to 49156 and record them. Then check locations 53248 to 53252, if the data is identical, you have a 4K pak. If it is different, check 57344 to 57348. If they are the same you most likely have a 8K pak. Check locations at every 2K (2048 bytes). Often you will see unprogrammed locations at the end of the program, often with all 126 or 255 data in them, filling up space to the nearest 2K location.

Once you know the length, enter the following program;

     10 GOTO 50
     20 A=16 : B=53247 : GOTO 110
     30 A=40 : B=59391 : GOTO 110
     40 A=24 : B=55295 : GOTO 110
     50 CLS : PRINT" PROGRAM PAK TRANSFER UTILITY"
     60 PRINT"ENTER PAK FILE LENGTH IN K";:INPUT A$
     70 IF A$="4" THEN 20
     80 IF A$="10" THEN 30
     90 IF A$="6" THEN 40
     100 A=32 : B=57343
     110 POKE 150,18
     120 PRINT#-2,CHR$(0);CHR$(A);CHR$(0);CHR$(192);
     130 FOR X=49152 TO B
     140 PRINT#-2,CHR$(PEEK(X));
     150 NEXT X
     160 PRINT"TRANSFER DONE, FILE LENGTH";A*256+4;"BYTES"

Start your terminal program on your PC, setting it 2400, 8N1. Be sure you are in a file capture mode that will read in raw data. Run the above program that you have entered. Once the transfer is complete, manually inspect the received files length. It must match exactly, otherwise try retransmitting or another terminal program. If it is okay, name the file, give it a .pak extension and move it into the emulators directory.
 

Moving disk files by serial cable

Again as this uses disk functions you will need Jeff Vavasour's emulator. If you don't have a 5 1/4 drive on your PC, you can still move your CoCo files to the PC. I have a transfer utility available for download that will move individual files to the PC using a terminal program and the serial upload cable . This utility was written for Disk Extended 1.1 or 2.1 with a 32K or better machine. If you have a 16K machine the listing will need editing as it is using memory in the 30000 address area. Download Diskutil.zip . After unzipping it, use the Port utility to move the file onto a virtual CoCo disk. From there you can can move the file to your CoCo.
 

Running under Windows 95/98

Paul Burgin's T3 loads right in, even includes a shortcut icon for your desktop. I had no problems starting this one up.
Jeff Vavasour's emulators however did not want to run with Windows in the picture. You may have to configure your shortcut to run in MS-DOS mode only, but this is a pain as your PC has to shutdown and restart. You can try editing the shortcut properties, be sure it is set to full screen mode, and tick the box to prevent the program from detecting Windows. If this works, just use your Windows key to switch to another application with the emulator still running.
Russ Le Blang's Return of CoCo is Windows native also, just be sure you have Direct X on your PC to use this one.

 Index
 

Last Updated Jan 1 / 2002