[Coco] 6809 example
Robert Gault
robert.gault at worldnet.att.net
Mon Jan 19 02:52:01 EST 2004
Theodore (Alex) Evans wrote:
>
><snip>
>
> Since the source is not strictly speaking EDTASM+, or any other
> particular assembler there is the question of whether the FCC pseudo-op
> uses ASCII, or a local native character set.
><snip>
True but we are a Coco group and examples should be based on available
software for the Coco. That means fcc is ascii but the screens are not.
>
> In reality most assembly language programming has been done in an
> environment where there are at least some library routines present.
><snip>
True, and in fact there is an environment on the Coco for both Basic and
OS-9. If you are going to program in assembly, you need to be aware that
you can take advantage of built-in code. For example, under Basic there
are Tandy approved links to the ROMs which are listed in detail in the
owner's manual. Here's the list.
BLKIN = [$A006] read block from cassette
BLKOUT = [$A009] write block to cassette
WRITLDR = [$A00C] turn on cassette and write leader
CHROUT = [$A002] output character to device
CSRDON = [$A004] starts and syncs cassette for reading
JOYIN = [$A00A] sample joysticks
POLCAT = [$A000] get character from keyboard
There are many more non-approved links given in the Unravelled series.
>
>> When I copied Theodore's program, I accidentally made the FCC statement
>> HELLO, WORLD. The program cleared the screen to black and then printed
>> black letters on a green background. When I corrected the FCC statement
>> to "Hello, world" as written, only the H and W printed correctly.
>
>
> I bet you found that challenging when there are no lowercase letters on
> the system :-)
>
> Would you prefer fcb $48,$05,$0c,$0c,$0f,$60,$17,$0f,$12,%0c,$04,$00 ?
>
No, as I've been implying, it does not make sense to change the fcc
statement. And yes, there are lowercase letters on the Coco. Some Coco2
units have true lowercase in low res and the Coco3 has true lowercase in
low res. To take advantage of true lowercase you need to learn something
about the Coco hardware in addition to learning assembly language as
there is not direct support in the ROMs. To take advantage of the
built-in OS, Basic or OS-9, you need to learn the specifics of the OS
which is hard to do before you are proficient in assembly. Can you say
"catch-22"?
Even without using the CHROUT ROM hook, only a few lines are needed to
change your code loop to a generic form that will handle some
punctuation, numbers, and both upper and lowercase letters. If I don't
see an answer in a day or so, I'll post a version.
More information about the Coco
mailing list