Larken Disk System
Larken Disk System je řadič disketových jednotek pro počítače Timex Sinclair 2068 vyvinutý společností Larken Automation. K řadiči je možné připojit až čtyři disketové mechaniky a 256KiB ramdisk.[1] Na disketách pro Larken Disk System byl publikován elektronický časopis Byte Power.[2]
Pro počítače Timex Sinclair 1000 a Sinclair ZX81 později vznikl disketový řadič se stejným formátem diskety Larken TS1000 Disk System.
Ovládání řadiče
[editovat | editovat zdroj]Operačním systémem disketového řadiče je LKDOS, který je obsažen na kártridži. LKDOS existuje nejenom pro Larken Disk System, ale také pro řadič Oliger, Aerco FD-68 a Ramex Millenia K.[3] Tyto řadiče mohou být připojeny současně, což zvyšuje počet možných současně připojených disketových mechanik ovládaných pomocí LKDOSu.[4]
Používané příkazy
[editovat | editovat zdroj]Příkazy pro ovládání Larken Disk Systemu jsou standardní příkazy Basicu, kterým předchází příkaz RANDOMIZE USR 100 nebo PRINT #4.[5] Kromě příkazů pro práci s disketovými mechanikami přidává i příkazy rozšířující možnosti Sinclair BASICu. Další příkazy jsou přidávány utilitou pro přístup k sekvenčním souborům.[6] Manuál k zařízení doporučoval používat PRINT #4
.[pozn. 1]
Příkazy LKDOSu je také možné volat uložením adresy volaného příkazu na adresy 8200 a 8201 a zavolat USR 110.[pozn. 2]
Příkazy pro práci s disketovými mechanikami
[editovat | editovat zdroj]- RANDOMIZE USR 100: OPEN #4,"dd" – umožní používat PRINT #4 místo RANDOMIZE USR 100,
- PRINT #4: SAVE "název souboru" – uložení souboru na disketu, fungují všechny varianty jako u verze pro ukládání na kazetu,
- PRINT #4: LOAD "název souboru" – nahrání souboru z diskety (po zadání příkazu POKE 23728,100 se při nenalezeném souboru program nezastaví s chybovým hlášením, ale pokračuje dalším příkazem, pouze na adresu 23728 je uložena hodnota 101),
- PRINT #4: MERGE "název souboru"
- PRINT #4: CAT "" - katalog diskety,
- PRINT #4: CAT "výraz" - výpis souborů, které odpovídají zadanému výrazu, lze použít zástupný znak ^, který nahrazuje jakýkoliv jeden znak,
- PRINT #4: CAT - katalog diskety, pokud je Larken Disk System používán společně s emulátorem ZX Spectra (ZX Spectrum neumožňuje zadat příkazy CAT "" a CAT "výraz"),
- PRINT #4: ERASE "název souboru", - smazání souboru z diskety, příkaz vyžaduje, aby za názvem souboru v uvozovkách byla uvedena čárka,
- PRINT #4: GO TO n - výběr aktivní mechaniky (0-3 - disketové mechaniky, 4 - ramdisk),
- PRINT #4: PRINT "název souboru" - výpis obsahu souboru,
- PRINT #4: VERIFY - ověření stavu povrchu diskety,
- PRINT #4: NEW - teplý autostart AUTOSTART programu,[9][pozn. 3]
- MOVE - přejmenování souboru.[10]
Název souboru může být nejvýše 6 znaků dlouhý následovaný tečkou a dvouznakovou příponou.[11] Přípona může být:[11]
- A - dimenzovaná proměnná,
- B - program v Basicu,
- C - binární data/strojový kód.
Pokud je ukládaným souborem dimenzovaná řetězcová proměnná, musí být druhým znakem přípony znak $.[11] Jinak může být druhým znakem přípony jakýkoliv znak, kromě znaku ↑, který se používá jako zástupný znak pro příkaz CAT.[11]
Inspirován MS-DOSem a operačními systémy jiných „velkých“ počítačů, LKDOS nemá příkazy pro formátování diskety a pro kopírování souborů z jedné diskety na jinou, tyto jsou prováděny samostatnými programy.[12] Dalším důvodem pro nezakomponováním příkazu pro kopírování souborů na jinou disketu bylo, že se autor snažil, aby LKDOS byl kompatibilní i s jinými systémy, takže řešení v ROM by mohlo být příliš složité.[12] Kopírování souborů z jedné diskety na jinou vyžaduje alespoň dvě disketové mechaniky.
Příkazy rozšiřující možnosti Sinclair BASICu
[editovat | editovat zdroj]- PRINT #4: DRAW šířka, výška, vzor - nakreslení obdélníku vyplněného zadaným vzorem[pozn. 4],
- PRINT #4: CIRCLE x, y, vzor - vyplnění uzavřené oblasti daným vzorem, začíná na pozici o souřadnicích x, y,
- PRINT #4: INK n - okamžitá změna barvy písma celého obrazu,
- PRINT #4: PAPER n - okamžitá barva podkladu celého obrazu,
- PRINT #4: POKE adresa, data - uložení 16bitového čísla na zvolenou adresu,
- PRINT #4: OPEN #n, "zařízení" - připojení zvoleného kanálu na příslušnou linku, zařízení může být:
- w0, w1, w2 - textové okno na obrazovce,
- lp - paralelní port tiskového interface Aerco,[pozn. 5]
- PRINT #4: CLOSE #n - zavření linky (pouze pro linky otevřené příkazem PRINT #4: OPEN #n, "zařízení", nikoliv pro linky otevřené standardním příkazem OPEN #n, "zařízení"),
- PRINT #4: INPUT #okno, y levého horního rohu, x levého horního rohu, x pravého spodního rohu, y pravého spodního rohu - definice velikosti okna v tiskových souřadnicích příkazu PRINT,
- PRINT #4: CLEAR okno - smazání obsahu okna (CLS okna).
Příkazy utility pro přístup k sekvenčním souborům
[editovat | editovat zdroj]Příkazy utility pro přístup k sekvenčním souborům mají stejnou strukturu jako příkazy LKDOSu, pouze místo RANDOMIZE USR 100 nebo PRINT #4 jim předchází RANDOMIZE USR 26800:
- RANDOMIZE USR 26800: OPEN #n, "název souboru", OUT - připojení výstupního sekvenčního souboru na linku n,
- RANDOMIZE USR 26800: OPEN #n, "název souboru", RND - připojení vstupně výstupního souboru s náhodným přístupem na linku n,
- RANDOMIZE USR 26800; DATA n, velikost záznamu - nastavení velikosti záznamu vstupně výstupního souboru s náhodným přístupem připojeného na linku n,
- RANDOMIZE USR 26800: CLOSE #n - zavření souboru připojeného na linku n,
- LET x = USR 26800: DATA n, velikost záznamu, "hledaný výraz" – nalezení hledaného výrazu ve vstupně výstupním souboru s náhodným přístupem připojeném na lince n, v x je vrácena relativní poloha záznamu obsahující hledaný výraz vzhledem k aktuálnímu záznamu,
- RANDOMIZE USR 26800: LIST – výpis aktuálně otevřených linek a na ně připojených souborů.
V případě výsupního sekvenčního souboru mohou být data přidávána na konec souboru, příp. může být vytvořen soubor nový, ale data z něho nemohou být čtena. V případě vstupně výstupního souboru s náhodným přístupem mohou být data zapisována i čtena, ale nemůže být měněna délka souboru. Pozice pro zápis a pro čtení může být nastavena příkazem PRINT #n; TAB pořadí záznamu;.
Současné používání LKDOSu a jiných DOSů
[editovat | editovat zdroj]LKDOS existuje i pro jiné diskové systémy a je možné současně používat LKDOS i původní DOS daného disketového systému. Při současném používání RAMEX DOSu a LKDOSu není pro spouštění příkazů LKDOSu používat PRINT #4
, protože příkazy RAMEX DOSu se volají také s použitím PRINT #4
. Je proto nutné používat PRINT #4
pro volání příkazů RAMEX DOSu a pro LKDOS používat RANDOMIZE USR 100
.[14]
Pro umožňění současného používání LKDOSu a AERCO DOSu je nutné pro AERCO DOS zablokovat signál NMI.[14]
Pro současné používání LKDOSu verze O3 a diskového systému Oliger je nutné mít u systému Oliger ROM verze alespoň 2.54, při použití systému Oliger s ROM verze 2.53 dochází ke smazání stopy s adresářem.[15] Při spuštění počítače je nutné deaktivovat desku ROM řadiče Oliger, čímž počítač nastartuje do stavu, kdy mechaniky řadiče Oliger jsou ovládány LKDOSem.[15] Po následné aktivaci desky ROM řadiče Oliger a zadání příkazu RESTORE /s
je následně aktivován i DOS řadiče Oliger.[15] Pro formátování disket pro Larken Disk System je nutné místo programu FORMAT.Bo použít program FORMAT.B1.[15]
LogiCall
[editovat | editovat zdroj]Pro zjednodušení načítání programů je možné použít program LogiCall spouštěný autostartem. Po spuštění LogiCallu je zobrazen katalog disku a program se zeptá na číslo mechaniky.[15] S pomocí kurzových šipek je možné vybrat program se má spustit, při pohybu v katalogu se název aktuálního programu zobrazuje vedle dotazu na program.[15] Spuštění vybraného programu je pak provedeno pomocí klávesy Enter.[15] Kromě spouštění programů program také umí zobrazovat kopie obrazovky s příponou .C$
a zobrazovat obsah textových souborů s příponami .CT
a .Cm
.[15]
Historie
[editovat | editovat zdroj]První generace systému byla založena na DOSu v EPROM, která se připojovala od adresy 63488 a potřebné soubory na disketě.[11] Druhá fáze první generace byla založena na kártridži, která se připojovala do oblasti ROM, když se pracovalo s disketou.[11] První generace umožňovala formátovat diskety na kapacitu 160 KiB a na disketu bylo možné uložit 50 souborů.[11]
Druhá generace disketového řadiče byla založena na kártridži a desce interfacu, který se připojoval vertikálně za počítač.[11] Druhá generace umožňovala formátovat diskety na kapacitu přes 400 KiB.
V listopadu 1988 byla vydána LKDOS EPROM verze 3.[16] Tato verze přinesla mimo jiné obsluhu sekvenčních souborů, příkaz pro přejmenování souborů, vylepšený ovladač tisku, vylepšené ukládání souborů přes NMI, uživatelem definované příkazy, příkazy pro ramdisk a rychlejší inicializaci po zapnutí.[16] Tiskový ovladač je až na 50 bytů celý uložen v EPROM, 50 bytů v RAM je automaticky inicializováno.[16] Ovladač umožňuje nastavit levý okraj, automatický line feed a délku řádku.[16] Pomocí POKE je možné přepínat mezi tiskem přes tiskový interface Aerco, Oliger, Tasman, A&J, nebo uživatelem definovaný tiskový interface.[16] Pro tisk je možné použít buď paralelní tiskárnu nebo tiskárnu TS 2040 nebo obě tiskárny současně.[16] NMI nově umožňuje vybrat mezi uložením obsahu celé paměti včetně obsahu obrazovky nebo celé paměti bez obsahu obrazovky.[16]
V roce 1988 vytvořil Bob Mitchel nezávislé rutiny pro LOAD a SAVE, aby nemusel spoléhat na původní LKDOS.[17]
Stará verze Larken Disk Systemu využívala buď přímo port 31 nebo alespoň využívala bit A5 adresové sběrnice, což způsobovalo kolize při současném připojení Larken Disk Systemu a interface pro Kempston joystick k počítači.[18]
Technické informace
[editovat | editovat zdroj]- kapacita diskety: 400 KiB (oboustranná disketa, 40 stop), 200 KiB (jednostranná disketa, 40 stop), 800 KiB (oboustranná disketa, 80 stop),
- čip řadiče: WD1770,[19]
- ROM: 8 KiB EPROM,[5]
- RAM: 8 KiB,[5]
- plně průchozí systémový konektor pro připojení dalších periférií,[4]
- port pro Kempston joystick.[4]
Adresář disketového systému obsahuje pro každý soubor několik ukazatelů (podobně jako MS-DOS), takže může docházet k fragmentaci souborů.[20] Pro odstranění fragmentace je nutné soubory zkopírovat na jinou disketu.[20] Soubory mají na začátku záhlaví, které mimo jiné obsahuje CRC.[20] CRC je v záhlaví kvůli ramdisku, disketové řadič počítá vlastní CRC.[20]
Systémové proměnné
[editovat | editovat zdroj]- 8194 - příznak, zda byla funkce spuštěna z Basicu (obsahuje hodnotu 1) nebo z NMI (obsahuje hodnotu 1). Některé příkazy nastavují příznak na hodnotu 11.[21]
Vstupní body některých rutin
[editovat | editovat zdroj]adresa | funkce | |
---|---|---|
138 | 008A | čtení řetězce na adrese 8226 a vyhodnocení, jestli se jedná o platný název souboru[21] |
141 | 008D | nalezení ukončovacího znaku příkazu Basicu[21] |
144 | 0090 | čtení čísla a jeho uložení do registru BC[21] |
156 | 0096 | čtení řetězce na adrese 8226 o délce nejvýše 10 znaků[21] |
186 | 00BA | zakázání kártridže LKDOSu a ukončení[21] |
00C6 | operace SAVE[21] | |
00CC | operace LOAD[21] |
LKDOS také implementuje rst 32 (čtení následujícího znaku za znakem na který ukazuje systémová proměnná CH ADD s vynecháním mezer a řídicích kódů), ale už neimplementuje rst 24 (čtení znaku, na který ukazuje systémová proměnná CH ADD).[21] rst 8 v LKDOSu také funguje normálně.[21]
Ramdisk
[editovat | editovat zdroj]Ramdisk byl dodáván na samostatné desce bez pamětí RAM, ty bylo nutné zakoupit samostatně. Ramdisk byl zálohovaný dvěma bateriemi AAA.[22] Pro paměti byly obsaženy čtyři patice, do kterých bylo možné instalovat až 128 KiB paměti (čtyři čipy o velikosti 32 KiB, označené jako A - D).[22] Pro dalších 128 KiB paměti bylo nutné druhou čtveřici pamětí připájet na první čtveřici pamětí, kromě pinu 20 (chip select).[22] Ten bylo nutné připojit k desce tištěného spoje samostatným vodičem.[22]
Paměť ramdisku se připojuje do horních 32 KiB DOCK paměti, což způsobuje konflikt s kátridžemi AROS a s pamětí řadiče FD-68.[22]
Ke ovládání paměti ramdisku je použit port 7. Význam jednotlivých bitů hodnot odeslaných na tento port je následující:[22]
Port | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
7 | zákaz zápisu do ramdisku | výběr použitého čipu paměti |
Hodnota bitů 0, 1 a 2 vybírá jednotlivé čipy následujícím způsobem:[22]
hodnota bitů | 7 | 3 | 5 | 1 | 6 | 2 | 4 | 0 |
vybraný čip | A | B | C | D | E | F | G | H |
Po jakémkoliv použití ramdisku je nakonec vybrán čip H.[22] Díky tomu může být do čipu H nahrán AROS program, který pak funguje stejně, jako kdyby byl na AROS kártridži.[22]
Obsluha ramdisku byla přidána do LKDOS EPROM verze 2.[22] Při připojeném ramdisku je možné při startu počítače stisknutím klávesy J vybrat ramdisk jako výchozí disketovou jednotku, není pak nutné použít GOTO 4.[22] Kvůli obsluze ramdisku, byl z EPROM odstraněna proporcionální znaková sada pro okna, která byla přítomna v EPROM verze 1.[22] Pro použití této sady ji bylo nutné nahrát do paměti počítače a aktivovat příkazem PRINT #4: POKE 8219,Chars-256
.[22]
Před prvním použitím ramdisku je nutné ramdisk inicializovat příkazem PRINT #4: GO TO 4: PRINT #4: FORMAT "n"
, kde n je počet instalovaných paměťových čipů.[22]
Známé problémy
[editovat | editovat zdroj]V případě připojeného současného použití LKDOSu a A&J Printer Interface se při pokusu uložit data příkazem SAVE na kazetu se systém zhroutil.[12] Oprava tohoto problému nebyla plánována.[12]
Některé základní desky Larken ramdisku měly naletovanou jednu diodu obráceně, což způsobovalo rychlé vybití baterie a CRC chyby při použití příkazu RANDOMIZE USER 100: VERIFY ""
.[23]
Při zobrazení katalogu příkazem CAT ""
se kromě seznamu souborů mohl objevit společně CRC chybou.[24] V tomto případě to znamená, že došlo k CRC chybě a seznam souborů je starý seznam z předcházejícího spuštění příkazu CAT ""
.[24]
Poznámky
[editovat | editovat zdroj]- ↑ Doporučení používat
PRINT #4
vyplývalo z toho, že k jeho zapsání je potřeba méně stisků kláves, než k napsáníRANDOMIZE USER 100
a podle manuálu měl také zabrat méně paměti.[7] Pro autostart program, který neprováděl mnoho operací a kde bylo potřeba pamětí šetřit, např.
10 RANDOMIZE USR VAL "100": OPEN # VAL "4", "dd"
20 PRINT # VAL "4": LOAD "L.B1"
zabralo 41 bajtů, zatímco
10 LET h=CODE "d"
20 RANDOMIZE USR h: LOAD "L.B1"
zabere pouze 28 bajtů.[7] PoužitíPRINT #4
také mohlo kolidovat s některými jinými perifériemi, např. se Zebra Talkerem, který #4 používal také.[7] - ↑ Pro uložení dvoubytové hodnoty je možné využít příkaz POKE LKDOSu a příkazy tak volat
PRINT #4: POKE 8200,adresa: LET b=USR 110
, kde adresa je adresa volaného příkazu.[8] - ↑ Pro spuštění autostart programu z ramdisku bylo možné použít
PRINT #4: GO TO 4: PRINT #4: NEW
[9] - ↑ vzor se zadává čísly 0 - 9 pro výběr předdefinovaného vzoru nebo číslem deset pro výběr uživatelem definovaného vzoru definovaným osmi byty od adresy 23540.[11]
- ↑ Uživatelům bylo doporučováno pro tisk na této tiskárně použít #5, aby bylo možné přepínat mezi tiskem na obrazovku, tiskem na tiskárně Timex Sinclair 2040 a tiskem na tiskárně připojené přes tento tiskový interface.[13]
Reference
[editovat | editovat zdroj]- ↑ MOBLEY, John Mark. Vintage Computer Festival Midwest 2011. CoCo~123. 2011, roč. 31, čís. 2, s. 28–35. Dostupné v archivu pořízeném dne 2014-03-08. ((anglicky)) Archivováno 8. 3. 2014 na Wayback Machine.
- ↑ Sinclair and Timex Projects Page (anglicky) na oocities.org
- ↑ Larken LKDOS Cartridges Archivováno 26. 6. 2012 na Wayback Machine. na World of Spectrum
- ↑ a b c Timex Sinclair 2068 Official and Unofficial Peripherals Archivováno 9. 12. 2013 na Wayback Machine. (anglicky) na timexsinclair.org
- ↑ a b c KENNY, Larry. Larken disk drive. Příprava vydání Solly, David. Navan: Larken Electronics, 1988. Dostupné v archivu pořízeném dne 2009-03-28. ((anglicky)) Version L3F. Archivováno 28. 3. 2009 na Wayback Machine.
- ↑ KENNY, Larry. Larken Sequential/Random Access File Utility.. Navan: Larken Electronics, 1988. Dostupné v archivu pořízeném dne 2009-03-28. ((anglicky)) Archivováno 28. 3. 2009 na Wayback Machine.
- ↑ a b c SWOGER, Bob. More INPUT on AUTOSTART and other LarKen Thoughts. Update Magazine. July 1993, s. 4. Informace o článku dostupné na More INPUT on AUTOSTART and other LarKen Thoughts, Timex/Sinclair.com, cit. 2024-04-12. Dostupné online. ((anglicky))
- ↑ Bob's Notebook. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 3-4. Dostupné online. ((anglicky))
- ↑ a b CHAMBERS, George. Larken Ramdisk for the TS 2068. Update Magazine. October 1988, s. 35. Informace o článku dostupné na Larken Ramdisk for the TS 2068, Timex/Sinclair.com, cit. 2024-04-10. Dostupné online. ((anglicky))
- ↑ MITCHELL, Bob. MSCRIPT Version 5.3 for Larken DOS. Update Magazine. October 1988, s. 34. Dostupné online. ((anglicky))
- ↑ a b c d e f g h i CHAMBERS, G. F. Larken DSK400 Disk Operating System. TS·2068 Up·date. January 1988, s. 10-11. Dostupné online. ((anglicky))
- ↑ a b c d GOWAN, Ron. Larken Lines. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 5. Dostupné online. ((anglicky))
- ↑ CHAMBERS, G. Larken Notes. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 5. Dostupné online. ((anglicky))
- ↑ a b GOWEN, Rod. Larken Lines. The Plotter. March 1988, roč. 6, čís. 3, s. 4-5. Informace o článku dostupné na Larken Lines, Timex/Sinclair.com, cit. 2024-04-30. Dostupné online. ((anglicky))
- ↑ a b c d e f g h LAMBERT, Don. Oliger proposes Detente with Larken. ZXir QLive Alive!. 1991, roč. 1, čís. 1 (Spring 1991), s. 6–9. Informace o článku dostupné na Oliger proposes Detente with Larken, Timex/Sinclair.com, cit. 2024-07-23. Dostupné online. ((anglicky))
- ↑ a b c d e f g LKDOS Version 3. Update Magazine. January 1989, s. 7. Informace o článku dostupné na LDOS Version 3, Timex/Sinclair.com, cit. 2024-06-03. Dostupné online. ((anglicky))
- ↑ CHAMBERS, George. Larken LOAD/SAVE Routines. Sinc-Link. 1988, roč. 6, čís. 1 (Jan-Feb), s. 11. V článku je původní LKDOS nazýván jako LDOS64. Dostupné online. ((anglicky))
- ↑ ZANNESE, Renato. Diskdriving with a Joystick. Sinc-Link. 1988, roč. 6, čís. 1 (Jan-Feb), s. 9. Informace o článku dostupné na Diskdriving with a Joystick, Timex/Sinclair.com, cit. 2024-06-11. Dostupné online. ((anglicky))
- ↑ Sinclair Hardware Fact Sheet, version 1.2 na World of Spectrum, původně dostupné na [1][nedostupný zdroj]
- ↑ a b c d PEDERSEN, Bill. LKDOS vs JLO SAFE. Update Magazine. April 1992, s. 4-5. Informace o článku dostupné na LKDOS vs JLO SAFE, Timex/Sinclair.com, cit. 2024-07-23. Dostupné online. ((anglicky))
- ↑ a b c d e f g h i j GUNHOUSE, Steven. Setting Up LKDOS User-Defined Commands. Sinc-Link. 1989, roč. 9, čís. 5 (Sept.-Oct. '91), s. 14-16. Informace o článku dostupné na Setting up LKDOS User-Defined Commands, Timex/Sinclair.com, cit. 2024-06-03. Dostupné online. ((anglicky))
- ↑ a b c d e f g h i j k l m n KENNY, Larry. Adding the Larken RAMDisk to an Existing LKDOS System. [s.l.]: [s.n.], 1985. Dostupné online. S. 4. ((anglicky)) Informace o monografii dostupné na Adding the Larken RAMDisk to an Existing LKDOS System, Timex/Sinclair.com, cit. 2024-06-03.
- ↑ G.F.C. Larken Ramdisk (Bug Alert). Sinc-Link. 1988, roč. 7, čís. 3 (May-June '89), s. 20. Informace o článku dostupné na LARKEN RAMdisk (Bug Alert), Timex/Sinclair.com, cit. 2024-08-18. Dostupné online. ((anglicky))
- ↑ a b CHAMBERS, George. Larken Tip. Sinc-Link. 1988, roč. 7, čís. 3 (May-June '89), s. 20. Informace o článku dostupné na Larken Tip, Timex/Sinclair.com, cit. 2024-08-18. Dostupné online. ((anglicky))
Externí odkazy
[editovat | editovat zdroj]- LARKEN Electronics, Timex/Sinclair.com, (anglicky) - rozcestník na články týkající se Larken Electronics, část je zaměřena na Larken Disk System