MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)

1980 4K CoCo Programming Challenge

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to navigation Jump to search
WELCOME
Looking for CoCo help? If you are trying to do something with your old Color Computer, read this quick reference. Want to contribute to this wiki? Be sure to read this first. This CoCo wiki project was started on October 29, 2004. --OS-9 Al

See Recent Changes. | About this site. | Join the E-Mail List or Facebook Group. | Contact me with updates/questions.

This page was last updated on 12/20/2014. Total Pages: 744. Total Files: 994.


Home / Special Projects - 1980 4K CoCo Programming Challenge


It is July (or August, depending on which source you use) 1980, and you wandered in to a Radio Shack store and saw the brand new TRS-80 Color Computer. Unlike the TRS-80 Model I, this machine had color and sound built in, and used a normal color television for the display just like an Atari 2600.

You quickly plop down $399 (plus tax) to buy your very own Color Computer, plus spent a little more for a cable that will let you hook up a cassette recorder to load and save programs to cassette tapes.

You get home, hook the machine up to your television, and power up the machine to be greeted with:

Color BASIC 1.0

You have 4K of RAM available to begin writing your first program. What will you write?

Contest Concept

The goal here is to write something as if you were using the original 1980 CoCo. There was no Extended Color BASIC, and you couldn't afford to upgrade the memory past 4K. You only have a cassette recorder for storage... Were joysticks available when the machine was released? If so, you can use them.

We should probably split the contest in to two categories: BASIC and MACHINE LANGUAGE.

Also, we may wish to consider how the program was written. NATIVE (actually on a 4K CoCo or emulated 4K CoCo) versus EXPANDED (written on a later CoCo or later emulated CoCo) or CROSS HOSTED (written using PC tools). The reason I mention this is because it's not possible to run native EDTASM on a 4K CoCo, so any assembly language would have to be hand-coded (bonus points for doing it that way, just like they had to in 1980). Using a 16K or 32K CoCo to run EDTASM makes things easier. Doing it using a PC-hosted compiler changes things further.

At the very least, we should note how the program was developed:

  • Native - programmed on a 4K CoCo
  • Expanded - programmed on a larger CoCo
  • Cross Hosted - programmed on a non-CoCo

I suppose we can also note:

  • Real - done on a real, physical CoCo
  • Emulated - done on a virtual CoCo

A Native/Real attempt would be much more "legit" in 1980 compared to an Cross Hosted/Emulated attempt, though the focus is the end result.

Using an Emulator

The Xroar emulator for PC, Mac, Linux (and more) can be configured to act as a 1980 4K CoCo. Make sure you have the "bas10.rom" ROM file (Color BASIC 1.0) and you can use the command line "-ram 4" option to limit memory to 4K. However, Xroar author Ciaran suggests creating a new entry in the GUI menu for a 4K CoCo. Edit (or create) the "xroar.conf" file (located where you have the .exe on PC, elsewhere on Mac/Linux) and create an entry like this:

default-machine coco4k
machine coco4k
machine-desc Tandy CoCo 4K
machine-arch coco
ram 4
bas bas10
noextbas
nodos
tv-type ntsc

This will create a new entry in the Machine pull-down menu that says "Tandy CoCo 4K". The "default-machine" option will make it be the default, so just running xroar.exe will launch as a 4K 1980 CoCo. I will add instructions for Mac (and links) when I get time.

Admin

I (Allen Huffman, alsplace@pobox.com) am working on this idea. Feel free to organize and edit this page with more ideas.