[abc80] Assembler -> BAC program?

H. Peter Anvin hpa at zytor.com
Sön Juli 6 10:11:28 PDT 2014


On 07/03/2014 02:49 AM, Andreas Gustafsson wrote:
> 
> Det här sättet att ladda binärer är väldigt smart, tillåter väldigt mycket
> större binärer än min gamla POKE-metod samt tillåter att binären överlappar
> var bac-filen laddas.
> Som jag förstår det så blir det egentligen så här av det
> 
> <6 basic bytes><xxx antal bytes från binären><2 basic bytes>
> <6 basic bytes><xxx antal bytes från binären><2 basic bytes>
> ...
> <6 basic bytes><xxx antal bytes från binären><2 basic bytes>
> <assemblersnutt>
> 

Ja... om man ska vara riktigt petnoga så blir det:

<BASIC-rad Z%=CALL(...)>
<6 basic bytes><xxx antal bytes från binären><2 basic bytes>
<6 basic bytes><xxx antal bytes från binären><2 basic bytes>
...
<6 basic bytes><xxx antal bytes från binären><2 basic bytes>
<BASIC-rad END>
<6 basic bytes><assemblersnutt><2 basic bytes>

> Assemblersnutten kopierar sedan binär-bytesen till startaddressen, och har
> man samma startaddress på binären som där BAC-filen laddas finns det aldrig
> någon risk att det blir konflikt, eftersom stället den kopierar från alltid
> kommer ligga lite före stället den skriver till. Genialt!

Precis :)  Den relokerande varianten av assemblersnutten funkar dessutom
på olika minnesstorlekar eller med assemblerrutiner laddade i minnet.

> Så nu kan jag ha binärer som sträcker sig från 0xc000 och en bra bit över
> 0xf000.

	-hpa



More information about the ABC80 mailing list