Saturday, June 15, 2024

ALPP XX-XX -- Running Code on the 6800, 6801, 6809, and 68000

This chapter got scratched. Kept me spinning my wheels for a month or two. But I want to keep it around for my own reference. 

Running Code on the
M6800, 6801, and 6809

(Title Page/Index)

So, we want to run code, and we want to see the code run step-by-step.

If we had, for instance, Motorola's Micro Chroma 68 prototyping board, we could hand-assemble 6800 code and use the built-in debugging monitor to step through it. That is educational, and interesting, but those are hard to come by. (I theoretically may still have one in storage somewhere I can't access right now.) And hand-assembling code does take more time than using an assembler.

Similarly, Motorola had an evaluation board for the 68000, the MEX68KECB (Educational Board Computer), with a really nice debugging monitor in the ROM that assembled and disassembled code for you (that I probably should have bought way back when). Those ought to be easier to find, if still hard to get owners to part with, but when you search the web for them, you have to wade through a lot of retro devices that reproduce, with varying degrees of reliability, the original, or even just ride on the name. Some of those retro devices are interesting, but you have to know what you're looking at. 

If I had managed to save up enough to properly retire, I could be building a few retro projects of this sort myself, and could recommend them directly. (Sorry. That didn't happen.)

Motorola also made a full workstation for developing hardware and software for the 6800 and related parts called EXORciser. (Yes, I think it was a cool, but unfortunate, choice of name.) You could also put in a 6809 processor, for 6809 development. 

It was somewhat comparable to Intel's Intellec 8 systems, but reportedly more usable as a general purpose computer, comparable to the Altair 8800 and other S-100 systems. 

And they made a full workstation for developing for the 68000, called EXORMacs. 

But you probably won't be finding real examples of either of these to use in learning assembly language -- they are very rare now.

(Yeah, if I had the time and resources, it'd be fun to build retro replicas of both the EXORciser and EXORMacs, too.)

As an example of a home computer using the 6801, Tandy/Radio Shack's MC-10 (which actually uses the 6803 variant) is still sometimes seen on ebay and elsewhere, and is supported by an active enthusiast community (including a group on Facebook). Even though it's not really intended for learning assembly language, they'll help you gather up software and hardware to make it useful.

For the 6809, the Tandy/Radio Shack Color Computer is relative easy to find, and is also actively supported by an active (active, active!) community of enthusiasts (many of whom are also in the MC-10 community) who, again, will help you gather up software and hardware necessary to use it to learn assembly language. (Several groups on Facebook, here's one. Also, there's a mailing list that can help with both the Color Computer and the MC-10.)

The Color Computer's sister computer from the UK, the Dragon, is not easy to find, but the Dragon community is active, and generally participates in the Color Computer groups, too.

Other options exist, of course, like the SWTPC 6800 and 6809 models, also the French cousin to the MC-10, the Matra Alice. These are rather rare now. Even rarer are the Thomson line of French 6809-based computers and quite a number of Japanese computers (Fujitsu, Hitachi, and others) that used the 6800 and 6809.

If you look around and are careful about what you get, there are various retro designs that you can build yourself.

As I've noted, I don't really have room for hardware. If you don't either, you'll be glad to know that software emulators (simulators) are available that run on the kinds of PCs you are likely to already own. 

If you are running a Microsoft operating system (MSWindows), you'll be able to find several emulators with a fairly quick web search. Members of the support communities will tell you which they favor. I don't have experience with those, so I won't recommend any, but they can be found fairly easily, and are said to be good.

Also, there are several on-line 6809 emulators, but I don't want to encourage lots of people to jump on those and load them down.

One emulator I like that runs on my equipment is XRoar, developed primarily by the Dragon community's Ciaran Anscomb. It can currently emulate the Dragon, the Color Computer, the MC-10, and certain versions of the Alice. I like it as a simulator, it's fairly easy to get going and to maintain, and doesn't take up the room that the MAME monster takes up on your hard drive. And the important thing for me is that it can be compiled on Linux OSses.

One downside to XRoar is that it does not include a lot of hosted debugging tools. You have to find self-hosted debugging software, such as EDTASM+ for the Color Computer, which means additional layers to wade through. (I want to help Ciaran add hosted debugging, but so far we haven't been able to connect when both of us have had the time to get me started.)

Speaking of MAME, MAME emulation is pretty good, too. But it's big, and complicated, and I don't want to recommend it for the beginner. (I haven't even figured out how to get debugging going on MAME yet, myself.)

As you noticed, I use a Linux OS, and I will be using simulators that run on those, in particular, Joe H. Allen's  EXORsim. EXORsim was originally just for the 6800, but Joe has recently extended it to simulate the 6809 as the main processor as well.

There was a 6801 hosted development module (auxiliary card) for the EXORciser, but EXORsim does not simulate that. If I can find enough documentation and time, I may try adding support for it sometime. But not just now. 

Several years back, I wanted to do something with the 6801, and I had a little time, so I added some code to EXORsim to let the main processor execute the additional 6801 instructions. The cycle-by-cycle timing is 6800 instead of 6801, and I did not add simulation for the 6801's internal devices, but it allowed me to get a version of fig-Forth optimized for the 6801 running and somewhat tested, and even running on the MC-10. So I will use that for the 6801.

EXORsim can be compiled to run on MSWindows and on Modern Mac OS, so you may want to consider it for that, as well.

I wish I had time to write an EXORmacs simulator, for the 68000, or even to use musashi or Moira to build a prototyping board style simulator for the 68000 -- Maybe I can do that once I've put enough money away to properly retire, if there's anything left of my mind by then. 

That failing, for now I'm using the Atari ST emulator, Hatari, for this project. Unfortunately, that requires some compromises, compared with EXORsim, such as not being able to copy text output from the Hatari window with copy/paste. Screenshots, typing by hand, and disk files it will be.

So you may want to get EXORsim and Hatari to make it easier to follow along with me. These are the tools I will be referring to when I show code running on the 6800, 6801, 6809, and 68000. 

Hatari is available from repositories in many libre OSses.

In order to get EXORsim to run, you'll probably have to build it yourself. But it's not that hard, if you have fairly standard tools installed on the computer you are using as a workstation.

No comments:

Post a Comment