640 kB RAM disk Sharp MZ-1R37 pro SHARP MZ-2500/2800

Mikeš a Radek Suk už poměrně dávno ulovili v Japonských vodách originální 640 kB RAM disky Sharp MZ-1R37 určené pro počítače Sharp MZ-2500 a MZ-2800. Mikeš si dal obrovskou práci a z desky zpětně zrekonstruoval schéma a ze schématu následně udělal repliku původní desky. I toto proběhlo už někdy koncem roku 2017, ale až teď se dostávám k tomu o replice RAM disku MZ-1R37 něco napsat.

SHARP_MZ-1R37_replica_front   SHARP_MZ-1R37_replica_back

V Japonsku bývá tento RAM disk označován jako EMM: a to přináší trochu zmatek do už tak ne každému úplně jasné situace okolo Sharp RAM disků. Jako EMM: bývá totiž označován také 320 kB RAM disk PIO-3034, který se připojoval k počítačům MZ-700/1500 a adresuje se přes porty 00 až 03, zatímco pro adresování RAM disku MZ-1R37 stačí jen dva porty 0xAC a 0xAD. V 640 kB prostoru má adresa celkem 3 byty (nejvyšší byte má významné pouze 4 bity). Horní dva byty adresy se nastavují zápisem na port 0xAC, přičemž vyšší byte portu je nejvyšší byte adresy a data jsou střední byte adresy. Data se pak čtou nebo zapisují na portu 0xAD, přičemž nejnižší adresní byte je ve vyšší adrese portu a data jsou čtená nebo zapisovaná data. Například zápis hodnoty 0x78 na adresu 0x012345 by mohl vypadat třeba takto:

ld c,0xAC    ;high/mid address port
ld b,0x01    ;high address
ld a,0x23    ;mid address
out (c),a
ld c,0xAD    ;data/low address port
ld b,0x45    ;low address
ld a,0x78    ;data
out (c),a

Instrukce v ukázce jsem úmyslně udělal jednoduše rozdělené, aby bylo na první pohled vidět, co se kam nastavuje a zapisuje. Z výše uvedeného kódu je zřejmé, že i když RAM disk neobsahuje čítače a nemá automatickou inkrementaci adresy, zápis a čtení jsou celkem rychlé, protože stačí nastavit 256-bytovou stránku zápisem na port 0xAD a pak už ke kterémukoli bytu v ní přistupovat jediným zápisem nebo čtením.

MZ-2500 BASIC podporuje RAM disk MZ-1R37 nativně jako zařízení EMM: a funguje bez problémů. Tedy po odstranění drobné chybičky s přizemněným vstupem 5 AND hradla 1CB. Na to, že neexistovalo schéma a Mikeš vše překresloval z originálu, super práce.

MZ-1R37.sch

Na schématu už je chybka opravena, na desce je úprava jen drobná a dá se udělat poměrně nenápadně. Zespodu desky stačí udělat malý přeškrab a shora, ještě před připájeném IO nebo patice, přidat propojku na Vcc.

SHARP_MZ-1R37_replica_PCB_repair_back   SHARP_MZ-1R37_replica_PCB_repair_front

Na finálních deskách Mikeš chybku už opravil, ale je otázka, jestli se ještě nějaké budou dělat. Aktuální várka je rozebraná a majitelů MZ-2500 u nás bys napočítal na prstech jedné ruky. Alespoň, co vím.

První desku jsem pro jistotu osadil do patic a až po důkladném otestování jsem všechny IO včetně pamětí do druhé verze připájel bez patic. Kromě otestování souborového systému přímo v MZ-2500 jsem si napsal jednoduchý testovací program v BASICu pro MZ-800, ale když jsem zjistil, jak je pomalý, přepsal jsem zápis a čtení stránky RAM disku raději do strojáku. Pak už byla rychlost testování poměrně uspokojivá.

SHARP_MZ-1R37_replica_working_MZ-2500   SHARP_MZ-1R37_replica_working_test

Test je celkem primitivní, ale i tak mi pomohl odhalit pár nefunkčních pamětí, takže jsem dobře udělal, že jsem si ho napsal. RAM disk funguje bez problémů, jen je škoda, že není zálohovaný a co hůře, tak i studený restart BASICu na MZ-2500 způsobí jeho reinicializaci. Tohle BASIC dělat nemusel, uživatel má pro inicializaci k dispozici příkaze INIT “EMM:”.

Příspěvek byl publikován v rubrice MZ-2500, SHARP se štítky , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *