Re: [cc65] Loadable overlays

From: Fatih <cyco1301yahoo.com>
Date: 2006-07-30 02:36:47
--- Ullrich von Bassewitz <uz@musoftware.de> wrote:

> disadvantage of this
> approach is that you must recompile all modules when
> you make changes to the
> main code, because the location of the runtime
> functions may have changed.

Following approach may solve this problem:

One can create a run-time jump table in the main
program with JMPs to the actual addresses and get the
linker place this jump table to a specific address.
Then modules can use these addresses instead of actual
locations. Ofcourse it will have a performance impact
but at least modules can run with different versions
of the main program. Something like this should work:

In the main program:

<<
.segment "RUN_TIME_STUB"
; adjust the linker to place this segment to a known
; location. say $2000-$2300
jmp  _printf
jmp  _malloc
...
>>

Note that this will ensure that all the run-time
routines will get linked. So one may want to left out
some of them that will not be used by the modules.

Then one can write a stub run-time for the modules:

<<
_printf = $2000
_malloc = $2003
...
>>

But as I said, it will have a big performance impact
given that cc65 calls some library routines quite
often.

Fatih.



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Sun Jul 30 02:36:55 2006

This archive was generated by hypermail 2.1.8 : 2006-07-30 02:36:58 CEST