Re: Relocatable sources

From: Michał Pleban <lists_at_michau.name>
Date: Wed, 19 Nov 2014 14:34:52 +0100
Message-ID: <546C9C7C.20700@michau.name>
Hello!

Sometime ago I tried to do this trick with ca65 and I did not find the
required capabilities in the assembler.

What I ended up doing was to split the compilation process into several
stages, in the first one the relocatable source is compiled for the
intended RAM location, a .bin file is produced and then it is included
in the main source for the ROM. A kludgey way, but I wasn't able to do
it any other way in ca65.

Regards,
Michau.


Baltissen, GJPAA (Ruud) wrote:
> Hallo allemaal,
> 
>  
> 
>  
> 
> The C64 has some code in its Kernal, the CHRGET and CHRGET routines,
> that has to be moved to some other part of the memory (in this case
> $0073) and then to be executed there. The older dual CPU IEEEE drives
> have something equivalent: the reset and format routine for the second
> CPU is copied from ROM to RAM by the first CPU and then executed by the
> second CPU.
> 
>  
> 
> If one disassembles this part of the ROM without any precautions, he
> will run into trouble: he will find JMPs and JSRs that point to (in the
> case of the 8250) the $0500-$0870 area. I indeed "copy" the code inside
> my buffer as well so my disassembler has no problem. But the goal is to
> create sources that generate binaries that are the same as the originals
> again. So how do you tell the assembler to generate code for a certain
> memory area while it is actually meant for another area?
> 
>  
> 
> So I invented a directive pair for my assembler to do the job:
> 
>  
> 
> .ba $C000
> 
> .
> 
> .
> 
> <code>
> 
> .
> 
> .
> 
>  
> 
> .rb $0500
> 
> .
> 
> <code>
> 
> .
> 
> .re
> 
> .
> .
> 
> <more code>
> 
> .
> .
> 
>  
> 
> ".rb" tells the assembler to assemble the source code as meant for $0500
> but to append it to the code just been generated before. ".re" ends this
> mode.
> 
>  
> 
>  
> 
> My question: do other assembler know this trick as well?
> 
>  
> 
>  
> 
> The reason why I bring this up is because EXOS V3 has code on board that
> is meant to be sent to the 1541 so it is able to use its fast speed loader.
> 
> Side note: why didn't I mention this trick with the CHRGET and CHRGOT
> routines? Two reasons:
> 
> - these routines don't contain any JMPs or JSRs
> 
> - too small to confuse someone
> 
> Another question: is "relocatable sources" a good name? I even haven't
> any idea how to call this phenomenon in Dutch.
> 
>  
> 
> Met vriendelijke groet,
> 
> Ing. Ruud Baltissen 
> Senior Beheerder TI
> 
> cid:382073909@18072013-073B
> 
> APG Datacentermanagement
> 
> GK1  00.11
> Oude Lindestraat 70   6411EJ  Heerlen
> 
> T+M: +31 45 579 3980
>                                                                                                                                 
> 
> Email: ruud.baltissen@apg.nl <mailto:ruud.baltissen@apg.nl>   
> URL: www.apg.nl <http://www.apg.nl/>
> 
> APG verzorgt pensioenadministratie, vermogensbeheer, communicatie,
> bestuursadvisering en inkomensverzekering.
> 
>  
> 
>  
> 
> 
> 
> De informatie in dit e-mailbericht is vertrouwelijk en uitsluitend
> bestemd voor de
> geadresseerde. Wanneer u dit bericht per abuis ontvangt, verzoeken wij u
> contact op te
> nemen met de afzender per kerende e-mail. Verder verzoeken wij u in dat
> geval dit
> e-mailbericht te vernietigen en de inhoud ervan aan niemand openbaar te
> maken.
> Wij aanvaarden geen aansprakelijkheid voor onjuiste, onvolledige dan wel
> ontijdige
> overbrenging van de inhoud van een verzonden e-mailbericht, noch voor
> daarbij
> overgebrachte virussen.
> 
> APG Rechtenbeheer N.V. is gevestigd te Heerlen en is ingeschreven in het
> handelsregister van de Kamer van Koophandel Limburg onder nummer 14099617
> 
> 
> The information contained in this e-mail is confidential and may be
> privileged.
> It may be read, copied and used only by the intended recipient.
> If you have received it in error, please contact the sender immediately by
> return e-mail; please delete in this case the e-mail and do not disclose
> its
> contents to any person. We don't accept liability for any errors,
> omissions,
> delays of receipt or viruses in the contents of this message which arise
> as a
> result of e-mail transmission.
> 
> APG Rechtenbeheer N.V. is registered in the trade register of the Chamber
> of Commerce Limburg, The Netherlands, registration number: 14099617
> 


       Message was sent through the cbm-hackers mailing list
Received on 2014-11-19 14:00:03

Archive generated by hypermail 2.2.0.