From: Greg King (gngking_at_erols.com)
Date: 2003-04-24 13:37:46
From: sandree
Date: Monday, April 21, 2003, 05:47 AM
>
> I could place that bitmap from $e000-ff40, but what can I do,
> if I need to place it somewhere, in future, at $2000?
You will need to use a configure-script that contains this code:
MEMORY {
ZP: start = $02, size = $1A, define = yes;
RAMLO: start = $07ff, size = $1801;
BMP: start = $2000, size = $1f40;
RAM: start = $3f40, size = $40C0, define = yes;
}
SEGMENTS {
ZEROPAGE: load = ZP, type = zp;
STARTUP: load = RAMLO, type = ro;
LOWCODE: load = RAMLO, type = ro;
CODE: load = RAMLO, type = ro;
RODATA: load = RAMLO, type = ro;
DATA: load = RAMLO, type = rw;
BITMAP: load = BMP, type = rw;
BSS: load = RAM, type = bss, define = yes;
}
Then, you must give those 8000 bytes a name that your program can use to
point to them. You don't need to use assembly-code, these three lines of
"cc65-language" code will give you what you need.
#pragma bssseg("BITMAP")
unsigned char bitmap[8000];
#pragma bssseg("BSS")
That configure-script will give you a small program-file -- no wasted
space. But, it gives you only 6143 bytes for your program. If you wanted
to write a fancy program that needed more space, then you would need to
move some of those segments from RAMLO to RAM. Tell ld65 to create a
map-file, find out which RAMLO segment is the smallest one, then move it.
If that isn't enough, then try moving the next smallest one -- until you
can fit your program around that bitmap-hole.
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-04-24 14:02:10 CEST