Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 4 zprávy

definitivní verze IDE16 (varianta E)

Petr Žydek SHARP MZ-800

Předkládám variantu "E", vychází z "B"
(chip selekt 0 HDD mimo okamžik resetu
trvale LOW).
Tentokrát jsou vyvedeny z Eprom i signály
pro /EAB a /EBA obvodů 74F543, původně
byly obvody F543 "krmeny" přímo /WR a /RD
z MZ slotu. Má to zajistit větší "soufázovost"
se signály Epromky pro /IOW a /IOR HDD.
Pokud bude chodivost vyšší než u varianty B,
dostane tato přednost.
Jediná vada na kráse je nemožnost atakovat
porty selektované přes chip selekt 1 HDD,
umožnilo by to využít rozšířené adresování
LBA 48bitů.


Nejuniverzálnější řešení je pak dual IDE řadič:
1. kanál s variantou B (switched C):
-starší disky, pomalejší disky (B)
-"LBA48-able" disky, interní ZIP (C)

2. kanál s variantou E
-disky choulostivé na časování I/O operací
-WDčka, mé zlobivé Quantumy a IBM
-CD-ROMy a flash karty, které se nechytnou
 na B, C

Sw obsluha portů je všude stejná

Bohužel mám málo zkušebních zařízení, takže
nemůžu zobecňovat schopnosti jednotlivých
variant, chce to více úspěšných
stavařů-testerů!!!

Petr de Zviqov

Přílohy

  • hdd_ide_V8.tif
    image/tiff · 67 kB · 1696 x 2200 px
  • Pravdivostni_tabulka_16bit_IDE_2ks_74F543_V8.xls
    application/vnd.ms-excel · 27 kB

Re: definitivní verze IDE16 (varianta E)

Anonym SHARP MZ-800

Zdravim,


  jen jsem se chtel zeptat, jak je tedy nakonec resen reset prepinani
low/high byte na datovem portu ATA?


a) Je proveden reset pri zacatku ATA prikazu a low/high se pak strida pri
kazde operaci s datovym portem nebo


b) low/high se odvozuje z high byte adresy pri pristupu na datovy port?


nebo existuje nejaka moznost C? ;-)





diky,


Roman

Zobrazit citovaný text (5 řádků)
>Dne 16.08.2003 12:28:02 "Petr Žydek (sharpemupandora.cz)" napsal:
>--------Původní zpráva--------
>Od : "Petr Žydek (sharpemupandora.cz)" <judeware[doména skryta]>
>Odesláno : 16.8. 2003 12:28:02
>Komu : "Konference "Počítač SHARP MZ-800 a emulátory""
<sharpemupandora.cz>
Zobrazit citovaný text (7 řádků)
>Předmět : definitivní verze IDE16 (varianta E)
>
>
>Sw obsluha portů je všude stejná
>
>Petr de Zviqov
>

Re: definitivní verze IDE16 (varianta E)

Anonym SHARP MZ-800

Ahoj Roman,
 
podla toho, ako som si prestudoval navrh IDE16 aj s pravdivostnou tabulkou, tak prepinanie low/high je podla horneho bajtu adresy nasledovne:
 
Pri instrukciach vstupu horny bajt adresy: sudy (A8=0) uvadza low byte, lichy (A8=1) uvadza high byte.
 
Pri instrukciach vystupu horny bajt adresy: lichy (A8=1) uvadza low byte, sudy (A8=0) uvadza high byte. Je to tak kvoli inkrementalnym instrukciam vystupu, ked sa obsah B registra posiela na zbernicu az po dekrementovani.
 
Marek.
Zobrazit citovaný text
----- Original Message -----
From: rdolejsi[doména skryta] (sharpemupandora.cz)
To: Konference Počítač SHARP MZ-800 a emulátory
Sent: Monday, August 18, 2003 12:59 PM
Subject: Re: definitivní verze IDE16 (varianta E)



Zdravim,


  jen jsem se chtel zeptat, jak je tedy nakonec resen reset prepinani
low/high byte na datovem portu ATA?


a) Je proveden reset pri zacatku ATA prikazu a low/high se pak strida pri
kazde operaci s datovym portem nebo


b) low/high se odvozuje z high byte adresy pri pristupu na datovy port?


nebo existuje nejaka moznost C? ;-)





diky,


Roman

>Dne 16.08.2003 12:28:02 "Petr Žydek (sharpemupandora.cz)" napsal:
>--------Původní zpráva--------
>Od : "Petr Žydek (sharpemupandora.cz)" <judeware[doména skryta]>
>Odesláno : 16.8. 2003 12:28:02
>Komu : "Konference "Počítač SHARP MZ-800 a emulátory""
<sharpemupandora.cz>
>Předmět : definitivní verze IDE16 (varianta E)
>
>
>Sw obsluha portů je všude stejná
>
>Petr de Zviqov
>



--
Hrave leto s BonusWebem - vyhrajte PlayStation 2 konzole a hromadu her!
http://www.bonusweb.cz/leto/

definitivní verze IDE16 (varianta E)

Petr Žydek SHARP MZ-800

Obecný programátorský popis IDE16 chystám
v HTML, s obrázky a komentářem. U datového
portu 78H se využívá skutečnosti, že u
instrukcí s nepřímou adresou
(IN A,(C); OUT (C),A; INI; INIR; OUTI; OTIR)
se posílá obsah B registru na AD8-AD15.
Tento při např. OUTI automaticky dekrementuje
a je oním rozhodovacím elementem při směrování
dat na IDE. Vždycky je třeba přenést SUDÝ počet
bajtů např. při odesílání čtyř bajtů se tyto
přenesou jako dva "dvoubajty":

ld bc,0478H   ; počet bajtů, adresa datového portu
ld hl,"odkud" ; adresa bloku dat
outi   ; B bylo 04 tj. sudé ... data se zachytí
          v registru pro DD0-DD7 IDE
outi   ; B bylo 03 tj. liché ... data projdou
           registrem pro DD8-DD15 HDD na IDE piny
           DD8-DD15, data zachycená v registru pro
           DD0-DD7 se ukáží na IDE pinech DD0-DD7
           aktivuje se /IOW signál, HDD přijme data-
           dva bajty najednou, aniž by tušil, že
           první z nich byl připraven předem
outi   ; B bylo 02 tj. sudé ... stejné jako B=04h
outi   ; B bylo 01 tj. liché ... stejné jako při B=03H
přenos je ukončen

V praxi je blok dat vždy dlouhý 512 bajtů, takže má
smysl transakci zahajovat s nulou v B:

ld hl,"odkud"
ld bc,0078H
vyber aktivní IDE jednotku
iniciuj příslušné registry stopy, sektoru atd.
in 7fH,a   ; čti IDE status (event. čekej)
ld a,31H  ; příkaz zapsání sektoru
out (7fH),a  ; odešli
in (7fH),a  ; čti IDE status (event. čekej)
              ; čeká se na 58H (device ready, data request)
OTIR   ; odešle 256 bajtů dat počínaje adresou "odkud"
OTIR   ; odešle zbylých 256 bajtů dat, B se před touto
         ; instrukcí přetočilo znovu k nule a HL je
         ; o 256 bajtů vyšší (není třeba přenastavovat)
přenos je ukončen
in 7fH,a   ; čti status (měl by být 50H=device ready, bez chyb)

Ono se to bez těch obrázků těžko vysvětluje, ale všechno vyplývá
ze schemat a pravdivostních tabulek...

Petr de Zviqov