Čtenáři jistě znají ASM80 – online assembler / IDE pro osmibitové procesory. Udělal jsem i několik odvozených verzí, třeba single page překladače, embedded verzi překladače (použil jsem ji v tutoriálu Stroják.cz), nebo třeba stand alone IDE. Logickým pokračováním je tedy stará dobrá utilita pro překlad z příkazového řádku.
Předpokladem je mít funkční prostředí Node. Není to nic složitého, existuje pro všechny hlavní platformy, a stáhnout si ho můžete zde: nodejs.org. Při instalaci se nainstaluje i správce balíčků, zvaný npm.
NPM slouží k instalaci balíčků a knihoven. Pro instalaci ASM80 stačí spustit příkazový řádek a napsat:
npm i -g asm80
Parametr -g způsobí, že se asm80 nenainstaluje jako knihovna (to ani nedává smysl), ale jako systémový nástroj. Pak půjde spouštět jako klasická utilita pro příkazový řádek:
asm80 test.a80
spustí překlad souboru test.a80, a výsledkem budou dva soubory: test.hex s výstupem a test.lst s protokolem o překladu. Přípona .a80 napovídá, že překladač má použít instrukční sadu procesoru 8080.
Chování lze ovlivnit pomocí parametrů. Lze nastavit jméno výstupního souboru, potlačit generování .lst, nebo explicitně určit typ procesoru a formát výstupního souboru (kromě HEX a SREC lze generovat například i .COM soubory pro CP/M, .PRG pro emulátory C64, nebo SNA a TAP pro ZX Spectrum). Parametry jsou popsány na stránce NPM balíčku ASM80.
Přehled syntaxe a direktiv naleznete na GitHub Pages.
Ještě mám pár námětů na vylepšení, chtěl bych znát váš názor…
- Vytvořit systém knihoven, tak, jak ho mají klasické assemblery, co oddělují překlad a linkování. Tedy možnost udělat knihovnu subrutin, z níž by se includovaly pouze ty části kódu, které jsou potřebné pro správnou funkci. Mohli byste si pak udělat třeba něco jako „clib“ pro svůj systém…
- Mít možnost přilinkovat rovnou veřejně publikované knihovny, například na GitHubu.
- … další procesory? Systémy?
Díky za tipy a návrhy. Můžete je rovnou posílat do Issues (a klidně i česky)