[abc80] Assembler -> BAC program?

Andreas Gustafsson andreas.gustafsson at gmail.com
Tis Juni 10 15:19:31 PDT 2014


Hallå igen alla!

Tack för informationen. Jag har ingen erfarenhet av Python, men jag är
ganska säker på att koden som Robert postade inte kommer att göra rätt,
eftersom den aldrig tar hänsyn till "start" parametern, dvs. den address
som datat ska laddas till.
Men stort tack ändå, för med den koden tillsammans med att titta på
original EMBMAKE.BAS har jag lyckats skriva en C-variant som producerar
.BAC-filer som fungerar.
Som HPA mycket riktigt påpekar saknas dock en viktig detalj i det
genererade programmet, den kör inte binären!
Så nu får man manuellt köra en "a=call(<address>)" efter att man laddat och
kört programmet.
Eftersom det genererade programmet ser ut som följer:
10 DIM Ö9¤=128% : Ö9%=PEEK(65065%)+PEEK(65066%)*256+6%
20 POKE Ö9%,96%,234% : Ö9¤="<binärdata här>"
30 POKE ...

Känns som det fungerar så att den sätter upp en sträng, och sedan pekar om
vart i minnet den finns och sedan med en strängtilldelning flyttar datan
dit.
Det enda som skulle krävas för att få autostart är att man på slutet även
genererar en rad som:
40 A%=CALL(<startaddress>)

Om någon kan få fram binärdatat för en sådan kompilerad rad så kan jag
enkelt lägga till dem i mitt C-program som generar .BAC och kanske dela med
mig av det ifall någon annan skulle kunna ha nytta av det. Hade man bara
haft en emulator med debugmonitor vore det ganska enkelt, bara att skriva
en sådan rad I BASIC:en och kolla vad resultatet blev...

En annan fråga, hur funkar BASICen egentligen, laddar den programmet från
0xc000 och framåt?
Då borde man maximalt kunna ladda binärer som är 5-6kb eftersom de sväller
ganska rejält (över 70%) när de konverteras till .BAC, och BASCI-koden och
binären får ju inte överlappa.

/Andreas





2014-05-31 11:50 GMT+02:00 H. Peter Anvin <hpa at zytor.com>:

> On 05/30/2014 09:13 AM, Robert Juhasz wrote:
> > finns ett program i abcarkivet som heter embmake.bas (ligger i
> > abc80/asm) som gör bac filer av binärdata i minnet.
>
> EMBMAKE.BAS verkar ha i alla fall ett problem... startadressen som läses
> in läggs i variabel E, men den används aldrig sedan...
>
>         -hpa
>
>
>


More information about the ABC80 mailing list