PDA

View Full Version : Tandy color computer 2



Unknown_K
April 17th, 2010, 10:03 AM
I snagged a Tandy Color Computer 2 with the external floppy drive. What format do the floppy disks use, and how can I use a PC to copy games to disks so I can play them on the coco?

random_rodder
April 24th, 2010, 08:46 PM
There are several methods you can use to copy games to play on a CoCo. In no particular order:

1. MESS emulator
2. VCC Emulator
3. Cloud9's (http://www.cloud9tech.com)DriveWire software will allow you to mount virtual drives on a PC and access them thru the bit-banger serial port
4. Roger Taylor's DrivePak - Plug in ROM pack that gives access to a 2GB MicroSD card, real floppy drives, or virtual drives mounted on a PC via the included 'CoCoNet' software. You can read more about it at CoCo2.com (http://www.coco3.com)


Brian

carangil
April 28th, 2010, 06:08 PM
I relatively recently bootstrapped a CoCo with a floppy drive with a PC that has NO floppy drive. When I get home I can post the resources I used to do this.

Here's the rough overview of what you are getting into:

-Constructed a bitbanger serial cable (don't worry, it's only 3 wires)
-Found a serial routine online in assembly
-Format a floppy in the CoCo
-Typed in a short BASIC loader, save to disc. (just a few lines)
-Key in the serial recieve routine, save it to disc.
-Found a .srec file of CC kermit. Converted it to binary with a short C program (on my PC), and sent it over the wire (I had to encode it a little to make it error tolerant, because the bitbanger sucks!)
-Keyed in a short decoder for the above-encoded file (save it before you break it)
-Downloaded CC-kermit to the Coco, and decoded it with the basic program, save to disc
-Load and run cc-kermet.
-Success: WIth CC-Kermit, you can recieve all kinds of stuff over the wire and save them to disc! (CC-Kermit is a terminal emulator with file recieve ability)

Tonight, I'll re-do it on a new floppy, and write down all the exact steps, and post it online. Even if you don't use it, its something that needs to be put online AND I need to know how to do it again!

Unknown_K
April 28th, 2010, 09:22 PM
Sounds cool. Do I need 2 floppy drives on the coco or will 1 work fine?

carangil
April 29th, 2010, 12:56 AM
You only need one floppy drive. I just did this from scratch tonight (almost from scratch: I loaded the basic programs from a floppy instead of retyping them! I did retype the comm4 hex just to prove it still works)

I got a lot of information from Bill Yakowenko's site: http://www.cs.unc.edu/~yakowenk/coco.html

Some of the stuff is hard to figure out at first, and a ran into a few problems. I'll fill in the pieces.

-Construct the BitBanger cable :

http://www.cs.unc.edu/~yakowenk/coco/text/downloading.html
http://www.cs.unc.edu/~yakowenk/coco/text/serial.html



-Format a floppy

DSKINI0


-Type in binentry.bas

http://www.cs.unc.edu/~yakowenk/coco/pgms/binentr3.bas

-Save it

SAVE "BINENTRY.BAS"

- Run it

For filename enter COMM4.BIN

enter in the data shown here: http://www.cs.unc.edu/~yakowenk/coco/pgms/comm4.be2.html

When you are finished it will save it to disk.


Theoretically, now that you have comm4 you can run it, and whatever is saved to memory can be saved to disk. I had a lot of trouble downloading raw binary files (such as cckermit) because I seem to get a lot of noise on the bitbanger. Maybe my cable sucks. I only really had trouble with repeating patterns of bits, such as many zeros in a row. I remedied this problem by encoding .bin files.



Downloading cckermit to the coco:

Download this file: (It is just a text file)
ftp://kermit.columbia.edu/kermit/c/coco.jar

Inside this text file is an SREC listing of kermit. I wrote a program to convert srec to bin, and I tried to send that to the coco using comm4. As I mentioned above, I had a lot of problems with that, so instead I encoded it into an easier-to-parse hex format.

I have zip file here: http://arctangent.8k.com/random/srec.zip that contains kermitcc.sre, as well as the app that creates the hex coded file. (The command line to generate is "srec kermitcc" This decodes kermitcc.sre into kermitcc.bin, and creates kermitcc.bin.hex.txt and kermitcc.info.txt. It also outputs the checksum in hex, (For kermitcc it is 5d08c)


-Reset the coco (Or 'NEW')

-Enter HEX2BIN.BAS

(listing in these images) (sorry, it is a TV capture)
http://arctangent.8k.com/random/hex2bin.jpg
http://arctangent.8k.com/random/hex2bin-pt2.jpg

-Save it as "HEX2BIN.BAS"


LOADM "COMM4.BAS"

Notice we have both a BASIC and a machine language program in memory at the same time!

Run the machine language program:

EXEC

After running EXEC, in Hyperterminal at 9600-8-N-1, download kermitcc.bin.hex.txt down into the coco.

This will download stuff to address $4000
The bottom right corner of the screen will change characters rapidly a things are downloading. It will change once per second when timing out. After the file is sent, and the comm times out for 10 seconds, you will return to BASIC.

Now we need to decode the hex text back into binary. Type RUN.
It will show progress as it decodes. It is very slow because it is written in basic. You could probably take off the print line but I was paranoid when I wrote it. When it is done decoding it will show the checksum in decimal (The correct value for CCKERMIT is 381068).

Now you must save CCKERMIT to disk:


SAVEM "CCKERMIT",&H2000,&H2FFF,&H2000

This saves the binary file.

Inside the above-linked CCKERMIT.JAR file is a short basic stub:

10 PCLEAR 1: CLEAR 200,&H1FFF
20 LOADM"CCKERMIT": EXEC

Type and SAVE "CCKERMIT.BAS"


If you reset your CoCo and type:

LOAD "CCKERMIT.BAS"
RUN

You should now have a working terminal emulator.

This emulator runs at 300 baud, not that fast, but the point is now the CoCo is bootstrapped, and you have successfully downloaded a program to it. You can download any other program in srec format to the coco as well using Bill's comm4 utility with my hex2bin program. It is a little rough, but here's some pointers:

In my program variable NA is the start address, and NS is the end address of where to write. If you are downloading a program with a different starting and ending adress to the coco, you need to make that edit to hex2bin. Also if the addres range you are decoding into overlaps with the download range, you will need to make the necessary modifications. (Probably the best bet is set na and ns to decode to a non-overlapping region, and then use a for loop to copy the bytes to the correct place. Also, since the output is smaller than the input, it can decode overlapping regions properly as long as the decode-to address lower than the decode-from address ($4000).

Good luck!

I would eventually like to create one short .bas file to type in that does all of this work at once, and then downloads a bunch of junk from the serial port on a PC. I need to get permission from Bill Y. to use his serial routines in my programs. (Or create my own).

Micom 2000
April 29th, 2010, 08:19 PM
A wonderfull post. This should be a "Sticky". Moderators ?

Lawrence

AaronWolfe
May 2nd, 2010, 10:04 PM
I relatively recently bootstrapped a CoCo with a floppy drive with a PC that has NO floppy drive. When I get home I can post the resources I used to do this.

Here's the rough overview of what you are getting into:

-Constructed a bitbanger serial cable (don't worry, it's only 3 wires)
-Found a serial routine online in assembly
-Format a floppy in the CoCo
-Typed in a short BASIC loader, save to disc. (just a few lines)
-Key in the serial recieve routine, save it to disc.
-Found a .srec file of CC kermit. Converted it to binary with a short C program (on my PC), and sent it over the wire (I had to encode it a little to make it error tolerant, because the bitbanger sucks!)
-Keyed in a short decoder for the above-encoded file (save it before you break it)
-Downloaded CC-kermit to the Coco, and decoded it with the basic program, save to disc
-Load and run cc-kermet.
-Success: WIth CC-Kermit, you can recieve all kinds of stuff over the wire and save them to disc! (CC-Kermit is a terminal emulator with file recieve ability)

Tonight, I'll re-do it on a new floppy, and write down all the exact steps, and post it online. Even if you don't use it, its something that needs to be put online AND I need to know how to do it again!

This process is made infinitely easier by using the free/open source DriveWire software or Roger Taylor's Coconet (not sure of pricing, may be free as well).

carangil
May 3rd, 2010, 10:51 AM
I tried out DriveWire last night, and its pretty cool. Though, I am having trouble copying files from a virtual disk to a physical disk. I tried this:

DRIVE #1
DRIVE ON
DRIVE #0
DRIVE OFF
COPY "foo" to "foo:1"

It seems DRIVE ON and DRIVE OFF turn virtual disks on and off all at once. Is there any way to have drive 0 be my physical floppy and drive 1 be a virtual floppy?

Also, I can get the coco running HDB-DOS by playing the cassette .wav file out of my computer, and using CLOADM. That works fine. I would like to save HDB-DOS onto a floppy though; drivewire (which is free from cloud9's site) only comes with HDB-DOS ROM image and tape .wav, but no '.bin', so I can't transfer it and put it on a floppy. I would just SAVEM the loaded drivewire to floppy, but I don't know the parameters (start address, etc) to do that. Anybody know?

I did manage to get the dw3dos.bin file included in the drivewire package to transfer via cckermit and saved on a floppy. Now I can just loadm"dw3dosc1":exec from my physical floppy, and boot into nitros9 from a drive image on my pc! That was cool! Now I'm just looking for a way to get HDB-DOS onto a floppy.

AaronWolfe
May 3rd, 2010, 12:05 PM
I tried out DriveWire last night, and its pretty cool. Though, I am having trouble copying files from a virtual disk to a physical disk. I tried this:

DRIVE #1
DRIVE ON
DRIVE #0
DRIVE OFF
COPY "foo" to "foo:1"

It seems DRIVE ON and DRIVE OFF turn virtual disks on and off all at once. Is there any way to have drive 0 be my physical floppy and drive 1 be a virtual floppy?

Also, I can get the coco running HDB-DOS by playing the cassette .wav file out of my computer, and using CLOADM. That works fine. I would like to save HDB-DOS onto a floppy though; drivewire (which is free from cloud9's site) only comes with HDB-DOS ROM image and tape .wav, but no '.bin', so I can't transfer it and put it on a floppy. I would just SAVEM the loaded drivewire to floppy, but I don't know the parameters (start address, etc) to do that. Anybody know?

I did manage to get the dw3dos.bin file included in the drivewire package to transfer via cckermit and saved on a floppy. Now I can just loadm"dw3dosc1":exec from my physical floppy, and boot into nitros9 from a drive image on my pc! That was cool! Now I'm just looking for a way to get HDB-DOS onto a floppy.

DriveWire is really more useful in NitrOS-9, in DECB it is more limited and I don't think you can have real and virtual disks functional at the same time (in NitrOS-9 you can). I believe this is because the DW rom fits into the small space used by DECB and there just isn't room for both? This was done before I became involved with the project. I believe if you found the offset for saving DECB to disk, this would be the same to use for HDBDOS.

Roger's Coconet is similar to DW, but he uses much more memory and so can support many types of drives at the same time in DECB. However, this increased size means you cannot load from the cassette port if I've read about it correctly, so you must burn an eprom to use coconet. This is just what I've gleaned from reading thread discussing coconet, so could be inaccurate.

I think the easiest solution for copying a .dsk to a real floppy would be to boot into NitrOS-9 where you can support both simultaneously, and then do a byte for byte copy of one device to the other. I am not sure of the exact command for this but I'd guess it can be done. I run completely off virtual drives myself, don't even have a working FDD.