Č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)