as504 - een alternatieve assembler voor de Siemens SAB-C504

View this page in English.
Direct doorgaan naar de download sectie.

Features

Gebruik

Assembleren van test.asm kan met:
as504 test.asm
In windows kan de .asm file dus gewoon op de as504 executable gedropped worden om hem te assembleren. In het ge-opende DOS-venstertje verschijnen evt. foutmeldingen. Om te voorkomen dat het venster meteen weer afsluit, moet eerst op enter gedrukt worden (deze melding kan uitgeschakeld worden door voor het compileren "-D WIN32" uit de Makefile te verwijderen).
Eventueel kunnen op de commandline de opties -l en -d meegegeven worden, die resp. staan voor listfile (ongeveer hetzelfde als die van ASM504) en debug (print extra debug-informatie voor de compiler).

as31

as504 is een uitbreiding van as31, de 8031/8051 assembler van Ken Stauffer. Naast een aantal bugfixes zijn er voornamelijk compiler directives en aliases toegevoegd om de assembler compatibel te maken met ASM504. Achteraf bleek er nog een tweede versie van as31 met een aantal bugfixes te bestaan, zie de download sectie.

Problemen met ASM504

Ik ben ertoe gekomen om met as504 te beginnen omdat er geen Linux assembler was voor de SAB-C504. Het bleek dat dit een 8051 variant was en dus kon ik de open source as31 gebruiken, maar deze was niet compatibel met ASM504 code. Verder bleek tijdens het testen dat ASM504 een aantal fouten bevat (o.a. m.b.t. de foutafhandeling), het gaat om de volgende problemen: Deze problemen heb ik bij toeval ontdekt en sluiten niet uit dat er meer fouten in ASM504 zitten die tot vervelende debug-sessies kunnen leiden.

Verschillen van as504 met ASM504

Voordelen: Belangrijkste verschillen in implementatie:

Download

Zie de ChangeLog voor een lijst van wijzigingen per versie-datum.

Compileren

Op een standaard UNIX systeem met een C compiler, make en yacc zou het mogelijk moeten zijn as504 als volgt te bouwen (aangenomen dat as504 in de CWD staat):
tar -xvjf as504*.tar.bz2
cd as504*/
make
make man

as504 is dan de assembler en as504.cat de manpage. Eventueel kunnen in de Makefile compiletime opties meegegeven worden, het gaat om:
-D OS_linux, vervang dit door -D WIN32 om voor windows te compileren.
-D WINDOWS_QUOTING, haal dit weg om enkel-karakter functionaliteit te kunnen gebruiken.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See http://www.gnu.org/copyleft/gpl.html

Bugs/Contact

Bekende bug: geïnclude files moeten afgesloten worden met een regeleinde (wordt gefixt als de assembler nog gebruikt gaat worden door anderen, graag melden dus...).

Bugs melden bij mij: freek -at- vanwal -dot- nl.