Enterprise Forever  |  :HUN  |  Hardver  |  Topic: IDE kártya
Author Topic: IDE kártya  (Read 22589 times)« previous next »
Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« on: 2007.June.05. 22:24:07 »

Lássuk mit is csinál ez az általam elkövetett szörnyüség


A kártya 4 portot hoz létre, alapállapotban ECH-EFH címeken, jumperrel máshova is állítható, a program a teljes E0H-EFH tartományban keresi, így elméletileg akár 4 kártya is lehetne egy géphez csatolva (Amikor készült akkor még a PC-kből kidobott 20-40 megás vinyókra gondoltam, mint EPsek számára elérhető vinyó, ezekből jó sok kéne )

A kártya 0. portja az alsó 8 bit adatportja, az 1. a felső 8 bit portja, mivel az IDE busz számunkra sajnálatos módon 16 bites.
A maradék két port 1-1 parancsport a kártya 2 csatlakozója számára. A parancsport alsó három bitje az IDE címbitek, a következő a CS0/CS1 címbit, következő kettő pedig az irás/olvasási jelek az IDE buszra. Maradék kettő kifelé nincs bekötve, befelé az IDE busz INT és PDIAG jele olvasható.
Az alsó 6 bit ki és bemenet össze van kötve, vagyis a parancsportokon visszaolvasható a legutóbb kiírt érték alsó 6 bitje.
A szoftver ennek segítségével keresi meg a kártyát, az alsó 4 bitet (a maradék kettőt azért nem, hogy ne piszkálja az IDE buszt) végig teszteli 0-15 értékekkel, hogy visszaolvasható-e.

Írás az IDE buszra úgy történik, hogy a két 8 bites adatportra bekészítjük a 16 bites érték két darabját, a cím pedig a parancsportra megy, ahol az írás bit segítségével az egész egyszerre kikerül az IDE buszra.
Olvasás fordítva, a cím bitek és olvasás bit segítségével a parancsporton keresztül megtörténik az olvasási művelet az IDE buszon, a 16 bites érték eltárolodik a kártyán, és a két 8 bites adatporton kiolvasható.

Maga a vinyók programozása megtalálható az ATA szabványban.
Jelenleg ebből számunkra az IDENTIFY DEVICE, INITIALIZE DEVICE PARAMETERS, READ SECTORS, READ MULTIPLE, WRITE SECTORS, WRITE MULTIPLE, SET MULTIPLE parancsok érdekesek.
A címzés elsősorban LBA módban történik, mivel maga a program is 32 bites LBA címzést használ belsőleg.
Végszükség esetén, ha a vinyó nem támogatja (vagyis legalább vagy 10-12 éves ), akkor kerül átszámolásra CHS-re a cím.



* d1410r3b-ATA-ATAPI-6.pdf (1725.98 KB - downloaded 184 times.)
« Last Edit: 2007.June.08. 13:19:27 by Zozosoft » Logged


Enterprise Forever
« on: 2007.June.05. 22:24:07 »

 Logged

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« Reply #1 on: 2007.June.05. 22:37:19 »

Így néz ki a kártyák detektálása:
Code
                LD IX,VEGE                ;FELHASZNALT MEMORIA CIME
               LD C,0EFH                 ;KARTYAK KERESESE EF PORTTOL
PDET
               CALL PDETECT
               EI
               CALL Z,PORT               ;HA TALALT, AKKOR LETAROLJUK
               DEC C
               BIT 1,C
               JR NZ,NEMZ                ;KET PARANCS PORT UTAN
               DEC C                     ;A KET ADAT PORTOT
               DEC C                     ;KIHAGYJUK
NEMZ            BIT 4,C
               JR Z,PDET                 ;DF-NEL VEGE
 
               LD (IX),0                 ;PORT LISTA LEZARASA
               LD (IX+1),55H
 
Code
PDETECT:        LD B,11110000B
               DI
PDETC           OUT (C),B
               IN A,(C)
               OR 11110000B
 
               XOR B
               RET NZ
               INC B
               JR NZ,PDETC
 
               RET
 
« Last Edit: 2007.June.05. 23:12:46 by MrPrise,Reason: Van Z80 syntax highlight ;-) » Logged


Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« Reply #2 on: 2007.June.06. 16:56:01 »

Folytassuk az IDE regiszterekkel. Ehhez itt egy régebbi ATA szabvány, egyrészt ebben benne van még a CHS címzés is, másrészt van benne értelmes összefoglaló tábla a regisztercímekről (14. oldal)

Sajnos a NYÁK tervezése során történt egy kis baki, és az A1,A0 címvezeték fel lett cserélve
Mondjuk nagy gondot nem okoz, csak ennek megfelelően kellett definiálnom a konstansokat a programban.
Istvánnak okoz majd egy kis plusz munkát ez, ha bele teszi az ep128 emuba

Eredetileg az IDE-n 3 címbit van, és két Chip Select jel (ezek ha jól sejtem valami ősi MFM vezérlős időkből erednek...). Mivel a két CS jel közül úgyis csak az egyik van használva egyszerre, ezért ezt én egy újabb címbittel helyetesítettem.
Ezek figyelembe vételével ezek a regisztercímek EP-n:
0000: Data
0010: Error / Features
0001: Sector Count
0011: Sector Number / LBA(7:0)
0100: Cylinder Low / LBA(15:8 )
0110: Cylinder High / LBA(23:16)
0101: Device/Head / LBA(27:24)
0111: Status / Command
1101: Alternate Status / Device Control
1111: Drive Address (ez csak az ATA-1 szabványban szerepel, többiben mint elavult említik)

* d2008r7b-ATA-3.pdf (778.64 KB - downloaded 115 times.)
« Last Edit: 2007.June.06. 17:01:11 by Zozosoft » Logged


Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« Reply #3 on: 2007.June.08. 12:51:26 »

A hatalmas érdeklődés ellenére folytatom...

Nézzük meg, hogyan néz ki egy IDE regiszter irás/olvasás EP-n.
Az egyszerűség kedvéért van definiálva egy rakás konstans:
Code
RD              equ 32  ;OLVASAS
WR              equ 16  ;IRAS
DATA            equ 0   ;DATA
ERROR           equ 2   ;ERROR
PREC            equ 2   ;PRECOMPENSATION
FEAT            equ 2   ;FEATURES
SC              equ 1   ;SECTOR COUNT
SN              equ 3   ;SECTOR NUMBER
CLO             equ 4   ;CYLINDER LOW
CHI             equ 6   ;CYLINDER HIGH
DRH             equ 5   ;DRIVE/HEAD SELECT
STAT            equ 7   ;STATUS
COM             equ 7   ;COMMAND
ASTAT           equ 13  ;ALTERNATE STATUS
DCON            equ 13  ;DEVICE CONTROL
DADR            equ 15  ;DRIVE ADDRESS
Ezek nagyrésze a korábban említett IDE regiszterek címei.
Az RD konstans pedig a parancsport 4. bitjét nulláza, a WR pedig az 5. bitet. Ezzel tudjuk kiváltani az IDE buszon a megfelelő I/O műveletet. Használat után mindkettőt vissza kell állítani 1-re.

Ezekután egy konkrét példa: legyen a kártya az ECH-EFH címeken, és az EFH parancsporthoz tartozó vinyó adatportjára írjuk ki HL értékét.
Code
                  LD C,0ECH   ;adatport alsó 8 bit
                 OUT (C),L
                 INC C         ; adatport felső 8 bit
                 OUT (C),H
                 LD A,WR+DATA   ;írás művelet+a regiszter cime
                 LD C,0EFH   ;parancsport
                 OUT (C),A
                 OR  WR+RD  ;irás+olvasás bitek visszaállítása 1-re
                 OUT (C),A
 
Csak az DATA regiszter 16 bites, a többi esetén az adatport felső 8 bitjét nem kell kiküldeni.
Olvasás hasonlóképpen:
Code
                  LD A,RD+DATA   ;olvasás művelet+a regiszter cime
                 LD C,0EFH   ;parancsport
                 OUT (C),A
                 OR  WR+RD  ;irás+olvasás bitek visszaállítása 1-re
                 OUT (C),A
                 LD C,0ECH   ;adatport alsó 8 bit
                 IN L,(C)
                 INC C         ; adatport felső 8 bit
                 IN H,(C)
 
Szintén csak a DATA regiszternél kell a felső 8 bitet is kiolvasni.
« Last Edit: 2007.June.08. 14:08:11 by Zozosoft » Logged


szalai56
EP fan
*
Offline Offline

Posts: 185


OS:
Linux
Browser:
Firefox 2.0.0.4


View Profile
New Posts
« Reply #4 on: 2007.June.08. 13:49:31 »

Igenis érdekel bennünket, igaz nem sokat értek belőle.
Logged

geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile
New Posts
« Reply #5 on: 2007.June.08. 22:48:25 »

A kódok alapján sikerült végre megértenem.Smiley
Az adat tárolási helye is az adatportokon keresztül történik, a megfelelő értékek parancsportra küldése után?
Logged

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« Reply #6 on: 2007.June.08. 22:56:49 »

Az adat tárolási helye is az adatportokon keresztül történik, a megfelelő értékek parancsportra küldése után?
Ez nem egészen értem...
Logged


geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile
New Posts
« Reply #7 on: 2007.June.08. 23:33:16 »

A head/cylinder/sector megadása, az adat írásához/olvasásához.
Logged

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.4


View Profile WWW
New Posts
« Reply #8 on: 2007.June.09. 05:08:14 »

A head/cylinder/sector megadása, az adat írásához/olvasásához.
Igen, ez esetben ezen a regiszterek címét kell a parancsportra ki küldeni, elötte pedig a beírandó értéket az adatportra, de mivel ezek csak 8 bitesek, elég csak az alsó 8 bitet feltölteni.
Logged


Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.12


View Profile WWW
New Posts
« Reply #9 on: 2008.February.11. 14:43:25 »

Leadtam a rendelést 10 db IDE kártya NYÁK-ra, 5000 ft lesz darabja. (ehhez jönnek majd még az alkatrészek)
Kit érdekel a dolog?

Két hét múlvára készülnek el.

Logged


Z80System
EP lover
*
Offline Offline

Hungary

Posts: 514


OS:
Windows XP
Browser:
Microsoft Internet Explorer 6.0


View Profile WWW
New Posts
« Reply #10 on: 2008.February.11. 15:01:14 »


Jol ertem, hogy itt meg savok, szektorok sincsenek, csak effektive egy hardver illesztes, amin keresztul direkt kommunikalhatunk a winyoval, miutan az ember megirt egy device driver programot es/vagy fat16/32 kezelest ? Vagy ennel valamivel egyszerubb modon tarolnad a winyon az adatokat, valami raw formaban ? Egyfajta sajat EP- s formatumban, ami nem lenne kompatibilis egyetlen Pc- s szabvannyal sem ? Vagy hogy gondoltad a tenyleges hasznalatot ? Vagy igazabol ez meg csak amolyan kiserleti stadium, nem annyira a hasznalatert, mint inkabb a technikailag hozzaertok szamara, es nem feltetlen akar eljutni a vegso formaig ?

Logged

Z80 System - Flying Time Studio

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.12


View Profile WWW
New Posts
« Reply #11 on: 2008.February.11. 15:38:01 »

Akkor egy kis összefoglaló a késöbb érkezetteknek

Röviden: FAT12 particiók kezelhetők, abból összesen lehet 21 db(F-Z:), egyenként max 32MB méretben. EZ kb 3x annyi mint a világ összes EP programja

Bővebben:
A kártya 4 IDE vinyó csatlakoztatását teszi lehetővé (amikor készült, azt hittük, hogy majd pc-ből levetett 40 megás vinyókat fogunk használni halomszámra sőt akár két kártya is lehet a géphez kötve )
A szoftver detektálja a kártyákat, aztán a kártyákra kötött valamennyi vinyót. Jelenleg max 128GB-osok támogatva, kis programváltoztatással a következő verzióban 2 TB lesz a max
Ezután összegyűjti az összes vinyóról a FAT particiókat egy saját táblázatba. (Elsődleges, kiterjesztett particiók egyaránt támogatva).
Ezekből a jelenlegi EXDOS korlátjai miatt (hiszen 85-ben nem is létezett még FAT16!), csak a FAT12-esek használhatóak, ezeket egy megfelelő EXDOS bővítés segítségével be is láncolja a rendszerbe. Innentől F:, G:, stb meghajtókon szabadon lehet garázdálkodni ahogy azt számos klubnapon néztétek sóvárgó szemekkel
Logged


Ep128
EP addict
*
Offline Offline

Hungary

Posts: 1012


OS:
Windows XP
Browser:
SeaMonkey 1.1.7


View Profile WWW
New Posts
« Reply #12 on: 2008.February.11. 18:46:16 »

(... most már "csak" egy olyan BUS kártya kellene, ami hajlandó 7.12 Mhz -en is szóba állni az Ep -vel.   Mert a turbós gépen így "nincs hová dugni". )
Logged


Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5611


OS:
Windows XP
Browser:
Firefox 2.0.0.12


View Profile WWW
New Posts
« Reply #13 on: 2008.February.11. 19:06:33 »

(A te gépednek mindig is különálló lelkivilága volt, nekem pl ment 7.12-n a busz...)

Lehet Microteam (klón) kártyára is felhekkelni egy csatlakozót!
Busz, na az nem lesz hacsak nincs Mészárosnak még pár elfekvő darabja...

Ha valakinek csak alapgépe van, akkor elképzelhető olyan variáció, hogy közvetlen gépre menő IDE kártya, és a cartridge-ba kell tenni egy módosított EXDOS ROM-ot az IDE ROM-mal.

Ha valakinek nem Microteam EXDOS-a van, akkor valami kreatív összedrótozást kell kitalálni a két kártyára...

Sajnos Tigrian nagyon-nagyon eltünt köreinkből, így az AIO projekt nem fog megvalósulni...  smt088
...ezért gondoltam, hogy legyen már valami kézzel fogható, legalább pár embernek.

Amúgy elképzeltem, hogy lehetne csinálni egy új EXDOS-t ami az IDE kártyára kerülne emeletként (tehát nem felfele állva mint a buszban, hanem egymáson feküdve, mint a hollandok cuccainál), EXDOS+ROM+RAM esetleg óra.
« Last Edit: 2008.February.11. 19:10:36 by Zozosoft » Logged


Ep128
EP addict
*
Offline Offline

Hungary

Posts: 1012


OS:
Windows XP
Browser:
SeaMonkey 1.1.7


View Profile WWW
New Posts
« Reply #14 on: 2008.February.11. 19:18:18 »

Most előbb ez a project valósuljon meg, óriási lenne!
(De utána nagyon is támogatnám azt az apró betűs másik project -et!)
Logged


Enterprise Forever
« Reply #14 on: 2008.February.11. 19:18:18 »

 Logged
Tags: IDE HDD 
Enterprise Forever  |  :HUN  |  Hardver  |  Topic: IDE kártya

Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks

Template made by Mr.Prise
Page created in 0.143 seconds with 25 queries.
Google visited last this page 2012.May.17. 09:39:18
Follow ep4ever_news on Twitter