The program code and data is located in low memory. The heap is located
between the program code and the stack. The default size for the parameter
-stack is 2K, you may change this by declaring an externally visible variable
-named named _stksize that holds the new stack size:
-
- unsigned _stksize = 4*1024; /* Use 4K stack */
+stack is 2K, you may change this for most platforms in the linker
+configuration.
Note: The size of the stack is only needed if you use the heap, or if you
call the stack checking routine (_stkcheck) from somewhere in your program.
Systems:
--------
-Supported systems at this time are: C64, C128, Plus/4, CBM 600/700, the newer
-PET machines (not 2001), Atari 8bit, and the Apple ][ (thanks to Kevin Ruland,
-who did the port).
+Supported systems at this time are: C64, C128, Plus/4, CBM 500, CBM 600/700,
+the newer PET machines (not 2001), Atari 8bit, and the Apple ][ (thanks to
+Kevin Ruland, who did the port).
C64: The program runs in a memory configuration, where only the kernal ROM
is enabled. The text screen is expected at the usual place ($400), so
has only 28K available (16K machines are detected and the amount of
free memory is reduced to 12K).
+CBM 500:
+ The C program runs in bank #0 and has about 61K memory available. The
+ memory available on the CBM5x0 is slightly less than that available
+ on its bigger brothers (CBM 600/700) because the video ram is also
+ placed into bank #0 to allow sprites.
+
CBM 600/700:
The C program runs in a separate segment and has almost full 64K of
memory available.
that reads a CRTC register may be written like this:
#define wr(idx) (__AX__=(idx), \
- asm("\tsta\t$2000\n\tlda\t$2000\n\tldx\t#$00"), \
+ asm("\tsta\t$2000\n\tlda\t$2000\n\tldx\t#$00"), \
__AX__)