Sitenotice: 11/29/2018: The wiki is back. It turns out, some anti-virus product on my web server had an issue with the latest version of PHP. My server techs have resolved this issue, and things should be working again. During the investigation, I did restore to a backup from September. There is a chance that any changes done since then were lost, but I do not recall any edits. --OS-9 Al
8/30/2016: Massive re-work is being done on the InfoBox Templates. Read that page to keep up with the plan for that, and adding better keyword tags (categories) to all the pages. --OS-9 Al (talk) 15:28, 31 August 2016 (CDT)
Review: SDS80C (Rainbow 1981-09)
|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|
This page was last updated on 05/19/2019. Total Pages: 647. Total Files: 937.
If you want to get into assembly language programming and there is little question that many of you will at least to some degree, you need an assembler.
Truth be it known, you also should have an editor and a monitor to have a complete assembly language system. And, while these Programs can be purchased separately, having them as a part of one package is a decided advantage.
One of the Problems, of course, is that such programs take up a lot of memory. So, if you could have an assembler, editor and monitor all on a ROM Cart -- using up no internal memory -- it would be a great bonus.
This excellent package (available from The MICROWORKS for $89.95, P.O. Box 1110, Del Mar, CA, 92014) has the very major advantage of being written so that you can move back and forth between the elements of the SDS80C at will. That means if you write a program in assembly language with the editor, you can then assemble it and run it and, when (or if) it crashes, go back to the editor to make changes instantly. This makes for ease of debugging.
We'll discuss the three parts of SDS80C separately to explain how they work in greater detail. However, they are all interactive, so it is important to understand that you can move between them at any point to take advantage of any of the features as you need them.
As usual with programs from The MICROWORKS, the SDS80C is supported by very complete documentation. And, to make things easy for the novice, there is a sample program right at the beginning -- to help you get started and comfortable. There is also a brief description of 6809 assembly language and six appendices to help out. However, don't think you can "learn" assembly language from this documentation. That's something a little too complicated even for a 41-page manual. There are several excellent books on the market, and a future issue of the RAINBOW will carry a comparative review of some of them.
The SDS80C editor is screen oriented, with a top line that gives you a running count of the amount of free memory available and another number telling you just where in the program you are creating you are. This is extremely helpful in moving text blocks. The top line also tells you what mode you are using.
You can scroll through the entire file you create using the up and down arrow keys. You can move the cursor right or left using those arrow keys. The ENTER key sends you to the next line and the space key moves to the next character, or lets you skip blocks of spaces.
There are nominally 12 commands in the editor, but since some of them can be used with a minus sign to make them go backwards rather than forwards, there are a number of other options. In addition, there is another command to call the assembler and still another to recover the file after a computer reset. This is very helpful if your program crashes, you have to reset the computer, and want to do some wore editing.
The commands available are insert lines (used for writing programs as well as inserts), delete lines, exchange text, find a string find and change a string, do last find or change again (in effect, a global find or change), go forward a page, copy text, move text, jump to start or end, write file to tape and read file from tape. The find string, find and change and go forward will go either forward or backward from the point in the program at which you are positioned.
All these are simple one-letter commands, which do not require you to ENTER then. This makes it very easy and allows you to concentrate on the programming rather than the method of programming.
Needless to say, some of these commands are extremely powerful. Especially consider the case of the find and change in connection with the "another" command. You can change a string in a file at each occurrence very quickly with this combination.
Once you have a program written, you can call the assembler simply by pressing one key. That will make the program take your mnemonics and produce object code. The code will be written either to tape or to the computer's memory.
The SDS80C assembler will support all standard instructions, address modes and mnemonics. Additionally, is will cross-assemble 6800 instructions (!), allow use of local labels, provide for conditional assembly and has a listing control feature.
There are also nine options on how to assemble. Again, these are single letters, but they are entered together and in any order. The most simple is "L", which produces a listing. You can also choose a sorted symbol table, send the assembled object code to memory or tape, start the listing in single-step mode and send output to 32, 40 or 80 column printers. As a final option, you can choose not to assemble, merely to go directly to the monitor program.
The assembler generates 13 distinct error messages. These will tell you what might have gone wrong. Whenever an error message occurs, the assembler automatically enters single-step mode. However, you can go to single-step mode at any time. You can also pause the listing, speed it up or slow It down or BREAK it. If you are writing to tape, a BREAK will close your open tape output.
If you choose to assemble a program to memory, you are automatically transferred to the monitor when assembly is complete.
The SDS80C Monitor, called ABUG, is a special version of The MICROWORKS' CBUG which was reviewed in RAINBOW #2. However, ABUG has been tailored specifically for use with the editor and assembler in SDS80C.
There are 11 commands in ABUG, which will allow you to execute the program you have written and assembled, examine and change the memory, display the register list, transfer blocks of memory, jump to machine language subroutines, change contents of the registers on the stack, save or load object code to or from tape, reset the stack pointer and return to the editor. You can also evaluate expressions --which not only converts decimal to hexadecimal quickly, but also will print values of symbols and do hexadecimal calculations!
The documentation is chock full of information on assembly language and is a great source of information in itself. It is written well, not too technical -- but not too simplistically, either.
We want to emphasize two major advantages of having the SDS80C on a ROM Cart. First of all, it saves a lot of time in loading, which is, obviously, a very long program. But seconds and even more important, it frees up all your memory for use by your program. That is a bonus in itself, but it also means you don't have to worry about where you put your own program -- because it can't "run into" the SDS80C. (You do have to stay out of certain areas, of course, like the l/O which is above $FEFF.
We believe The MICROWORKS has an excellent software development package in SDS80C. While it is an expensive piece of software, it is really all you need (other than a good book) to get right into assembly language. And it has the advantage of being perfectly mated to its various elements.
SDS80C is a good buy.