Re: FORTH in ROM for CBM 8032?

From: Marko Mäkelä (marko.makela_at_hut.fi)
Date: 2004-12-29 12:26:27

Rich,

> OK... so I could take the bytes of an assembled piece of code and
> write a file containing the first two bytes as the load address and
> followed by the bytes of the assembled piece and the loader will load
> my code at the requested address and then JMP to that address, or does
> it JSR?

It will load the code, but not start it.  Auto-starting programs are
implemented by overwriting some system vector.  On the 8032, you can
use the "print to screen" vector; on older PETs I'm not aware of an
auto-start mechanism.

You can have a look at the c2nload source code for my implementation
of an auto-starting loader for all Commodore 8-bit computers equipped
with a tape interface.  Once that loader has started, it loads the
actual program and starts it by writing a RUN or SYS command to the
keyboard buffer.

For older PETs (or actually all PETs), I wrote a c2nload loader that is
started from BASIC.  It'll detect the ROM version and the cassette buffer
that contains the rest of the loader.  If anyone knows a better solution,
I'd like to know of it.

It's customary to write a one-line BASIC header that contains a SYS
command.  Sometimes, the line number of that BASIC header is the year of
publication.  On the PET, you could use
2004 SYS1037
or
2004 SYS1039:NEW
and have the machine code start at $040d or $040f.  That'll be like JSR;
an RTS will exit to BASIC, unless you fiddle with the stack pointer.

	Marko

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.