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

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

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

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]

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

Příkazy utility pro přístup k sekvenčním souborům

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:

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ů

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]

Historie

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.[15] 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í.[15] Tiskový ovladač je až na 50 bytů celý uložen v EPROM, 50 bytů v RAM je automaticky inicializováno.[15] Ovladač umožňuje nastavit levý okraj, automatický line feed a délku řádku.[15] 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.[15] Pro tisk je možné použít buď paralelní tiskárnu nebo tiskárnu TS 2040 nebo obě tiskárny současně.[15] NMI nově umožňuje vybrat mezi uložením obsahu celé paměti včetně obsahu obrazovky nebo celé paměti bez obsahu obrazovky.[15]

V roce 1988 vytvořil Bob Mitchel nezávislé rutiny pro LOAD a SAVE, aby nemusel spoléhat na původní LKDOS.[16]

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.[17]

Technické informace

Systémové proměnné

Vstupní body některých rutin

adresa funkce
138 008A čtení řetězce na adrese 8226 a vyhodnocení, jestli se jedná o platný název souboru[19]
141 008D nalezení ukončovacího znaku příkazu Basicu[19]
144 0090 čtení čísla a jeho uložení do registru BC[19]
156 0096 čtení řetězce na adrese 8226 o délce nejvýše 10 znaků[19]
186 00BA zakázání kártridže LKDOSu a ukončení[19]
00C6 operace SAVE[19]
00CC operace LOAD[19]

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).[19] rst 8 v LKDOSu také funguje normálně.[19]

Ramdisk

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.[20] 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).[20] 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).[20] Ten bylo nutné připojit k desce tištěného spoje samostatným vodičem.[20]

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.[20]

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í:[20]

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:[20]

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.[20] 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.[20]

Obsluha ramdisku byla přidána do LKDOS EPROM verze 2.[20] 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.[20] Kvůli obsluze ramdisku, byl z EPROM odstraněna proporcionální znaková sada pro okna, která byla přítomna v EPROM verze 1.[20] 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.[20]

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ů.[20]

Známé problémy

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]

Poznámky

  1. 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]
  2. 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]
  3. Pro spuštění autostart programu z ramdisku bylo možné použít PRINT #4: GO TO 4: PRINT #4: NEW[9]
  4. 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]
  5. 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

  1. 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.
  2. Sinclair and Timex Projects Page (anglicky) na oocities.org
  3. Larken LKDOS Cartridges Archivováno 26. 6. 2012 na Wayback Machine. na World of Spectrum
  4. a b c Timex Sinclair 2068 Official and Unofficial Peripherals Archivováno 9. 12. 2013 na Wayback Machine. (anglicky) na timexsinclair.org
  5. 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.
  6. 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.
  7. 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)) 
  8. Bob's Notebook. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 3-4. Dostupné online. ((anglicky)) 
  9. 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)) 
  10. MITCHELL, Bob. MSCRIPT Version 5.3 for Larken DOS. Update Magazine. October 1988, s. 34. Dostupné online. ((anglicky)) 
  11. 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)) 
  12. a b c d GOWAN, Ron. Larken Lines. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 5. Dostupné online. ((anglicky)) 
  13. CHAMBERS, G. Larken Notes. Sinc-Link. 1989, roč. 7, čís. 2 (Mar.-Apr. '89), s. 5. Dostupné online. ((anglicky)) 
  14. 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)) 
  15. 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)) 
  16. 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)) 
  17. 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)) 
  18. Sinclair Hardware Fact Sheet, version 1.2 na World of Spectrum, původně dostupné na [1][nedostupný zdroj]
  19. 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)) 
  20. 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. 

Externí odkazy