Viitor_cc65/usr/share/doc/cc65/webdoc/cbm610-3.html
kueller 223cc6685e Neue Version V963
git-svn-id: svn://svn.compuextreme.de/Viitor/V963/Viitor_cc65@5933 504e572c-2e33-0410-9681-be2bf7408885
2011-01-03 10:48:06 +00:00

50 lines
1.8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
<TITLE>Commodore 610 specific information for cc65: Memory layout</TITLE>
<LINK HREF="cbm610-4.html" REL=next>
<LINK HREF="cbm610-2.html" REL=previous>
<LINK HREF="cbm610.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="cbm610-4.html">Next</A>
<A HREF="cbm610-2.html">Previous</A>
<A HREF="cbm610.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="cbm610.html#toc3">Memory layout</A></H2>
<P>cc65 generated programs for the Commodore 610 run in bank 1, the memory bank
reserved for BASIC programs. Since there are no ROMs in this memory bank, the
program has almost full 64K for its own. A disadvantage is that kernal
subroutines cannot be called (at least not in a fast and effective manner), so
the runtime has replace kernal functionality.</P>
<P>The default memory configuration for the CBM 610 allocates all memory between
$0002 and $FFF0 in bank 1 for the compiled program. Some space
in low memory is lost, because a separate hardware stack is set up in page 1,
and the kernal replacement functions need some more memory locations. A few
more bytes are lost in high memory, because the runtime sets up a CBM
compatible jump table at $FF81. The main startup code is located at
$0400, so about 63K of the complete bank are actually usable for
applications.</P>
<P>Special locations:</P>
<P>
<DL>
<DT><B>Stack</B><DD><P>The C runtime stack is located at $FF81 and growing downwards.</P>
<DT><B>Heap</B><DD><P>The C heap is located at the end of the program and grows towards the C
runtime stack.</P>
</DL>
</P>
<HR>
<A HREF="cbm610-4.html">Next</A>
<A HREF="cbm610-2.html">Previous</A>
<A HREF="cbm610.html#toc3">Contents</A>
</BODY>
</HTML>