Rozšířená syntaxe Sinclair BASICu
Některá zařízení, především diskové systémy, které se připojují k počítačům Sinclair ZX Spectrum přidávají pomocí svojí vlastní paměti ROM nové varianty stávajících příkazů. Zřejmě jako první toto umožnil Sinclairův vlastní výrobek ZX Interface I. ZX Interface I patří mezi zařízení, která mají při běžné činnosti počítače svojí paměť odpojenou a její připojování a odpojování řídí hardware zařízení podle adresy aktuálně vykonávané instrukce. Dále existují zařízení, která původní Sinclairovu ROM v počítači vůbec nepoužívají a trvale ji odpojí, neboť obsahují její variantu s potřebnými úpravami a přepínání mezi pamětí s interpretem jazyka Sinclair BASIC a pamětí s ovladači zařízení provádějí softwarově pomocí instrukce out. Mezi takovéto zařízení patří řadič MB02 či Delta Disk.[1] Třetí typ zařízení se ovládá pomocí standardních příkazů, přičemž předcházející příkaz provede jakési přepnutí pro vykonání příkazu na přídavném zařízení. Mezi tato zařízení patří řadič Beta Disk Interface, který používá příkazy typu RANDOMIZE USR xxxxx: REM: SAVE "soubor", nebo Kempston Disc Interface, který používá příkazy typu PRINT #4: CAT: PRINT d,d$.
Pro ZX Spectrum také vznikly alternativní ROM s rozšířenou syntaxí Sinclair BASICu, např. LEC ROM, ISO ROM či BS ROM.
Zařízení spolupracující s původní ROM
ZX Interface I + ZX Microdrive
Zařízení umožňuje připojit jednu až osm mechanik ZX Microdrive, obsahuje sériový port a umožňuje připojit do sítě až 63 počítačů ZX Spectrum se ZX Interface I nebo počítačů Sinclair QL.
- LOAD *"m";n;nazev$ – nahrání souboru z Microdrive č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"m";n;nazev$ – uložení souboru na Microdrive č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"m";n;nazev$ – připojení souboru z Microdrive č. n ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"m";n;nazev$ – ověření souboru z Microdrive č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- CAT n – zobrazení seznamu souborů na Microdrive č. n
- CAT #m;n – zobrazení seznamu souborů na Microdrive č. n pomocí linky m (např. tisk na tiskárně)
- FORMAT "m";n;nazev$ – formátování pásky v Microdrive č. n
- ERASE "m";n;nazev$ – smazání souboru z pásky v Microdrive č. n
- MOVE "m";n1;nazev1$ TO "m";n2;nazev2$ – kopírování souboru s nazev1$, který je na pásce v Microdrive č. n1, na pásku v Microdrive č. n2 pod názvem nazev2$. Je funkční pouze pro typ CODE.
- LOAD *"n";n – nahrání souboru ze sítě od stanice č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"n";n – odeslání souboru do sítě stanici č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"n";n – připojení souboru ze sítě od stanice č. n ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"n";n – ověření souboru ze sítě od stanice n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- FORMAT *"n";n – nastavení čísla stanice místního počítače
- LOAD *"b" – nahrání souboru ze sériového portu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"b" – odeslání souboru přes sériový port. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"b" – připojení souboru ze sériového portu ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"b" – ověření souboru ze sériového portu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- FORMAT "b";baud – nastavení rychlosti přenosu sériového portu pro binární přenos
- FORMAT "t";baud – nastavení rychlosti přenosu sériového portu pro textový přenos
příkaz MOVE je možné použít pro přenos mezi jakýkoliv zařízením:
- MOVE "m";n1;nazev$ TO "n";n2
- MOVE "n";n TO "t"
je možné použít též variantu s odkazem na číslo linky
- MOVE "m";n;nazev$ TO #n2
- OPEN #m;"m";n;nazev$ – připojení souboru z Microdrive č. n na linku č. m
- OPEN #m;"n";n – připojení síťové stanice č. n na linku č. m
- OPEN #m;"b" – připojení sériové portu v binárním režimu na linku č. m
- OPEN #m;"t" – připojení sériové portu v textovém režimu na linku č. m
Tyto rozšířené linky se zavírají příkazem CLOSE #n s klasickou syntaxí.
Pozn.: Jako oddělovač mezi číslem linky a označením kanálu je možné použít jak středník (; – OPEN #m;"b"), tak původní čárku (, – OPEN #m,„b“). Pomocí varianty se středníkem ale nelze na linku připojit původní kanály ZX Spectra K, P a S.
U ZX Interface I existují i dva příkazy nedokumentované v návodu:
- CLS #
- CLEAR #
ZX Spectrum 128K/+2
Počítače ZX Spectrum 128K a ZX Spectrum +2 mají rozšířenou množinu příkazů o příkazy:
- PLAY,
- SPECTRUM.
Kromě toho používá příkazy:
- SAVE !"název souboru" – uložení souboru do ramdisku,
- LOAD !"název souboru" – nahrání souboru z ramdisku,
- MERGE !"název souboru"
- CAT ! – katalog ramdisku,
- ERASE !"název souboru" – smazání souboru z ramdisku,
- FORMAT "p",baud – nastavení rychlosti přenosu sériového portu.
Příkazy LOAD !, SAVE ! a MERGE ! jsou použitelné ve stejných variantách jako jejich kazetové verze.
Pro tyto počítače existuje možnost softwarově rozšířit množinu příkazů v režimu BASIC 128. Rozšiřující Spectrum 128 BASIC framework včetně dokumentace vytvořil Paul Farrow.
ZX Spectrum +2A/+3
Počítače ZX Spectrum +2A a ZX Spectrum +3 mají také rozšířenou množinu příkazů o příkazy:
- PLAY,
- SPECTRUM.
Navíc používají rozšířené příkazy pro práci s disketovými jednotkami a tiskárnou (d:, d1: a d2: nahrazují písmeno disku, může být a:, b:, m: a t: – m: je ramdisk, t: je kazetový magnetofon):
- FORMAT "d:" – formátování diskety (nefunguje s m: a t:),
- příkazy SAVE, LOAD a MERGE mají stejnou syntaxi jako u kazetové verze. Pro nahrání souboru z konkrétního média je rozšířen název o písmeno disku, např. SAVE "d:název souboru", příkaz VERIFY funguje pouze s magnetofonem,
- SAVE "d:" – určení výchozí mechaniky pro příkaz SAVE,
- LOAD "d:" – určení výchozí mechaniky pro příkazy LOAD, MERGE a CAT,
- CAT – katalog výchozí mechaniky,
- CAT "d:" – katalog vybrané mechaniky (s výjimkou kazety, pro katalog kazety je nutné vždy zadat CAT "t:"),
- CAT #n,
- CAT #n,"d:",
- CAT EXP – rozšířený katalog,
- CAT "d:" EXP
- ERASE "název souboru" – smazání souboru,
- MOVE "původní název" TO "nový název" – přejmenování souboru (přejmenování funguje pouze v rámci jedné jednotky),
- MOVE "název souboru" TO "+attr" – nastavení atributu attr, atributy mohou být a, s a p,
- MOVE "název souboru" TO "-attr" – odebrání atributu attr,
- COPY "název" TO "název 2" – vytvoření kopie souboru,
- COPY "d1:název" TO "d2:název 2" – vytvoření kopie souboru na médiu v jiné mechanice,
- COPY "d1:" TO "d2:" – kopírování celých disků sektor po sektoru,
- COPY "název souboru" TO SCREEN$ – výpis obsahu souboru na obrazovku,
- COPY "název souboru" TO LPRINT – výpis obsahu souboru na tiskárnu,
- COPY "název souboru" TO SPECTRUM FORMAT – vytvoření kopie souboru s přidanou hlavičkou, tak, aby byl soubor akceptovaný ZX Spectrem.
U příkazů COPY, ERASE a MOVE lze používat i zástupné znaky ? a *.
- FORMAT LINE baud – nastavení rychlosti přenosu sériového portu,
- FORMAT LPRINT "r" – nastavení tisku přes sériovou tiskárnu,
- FORMAT LPRINT "c" – nastavení tisku přes paralelní tiskárnu,
- FORMAT LPRINT "a" – nastavení tisku přes sériovou tiskárnu připojenou přes konektor AUX (pouze ROM verze 4.1),
- FORMAT LPRINT "u" – klíčová slova ZX Spectra jsou posílána po jednotlivých písmenech, řídicí znaky jsou posílány,
- FORMAT LPRINT "e" – posílání znakové sady ZX Spectra, klíčová slova jsou posílána jako jeden byte, nejsou posílány řídicí znaky,
Příkaz FORMAT LPRINT akceptuje i dva parametry, kdy první z nich musí být určení výstupu a druhý určuje, jak se má zacházet s klíčovými slovy a řídicími znaky, např. FORMAT LPRINT "r";"u"
- COPY – vytisknutí černobílé kopie obrazovky, atributy jsou ignorovány,
- COPY EXP – vytisknutí kopie obrazovky, barvy jsou nahrazeny ditheringem,
- COPY EXP INVERSE – vytisknutí kopie obrazovky, barvy jsou inverzně nahrazeny ditheringem (čím tmavší barva, tím světlejší dithering),
- COPY EXP BRIGHT – vytisknutí kopie obrazovky, pro šetření barvy je všem atributům na obrazovce nastaven zvýšený jas (BRIGHT 1) (pouze ROM verze 4.1),
Opus Discovery
Zařízení obsahuje 3,5" disketovou mechaniku, paralelní port a port pro joystick. Novější varianty obsahují dvě disketové mechaniky. Čísly 1 a 3 je označena první disketová mechanika, čísly 2 a 4 je označena druhá disketová mechanika a číslem 5 je označen ramdisk. Rozšířená syntaxe tohoto zařízení vychází z rozšířené syntaxe ZX Interface I. U verze pro počítače ZX Spectrum 128 byl přidán druhý ramdisk označený číslem 6.
- FORMAT "m";1;"nazev_diskety" – formátování diskety
- FORMAT 1;"nazev_diskety" – formátování diskety
- FORMAT 5;"nazev_ramdisku" – formátování ramdisku
- FORMAT "j",zapnuto – pokud zapnuto = 1, je možné joystick číst na portu 31, pokud zapnuto = 0, jostick není možné číst.
- CAT 1 – katalog diskety
- CAT #m;n – katalog diskety v mechanice n zobrazený pomocí linky m
- SAVE *"m";1;"nazev" – uložení souboru na disketu
- SAVE *"m";1;"nazev" SCREEN$ – uložení obsahu obrazovky na disketu
- SAVE *"m";1;"nazev" DATA pole() – uložení datového pole na disketu
- SAVE *"m";1;"nazev" CODE adresa,delka – uložení části paměti na disketu
- SAVE *"m";1;"nazev" LINE n – uložení programu tak, aby se opětném nahrání příkazem LOAD * sám spustil
Je možné použít též variantu SAVE *1;"nazev" a to se všemi dalšími rozšířeními
- LOAD *"m";1;"nazev" – nahrání souboru z diskety
- LOAD *"m";1;"nazev" SCREEN$ – nahrání obsahu obrazovky z disketu
- LOAD *"m";1;"nazev" DATA pole() – nahrání uloženého datového pole do počítače. Prostor pro
toto pole musí již existovat.
- LOAD *"m";1;"nazev" CODE – nahrání části paměti z diskety na původní adresu
- LOAD *"m";1;"nazev" CODE adresa – nahrání části paměti z diskety na definovanou adresu
- LOAD *"m";1;"nazev" CODE adresa,delka – nahrání části paměti z diskety na definovanou adresu a v maximálně definované délce. Pokud je soubor delší, je zobrazeno chybové hlášení.
- VERIFY *"m";1;"nazev" – ověření souboru na disketě
- VERIFY *"m";1;"nazev" SCREEN$ – na rozdíl od kazetové verze nevypisuje do obrazovky názvy souborů, takže k ověření dojde
- MERGE *"m";1;"nazev" – přihrání programu z diskety k programu, který už je v paměti počítače. Dojde k jejich sloučení.
- RUN – nahraje samospustitelný program s názvem run a spustí ho
- SAVE *"b" – odeslání programu pomocí paralelního portu
- LOAD *"b" – nahrání programu z paralelního portu
- VERIRY *"b" – ověření programu z paralelního portu
- CLS # – smaže obrazovku a nastaví její atributy na jejich výchozí hodnoty
- OPEN #m,"m";1;"nazev" OUT – připojení výstupního souboru na linku m
- OPEN #m,"m";1;"nazev" IN – připojení vstupního souboru na linku m
- OPEN #m,"m";1;"nazev" OUT n – připojení výstupního souboru na linku m. Maximální velikost výstupního souboru je n bytů.
- OPEN #m,"m";1;"nazev" EXP – připojení výstupního souboru na linku m. Nová data jsou připojována k existujícímu souboru.
- OPEN #m,"m";1;"nazev" EXP n – připojení výstupního souboru na linku m. Nová data jsou připojována k existujícímu souboru. Nejvýše může být připojeno n nových bytů.
- OPEN #m;"m";1;"nazev" RND n1,n2 – vytvoří soubor pro náhodný přístup, který bude obsahovat n2 záznamů, každý o délce n1 bytů. Pokud nechceme počet záznamů omezovat, je nutné stanovit n2 = -1 (OPEN #m;"m";1;"nazev" RND n1,-1)
- OPEN #m;"m";1;"nazev" RND n1 – otevření existujícího souboru s náhodným přístupem pro vstup (délka záznamu je n1)
- POINT #m;n – nastaví ukazatel náhodného souboru připojeného na linku m na záznam n.
- OPEN #m;"t" – připojení tiskárny připojené pomocí paralelního portu zařízení na linku m v textovém režimu
- OPEN #m,"b" IN – připojení paralelního portu v binárním režimu jako vstupního kanálu na linku m
- OPEN #m;"#";n IN – přesměruje vstup na linku m vstup z linky n
- OPEN #m;"t";parametry RND pocet_znaku_na_radek – připojí paralelní port v textovém režimu na linku m s definovaným počtem znaků na řádek.
Pozn. na rozdíl od ZX Interface I + ZX Microdrive pokud je v příkazu OPEN #n použit jako oddělovač znak středník (;), příkaz je schopen připojit na zvolenou linku i kanály K, P a S.
- CLEAR # – odpojí kanály od všech otevřených linek. Kanál není regulérně uzavřen, pokud je výstupním kanálem soubor, nejsou do něho zapsány zbývající informace.
- CLEAR #m – odpojí kanály od otevřené linky m. Kanál není regulérně uzavřen, pokud je výstupním kanálem soubor, nejsou do něho zapsány zbývající informace.
- MOVE "d";1 TO "d";3 – kopírování obsahu diskety na disketu jinou při použití pouze jedné disketové mechaniky. Vyžaduje vyměňování diskety v disketové mechanice.
- MOVE "d";1 TO "d";2 – kopírování obsahu diskety v disketové mechanice č. 1 na disketu v disketové mechanice č. 2
- MOVE "d";1 TO "d";1 – odstranění volného místa mezi jednotlivými soubory na disketě vzniklých např. smazáním souboru.
- MOVE "K" TO "S" – k přerušení příkazu je nutné stisknout kombinaci kláves CAPS SHIFT + ENTER
- MOVE "K" TO "K"
- MOVE "m";1;"nazev" TO "S" – zobrazení obsahu souboru na obrazovce
- MOVE "m";1;"nazev" TO "T" – vytisknutí obsahu souboru na tiskárně připojené přes paralelní port zařízení
- MOVE "m";1;"nazev" TO "m";2;"nazev" – kopírování souboru z diskety v disketové mechanice č. 1 na disketu v disketové mechanice č. 2
- MOVE "m";1;"nazev" TO "m";3;"nazev" – kopírování souboru na jinou disketu pouze pomocí jediné disketové mechaniky. Při kopírování je nutno vyměňovat diskety. Stejného výsledku je možné dosáhnout pomocí MOVE "m";3;"nazev" TO "m";1;"nazev"
- MOVE "m";2;"nazev" TO "m";4;"nazev" – kopírování souboru na jinou disketu pouze pomocí disketové mechaniky č. 2. Při kopírování je nutno vyměňovat diskety.
- MOVE "m";1;"nazev" TO "m";1;"nazev" – změna fyzické polohy souboru na disketě
- MOVE "m";1;"nazev" TO "b" – odeslání souboru na paralelní port v binárním režimu
- MOVE "b" TO "m";1;"nazev" – uložení vstupních dat z paralelního portu do souboru. Pro ukončení je nutné stisknout kombinaci kláves CAPS SHIFT + ENTER
- ERASE 1;"nazev" – smaže soubor. Pokud není soubor nalezen, je zobrazeno chybové hlášení
- ERASE "m";1;"nazev" – smaže soubor. Pokud není soubor nalezen, není zobrazeno chybové hlášení
Použitelné kanály a jejich standardní připojení pro vstup nebo výstup:
- "b" – paralelní port v binárním režimu (IN, OUT)
- "CAT";n – katalog diskety v disketové mechanice n (IN)
- "CODE" – paměť počítače (IN, OUT)
- "d";n – celá disketa v disketové mechanice n
- "j" – joystick (pouze pro příkaz FORMAT)
- "m";n,"nazev" – soubor na disketě v mechanice n
- "t";status – paralelní port v textovém režimu. Pokud je status roven 0, znak CR je posílán jako CR/LF. Pokud status je roven 2, znak CR je posílán jako CR. Pokud status je roven 1, je emulován ZX Printer. Pokud status není uveden, je situace stejná jako při status rovném 0. (IN, OUT)
- "#";n – přesměruje linku na linku n (IN, OUT)
Wafadrive
Zařízení obsahuje dvě mechaniky, které jsou rozlišovány pomocí písmen a: a b: (v dalším textu obecně disk:). Dále zařízení obsahuje sériový a paralelní port.
- NEW * – inicializace zařízení, ostatní příkazy nefungují dokud inicializace není provedena
- NEW # – stejné jako NEW, ale bez nutnosti znovu inicializovat zařízení
- CLS * – stejně jako CLS smaže obrazovku, ale navíc nastaví BORDER 7:PAPER 7:INK 0
- FORMAT *"disk:nazev_disku" – formátování zvoleného média
- CAT *"disk:" – katalog zvoleného média
- CAT * – katalog výchozího média
- CAT #"disk:" – nastavení výchozí mechaniky
- CAT # – pouze znovunačtení adresáře z média v výchozí mechanice
- SAVE *"disk:nazev_souboru", SAVE *"nazev_souboru" – uložení souboru na médium, pokud soubor se stejným jménem už existuje, operace skončí chybovým hlášením
- SAVE #"disk:nazev_souboru" – uložení souboru na médium, pokud soubor se stejným jménem už existuje, bude bez jakéhokoliv hlášení přepsán novým souborem
- VERIFY *"disk:nazev_souboru", VERIFY *"nazev_souboru", VERIFY * – ověření uloženého souboru
- LOAD *"disk:nazev_souboru", LOAD * – nahrání uloženého souboru do paměti
- MERGE "disk:nazev_souboru" – připojení souboru k programu, který je už v paměti počítače
varianty příkazu SAVE *
- SAVE *"disk:nazev" LINE n – uložení programu v BASICu tak, aby se po nahrání příkazem LOAD * automaticky spustil od řádku n
- SAVE *"disk:nazev",zacatek,delka – uložení části paměti od adresy zacatek v počtu bytů delka
- SAVE *"disk:nazev" SCREEN$ – stejné jako SAVE *"disk:nazev",16384,6912
- SAVE *"disk:nazev",zacatek,delka,start – uložení části paměti od adresy zacatek v počtu bytů delka. Po nahrání příkazem LOAD * bude automaticky spuštěn od adresy start
varianty příkazu LOAD *
- LOAD *"disk:nazev",zacatek – nahrání souboru do paměti od adresy zacatek
- LOAD *"disk:nazev" – nahrání souboru do paměti od adresy, ze které byl uložen příkazem SAVE *
- ERASE "disk:nazev_souboru" – smazání souboru z média, je možné použít zástupné znaky (tzv. wildcards), resp. pouze znak hvězdička na konci názvu, který nahrazuje jakoukoliv sekvenci a počet znaků
- MOVE *"disk1:nazev1" TO "disk2:nazev2" – kopírování souborů. Pokud jsou použity zástupné znaky, je nutné použít syntaxi MOVE *"disk1:nazev1" TO "disk2:" (nazev2 nesmí být uveden)
- OPEN #*n,"c" – připojení paralelního portu Centronics na linku n
- OPEN #*n,"r" – připojení sériového portu RS-232 na linku n
- OPEN #*n,"disk:nazev" – připojí soubor pojmenovaný nazev na linku n
OPEN #* neumí otevřít původní linky ZX Spectra (linky K, P, S)
- CLOSE #*n – zavře linku n
- FORMAT *"r";baud – nastavení přenosové rychlosti sériového portu
Didaktik 40/80
Disketové jednotky Didaktik 40/80 umožňují připojení dvou disketových mechanik, které jsou rozlišeny písmeny a: a b: (v dalším textu obecně disk:). Místo písmenného identifikátoru je možné také použít jméno diskety (v dalším textu obecně jmeno_diskety:).
Pozn.: Znak | (svislá čára) slouží jako oddělovač možných variant, hranaté závorky vyznačují nepovinně zadávané hodnoty.
- LOAD *"[disk:|jmeno_diskety:]nazev" – nahrání souboru z diskety
- SAVE *"[disk:|jmeno_diskety:]nazev" – uložení souboru na disketu
- MERGE *"[disk:|jmeno_diskety:]nazev" – přihrání souboru z diskety k programu, který je již v paměti počítače
Příkazy LOAD *, SAVE * a MERGE * jsou použitelné ve stejných variantách jako jejich kazetové verze
- LET FN("puvodni_nazev")="novy_nazev" – přejmenování souboru
- LET ATTR("[disk:|jmeno_diskety:]nazev") = "atributy" – nastavení atributů souboru. Atributy jsou v pořadí "HSPARWED". V názvu souboru mohou být použity zástupné znaky * a ?.
- READ *"disk:|jmeno_diskety:",sektor,adresa – nahrání zvoleného sektoru diskety do paměti od zvolené adresy
- READ *"[disk:|jmeno_diskety:]nazev",sektor,adresa – nahrání zvoleného sektoru souboru do paměti od zvolené adresy
- RESTORE *"disk:|jmeno_diskety:",sektor,adresa – uložení části paměti od zvolené adresy v délce velikosti sektoru na disketu do zvoleného sektoru diskety
- RESTORE *"[disk:|jmeno_diskety:]nazev",sektor,adresa – uložení části paměti od zvolené adresy v délce velikosti sektoru na disketu do zvoleného sektoru souboru
- FORMAT "disk:jmeno_diskety" – formátuje disketu
- CAT, CAT "disk:|jmeno_diskety:", CAT "[disk:|jmeno_diskety:]nazev" – katalog zvolené diskety. V názvu souboru je možné použít zástupné znaky * a ?
- CAT – (CAT minus) – zjednodušený katalog zvolené diskety
- MOVE "disk:|jmeno_diskety:" – určení výchozího mechaniky
- MOVE "jmeno_diskety1:nazev1","jmeno_diskety2:[nazev2]„ – kopírování souborů. Pokud není určen nazve2 bude totožný s nazev1. Příkaz je možné použít i při kopírování na jedné mechanice, počítač pak vybízí k výměně disket. Pokud jsou nazev1 a nazev2 různé, je možno příkaz použít i pro kopírování souboru na jedné disketě. V nazev1 mohou být použity i zástupné znaky * a ?.
- ERASE “[disk:|jmeno_diskety:]nazev" – smazání souboru z diskety. V názvu souboru je možné použít zástupné znaky * a ?
- LIST * – výpis informací o stavu systému
- PRINT *"[disk:|jmeno_diskety:]nazev" – zobrazení obsahu sekvenčního souboru
- POKE #adresa,data – zápis dat do paměti RAM disketové jednotky
- OPEN #n,"[disk:|jmeno_diskety:]vstupni_soubor","[disk:|jmeno_diskety:]vystupni_soubor" – připojí na linku n jako vstupní sekvenční soubor vstupni_soubor a jako výstupní sekvenční soubor vystupni_soubor. Pokud bude připojován pouze vstupní soubor, je možné použít zjednodušenou syntaxi OPEN #n,"[disk:|jmeno_diskety:]vstupni_soubor", pokud bude připojován pouze vstupní soubor, je možné použít zjednodušenou syntaxi OPEN #n,,"[disk:|jmeno_diskety:]vystupni_soubor" (nutné jsou dvě čárky za číslem linky)-
- CLOSE # – bez uvedení čísla zavírané linky zavře všechny otevřené linky 4 – 15 a linkám 0 – 3 přiřadí jejich standardní kanál
- RUN – pokud není v paměti program v BASICu, pokusí se nahrát z diskety program, který se jmenuje run
Disciple/+D
Zařízení Disciple umožňuje připojit jednu nebo dvě disketové mechaniky, obsahuje paralelní port a síť. Při práci v síti je možné použít jednu stanici typu Master, až osm stanic typu Assistant a až 52 stanic typu Pupil. Stanice typu Pupil mají připojeny pouze řadič, ale už ne disketové mechaniky a tiskárnu. Typ stanice je rozeznávám podle jejího čísla. Stanice typu Master má vždy přiřazeno číslo 1, stanice typu Assistant mohou mít přiřazená čísla 2 – 9 a stanice typu Pupil mohou mít přiřazena čísla 10 – 63. Ovládání paralelní portu se provádí pomocí standardních příkazů LPRINT a LLIST.
Zařízení +D je pouze disketový řadič a obsahuje také paralelní port. Neobsahuje síť. Na rozdíl od Disciple tedy u něho nebudou pracovat příkazy, které nějakým způsobem využívají síťový přenos.
Pozn. rozlišovací písmeno diskových operací je možné psát buď velké D nebo malé d. Pokud je psáno velkým D, po příkazu SAVE a ERASE se provede automaticky zobrazení katalogu diskety.
- CAT n – zobrazení katalogu diskety v mechanice n
- CAT n! – zobrazení zjednodušeného katalogu diskety v mechanice n
- CAT #m;n – zobrazení katalogu diskety v mechanice n pomocí linky m
- CAT #m;n! – zobrazení zjednodušeného katalogu diskety v mechanice n pomocí linky m
- LOAD dn"nazev" (LOAD d*"nazev") – nahrání souboru nazev z mechaniky n
- SAVE dn"nazev" (SAVE d*"nazev") – uložení souboru nazev na mechaniku n
- VERIFY dn"nazev" (VERIFY d*"nazev") – ověření souboru nazev na mechanice n
- ERASE dn "puvodni_nazev" TO "novy_nazev" – přejmenování souborů
- SAVE dn1"nazev" TO dn2 ["novy_nazev"] – kopírování souborů. Po dokončení kopírování se provede příkaz NEW.
- ERASE dn "nazev" – smazání souboru nazev
V příkazech SAVE TO, CAT a ERASE může nazev obsahovat i zástupné znaky * a ?.
- RUN – nahraje z disku soubor s názvem Autoload. Pokud není nahrání tohoto souboru žádoucí, je nutné zadat RUN boot.
- LOAD D1 "snap" S – nahrání SNAPu 48ičkového programu z mechaniky 1
- LOAD D1 "snap" K – nahrání SNAPu 128ičkového programu z mechaniky 1
- LOAD pn – nahrání souboru č. n (stejná syntaxe je použitelná pro MERGE a VERIFY, ale už není použitelná pro příkaz ERASE). V tomto případě není nutné v případě nahrávání snapů používat písmena S nebo K.
- FORMAT Dn – formátování diskety v mechanice n s dvojitou hustotou záznamu (double density)
- FORMAT SDn – formátování diskety v mechanice n s jednoduchou hustotou záznamu (single density)
- SAVE D1 "Sys 3b" CODE 0,6656 – uložení systému Disciple na disketu
- FORMAT D1 TO 2 – formátování diskety v mechanice č. 1 a následné kopírování obsahu diskety v mechanice č. 2 na disketu v mechanice č. 1 sektor po sektoru
- SAVE SCREEN$ 1 – vytisknutí aktuálního obsahu obrazovky na tiskárně (použitelné je také SAVE SCREEN$)
- SAVE SCREEN$ 2 – vytisknutí aktuálního obsahu obrazovky na tiskárně ve dvojnásobné velikosti. Barvy jsou nahrazeny rastrem.
- POKE @ adresa,hodnota – zápis do systémových proměnných zařízení
- FORMAT Nn – nastavení čísla stanice místního počítače
- LOAD Nn – nahrání souboru ze sítě od stanice n
- SAVE Nn – odeslání souboru síťové stanici n
Při síťovém provozu zařízení Pupil stanice používají pro práci s mechanikami Master stanice stanice stejné příkazy jako by používaly pro práci s místními mechanikami. Stanice typu Pupil nemohou mazat soubory a nemohou používat příkaz LOAD pn
- LOAD Fn SCREEN$ – vynucené nahrání aktuálního obsahu obrazovky ze stanice typu Pupil do stanice typu Master
- SAVE Fn – vynucené odeslání souboru ze stanice typu Master stanici typu Pupil
- LOAD @n,stopa,sektor,adresa – nahrání sektoru sektoru na stopě stopa v mechanice n na adresu adresa
- SAVE @n,stopa,sektor,adresa – uložení obsahu paměti od adresy adresa v délce 256 bytů (v případě diskety s jednoduchou hustotou záznamu) nebo 512 bytů (v případě diskety s dvojitou hustotou záznamu)do sektoru sektoru na stopě stopa v mechanice n
- OPEN #m; Dn "nazev" IN – připojení vstupního souboru nazev na linku č. m
- OPEN #m; Dn "nazev" OUT – připojení výstupního souboru nazev na linku č. m
- CLOSE #*m – uzavření linky č. m
- CLOSE #* – uzavření všech otevřených linek
- výstupní soubory je možné mít otevřeny pouze v jedné mechanice
- vstupní soubory je možné mít otevřené ve více mechanikách
- MOVE D1 "nazev" TO #m – čte soubor nazev a odesílá jej na linku m
- MOVE D1 "nazev" TO D1 "nazev2" – čte soubor "nazev" a zapisuje jej do souboru "nazev2"
- CLEAR # – zavírá všechny linky a kanály, které mohou být otevřeny
- CLS # – maže obrazovku a nastavuje BORDER, PAPER, INVERSE, OVER a FLASH na jejich původní hodnoty
- SAVE Dn "nazev",X,adresa – uložení části paměti o velikosti délky sektoru od adresy adresa jako souboru, který se bude vykonávat v paměti zařízení
- LOAD D1 "nazev" X – nahrání souboru do paměti zařízení a jeho vykonání
- LOAD p(n) – nahrání souboru s pořadovým číslem n do paměti zařízení a jeho vykonání
- LOAD dn "nazev" CODE adresa,delka – nahrání dat na konkrétní místo v paměti počítače
- LOAD dn"nazev" SCREEN$
- SAVE dn "nazev" LINE r
Tento systém také rozumí syntaxi pro ZX Interface 1 + ZX Microdrive
UNIDOS
Alternativní systém UNIDOS přináší disketovým řadičům Disciple a +D především podporu adresářů a současně ke stávajícím příkazům původního systému přidává nové příkazy a atributy souborů skrytý a pouze pro čtení.[2] S adresáři se pracuje podobně jako v Unixu, kdykoliv je očekávané jméno souboru, je možné příkazu předat celou cestu k souboru, např. "/adr1/adr2/soubor". UNIDOS neobsahuje vestavěný příkaz FORMAT, ten je součástí jednoho ze dvou dodávaných tzv. create souborů. Stejně tak jsou součástí create souboru příkazy pro vytváření a mazání adresářů.
- IN d1;"cesta/" – změna pracovního adresáře, be uvedení cesty změní pouze pracovní disk, cesta musí být ukončena lomítkem,
- LOAD p"soubor" – nahrání souboru z aktuálního disku,
- VERIFY p"soubor"
- MERGE p"soubor"
- LOAD d1;"exe"X,adresa - nahrání a spuštění spustitelného binárního souboru,
- SAVE OVER d1;"soubor" – uložení souboru bez kontroly zda soubor stejného jména již existuje (případný existující soubor je vždy přepsán),
- ERASE NOT ... – pokud je doplněno klíčové slovo NOT, jssou potlačena případná chybová hlášení,
- CAT d1
- CAT d1;"cesta"
- CAT NOT d1 – vypíše i skryté soubory,
- CAT NOT d1;"cesta"
- MERGE "soubor" CODE – binární soubory s autostartem se nespustí,
- MOVE [OVER] d1;"file1" TO d2;"file2"
- MOVE [OVER] d1;"file1" TO "file2"
- CLS #
- OPEN #linka;d1;"file" RND – otevření souborů s náhodným přístupem
- OPEN #linka;d1;"file" RND délka[,hodnota] – vytvoří soubor s náhodným přístupem určené délky a pokud je specifikováno, vyplní ho i zvolenou hodnotou,
- POINT #linka,offset – nastavení ukazatele v souboru s náhodným přístupem,
- CLEAR # – zavírá linky bez korektního vyprázdnění bufferů,
- CLEAR #*[linka] – vyprázdní buffery a korektně zavře linky,
- OUT #linka – vyprázdnění bufferu sekvenčních souborů a souborů s náhodným přístupem zápisem dat z bufferu na disk bez uzavření souboru,
SAVE SCREEN$ #flag [,pass [,margin [,y [,x [,h [,w]]]]]]
– tisk kopie obrazovky s předepsanými parametry,- LINE řádek – při chybě v programu v BASICu skočí na zadaný řádek (ON ERROR GO TO),
- SAVE d1;"soubor" USR adresa, délka – uložení souboru s rozšířenými funkcemi nebo novou syntaxí, tzv. create soubor,
- LOAD d1;"soubor" USR – nahrání create souboru do paměti,
Funkce:
- (PEEK @offset) – přečtení hodnoty systémové proměnné řadiče,
- (LEN #linka) – délka souboru s náhodným přístupem,
- (POINT #linka) – vrací aktuální hodnotu ukazatele v souboru s náhodným přístupem,
- (IN #linka, počet bytů) – přečtení požadovaného počtu bytů ze souboru s náhodným přístupem,
- AT d1;"soubor" – zjištění, zda daný soubor nebo adresář existuje (pokud ne, vrací nulu, pokud ano, vrací pořadové číslo adresáře nebo souboru v nadřazeném adresáři).
S UNIDOSem byly dodávány dva create soubory: ext_code a dir_code.
ext_code obsahoval příkaz:
- FORMAT d1;"název disku" – formátování diskety a její pojmenování,
a funkce:
- (LINE) – vrací číslo aktuální disketové mechaniky a informaci o tom, zda je v mechanice disketa a zda je tato disketa chráněna proti zápisu,
- (STR$ #linka) – zjišťuje, zda je linka otevřená.
dir_code obsahoval příkazy:
- SAVE [OVER] d1;"adresář" CAT počet záznamů – vytvoření adresáře s definovaným počtem záznamů (souborů nebo adresářů), které může adresář obsahovat,
- ERASE d1;"adresář" CAT – smazání celého adresáře,
a funkci:
- (STEP [dn]) – pokud není určena disketová mechanika, vrací cestu k adresáři ke kterému se naposledy přistupovalo, pokud disketová mechanika určena je, vrací cestu k pracovnímu adresáři na této mechanice.
Swiftdisc II
Swiftdisc II umožňuje připojit jednu až čtyři disketové jednotky 5,25" nebo 3,5". Obsahuje port pro joystick, port RS-232 a paralelní port.
Pozn.: Znak | (svislá čára) slouží jako oddělovač možných variant, hranaté závorky vyznačují nepovinně zadávané hodnoty, n – číslo mechaniky (0 – 3), k – číslo linky.
- CAT %[#k,]n[;B|;F]
- CAT %#3,0 – tisk katalogu diskety na tiskárnu
- LOAD %n;"file" – možné jsou stejné varianty jako u kazetové verze příkazu
- MERGE %n;"file"
- SAVE %n;"file" – možné jsou stejné varianty jako u kazetové verze příkazu
- OPEN #%#k;n;"file","R"|"W"|"A","T"|"R",délka jednotlivých záznamů (délka záznamů je požadována pouze pokud je předcházející volba "R")
- "R"|"W"|"A"
- "R" – připojení souboru pro čtení,
- "W" – připojení souboru pro zápis,
- "A" – připojení souboru pro připojení dat na konec souboru.
- "T"|"R"
- "T" – připojení vstupně výstupního textového sekvenčního souboru pro příkazy PRINT a INPUT,
- "R" – připojení vstupně výstupního souboru s konstantní délkou záznamu pro příkazy OUT % a IN %.
- "R"|"W"|"A"
- CLOSE #%#k
- ERASE %n;"file"
- CLEAR % – vynuluje všechny pseudoproměnné zařízení
- FORMAT %n;"disk name"[,počet souborů,počet stop] – formátování diskety
- FORMAT %#k;"T"|"B",baud,počet znaků na řádek – nastavení tiskárny
- IN %k,proměnná,číslo záznamu – obsluha vstupně výstupních souborů s konstantní délkou záznamu
- OUT %k,proměnná,číslo záznamu – obsluha vstupně výstupních souborů s konstantní délkou záznamu
Pro zápis a čtení do textových sekvenčních souborů se používají běžné příkazy
- PRINT #k,řetězec$
- INPUT #k,proměnná
- INKEY #n
Pseudoproměnné:
- %EOF – zjištění zda při posledním čtení ze souboru bylo dosaženo konce souboru
- IF %EOF THEN
- %ERR
- IF %ERR THEN GOTO řádek – nastavení příkazu, který se vykoná při chybě
- LET proměnná = %ERR – zjištění čísla chyby
- %LINE – zjištění čísla řádku, na kterém se objevila poslední chyba
- LET proměnná = %LINE
- %LOWER
- LET %LOWER – vypne automatický převod malých písmen v názvech souborů na velké, velká a malá písmena jsou považována za různé znaky. Opětné zapnutí převodu příkazem CLEAR %.
- %DATE
- LET %DATE=proměnná$ – nastavení systémového data řadiče
Příklad programu:
5 CLOSE £%£4
10 OPEN £%£4;0;"primelist","R","R",5
15 REM opens primes file - each number takes 5 bytes
20 DIM P(1)
25 REM all IN/OUT is via arrays of numbers of characters
30 INPUT "Which prime?";X
35 IN %£4;P(1),X
40 REM get entry X into P(1) array
50 PRINT P(1)
60 GO TO 30
Zařízení také rozumí syntaxi pro ZX Microdrive.
ZX Diskface Quick
- FORMAT d1"nazev"
- SAVE d1"nazev"
- SAVE d1"nazev" LINE n
- SAVE d1"nazev" SCREEN$
- SAVE d1"nazev" CODE start,delka
- SAVE d1"nazev" POINT "hh"
- SAVE d1"*.*" TO d2"*.*"
LOAD, MERGE a VERIFY mají stejnou syntaxi
- CAT 1
- CAT 1 LINE - vypíše seznam souborů typu BAS (Basicové soubory)
- CAT 1 CODE - vypíše seznam souborů typu CDE
- CAT 1 STOP - vypíše seznam souborů typu STP (snapshoty)
- CAT "maska*.*"
- CAT #3;"*.*"
- ERASE d1"nazev.typ"
- MOVE d1"nazev" TO d2
- MOVE d1"nazev" TO d2"nazev"
- OPEN #n;d1"nazev" IN - otevře soubor pro čtení
- OPEN #n;d1"nazev" OUT - otevře soubor pro zápis
- OPEN #n;d1"nazev" SIN - pokud soubor neexistuje, je vytvořen a otevřen pro čtení, pokud existuje, je nahlášena chyba
- OPEN #n;d1"nazev" - pokud soubor existuje, je otevřen pro čtení, pokud neexistuje, je vytvořen a je otevřen pro čtení i zápis
- PRINT d1"nazev.typ"
- READ d1"nazev",sektor,adresa
- RESTORE d1"nazev",sektor,adresa
- POKE - umí pracovat i s interní pamětí diskového řadiče
- COPY - nastavení tiskárny
Zařízení rozumí i syntaxi disketového řadiče Didaktik 40/80.
Triton QD
Zařízení má jenom jednu jednotku, pokud je potřeba více jednotek, je nutné připojit k počítači více zařízení. Zařízení používá následující příkazy:[3]
- CAT *n
- FORMAT n
- SAVE *n;b;"název souboru"
- SAVE *n;d;"název souboru";proměnná
- SAVE *n;m;"název souboru";počáteční adresa;koncová adresa
- LOAD *n;"název souboru"
- ERASE *n;"název souboru"
- COPY *n1 TO n2;"název souboru"
- COPY *
n je číslo jednotky.
JLO (Oliger) disk interface
Syntaxe příkazů pro operace s diskem je stejná, jako u příkazů pro magnetofon, po vlastním příkazu ale následuje znak /.[4]
- LOAD /"nazev"
SpeccyDOS
Zařízení umí používat až čtyři mechaniky označované čísly 0 - 3 (v seznamu příkazů číslo nahrazeno n). Pokud číslo mechaniky není v příkazu uvedeno, pracuje se s defaultní mechanikou.[5]
- LOAD *"název souboru"
- LOAD *n"název souboru"
- MERGE *"název souboru"
- SAVE *"název souboru"
- SAVE *n"název souboru"
Varianty příkazů LOAD, MERGE a SAVE jsou stejné jako u kazetových operací. Příkaz SAVE má navíc tyto možnosti:
- SAVE *"název souboru" CODE začátek,délka,spouštěcí adresa pro samospustitelné bloky CODE,
- SAVE *"název souboru"d - soubor je na disk uložen ve dvou kopiích.
- RUN *"název souboru"
- RUN *"název souboru" CODE spouštěcí adresa
- LIST * - katalog diskety
- LIST *n
- LIST *"název souboru"
- LIST *s - zobrazí volné místo na disku
- LIST *ns
- LIST *i - seznam skrytých souborů
- LIST *ni
- LLIST * - jako LIST, ale s výstupem na ZX Printer nebo Alphacom 32
- ERASE *"název souboru"
- ERASE *n"název souboru"
- COPY *"název souboru" TO
- COPY *"název souboru" TO "název souboru 2"
- COPY *"název souboru" TO n
- COPY *n"název souboru" TO n2
- LEN* - zobrazí počet bytů volné paměti v počítači
- FORMAT *"název diskety"
- FORMAT *"název diskety"parametry
- FN *"původní jméno souboru" TO "nové jméno souboru"
- DEF FN* "nový název diskety"
- AT* - nastavení ochrany proti zápisu celé disketě
- ATTR *"název souboru" - nastavení atributů jednotlivým souborům
- USR *"název souboru" - nastavení souboru, který se automaticky nahraje po resetu
- USR * - zrušení automatického nahrávání souboru po resetu
- MOVE *n1 TO n2 - kopie celého disku
- MOVE *n TO n - kopie celého disku na jedné mechanice, je nutné vyměňovat diskety
- není povolena syntaxe MOVE* TO n pro kopii z defaultního disku
- ASN *n - nastavení defaultní mechaniky (funguje i ASN*)
- STEP *režim krokování - příkaz pracuje pouze s defaultní mechanikou, nastavuje čas potřebný ke krokování mechaniky
Spectra Interface
Spectra Interface je víceúčelové zařízení pro ZX Spectrum 16K a ZX Spectrum 48K. Není určeno pro ZX spectrum 128K. Mimo jiné obsahuje nové grafické režimy.[6]
- OPEN #n;"D" – připojí nové grafické režimy na linku n,
- FORMAT "D";n – nastavení grafického režimu.
Pro výpis znaků pak možné použít běžné příkazy PRINT #n a INPUT #n.
Příkazy pro práci s grafikou v nových grafických režimech:
- BORDER %
- PAPER %
- INK %
- FLASH %
- CLS %
- DRAW %
- PLOT %
- CIRCLE %
- COPY %
Timex FDD/FDD3000
K disketovým řadičům je možné připojit až 4 disketové mechaniky a řadič obsahuje 2 sériové porty. Pro ovládání řadiče slouží následující příkazy:[7]
- ATTR* cesta k souboru atribut – nastavení atributů souboru,
- CAT* [cesta k adresáři] – katalog diskety,
- CLOSE *m – zavře soubor připojený na linku m,
- MOVE* zdroj TO cíl – kopírování souborů nebo odeslání souboru přes sériový port nebo přijmutí souboru přes sériový port,
- DIM* cesta – vytvoření souboru nebo adresáře,
- ERASE* soubor [N] – smazání souboru,
- FORMAT* jméno mechaniky TO jméno diskety – formátování diskety,
- GO SUB* [cesta] – uložení aktuálního adresáře do adresářového zásobníku
- GO SUB* "jméno mechaniky"d
- GO TO* cesta - uložení aktuálního adresáře na zadanou cestu
- GO TO* "jméno mechaniky"d
- INPUT *#m; VAR$ [;AT p] – načtení znaků ze souboru nebo sériového portu,
- LIST * – zobrazení informací o aktuálním adresáři a všech adresářích v adresářovém zásobníku,
- LIST *#m – zobrazení informací o lince m,
- LIST *# – zobrazení informací o všech otevřených linkách,
- LOAD * cesta k souboru – nahrání souboru do paměti – varianty příkazu LOAD * jsou stejné jako u příkazu pro magnetofon,
- MERGE * cesta k souboru – připojení nového programu k aktuálnímu programu v paměti počítače,
- LET * původní cesta TO nová cesta – přejmenování souboru, adresáře nebo sériového portu,
- OPEN #* výraz1;cesta k souboru;režim[výraz2] – propojí soubor nebo sériový port k lince,
- PRINT *#m;STR$; [;AT P] – zápis znaků do souboru nebo na sériový port,
- DRAW * – získání informací o adresáři z adresářového zásobníku,
- SAVE * cesta k souboru [možnosti jako u kazetové verze] [n] – uložení souboru na disketu.
BS DOS
BS DOS je operační systém disketového řadiče MB-02+.[8][9] K jeho běhu je nutná BS ROM, protože stránkování paměti provádí softwarově a v BS ROM jsou obsaženy potřebné stránkovací rutiny.
- @disk$adresář?soubor – nastavení load ukazatele na konkrétní soubor, položka uvozená znakem $ (podadresář) se může vyskytovat vícekrát, např. @disk$adresář1$adresář2$adresář3?soubor,
- .FORMAT [cesta] – smazání všech souborů a adresářů,
- .ERASE [cesta] soubor – smazání souboru,
- .UNERASE [cesta] soubor – obnovení smazaných souborů a adresářů,
- .RENAME [cesta] n,nové jméno – přejmenování souboru s číslem n,
- .RENAME [cesta] n1,n2 – změna počáteční adresy n2 souboru s číslem n1,
- .MOVE [cesta] n1,n2 – přesunutí souboru s číslem n1 do adresáře s číslem n2,
- .MOVE [cesta] n;data
- .PRESS [cesta]
- .KILL [cesta]
- .SEARCH [!][local][řetězec] – vyhledávání zadaného řetězce
- CAT [.][!][cesta][local][n] – katalog aktuálního adresáře nebo adresáře s číslem n, parametr ! způsobí výpis i smazaných souborů, parametr . způsobí výpic začínající od load ukazatele
- COPY [.][!][cesta][local][n] – stejné jako příkaz CAT
- SAVE [!][*] [cesta] [n] název souboru – uložení souboru na disketu – možné varianty jsou stejné jako u příkazu pro magnetofon,
- LOAD [!][*] [cesta] [n][název souboru] – nahrání souboru do paměti – možné varianty jsou stejné jako u příkazu pro magnetofon,
- MERGE [!][*] [cesta] [n][název souboru] – připojení programu k existujícímu programu
- VERIFY [!][*] [cesta] [n][název souboru] – ověření souboru – možné varianty jsou stejné jako u příkazu pro magnetofon,
Uvedení znaků ! a * nemá na provedení příkazu vliv, jejich výskyt v příkazech je umožněn kvůli kompatibilitě s příkazy pro ovládání ramdisku počítačů ZX Spectrum 128K a ZX Spectrum +2 a příkazy příkazy pro ovládání disketových jednotek Didaktik 40 a Didaktik 80.
- NEW [cesta] [local] [parametr] – nahrání a spuštění souboru
- FN ? – číslo verze BS DOSu,
- FN @ – číslo aktuální jednotky,
- FN $ – číslo aktuálního adresáře,
- FN ? – pozice load ukazatele v souboru,
- FN # – počet souborů v aktuálním adresáři,
- FN % – počet prázdných sektorů na disketě,
- FN * – specifikace aktuální pozice ukazatele v souboru,
- FN © – obsah paměti od adresy 0 do adresy 65535.
Interfața 1
Zařízení Interfața 1 je interface existující k počítačům Ice Felix HC kompatibilními se ZX Spectrem. Má dvě disketové mechaniky, jednu o velikosti 3,5", druhou o velikosti 5,25", obsahuje sériový port a umožňuje připojit do sítě až 63 počítačů. Disky jsou označeny čísly 1 a 2, první disk, ke kterému bylo přistupováno po příkazech NEW a CLEAR # je navíc přístupný pod číslem 0.[10] Dokud nebylo přistoupeno k žádnému disku, snaha o přístup k disku 0 selže. Syntaxe příkazů vychází ze syntaxe příkazů pro ZX Interface I a ZX Microdrive.
- LOAD *"d";n;nazev$ – nahrání souboru z disku č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"d";n;nazev$ – uložení souboru na disk č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"d";n;nazev$ – připojení souboru z disku č. n ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"d";n;nazev$ – ověření souboru z disku č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- OPEN #m;"d";n;nazev$ – připojení souboru z disku č. n na linku č. m
- CAT n – zobrazení seznamu souborů na disku č. n
- CAT #m;n – zobrazení seznamu souborů na disku č. n pomocí linky m (např. tisk na tiskárně)
- CAT n,"vzor" – zobrazení seznamu souborů na disku č. n, jejíž název odpovídá zadanému vzoru
- CAT #m,n,"vzor" – zobrazení seznamu souborů na disku č. n, jejíž název odpovídá zadanému vzoru, pomocí linky m
- CLEAR # – obnovení linek do stavu jako po příkazu NEW
- CLS # – smazání obrazovky a obnovení barev jako po příkazu NEW
- ERASE "d";n;nazev$ – smazání souboru z disku č. n
- FORMAT "d";n – formátování disku č. n
- FORMAT "n";n – nastavení čísla stanice místního počítače
- FORMAT "b";baud – nastavení rychlosti přenosu sériového portu pro binární přenos
- FORMAT "t";baud – nastavení rychlosti přenosu sériového portu pro textový přenos
- MOVE zdroj TO cíl – kopírování souborů, zdroj i cíl mohou být buď přímo určené kanály nebo čísla linek
- LOAD *"n";n – nahrání souboru ze sítě od stanice č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"n";n – odeslání souboru do sítě stanici č. n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"n";n – připojení souboru ze sítě od stanice č. n ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"n";n – ověření souboru ze sítě od stanice n. Příkaz je použitelný ve stejných variantách jako kazetová verze
- LOAD *"b" – nahrání souboru ze sériového portu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- SAVE *"b" – odeslání souboru přes sériový port. Příkaz je použitelný ve stejných variantách jako kazetová verze
- MERGE *"b" – připojení souboru ze sériového portu ke stávajícímu programu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- VERIFY *"b" – ověření souboru ze sériového portu. Příkaz je použitelný ve stejných variantách jako kazetová verze
- OPEN #m;"n";n – připojení síťové stanice č. n na linku č. m
- OPEN #m;"b" – připojení sériové portu v binárním režimu na linku č. m
- OPEN #m;"t" – připojení sériové portu v textovém režimu na linku č. m
Logitek Disc Interface
Logitek Disc Interface je interface pro připojení disketové jednotky Commodore 1541 k ZX Spectru.[11] Protože periférie pro počítače Commodore jsou vlastně samostatné počítače, má syntaxe příkazů jistá specifika, např. u příkazu OPEN # je nutné kromě identifikátoru jednotky definovat také interní číslo linky, kterou bude používat operační systém této jednotky na své straně (stejně jako je nutné toto číslo interní linky specifikovat u příkazu OPEN na počítači Commodore)[12].
Připojené disketové jednotky jsou identifikovány číslem zařízení od 8 výše. To je také způsobeno konvencemi u počítačů Commodore, číslováním zařízení počítačů, kde zařízení 0 je klávesnice, zařízení je magnetofon, zařízení 2 je sériový port RS-232, zařízení 3 je obrazovka, zařízení 4 a 5 jsou tiskárny, zařízení 6 a 7 jsou plottery a zařízení s číslem 8 a vyšším jsou disketové jednotky.[13]
Logitek Disc Interface umožňuje tři způsoby identifikace zařízení, se kterým se bude komunikovat, samostatné číslo, řetězec "Mn" nebo identifikátor *"In". Při odkazování pomocí "Mn" a samostatných čísel je číslo jednotky menší než osm zvýšeno o sedm, "M1" odpovídá "M8", "M2" odpovídá "M9". Samostatné "M" a "M0" odpovídají "M8". Pokud je třeba se odkázat na zařízení s číslem menším než 8 (např. na tiskárnu), je nutné použít konstrukci *"In", u které tento přepočet neprobíhá.
Logitek Disc Interface tak přidává následující příkazy (kde je to možné, jsou pro příkazy použita klíčová slova Sinclair BASICu, v ostatních případech jsou příkazy vypsány po jednotlivých písmenech a jejich součástí je uvozující znak minus):
- CAT
- CAT #n
- CAT 2
- CAT *"I9"
- CAT "B*"
- -CMD
- COPY [< n1, n2, n3, n4 >][* horizontalni_zvetseni,vertikalni_zvetseni][#n] – tisk kopie obrazovky na tiskárně, n určuje způsob tisku,
- COPY "soubor=soubor1,soubor2,...,souborn" – zkopírování a spojení souborů soubor1 – souborn do souboru soubor,
- -CREATE (f$,velikost_zaznamu[,pocet_zaznamu]) – vytvoření souboru s definovaným počtem záznamů,
- +DEV
- -DEV
- -DREAD < n, p$, len > – načtení len bytů z linky n do proměnné p$,
- -DWRITE < n, p$, len > – zapsání len bytů z proměnné p$ na linku n,
- ERASE [jednotka,] soubor [, soubor2[, soubor3, ...]]
- -FLERR [jednotka,] < e$ > – uložení chybového hlášení do proměnné e$,
- FORMAT [jednotka,] "Jmenodiskety [ID_diskety]"
- -INIT [jednotka] – inicializace jednotky,
- LOAD – nahrání posledního nahrávaného souboru,
- LOAD f$ – nahrání souboru z mechaniky 8,
- LOAD *"M",f$ – nahrání souboru z mechaniky 8,
- LOAD 9,f$ – nahrání souboru z mechaniky 9,
- LOAD f$ ? – nahrání souboru, typ souboru je určen automaticky
- -LSEEK(n,cislo_zaznamu,pozice_v_zaznamu) – nastavení ukazatele v souboru s definovaným počtem záznamů připojeným na linku n na konkrétní pozici ve vybraném záznamu,
- MERGE 2,a$ – přihrání programu k aktuálnímu programu z mechaniky 2
- MOVE source to destination [BUF velikost_bufferu]
- MOVE #n1 TO #n2,
- MOVE #n1 TO 8,1,b$
- MOVE m1,a$ TO m2,1,b$
- MOVE a$ TO "name,S,W"
- NEW n1,n2
- NEW *
- -ONERR n – n určuje číslo řádku, na který se má skočit při chybě,
- OPEN #n,[jednotka,] "name,S,mode" – připojení sekvenčního souboru na linku n (význam mode:
- W - soubor otevřen pro čtení,
- R - soubor otevřen pro zápis,
- A - soubor otevřen pro připojení nových dat na konec souboru,
- M - špatně zavřený sekvenční soubor otevřen pro čtení),
- OPEN #n,8,2,"name,S,R" – připojení sekvenčního souboru v mechanice 8 na linku n,
- OPEN #n, "M",4,"soubor" – připojí soubor v mechanice 8 na linku n,
- OPEN #n, *"I8",3,"soubor" – připojí soubor v mechanice 8 na linku n,
- OPEN #n, *"I4",4 – připojí tiskárnu Commodore na linku n,
- -RENAME [jednotka,] "nove_jmeno_souboru=stare_jmeno_souboru"
- SAVE [jednotka,] f$ [typ]
- SAVE f$ – .BAS
- SAVE f$ DATA d() – .DAT
- SAVE f$ CODE adr,len – .COD
- SAVE f$ SCREEN$ – .SCR
- SAVE f$ USR adr,start,len – .EXE
- SAVE n,f$
- SAVE *"Mn",f$
- SAVE *"I8",f$ – uložení souboru na mechaniku 8,
- -STDIO d$,adr – nastavení výchozího zařízení pro operace se soubory
- -STDIO = "C" – jako výchozí zařízení je nastaven magnetofon,
- -STDIO = "M",9 – jako výchozí zařízení je nastavena disketová mechanika 9,
- -STDIO = "M",8
- -STTY param1 param2 – nastavení parametrů interface,
- -STTY P E – nastavení ovladače tiskárny na tiskárny Epson, Shinwa, Star
- -STTY P I – nastavení ovladače tiskárny na tiskárny Itoh
- -STTY P X – nastavení ovladače tiskárny na tiskárnu Shinwa CP80X
- -STTY P S – nastavení ovladače tiskárny na tiskárny Seikosha
- -STTY FS +E
- -STTY FS -E
- -STTY FS +N
- -STTY FS -N
- -VALID [jednotka]
- VERIFY [jednotka,] f$ [typ]
- VERIFY – ověří poslední ukládaný soubor,
- [: příkazy :] – příkazy v hranatých závorkách se vykonají bez zásahu rozšířeného interpretu interface Logitek Disc Interface
Pro přístup k již otevřeným sekvenčním souborům se používají příkazy se standardní syntaxí Sinclair BASICu:
- CLOSE #n
- INKEY$#n
- INPUT #n,p$
- LLIST
- LPRINT
Delta disk
Delta Disk je disketová jednotka, která obsahuje dvě disketové mechaniky, a z Basicu se ovládá pomocí následujících příkazů:[14]
- SAVE* "soubor"
- LOAD* "soubor"
- MERGE* "soubor"
- VERIFY* "soubor"
- VERIFY* "" - kontrola celého disku,
- MISC "[A:|B:]" - vyvolání nabídky s funkcemi, pro které neexistuje samostatný příkaz, ve znakové sadě ZX Spectra příkaz nahrazuje příkaz MOVE,[14]
- FORMAT "jmeno diskety"
- COPY "soubor" – kopírování z aktuální mechaniky na druhou mechaniku, není možné kopírovat soubory v rámci jedné mechaniky,
- ERASE "soubor"
- CAT "" - výpis souborů na disketě,
- CAT "p" – výpis programů v Basicu,
- CAT "b" – výpis binárních souborů,
- CAT "a" – výpis datových polí.
Alternativní ROM
LEC ROM
LEC ROM je alternativní ROM ZX Spectra obsahující úpravy od Jiřího Lamače. Kromě jiného také přináší nové využití některých příkazů (nezavádí novou syntaxi, ale využívá syntaxi, která je akceptována i neupravenou ROM ZX Spectra, ale tyto příkazy vždy vyvolají chybové hlášení – nejsou v původní ROM nijak využity).
- CAT – nejsou-li zadány žádné parametry, spustí monitor strojového kódu,
- FORMAT "k" – přepínání způsobu psaní příkazů mezi režimy psaní po písmenech a jedinou klávesou,
- ERASE "i" – vymaže dodatečné systémové proměnné ZX Interface I,
- MOVE "zdroj","cíl" – kopírování bloku dat.
Zdroj je ve formátu pxxxxx,ddd, kde parametr p může být buď r, který označuje standardní rozložení paměti ZX Spectra, nebo d, který označuje přistránkovanou doplňkovou paměť RAM od adresy 0 do 32767 (rozšíření paměti ZX Spectra podle Lamače), xxxxx určuje počáteční adresu kopírovaného bloku a ddd jeho délku. Cíl je ve formátu pxxxxx, kde p má stejný význam jako u zdroj a xxxxx je adresa, kam má být blok dat zkopírován.
ISO ROM
ISO ROM zjednodušuje volání příkazů pro Beta Disk Interface a umožňuje jednodušší syntaxi některých standardních příkazů.[15]
Příkazy pro Beta Disk Interface
- !CAT – katalog diskety
- !LIST – podrobný katalog diskety
- !LOAD "filename" – načtení programu v Basicu
- !GOTO "snapshot" CODE – načtení snapshotu
- !RUN – v případě existence souboru boot.B tento načte a spustí
- ! – spuštění příkazového řádku DOSu
- !! – spuštění programu Devast
Zjednodušená syntaxe příkazů
- PAUSE – není nutné uvádět délku pauzy, PAUSE = PAUSE 0
- GO TO – není nutné uvádět číslo řádku, GO TO = GO TO 0
Uvedením znaku $ před číslo se s tímto pracuje jako s číslem v šestnáctkové soustavě
Výrazy funkční pouze v editačním řádku
- = – výpis volného místa pro program v Basicu
BS ROM 1.18
BS ROM je alternativní ROM ZX Spectra obsahující úpravy od Slavomíra Lábského.[16]
Příkazy
- CONTINUE n – spuštění programu ve strojovém kódu od adresy n,
- CLS n – kromě smazání obrazovky nastaví barvu písma na n a k tomu vhodně bravu podkladu a borderu,
- GO TO, GO SUB, PAUSE, BORDER – není nutné uvádět číslo, pokud není uvedeno, je příkaz vykonán stejně, jako by bylo uvedeno číslo nula,
- příkaz PRINT nemusí být uváděn, pokud výraz pro obrazení nezačíná znaky , , ; nebo ' (čárka, středník nebo apostrof),
- POKE adresa;šestnáctibitové číslo
- POKE adresa,"řetězec"
- ,n – editace řádku s číslem n,
- ' n – přepínání stránek paměti ZX Spectra 128,
- © – teplý start systému, zůstává zachována hodnota systémových proměnných PROG, VARS a ELINE,
- ↑ – vymazání celé paměti u Spectra 128,
- ? – výpis informací o délce programu v Basicu, proměnných a volné paměti,
- * – zobrazení informací z hlavičky souboru na magnetofonové kazetě,
- _ – skok na adresu 102,
- # – skok an adresu 54885.
Funkce
- VAL adresa – přečte šestnáctibitovou hodnotu z adresy (šestnáctibitový PEEK),
- VAL$ n – převedení čísla n do šestnáctkové soustavy,
Uvedením znaku % nebo znaku & před číslo se s tímto pracuje jako s číslem v šestnáctkové soustavě
BS ROM 1.40
BS ROM je novější verze alternativní ROM ZX Spectra obsahující úpravy od Slavomíra Lábského.[17]
Příkazy
- CONTINUE n – spuštění programu ve strojovém kódu od adresy n,
- CLS n – kromě smazání obrazovky nastaví barvu písma na n a k tomu vhodně bravu podkladu a borderu,
- GO TO, GO SUB, PAUSE, BORDER – není nutné uvádět číslo, pokud není uvedeno, je příkaz vykonán stejně, jako by bylo uvedeno číslo nula,
- příkaz PRINT nemusí být uváděn, pokud výraz pro obrazení nezačíná znaky , nebo ' (čárka nebo apostrof),
- POKE adresa;šestnáctibitové číslo
- POKE adresa,"řetězec"
- POKE adresa;"řetězec" – jako předcházející, ale u posledního znaku řetězce je 7. bit nastaven na 1
- POKE umožňuje uvádět více hodnot za sebou, např. POKE adresa,osmibitové číslo,osmibitové číslo,osmibitové číslo nebo POKE adresa,osmibitové číslo;šestnáctibitové číslo nebo POKE adresa,osmibitové číslo,"řetězec";šestnáctibitové číslo;"řetězec"
- ,n – editace řádku s číslem n,
- ' n – přepínání stránek paměti ZX Spectra 128,
- © – teplý start systému, zůstává zachována hodnota systémových proměnných PROG, VARS a ELINE,
- ↑ – vymazání celé paměti u Spectra 128,
- ? – výpis informací o délce programu v Basicu, proměnných a volné paměti,
- * – zobrazení informací z hlavičky souboru na magnetofonové kazetě,
- _ – skok na adresu 102,
- # – skok na adresu 54885.
Funkce
- CHR$ n – pokud n = -1, funkce vrátí obsah paměti od adresy 1 do adresy 65535,
- VAL$ n – převedení čísla n do šestnáctkové soustavy,
- VAL adresa – přečte šestnáctibitovou hodnotu z adresy (šestnáctibitový PEEK),
Uvedením znaku % před číslo se s tímto pracuje jako s číslem v šestnáctkové soustavě
JGH ROM
JGH ROM má nahrazeny tiskové rutiny pro ZX Printer tiskovými rutinami pro tiskárnu s rozhraním Centronics na portu 251 (přičemž kanál P je nahrazen kanálem C při přístupu z Basicu) a podporu pro ASCII klávesnici připojenou na portech 253 a 249.[18] Kromě toho přidává příkazy nebo rozšiřuje možnosti existujících příkazů:
- CALL adresa
- CAT [#n] – katalog magnetofonové kazety,
SAVE s$ CODE začátek,délka[,extra[,reload[,typ]]]
- PRINT~, STR$~ – číselný výstup je v šestnáctkové soustavě,
- RUN s$ – nahrání a spuštění programu ve strojovém kódu, alternativně může být použita konstrukce *soubor.
Uvedením znaku & před číslo se s tímto pracuje jako s číslem v šestnáctkové soustavě, CHR$12 vykoná smazání obrazovky (příkaz CLS).
Reference
- http://mts.speccy.cz/info_zxs/infozxs.htm
- Disciple/+D Technical Guide, Revision 8c (30 Jan 2004)
- Triton QD. Crash. October 1985, čís. 21, s. 104. Dostupné online.
- Sinclair Computer Hardware Factsheet, version 1.2[nedostupný zdroj] na World of Spectrum
- SpeccyDOS version v4.0[nedostupný zdroj]
- Archivovaná kopie. www.fruitcake.plus.com [online]. [cit. 2012-09-22]. Dostupné v archivu pořízeném dne 2012-10-18.
- Timex Operating System (TOS). www.worldofspectrum.org [online]. [cit. 2012-10-14]. Dostupné v archivu pořízeném z originálu dne 2012-06-26.
- MB-02+ Original documentation na ci5.speccy.cz
- MB-02+ Original documentation Archivováno 4. 3. 2016 na Wayback Machine na z00m.speccy.cz
- Ice Felix HC 91 Archivováno 3. 7. 2013 na Wayback Machine na old-computers.com
- Logitek Proceed 1 C64 Disc Interface Archivováno 4. 11. 2013 na Wayback Machine na k1.dyndns.org
- OPEN na C64-Wiki
- Device number na C64-Wiki
- Petron a +Gama. Delta disk. ZX Magazín. 2001, čís. 4/01, s. 8–9.
- ISO ROM 128 na cygnus.speccy.cz
- BSrom118 - Modified ZX Spectrum ROM
- BSrom140 - Modified ZX Spectrum ROM
- JGH ROM for ZX Spectrum na mdfs.net, poslední aktualizace: 2012-06-12
Související články
Literatura
- BOOTH, Graham. The Rotronics Wafadrive User manual. [s.l.]: [s.n.]
- Disketová jednotka Didaktik 40 - návod k obsluhe. [s.l.]: [s.n.]
- ZX Interface 1 and ZX Microdrive. [s.l.]: Sinclair Research Limited, 1983.
- Discovery disc system operating manual. [s.l.]: [s.n.]
- The Disciple, The multi-purpose interface from Miles Gordon Technology for ROCKFORT PRODUCTS. [s.l.]: [s.n.], 1986.
- MGT PLUSD users manual. [s.l.]: Miles Gordon Technology, 1988.
- SPITAL, Ivor; GOODWINS, Rupert. ZX Spectrum +2. [s.l.]: Amstrad, 1986.
- ZX Spectrum +3. [s.l.]: Amstrad
Externí odkazy
- Manuál k Opus Discovery 1 (španělsky)
- X-Magazín 19/00 – Obsahuje popis disketového řadiče ZX Diskface Quick
- Triton QD na World of Spectrum
- LEC ROM na zxmagazin.80.cz