34. Disky: obrazy diskiet ATR a prevod textov

Na čo to je

Skutočné Atari nahráva programy z diskety. Emulátory a moderné náhrady disketových jednotiek používajú namiesto diskety obraz – jeden súbor s príponou .atr, v ktorom je celý obsah diskety. action26 vie s takými súbormi pracovať priamo: uložiť na ne program, vypísať obsah, kopírovať súbory tam a späť.

Kapitola nemá program v Action!. Sú v nej príkazy, ktoré si môžeš vyskúšať s programom hello-key.act z kapitoly 2.

Čo je DOS

Samotné Atari disketám nerozumie. Program, ktorý ho to naučí, sa volá DOS (Disk Operating System) a je na diskete. Po zapnutí si ho Atari z diskety nahrá – tomu sa hovorí bootovanie. Až potom existuje zariadenie D:.

Z toho plynie: disketa, z ktorej má Atari naštartovať, musí obsahovať DOS. DOS-ov je viac druhov (Atari DOS 2.5, MyDOS, SpartaDOS …); action26 pozná najbežnejšie. Obraz diskety s DOS-om si treba zaobstarať – sú voľne dostupné na stránkach o Atari.

Program na disketu: --atr

action26 hello-key.act --atr dos25.atr

Prekladač program preloží a uloží na disketu dos25.atr tak, aby sa po naštartovaní sám spustil. Na diskete s Atari DOS 2.5 to znamená súbor AUTORUN.SYS:

action26: stored AUTORUN.SYS on dos25.atr (DOS 2, single density, Atari DOS 2)

(Túto správu vypíše s voľbou --verbose.) S --run sa disketa hneď spustí v emulátore:

action26 hello-key.act --atr dos25.atr --run

Toto je spôsob, ako spúšťať programy, ktoré pracujú so súbormi (kapitola 30).

Pracuj na kópii. --atr do obrazu diskety zapisuje. Pôvodný obraz s DOS-om si odlož a pre každý projekt si sprav kópiu.

Keď disketa neexistuje

Ak súbor .atr neexistuje, prekladač vytvorí novú prázdnu disketu a program na ňu uloží. Taká disketa však nemá DOS a Atari z nej nenaštartuje. Prekladač to povie:

action26: note: my.atr has no DOS, so the program does not start by itself; copy a DOS disk (DOS 2, MyDOS, WolfDOS, SpartaDOS, BW-DOS, LiteDOS) and use that with --atr to get a bootable disk

Vlastné meno súboru

--atr-name uloží program pod zvoleným menom namiesto automaticky spúšťaného:

action26 hello-key.act --atr dos25.atr --atr-name HELLO.COM

Program sa potom nespustí sám; nahráš ho z ponuky DOS-u.

Čo je na diskete: --atr-list

action26 --atr-list dos25.atr
dos25.atr: DOS 2, single density (720 sectors of 128 bytes), Atari DOS 2 boots
  DOS      SYS 037
  DUP      SYS 042
  RAMDISK  COM 009
  SETUP    COM 070
  COPY32   COM 056
  DISKFIX  COM 057
  FILECOPY COM 025
  AUTORUN  SYS 004
8 file(s), 407 free sector(s)

Prvý riadok hovorí druh diskety a či sa z nej dá naštartovať. Číslo za menom súboru je jeho veľkosť v sektoroch – disketa je rozdelená na sektory po 128 bajtoch.

Kopírovanie súborov: --atr-put a --atr-get

Na disketu:

action26 --atr-put dos25.atr notes.txt NOTES.TXT
action26: notes.txt -> dos25.atr:NOTES.TXT (25 bytes)

Z diskety:

action26 --atr-get dos25.atr NOTES.TXT back.txt
action26: NOTES.TXT -> back.txt (25 bytes)

Posledné meno je v oboch prípadoch nepovinné; bez neho sa použije to isté meno. Súbor sa kopíruje bajt po bajte, bez zmeny.

Takto dostaneš na disketu dáta pre svoj program (obrázky, texty, úrovne hry) a z diskety to, čo program uložil.

Je disketa v poriadku: --atr-check

action26 --atr-check dos25.atr
dos25.atr: DOS 2, single density
the file system is consistent

Hodí sa pri starých obrazoch diskiet, ktoré môžu byť poškodené.

Texty: ATASCII a --to-text, --to-atascii

Textový súbor na Atari sa od textového súboru na PC líši koncom riadka. Na PC je to dvojica znakov (CR a LF), na Atari jeden znak s kódom 155 ($9B). Ostatné bežné znaky sú rovnaké.

Zdroják si action26 prečíta v oboch tvaroch. Prevod potrebuješ, keď má textový súbor čítať program na Atari, alebo keď chceš zdroják poslať niekomu, kto ho otvorí v pôvodnom Action!.

Z PC na Atari:

action26 --to-atascii notes.txt NOTES.ATA

Z Atari na PC:

action26 --to-text NOTES.ATA notes2.txt

Bez druhého mena dostane výsledok príponu .ACT, resp. .txt. Vstupný súbor sa nikdy neprepíše.

Preklad priamo z diskety

Keď je zdroják na obraze diskety – napríklad starý program z časopisu –, netreba ho vyťahovať. Stačí pred meno napísať disketu a dvojbodku:

action26 dos25.atr:HELLO.ACT --sim

Súbory z INCLUDE sa potom hľadajú na tej istej diskete. Obraz diskety môže byť aj v -I:

action26 program.act -I toolkit.atr

Prehľad

PríkazČo robí
action26 prog.act --atr disk.atruloží program na disketu tak, aby sa spustil sám
… --atr-name MENO.COMuloží ho pod týmto menom
action26 --atr-list disk.atrvypíše súbory
action26 --atr-put disk.atr súbor MENOskopíruje súbor na disketu
action26 --atr-get disk.atr MENO súborskopíruje súbor z diskety
action26 --atr-check disk.atrskontroluje disketu
action26 --to-atascii vstup výstuptext z PC na Atari
action26 --to-text vstup výstuptext z Atari na PC
action26 disk.atr:PROG.ACTpreloží zdroják, ktorý leží na diskete

Časté chyby

Čo sa staloČo sa stane
disketa bez DOS-uAtari z nej nenaštartuje; D: v programe dá chybu 130
zápis na jediný exemplár obrazu s DOS-omobraz je zmenený; nabudúce pracuj na kópii
textový súbor skopírovaný na disketu bez prevoduprogram na Atari vidí celý súbor ako jeden dlhý riadok
meno dlhšie ako 8 + 3 znakydisketa také mená nevie

Zhrnutie

Späť: 33. Nastavenia v zdrojáku · Ďalej: 35. Rozšírenia jazyka