[abc80] Assemblyprogram som .BAC-filer

juhasz juhasz at abc.se
Tors Okt 6 00:06:21 PDT 2016


Kul projekt!
Själv har jag kört en del sdcc med dess assembler, men då har jag ignorerat den inbyggda runtimen och mekat ihop lite egna asm/c bindningar till abc:s rom-rutiner. Kan lägga upp vid intresse... Som loader använde jag ditt ithabs-program som tillsammans med abcwrite kan göra en hel toolchain så att 'make all-run' kompilerar o paketerar allt i en diskimage o sen startar emulatorn... fast det är ju lite off topic eftersom det blir abs-filer....
Robert
Ps. - sen finns ju alltid M80! ;)


Skickat från min Samsung Galaxy-smartphone.
-------- Originalmeddelande --------Från: "H. Peter Anvin" <hpa at zytor.com> Datum: 2016-10-05  20:45  (GMT+01:00) Till: abc80 at abc80.org Rubrik: [abc80] Assemblyprogram som .BAC-filer 
Har letat efter en Z80-assembler som kan generera relokerbar kod.  Har
hittat en som en del av z88dk (http://www.z88dk.org/).  Den har dessutom
en C-kompilator och i alla fall en begynnelse till en C-runtime för ABC80.

Funderar på att meka om mitt bin2bac.pl-script för att hantera output
från z88dk-z80asm för relokerbar kod (så samma program fungerar på 16K
och 32K, inklusive med drivrutiner nedanför BOFA; kan även användas för
att installera sådana drivrutiner!)

En kul grej som jag kom på är att man kan lägga följande kod (17 bytes)
före själva programmet (gäller applikationer, inte drivrutiner som
lägger sig under BOFA):

10 01 00 83 c1 f1 5a 00 bb c7 [11 00] ce 3a b7 0d 01

... med en relokering på [11 00].  Det är helt enkelt BASIC-koden för:

1 Z%=CALL(<byten efter BASIC-programmet>%)
<programslut>

... så man kan köra RUN även efter att loadern har gjort sitt jobb.
Assemblyprogammet kan hoppa till address 0C9h för att avsluta (det är
adressen för END i alla versioner av ABC80-BASIC) och användaren kan sen
köra RUN för att starta igen.

	-hpa


_______________________________________________
ABC80 mailing list
ABC80 at abc80.org
http://www.abc80.org/mailman/listinfo/abc80


More information about the ABC80 mailing list