Action26
Cross-compiler for the Action! language targeting Atari 800
Download
Program, handbook (HTML and EPUB) and Sublime Text plugin in one zip (3,5 MB)
Windows 10 or 11 (x64), a single action26.exe, nothing to install. The atari800 emulator for graphics and sound.
Language help
- Action! handbook (Slovak) the language from scratch, 42 chapters
- Language on one page (Slovak)
- Library on one page (Slovak)
Handbook version 1.3.0.361
Action26 is a Windows cross-compiler for the Action! language for 8-bit Atari XL/XE computers. It turns an .act source file into a runnable XEX in a fraction of a second. Programs run without the Action! cartridge: the cartridge library is replaced by a runtime bundled with the program.
PROC Main()
BYTE i
FOR i=1 TO 10
DO
PrintB(i) Put(' )
OD
PutE()
RETURNaction26 hello.act --runFeatures
- A single
action26.exewith no dependencies, nothing to install. - Language semantics and calling convention of the original Action! 3.6. Compiles the RunTime disk, Action! Tool Kit, TOMS Navigator and 515 Rosetta Code programs.
- Errors in Visual Studio format with the original error numbers.
- Built-in 6502 simulator (
--sim), running in the atari800 emulator (--run), bootable ATR disks for DOS 2.5, MyDOS, WolfDOS, SpartaDOS, BW-DOS and LiteDOS. - Three optimization levels; the output is usually smaller than the original compiler’s.
- Language extensions (
--modern): constants,ENUM, multidimensional arrays,CASE, inline assembler, extended memory, player/missile graphics. - Editor support for Visual Studio, Visual Studio Code and Sublime Text.
Action26 is free software under the MIT license.
News (in Slovak)
Action26 1.3.0.359
- Rýchlejší pohyb hráčov (
PMVPos,PMMove) – pri zvislom posune sa zmažú len riadky, ktoré objekt odkryl, a tvar sa skopíruje naraz ako blok, nie po jednom riadku. Posun o rovnakéynerobí nič. Benchmarkbench5(hráč prejde všetkých 256 riadkov) beží 9 snímok namiesto 24, rovnako rýchlo ako ručne napísaná rutina. Programy s PMG sú asi o 200 bajtov väčšie, programy bez PMG sa nemenia. --strictaDEFINE W– upozorní naDEFINEs menomW. Originálny cartridge program preloží, ale monitor jeho príkazW"D:PROG.COM"(zápis programu) rozvinie ako tento DEFINE a skončí chybou 2.--sima bajt$0A– simulátor zapisuje výstup bajt po bajte; nový riadok vznikne len z konca riadku Atari (EOL$9B). Bajt$0A(v národných znakových sadách písmeno, napr. Ž) predtým Windows zmenil na koniec riadku, teraz prejde nezmenený. Ostatné výstupy sa nemenia.
Older versions
Action26 1.3.0.346
- Zbalený XEX (
--pack-xex) – prekladač zbalí hotový program formátom ZX02 a pridá krátky rozbaľovač (180 bajtov), ktorý každý kus rozbalí hneď po nahratí, ešte kým DOS číta ďalší. Z diskety sa číta menej sektorov, takže program sa nahrá rýchlejšie a na disketu sa ich zmestí viac – podobne ako so starým Super Packerom, ale s hocijakým DOS-om a bez straty dát v RAM pod ROM a v bankách. Pamäť programu sa nezmenší: rozbaľovač a zbalené dáta ležia na stránke 6 a za programom len počas nahrávania. Program s 18 KB sa zmenšil takmer na polovicu a od zapnutia počítača beží o 4 sekundy skôr; malým programom do kilobajtu to nepomôže. Dá sa zapnúť aj v hlavičke zdrojáka (;@compile --pack-xex). Popis v príručke (kapitola 32) a vdocs\reference.md§8.2. - Zbalený a zakódovaný XEX –
--pack-xexspolu so--scramble(aj--scramble-level 2a--scramble-key) efekty--scramble-fxsa so zbalením kombinovať nedajú. - Prečo ZX02 – ZX02 balí lepšie ako DEFLATE, rozbaľuje rýchlejšie ako Exomizer a jeho rozbaľovač je malý; samorozbaľovací súbor Exomizeru by navyše nezachoval spúšťacie rutiny (INITAD) ani dáta pod ROM. Ten istý rozbaľovač ZX02 používa aj
Unpackpre dáta zbalené cezPACK.
Action26 1.3.0.315
--unpackpodľa prípony – súbor.w8pčíta najprv ako W8P, ostatné najprv ako zbalené dáta. Zbalené dáta s veľkosťou 256 až 511 bajtov mali aj platnú hlavičku W8P, takže poškodený.pakdostal hlášku o W8P. Teraz chyba patrí formátu z prípony.- Nové testy –
--memory,--set,--sims klávesnicou zo vstupu,--verbose,--scramble,--atr,--pack/--unpack,--pack-texta disky sa skúšajú celé, tak ako ich spustí príkazový riadok. Pokrytie kódu testami stúplo z 91 % na 95 %.
Action26 1.3.0.308
--runbez ROM Atari – keď vedľa emulátora nie jeATARIXL.ROM, spustí sa s voľnou AltirraOS.--sims AltirraOS 3.44 – desatinné čísla zREAL.ACTpočíta simulátor rutinami novej AltirraOS, rovnako ako emulátor s ňou. Posledná číslica sa môže líšiť od ROM Atari.- Zmena štruktúrovania kódu a dokumentácie – popis volieb
--runa--sim, kapitola o operačnom systéme v dokumentácii runtime, príručka (kapitoly 1 a 24).
Action26 1.3.0.302 – prvé vydanie
Action26 je prekladač jazyka Action! pre 8-bitové Atari XL/XE, ktorý beží na Windows. Zdroják .act preloží do súboru XEX, ktorý beží bez cartridge Action!.
Čo prináša
- Kompatibilita s Action! 3.6 – rovnaký jazyk, knižnica aj chybové kódy. Preloží RunTime disk, Tool Kit aj stovky starých programov a výsledok je zvyčajne menší než z originálu.
- Jeden súbor bez závislostí –
action26.exe, tri úrovne optimalizácie, chyby vo formáte Visual Studia. - Spúšťanie a disky – rovno v emulátore atari800 (
--run), vo vstavanom simulátore 6502 (--sim) alebo z diskety ATR s autorunom pre DOS 2.5, MyDOS, SpartaDOS a ďalšie. - Beží aj s AltirraOS – programy volajú operačný systém len cez jeho oficiálne vstupné body, takže fungujú s ROM Atari 400/800 aj XL/XE a rovnako s voľnou náhradou AltirraOS. Overené v emulátore, vrátane práce s disketou, klávesnicou a grafikou.
- Nastavenia v zdrojáku – voľby prekladu sa píšu do hlavičky programu (
;@modern,;@compile …,;@version …), originálny cartridge ich preskočí ako komentáre.
Moderný Action! (--modern)
Nepovinné rozšírenia jazyka: CONST, ENUM, CASE, IF a CASE ako hodnota, viacrozmerné polia, pretypovanie, assembler 6502 priamo v rutine (ASM … ENDASM), premenné na pevnej adrese (ORG, ALIGN), escapy v reťazcoch a výpis dlhého textu. Ku každému rozšíreniu je lekcia v examples\modern\.
Grafika, pamäť a dáta
- Player/Missile grafika – hráči, strely, zrážky a sprity cez jednoduché rutiny
PM…. - Rozšírená pamäť – banky 130XE a ďalších rozšírení až do 1 MB a RAM pod ROM, aj s dátami nahranými priamo pri štarte programu.
- Kompresia – obrázky, dáta aj texty sa zbalia už pri preklade (ZX02, RLE+, W8P) a rozbalia na Atari.
- Prehľad pamäte –
--memoryukáže, koľko miesta ešte ostáva. - Nečitateľný XEX –
--scramblezakóduje program, dekóduje sa pri nahrávaní s grafickým efektom.
Príručka
Action! pre začiatočníkov – príručka v slovenčine od prvého programu po Player/Missile grafiku. Každý príklad je overený prekladom aj výstupom. Vychádza ako jedna stránka HTML a ako e-kniha, ktoré ležia v bin\ hneď vedľa action26.exe. Príručka má rovnaké číslo verzie ako action26.exe, takže je hneď vidieť, ku ktorému prekladaču patrí.
READY


