<sect>Binary format<p>
The standard binary output format generated by the linker for the C128 target
-is a machine language program with a one line BASIC stub. This means that a
-program can be loaded as BASIC program and started with RUN. It is of course
-possible to change this behaviour by using a modified startup file and linker
-config.
+is a machine language program with a one line BASIC stub, which calls the
+machine language part via SYS. This means that a program can be loaded as
+BASIC program and started with RUN. It is of course possible to change this
+behaviour by using a modified startup file and linker config.
<sect>Memory layout<p>
The text screen is located at $400 (as in the standard setup).
<tag/Stack/
- The C runtime stack is located at $CFFF and growing downwards.
+ The C runtime stack is located at $BFFF and growing downwards.
<tag/Heap/
The C heap is located at the end of the program and grows towards the C
is explained in <tt/_6526.h/.
<tag><tt/COLOR_RAM/</tag>
- A character array that mirrors the color RAM of the C64 at $D800.
+ A character array that mirrors the color RAM of the C128 at $D800.
</descrip><p>
An extended memory driver for the RAM in page 1. The common memory area is
excluded, so this driver supports 251 pages of 256 bytes each.
+ <tag><tt/c128-ram2.emd/</tag>
+
+ An extended memory driver for the RAM in pages 1-3. The common memory area
+ is excluded, so this driver supports up to 731 pages of 256 bytes each. The
+ driver can be used as a full replacement for <tt/c128-ram.emd/, because RAM
+ in pages 2+3 is autodetected, but it's larger and there are not many
+ machines with RAM in banks 2+3, so it has been made a separate driver. The
+ additional code was contributed by Marco van den Heuvel.
+
<tag><tt/c128-ramcart.emd/</tag>
A driver for the RamCart 64/128 written and contributed by Maciej Witkowiak.
Will test the hardware for the available RAM.
<sect1>Interrupts<p>
-The runtime for the C128 uses routines marked as <tt/.CONDES/ type 2 for
+The runtime for the C128 uses routines marked as <tt/.INTERRUPTOR/ for
interrupt handlers. Such routines must be written as simple machine language
subroutines and will be called automatically by the interrupt handler code
when they are linked into a program. See the discussion of the <tt/.CONDES/
</enum>
</article>
-
-
-
-