Action26

Cross-compiler jazyka Action! pre Atari 800

Stiahnuť

Stiahnuť Action26

Program, príručka (HTML aj EPUB) a plugin pre Sublime Text v jednom zipe (3,5 MB)

Čo je nové

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, verzia 1.3.0.361

Grafika: domček v režime 7
Grafika: domček v režime 7
Textová obrazovka
Textová obrazovka
Hráči a strely
Hráči a strely

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:

Action!
PROC Main()
  BYTE i
  FOR i=1 TO 10
  DO
    PrintB(i) Put(' )
  OD
  PutE()
RETURN

A preklad aj so spustením v emulátore:

action26 hello.act --run

Čo vie

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é y nerobí nič. Benchmark bench5 (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.
  • --strict a DEFINE W – upozorní na DEFINE s menom W. Originálny cartridge program preloží, ale monitor jeho príkaz W"D:PROG.COM" (zápis programu) rozvinie ako tento DEFINE a skončí chybou 2.
  • --sim a 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 v docs\reference.md §8.2.
  • Zbalený a zakódovaný XEX – --pack-xex spolu so --scramble (aj --scramble-level 2 a --scramble-key) efekty --scramble-fx sa 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 Unpack pre dáta zbalené cez PACK.

Action26 1.3.0.315

  • --unpack podľ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ý .pak dostal hlášku o W8P. Teraz chyba patrí formátu z prípony.
  • Nové testy – --memory, --set, --sim s klávesnicou zo vstupu, --verbose, --scramble, --atr, --pack/--unpack, --pack-text a 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

  • --run bez ROM Atari – keď vedľa emulátora nie je ATARIXL.ROM, spustí sa s voľnou AltirraOS.
  • --sim s AltirraOS 3.44 – desatinné čísla z REAL.ACT počí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 --run a --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 – --memory ukáže, koľko miesta ešte ostáva.
  • Nečitateľný XEX – --scramble zakó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