Action26
Cross-compiler jazyka Action! pre Atari 800
Stiahnuť
Program, príručka (HTML aj EPUB) a plugin pre Sublime Text v jednom zipe (3,5 MB)
Windows 10 alebo 11 (x64), jeden súbor action26.exe bez inštalácie. Na grafiku a zvuk emulátor atari800.
Pomoc k jazyku
- Príručka Action! jazyk od úplných základov, 42 kapitol
- Jazyk na jednej strane všetky príkazy a typy v skratke
- Knižnica na jednej strane Print, Graphics, Sound …
- Chyby hlásenia prekladača a chyby za behu
Príručka, verzia 1.3.0.361
Na blogu som už riešil, koľko má Action! voľnej pamäte a ako je na tom s rýchlosťou. Tentoraz niečo väčšie: Action26, prekladač jazyka Action! pre 8-bitové Atari XL/XE, ktorý beží na Windows.
Ako to funguje? Zdroják .act sa napíše v ľubovoľnom editore a Action26 z neho za zlomok sekundy urobí spustiteľný XEX. Cartridge Action! netreba, jej knižnicu nahrádza vlastný runtime, ktorý sa k programu jednoducho pribalí.
Taký malý pozdrav:
PROC Main()
BYTE i
FOR i=1 TO 10
DO
PrintB(i) Put(' )
OD
PutE()
RETURNA preklad aj so spustením v emulátore:
action26 hello.act --runČo vie
- Jeden súbor
action26.exe, nič sa neinštaluje a nič ďalšie netreba. - Jazyk aj volacia konvencia sú ako v originálnom Action! 3.6. Preloží RunTime disk, Action! Tool Kit, TOMS Navigator aj 515 programov z Rosetta Code.
- Chyby hlási vo formáte Visual Studia (
súbor(riadok,stĺpec): error ACT017: Bad expression) s číslami chýb z originálu, takže stačí na ne v editore kliknúť. - Na textový program netreba ani emulátor. Vstavaný simulátor 6502 (
--sim) vypíše výsledok rovno do konzoly,--runprogram spustí v emulátore atari800. - Program zapíše aj na disketu ATR, ktorá ho po nabootovaní sama spustí (DOS 2.5, MyDOS, WolfDOS, SpartaDOS, BW-DOS, LiteDOS).
- Tri úrovne optimalizácie a výsledný kód býva zvyčajne menší ako z originálu 😉
- Komu originál nestačí, má tu
--modern: konštanty,ENUM, viacrozmerné polia,CASE, vložený assembler, RAM pod ROM a banky 130XE, hráčov a strely. - Nastavenia prekladu môžu byť priamo v hlavičke zdrojáka (
;@strict,;@compile …). Originál ich berie ako komentár a ticho preskočí. - Kompresia dát, nečitateľný XEX (
--scramble), listing, mapa pamäte a labely pre monitor emulátora. - Zvýrazňovanie syntaxe a preklad priamo z editora: Visual Studio, Visual Studio Code a Sublime Text.
Action26 je voľný softvér pod licenciou MIT. Runtime je napísaný nanovo. Správa sa ako knižnica cartridge Action! 3.6 (© 1983 Clinton W. Parker), ale jej kód nepoužíva.
Novinky
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.
Staršie verzie
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


