Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 400535 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #255 on: 2013.April.26. 23:08:11 »
Quote
Ez lenne még egy fontos kijavítandó bug!
Ha jól tippelem a bool WD177x::readTrack() eljárást kéne fejleszteni.
Elvileg ha jól nézem adna vissza valami errorFlag-et, így nem értem miért tud hibátlannak tűnő olvasást generálni...
Na néztem a kódot, de ennek most nem állok neki. Vagy az kéne hogy értsem a WD működését, hogy könnyedén értsem hogy a kód mit miért akar úgy csinálni, ahogy,

vagy pedig kéne egy fizikai floppy, egy rossz sector -okkal rendelkező lemezzel, hogy jobb hijján a gyakorlatban kipróbálgassam, hogy mi történik a rossz szektorokkal, milyen infót kapok vissza róluk, mikor állnak azok az információk endelkezésre, és mit módosíthatok a WD kódon úgy, hogy az mást ne vágjon haza.

Majd ha lesz egy rendes gépem (floppy -val megáldott), akkor megnézem hogy lehet ezt megcsinálni.

Nincs valami olyan floppy egység, mint az USB DVD meghajtók ? Tehát amolyan "külső floppy", amit USB -re dugok, és lesz tőle fizikai floppy a gépben ?
Z80 System

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #256 on: 2013.April.26. 23:18:20 »
Quote from: Z80System

Nincs valami olyan floppy egység, mint az USB DVD meghajtók ? Tehát amolyan "külső floppy", amit USB -re dugok, és lesz tőle fizikai floppy a gépben ?
Van, úgy hívják USB floppy :-)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #257 on: 2013.April.27. 08:32:57 »
Hát jó, ki gondolta volna ...

http://www.argep.hu/trend/USBF/Usb-floppy-drive.html

És egy ilyen akkor valszeg 100% -ban úgy működik mint egy floppy vezérlőre dugott példány, tehát ott és akkor lennének késlekedések, blokkolások mint a floppy vezérlősnél, ill. a rossz szektorokat is ugyanúgy jelzi a windows felé, mint a floppy vezérlőre dugott példány ? Vagy annyi a hasonlóság hogy floppy -t kell beledugni, de egyébkén más hardware, másfajta csatlakozás, másfajta API, és igazából semmi hasonlóság nincs a működésben ? Tehát arra gondolnék, hogy mittudomén ez nem track -enként tudja visszaadni hogy rossz a lemez, hanem lemezenként, megsérül rajta bármi, akkor nem olvassa a lemezt, vagy mittudomén, bármi más nem floppy vezérlős floppy -ként működés ...
Z80 System

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #258 on: 2013.April.27. 09:47:25 »
Jó kérdések, amik addig nem derülnek ki, amíg valaki nem vesz egyet :oops:

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #259 on: 2013.April.27. 10:55:42 »
Egyébkén szektorhibás lemezt hogy lehet hekkelni ? Átszúrom a lemezt egy helyen, akkor az szektorhiba lesz ? Egyébként meg olvassa majd a lemezt ?
Z80 System

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #260 on: 2013.April.27. 11:02:14 »
EP-n simán tudsz szoftverből írni olyat! (Másoltam is anno ilyen védelmet használó PC-s lemezt.)
Legegyszerűbb, ha EPDOS Disk Editorban, Track Editor-ban elkészíted a Forma-t, majd kitörölsz a szektor adat területből pár bájtot, és úgy írod ki.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: EP128emu
« Reply #261 on: 2013.April.27. 11:14:23 »
szektorhibáról jut eszembe: én egy hibás lemezemet úgy mentettem meg (nagylemez) hogy nyomtam a retry-t és közben a lemezt az ujjammal fel le nyomtam (nagylemez kicsit kilóg a driveból)
jópár perc után végig beolvasta a hibás fájt

rajta volt egy játékom, ami így nem veszett el :)
Vigyázat! Szektás vagyok! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #262 on: 2013.April.27. 11:17:33 »
Hmmm ... ezt nem értem. Én eddig azt hittem, hogy a szektorhiba az egy fizikai hiba ... Most akkor kiderül, hogy egy szimpla formázási hiba is bad sector ?

Dehát egy ilyen szoftveres bad sector akkor hogy kezelődik a wd által ? A WD egy low level floppy vas kezelő IC, nem ? Az biztos nem ismer semilyen adatot a lemezen, magasról tojik rá hogy mi van a szektorokban, fizikailag beolvassa a raw bájtokat, aztán kezdjen vele akármit aki akar, nem ?

Nem értem hogy a wd mit vesz észre bármilyen floppy -ra írt adatszerkezet hibából ...
Z80 System

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #263 on: 2013.April.27. 11:26:34 »
Akkor lesz data error, ha az adatbájtokból számolt és a beolvasott CRC bájtok értéke összehasonlítva nem stimmel.
Ez lehet attól is, hogy sérült a lemez, és nem azok a adatbájtok olvashatóak, mint amik fel lettek írva (amihez az íráskor számolt CRC bájtok fel lettek írva).
Az említett trükknél, 512 bájtnál rövidebb szektort formázunk, ehhez íródik fel a CRC (a formázó adatcsomagban benne van a CRC felírása utasítás). Olvasáskor viszont 512 bájtra fog számolni CRC-t, ami nem stimmel a felírttal, már jön is a Data error hiba.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #264 on: 2013.April.27. 11:37:51 »
Quote from: Z80System
A WD egy low level floppy vas kezelő IC, nem ? Az biztos nem ismer semilyen adatot a lemezen, magasról tojik rá hogy mi van a szektorokban, fizikailag beolvassa a raw bájtokat, aztán kezdjen vele akármit aki akar, nem ?
Ez a sáv olvasása parancsnál van így. Ilyenkor egy nagy rakás kriksz-krakszot kapunk, ami ráadásul minden alkalommal más és más, mivel a szinkronizáció sem történik meg.
Szektor olvasásnál egyrészt szinkronizál, így már értelmes értékeket fog olvasni. Keresi a kívánt szektor fejlécét, ebből fogja majd tudni, hogy mekkora adatterület jön (128/256/512/1024), majd ha meg van az adatterület szépen adogatja a beolvasott bájtokat. Azt is figyeli, hogy a CPU minden bájtot kiolvasott-e, ha úgy jön a következő bájt, hogy az előző még nem került kiolvasásra, akkor ezt adatvesztés hibával jelzi.
Az adatbájtokra CRC-t számol, és ha ez nem stimmel a lemezről beolvasott CRC-vel, akkor fog data error-t jelezni.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #265 on: 2013.April.27. 11:41:43 »
Aham ... tehát akkor valójában olyan, hogy a WD valahogy megtudja a floppy vas -tól, hogy nem sikerült beolvasni egy szektort hardveres hiba folytán, olyan nincs is, valójában hardveres szinten mindíg sikerül a beolvasás, "legfeljebb" atomhülyeségek vannak a beolvasott adatokban, és ezt a floppy vezérlőjének kell már megoldania, hogy felismerje ?

És akkor a WD IC -be ezek szerint be van építve egy ilyen CRC alapú teszt ( ami mellesleg ugye képes hibázni, tehát nem felismerni hogy hiba van ... jó kis régi világ, mikor még mindennek "lelke volt" ), ami alapján jelezni képes, hogy nesze itt a szektorod, de vigyazz vele, mert szerintem hibás adatok vannak benne ? Ha ez nem lenne a WD -ben, akkor az EXOS -nak kéne valami ilyen biztosító/ellenőrző módszert megvalósítania ?

Viszont ezt a CRC értéket (gondolom több bájt) valahova tennie kell a WD -nek, nem ? Tehát akkor valahogy már a floppy vezérlője mégis meghatároz lemez formázást, nem ? Ha azt nem is definiálja, hogy vannak ábrázolva a sector láncok a file -okhoz, ezt a CRC helyet csak ő határozza meg, nem ?

És egyebként hova határozza meg ? Szektoron belülre, vagy kívülre ?

Vagy az is lehet, hogy a teljes file kezelő (fájlokhoz szektor lánc nyilvántartó) logika is a WD -ben van ? Hat az csaknem azért ... annál alacsonyabb szintű dolog az, nem ?
Z80 System

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14736
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #266 on: 2013.April.27. 11:57:02 »
Quote from: Z80System
Ha ez nem lenne a WD -ben, akkor az EXOS -nak kéne valami ilyen biztosító/ellenőrző módszert megvalósítania ?
Így van.
Quote from: Z80System
Viszont ezt a CRC értéket (gondolom több bájt) valahova tennie kell a WD -nek, nem ? Tehát akkor valahogy már a floppy vezérlője mégis meghatároz lemez formázást, nem ? Ha azt nem is definiálja, hogy vannak ábrázolva a sector láncok a file -okhoz, ezt a CRC helyet csak ő határozza meg, nem ?

És egyebként hova határozza meg ? Szektoron belülre, vagy kívülre ?
A szektorfejléc utáni, ill. az adatterület utáni két bájt az.
Ezt befolyásolni lehet a formázáskor, amikor a RAW adatfolyamatba kiírt F7h bájt jelzi a CRC bájtok kiírását. Viszont ha nem oda tesszük, ahol majd olvasásánál várja, akkor CRC hiba generálódik, erről szólt a korábbi trükk.
Szektorirásnál automatikusan teszi oda az adatterület végére az új CRC-t.
(Azaz ha a korábban trükkösen formázott hibás szektorunkba beleírunk, akkor már hibátlan lesz.)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #267 on: 2013.April.27. 12:06:27 »
Quote
Ezt befolyásolni lehet a formázáskor, amikor a RAW adatfolyamatba kiírt F7h bájt jelzi a CRC bájtok kiírását. Viszont ha nem oda tesszük, ahol majd olvasásánál várja, akkor CRC hiba generálódik, erről szólt a korábbi trükk.
És ezt a fícsört (hogy befolyásolni lehet) direkt trükközéshez tették bele ? Mert ha a beolvasást nem lehet "szinkronban" befolyásolni, akkor a trükködön kívül semmire nem jo ...

Quote
A szektorfejléc utáni, ill. az adatterület utáni két bájt az.
Na ez lenne a lényeg, tehát igenis meghatároz akkor a floppy vezérlő formázási információt ... akkor mitől kompatibilisek a floppy -k a különbözö vasakon ? Minden vezérlő ugyanúgy határozza meg a CRC bájtok helyét ? Vagy a világon mindenben (pld. a mai PC -k floppy vezérlőjében) is a WD ic (logika) van benne ? A WD licenszeli a világnak a floppy vezérlő okosságait ? Nyilván nem ...
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #268 on: 2013.April.27. 12:32:30 »
Quote from: Z80System
Vagy az is lehet, hogy a teljes file kezelő (fájlokhoz szektor lánc nyilvántartó) logika is a WD -ben van ? Hat az csaknem azért ... annál alacsonyabb szintű dolog az, nem ?

Dehogy. Az mar a FAT resze, ami ugye egy konkret (jelen esetben Microsoft) filerendszer, annak nicns koza a hw szintu disk kezeleshez. Nyilvan tok mas filerendszer is teheto ra, a FAT csak egy egyszeru am elterjedt filerendszer a sok kozul. Pl volt szo a commodore floppy-krol: 1541 es tarsai un GCR kodolast hasznalnak, sajat cucc. Amde - ha jol tudom - az 1581 (ami mar 3.5"-os!) szinten WD-t hasznal, megis a filerendszere egyaltalan nem FAT, hanem a szokasos commodore fele (minden szektorban pointer a kovetkezore, nem kulon FAT-ben, a BAM csak allokaciora hasznalt [Block Allocation Map - ha jol remlik]).

A WD nem tudja mi az a file stb, az kvazi un block layer szintu dolgot operaciokat hajt vegre, az OS/sw/stb valosit meg filerendszer (ha akar, de van amikor nem hasznalnak filerendszert sem csak siman a diszk minden blockja egymas utan, struktura nelkul).

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #269 on: 2013.April.27. 12:37:56 »
Hmmm ... lassan át kéne rakni a WD/lemezkezelés részt az ep128emu topikból sajátba ...
Z80 System