Viitor_cc65/usr/share/doc/cc65/webdoc/c128-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.7 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 128 specific information for cc65: Memory layout</TITLE>
<LINK HREF="c128-4.html" REL=next>
<LINK HREF="c128-2.html" REL=previous>
<LINK HREF="c128.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="c128-4.html">Next</A>
<A HREF="c128-2.html">Previous</A>
<A HREF="c128.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="c128.html#toc3">Memory layout</A></H2>
<P>cc65 generated programs with the default setup run with the I/O area and the
kernal ROM enabled. Note that this is a non standard memory layout, and that
there is no "memory configuration index" for this layout. This means that
special case has to be taken when changing the configuration, or calling any
code that does this. The memory configuration register at $FF00 should
be saved and restored instead of relying on the memory configuration index
stored in the zero page.</P>
<P>The setup gives a usable memory range of $1C00 - $CFFF. Having
just the kernal ROM mapped in means, that kernal entry points may be called
directly, but using the BASIC ROM is not possible without additional code.</P>
<P>Special locations:</P>
<P>
<DL>
<DT><B>Text screen</B><DD><P>The text screen is located at $400 (as in the standard setup).</P>
<DT><B>Stack</B><DD><P>The C runtime stack is located at $CFFF 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="c128-4.html">Next</A>
<A HREF="c128-2.html">Previous</A>
<A HREF="c128.html#toc3">Contents</A>
</BODY>
</HTML>