Náhrada CMT modulem s CH376

Většinou si hraju jenom s hardwérem, ale i k tomu potřebuji vždy udělat nějaký prográmek na otestování funkce. Jistě víte jak je to příjemné když si takový prográmek ve strojovém kódu nadatlujete do počítače, pak to spustíte a zjistíte že prográmek nejen zabloudil, ale ještě stihnul sám sebe úspěšně přepsat.

V časech teď už historických jsem nahrával na magnetofon, ten už ale nějakou dobu nemám. Na ukládání testovacích prográmků jsem si chtěl vyrobit zálohovaný ram disk, ale nějak k tomu nikdy nedošlo. Nějakou dobu jsem používal k ukládání MemExt, kde jsem ukládal do paměti flash. I tento způsob měl ale nevýhody a několikrát jsem si při zápisu úspěšně přepsal i některou důležitou část (třeba monitor), pak následovala rozborka Sharpa, vyjmuti flash, naprogramovaní v PC a zase zpět do Sharpa.

Když jsem nedávno testoval CH375 napadlo mě, že celkem vhodným kandidátem na jednoduché záznamové zařízení je modul s CH376, protože ten umí oproti CH375 i přímou práci se soubory ve FAT.

S pomocí Radka Suka jsem se dostal ke dvěma modulům s CH376. Radek mě taky upozornil na kolizi I/O adres modulu se záložní adresou ram disku a tak jsem ji v dekodéru upravil na 9Ah a 9Bh. Obslužný program jsem chtěl dostat do volných oblastí ROM monitoru a to na adresách od F36Dh a od FAB5h, což je nějakých 900 volných bajtů. Během psaní programu jsem u CH376 narazil (nebo i sám vytvořil) tyto omezení:

  1. Můžeme pracovat pouze se soubory v kořenovém adresáři. Sám CH376 s adresáři sice pracovat umí, ale už třeba neumí udělat dosovské „CD..“, což je docela problém. Nechápu proč to tam není, když je to úplně stejné jako otevření běžného adresáře což CH376 umí. Práce s adresáři se mi do volného místa v ROM prostě nevešla.
  2. Umí pracovat jen se jmény souborů 8.3, o LFN by se musel postarat obslužný program, což se mi zase nevešlo do volného místa.
  3. Pracuje se pouze se soubory typu MZF.
  4. Jak jsem zjistil CH376 je při zápisu na některá zařízení velmi pomalý. Nejhorší výsledek je zápis 64k do souboru co trvá skoro 18 vteřin. Naproti tomu čtení je celkem rychlé load a start MZF souboru trvá do 2 sekund.

Vlastní zakomponování obslužného programu do rom je na dvou místech. První je přidání bootu po resetu. V rom u programu IPL na adrese E8C7h, kde byl původně skok na test přítomnosti FDC, je nahrazen načtením a spuštěním programového souboru „\IPLPRO.MZF“ z USB. Pokud při této operaci dojde k jakékoli chybě nebo pokud není soubor nalezen program bude pokračovat testem FDC a dál v IPL jako při normálním startu.

Druhá změna je až ve vlastním horním monitoru kde na adrese E87Eh je CP ‚V‘ a skok do verifikace programu na CMT (mimochodem použil jste to někdo někdy?). Nově je místo toho CP ‚U‘ a skok do programu práce s USB diskem. Příkaz „U“ se v obslužném programu větví ještě na další tři subpříkazy, obdobně jako to dělá program obsluhy quickdisku. Dále se za (sub)příkazem zapisuje volitelně FILE_NAME, které začíná buď hned za příkazem, nebo může být odděleno mezerou (mezer může být i více). Konec FILE_NAME je detekován buď mezerou nebo znakem <CR> a nebo je brán jako poslední osmý znak řetězce. Typ souboru (příponu) „.MZF“ přidá automaticky obslužný program. Ve FILE_NAME se mohou použít i malá písmena, protože obslužný program převádí malá písmena na velká. Obslužný program také opravuje pokřivenou ASCII Sharpa a testuje znaky, které se nesmí ve jménu souboru 8.3 objevit. FILE_NAME pak může obsahovat malá a velká písmena, čísla a tyto znaky: @ ` ! # $ % & ‚ ( ) – { } ^ ~ _ .

Subpříkazy „U“ jsou následující:

  • „U“ bez ničeho dalšího je ekvivalent dosovského „DIR \*.MZF“. Soubory jsou vypisovány po čtyřech na řádku. Výpis lze pozastavit klávesou SPACE a nebo úplně přerušit BREAKem. Lze použít i „wildcard“ například zápis „UA“ nebo „U A“ je ekvivalent „DIR \A*.MZF“ a třeba „U12“ nebo „U 12“ je „DIR \12*.MZF“. Pokud chcete vypisovat soubory začínající písmeny L nebo S je potřeba zápis s mezerou „U L“ nebo „U S“ protože „UL“ a „US“ se interpretují jako další platné subpříkazy.
  • „US“ je zápis. Pokud za příkazem není FILE_NAME provede se dump paměti -> na disk do souboru „\DUMP_MZ8.OBJ“ se uloží blok paměti od adresy 1200h – CFFFh. V případě, že je uvedeno FILE_NAME následují standardní tři dotazy monitoru na „OD“, „DO“ a „START“ a pokud už soubor toho jména existuje ještě dotaz na možnost přepsání souboru. Pak se uloží MZF soubor na USB disk. Například zápis „USA“ nebo „US A“ uloží soubor „A.MZF“.
  • UL je load. Pokud nenásleduje FILE_NAME hledá soubor „\DUMP_MZ8.OBJ“ a načte jej od adresy 1200h, maximálně po adresu CFFFh. Pokud je FILE_NAME uvedeno načte se a spustí MZF soubor daného FILE_NAME.

Když už bylo vše funkční přistoupil jsem k nějakým testům USB flash s různým formátováním:

  1. Jako první to byla USB flash Pretec 1GB. Nebyla rozdělená na partition a byla formátovaná na FAT16. Vše bylo funkční byť rychlost zápisu byla zklamáním, zápis 64k trval celých 18 sekund. Rychlost čtení byla menší než sekunda.
  2. Pretec UltimateGuard 4GB. Nebyla rozdělená na partition a byla formátovaná na FAT32. Vše zase funkční, ale rychlost zápisu stejně jako předtím 18 sekund. Rychlost čtení byla menší než sekunda.
  3. Pretec 4GB. Tato flash byla rozdělena na dvě partition. Aktivní a testovaná partition byla velká 1GB a formátovaná na FAT16. Vše funkční a rychlost zápisu byla 3 sekundy. Čtení opět méně než sekunda.
  4. A nakonec jsem trochu zariskoval (nemám posílené napájení USB) a připojil externí box se SATA diskem Hitachi 40GB. Disk byl rozdělen na 4 partition a každá o velikosti 10GB a formátovaná na FAT32. Vše bylo funkční i když jsem disk měl připojen pro jistotu jen krátce. Rychlost čtení i zápisu se srovnala na méně než sekundu.

Jako náhrada za CMT je toto zařízení celkem vhodné. Pro hovoří zejména nízké pořizovací náklady, jednoduchý interface, shadná obsluha a jednoduchá přenositelnost souborů mezi PC a Sharpem. Asi největším nedostatkem je absence možnosti „CD..“. I vnitřní ošetření některých chyb je asi odfláknuté, protože se mi podařilo vytvořit soubory s tak fantastickými jmény 8.3, že i wokna je odmítla odstranit a já formátoval flash.

Ovládací program (asembler).

Upravená ROM (binarní soubor).

Schéma interface:

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

+ three = four