Konference: Počítač SHARP MZ-800 a emulátory
Od: | Petr Žydek |
Datum: | 16.8.2003 13:22 |
Předmět: | Re: MZ-IDE 16 a jeho prvni testovani... |
Re: MZ-IDE 16 a jeho prvni testovani...: |
Ahoj Zdeňku,
můj postup při stavbě řadiče byl následující:
-nejprve jsem si odzkoušel oba 74F543, bez
počítače, jen s napájením ze starého PC zdroje
začal jsem se směrem A -> B, k vývodům
/OEAB, /LEAB a /EAB jsem připájel pomocné
vodiče, k vývodům A0-A7 jsem připájel
"piano" DIP 8x, zbylé vývody DIP byly
propojeny mezi sebou a to celé ke GND
(logická LOW nebo minus pól zdroje, jak
kdo chce)
všechny přepínače DIP byly v poloze OFF
(rozpojeno, což odpovídalo HIGH na všech
vývodech A0-A7)
-zapnul jsem napájení
-připojil jsem /EAB na LOW (selekt
směr A -> B)
-připojil jsem /LEAB na LOW (přijímá data
ze všech A vstupů)
-připojil jsem /OEAB na LOW (otevírá výstupy
na straně B)
od této chvíle je obvod transparentní pro směr
A -> B, při měření logickou sondou se změna
na libovolném přepínači DIP "piana" ihned projeví
na straně B (dá se měřit i voltmetrem)
-poté jsem "piano" nastavil na mnou vybranou
testovací hodnotu např. 01010101
-po odpojení /LEAB od GND se tato hodnota zachytí
v registru a další "cvičení" s přepínači "piana"
by nemělo mít vliv na stav na straně B, zde
zůstává ona hodnota 01010101
-po odpojení /OEAB od GND se hodnota na vývodech B
"ztratí", výstupy jsou uzavřeny, po opětovném
připojení /OEAB je opět "vidět"
-toto je jeden z mnohých způsobů testování, pokud
např. /EAB není připojen na GND, nelze aktivním
/LEAB zajistit vstup dat ani aktivním /OEAB
nelze zajistit zobrazení na výstupech B (úspěšně
odzkoušeno)
-připojením pomocných vodičů ke všem "BA" vývodům
a "piana" k B0-B7 lze analogicky odzkoušet směr
B -> A
-až po úspěšném testu obou IC jsem zahájil stavbu
varianty A (řečeno jednou větou, práce na jeden den)
-můj prototyp nemá desku, jen kšandu s 50pinovým
konektorem ze starého SCSI kabelu, takže jsem mohl
měřit "za provozu", je to píchlé přímo do konektoru
pro připojení slotů
-po dokonalé kontrole výrobku jsem přistoupil
k ostrým testům, Sharp byl zapnutý, ale bez zařízení!!!
-stav na IDE A2-A0, /IOW, /IOR lze měřit ihned po zapnutí
-po resetu "tikne" IDE /RESET
-aktivitu na DD0-DD7 lze monitorovat prográmkem
[1] ld a,00
ld bc,007fh
out (c),a
prodleva xxx milisekund
ld a,ffh
out (c),a
prodleva xxx milisekund
jp [1]
-aktivitu na DD-DD15 lze monitorovat prográmkem
[1] ld a,00
ld bc,0178h
out (c),a
prodleva xxx milisekund
ld a,ffh
out (c),a
prodleva xxx milisekund
jp [1]
-je-li vše OK, pak přijde na řadu můj testik v MZ-Basiku
se zapojeným HDD (raději takto, starý kus, nežli nová CF)
čtení a zápis na všechny porty kromě 78h se dá
provést ručně: OUT tu byla ta zakroucena vec $adresa,bajt
INP tu byla ta zakroucena vec $adresa,A: PRINT HEX$(A)
takový status registr In 7Fh by měl vrátit 50h ihned
-něco funguje už v ROM monitoru
čtení stavu in 7fh
zastavení motoru (stanby immediate) out 7fh,94h
rozjetí motoru (recalibrate) out 7fh,10h
stačí k tomu malé prográmky volané např. G1000,
G1010 atd.
-program v Basiku z některého dřívějšího příspěvku Pandory
umí udělat identify drive, číst i zapisovat, změnit
aktivní jednotku, ale jen přímou modifikací programu
(viz popis)
-se vším předešlým jsem si dosud bohatě vystačil, další
lehké modifikace mají rozšířit rodinu chodivých zařízení
nebo umožnit onu fantastickou možnost využít LBA 48bit!!!
softwarově se obsluha neliší!!!! (myslím, že jednodušší
to už být nemůže, přímá manipulace s porty je zajištěna,
v PC debugu mi to dovolí totéž a chová se to stejně!!!)
-jediné omezení je na datovém portu 78h, přenos musí
začít s 0078h v BC s následnými dvěma INIR (OTIR), sektor
má 512 bajtů a identify drive jich pošle taky 512, tak co?
připravuju htm soubor s obecným popisem řadiče z hlediska
programové obsluhy portů; s obrázky, které budou znázorňovat
jednotlivé "fáze" řadiče při dané instrukci in/out, jelikož
si myslím, že jeho funkčnost s jinými stroji se Z-80 není
vyloučena!
Petr de Zviqov
Ostatní příspěvky vlákna:
[2003/1 (22)] [2003/2 (25)] [2003/3 (14)] [2003/4 (20)] [2003/5 (73)] [2003/6 (108)] [2003/7 (88)] [2003/8 (81)] [2003/9 (146)] [2003/10 (60)] [2003/11 (12)] [2003/12 (5)]