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