Welcome, Guest. Please login or register.


Author Topic: ep128emu 2.0.8 (Read 131653 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #90 on: 2010.June.21. 20:51:26 »
Esetleg a 2.0.9-be lehetne majd beletenni olyan új debugger parancsot, ami ezt megcsinálja? Opcionális paraméterrel, hogy a megadott új érték hány kiolvasásig éljen.

Talán, bár nem tudom, milyen gyakran használt funkció lenne ez. Azonban ha csak egy-két fix utasításnál kell módosítani a port olvasást, az könnyen megoldható scripttel most is, az olvasások utáni utasításra töréspontot beállítva, és a regiszter értékét a scriptből átírva.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #91 on: 2010.June.22. 10:25:20 »
Talán, bár nem tudom, milyen gyakran használt funkció lenne ez.
Játék debuggolásnál már jó párszor hiányoltam  :oops:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #92 on: 2010.June.29. 14:02:17 »
Találtam egy emulátor bugot: ha elõször 80 sávos disk image-t használunk, utána pedig beteszünk egy 40 sávosat, akkor sector not found lesz a fájlok olvasásakor.
Valószínûleg az ilyenkor alkalmazott Double Stepping kavarja meg a dolgokat.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #93 on: 2010.June.29. 14:12:38 »
Találtam egy emulátor bugot: ha elõször 80 sávos disk image-t használunk, utána pedig beteszünk egy 40 sávosat, akkor sector not found lesz a fájlok olvasásakor.
Valószínûleg az ilyenkor alkalmazott Double Stepping kavarja meg a dolgokat.

Ha 40 sávos lemeznél az EXDOS 2 sávot léptet 1 helyett, akkor azt nem támogatja az emulátor, függetlenül attól, hogy előtte milyen image volt használatban.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #94 on: 2010.June.29. 14:30:54 »
Ha 40 sávos lemeznél az EXDOS 2 sávot léptet 1 helyett, akkor azt nem támogatja az emulátor, függetlenül attól, hogy elõtte milyen image volt használatban.
Annyiban fontos az imagek sorrendje, hogy az elsõnél ha 80 sávos volt, akkor megjegyzi az EXDOS, hogy ez egy 80 sávos meghajtó, és amikor következõnek 40 sávos lemezt talál, elkezdi alkalmazni a dupla léptetést.
Ha fordított sorrendben rakjuk be õket, akkor az elsõnél megjegyzi, hogy 40 sávos meghajtó, és a késõbbiekben az se zavarja, ha ez 40 sávos meghajtó elmegy 80-ig :-)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #95 on: 2010.June.30. 00:58:09 »
A WD emuláció mennyire idõzítés helyes? Adatvesztés fel tud lépni mint a valódinál, vagy olyan ütembe pakolgatja az adatokat, ahogy azt éppen várja a gép?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #96 on: 2010.June.30. 23:16:21 »
A WD emuláció mennyire idõzítés helyes?

Semennyire :oops: Nincs ido"zítés emuláció, a WD-t gyakorlatilag az I/O portokhoz történo" hozzáférések "futtatják".

A dupla léptetés nem támogatott, egy sáv léptetése mindig egy sávot jelent.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #97 on: 2010.July.01. 10:01:57 »
Semennyire :oops: Nincs ido"zítés emuláció, a WD-t gyakorlatilag az I/O portokhoz történo" hozzáférések "futtatják".
:) Viszont ennek köszönhetõen mûködik bármilyen Z80 frekvenciával!

Quote
A dupla léptetés nem támogatott, egy sáv léptetése mindig egy sávot jelent.
A tényleges írás/olvasás mûvelet elõtt a fejpozicionálás után a Track regiszterbe beírja a logikailag érvényes szektorszámot (különben az igazi WD se találná meg a keresett sector ID-t), ez alapján nem lehetne az image-ben is megtalálni a megfelelõ szektort?

Így néz ki a kérdéses rész az EXDOS-ban:
Code: ZiLOG Z80 Assembler
  1. lddeb:  PUSH    DE              ;sávszámok mentése
  2.         BIT     3,H             ;Double Stepping?
  3.         JR      Z,LDDF4         ;ha nem akkor,
  4.                                 ;nincs szükség fizikai sávszámok kiszámolására
  5.         SLA     D               ;sávszámok
  6.         SLA     E               ;szorzása 2-vel
  7. lddf4:  INC     C               ;WD Track register
  8.         OUT     (C),D           ;érték kiírása
  9.         INC     C               ;WD Sector register
  10.         LD      A,(IY-13H)      ;DISKIO híváskor megadott szektorszám
  11.         OUT     (C),A           ;érték kiírása
  12.         INC     C               ;WD Data register
  13.         OUT     (C),E           ;új sáv pozició
  14.         DEC     C              
  15.         DEC     C
  16.         DEC     C               ;WD Command
  17.         LD      A,D             ;az aktuális
  18.         CP      E               ;és új sáv pozició megegyezik?     
  19.         JR      Z,LDE0B         ;ugrás ha igen
  20.         SET     2,(IY-16H)      ;fejpozicionálás történt
  21. lde0b:  LD      B,18H           ;fejpozicionálás, motor bekapcsolás
  22.         CALL    LDF71           ;TYPE I WD parancs kiadása
  23.         POP     DE              ;sávszámok vissza
  24.         INC     C               ;WD Track register
  25.         OUT     (C),E           ;a hiváskor megadott most már az aktuális
  26.                                 ;amely ha SD lemezt kezelünk DD meghajtóban,
  27.                                 ;akkor logikai sávszám, ezért kerül kiírásra

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #98 on: 2010.July.05. 23:54:31 »
Ez eddig is így volt, és az emulátor a "\\.\A:"-t is image file-ként kezeli (az ilyen nevû file Windows NT alatt megnyitva gyakorlatilag a floppy image, csak a hozzáférése a normál file-okhoz képest korlátozottabb, például csak 512 byte-os egységekben lehet olvasni, írni, és pozíciót állítani).
És ez a módszer, hogyan tud olyan lemezt olvasni, amit maga a Windows nem tud?
Ennél az Apricotos lemeznél arra számítottam, hogy mivel maga a Windows nem olvassa a lemezt, így az emulátor se tud majd hozzáférni. De kézzel megadva a paramétereket mûködik a dolog!
Van olyan funkció hívása ennek a virtuális image fájlos dolognak, amivel elmagyarázod neki a lemez fizikai paramétereit?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #99 on: 2010.July.06. 00:13:04 »
És ez a módszer, hogyan tud olyan lemezt olvasni, amit maga a Windows nem tud?
Ennél az Apricotos lemeznél arra számítottam, hogy mivel maga a Windows nem olvassa a lemezt, így az emulátor se tud majd hozzáférni. De kézzel megadva a paramétereket mûködik a dolog!
Van olyan funkció hívása ennek a virtuális image fájlos dolognak, amivel elmagyarázod neki a lemez fizikai paramétereit?

Ha van is, az emulátor nem használ ilyet. Azt viszont lekérdezi (IOCTL_DISK_GET_DRIVE_GEOMETRY), hogy mik a lemez tényleges paraméterei, és ha nem egyeznek a felhasználó által megadottakkal, akkor hibát jelez. Azonban elvileg nem kellene kézzel megadni semmit, mert a -1-re állított paramétereket a Windows által visszaadottakkal helyettesíti. Valószínűleg az Apricot lemezek csak a filerendszer (FAT) szintű hozzáférésnél okoznak problémát a Windowsban, azt azonban az emulátor nem használja, és az alacsonyabb (image) szintű műveletek működnek ilyen lemezzel is.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #100 on: 2010.July.06. 09:32:10 »
Ha van is, az emulátor nem használ ilyet. Azt viszont lekérdezi (IOCTL_DISK_GET_DRIVE_GEOMETRY), hogy mik a lemez tényleges paraméterei, és ha nem egyeznek a felhasználó által megadottakkal, akkor hibát jelez. Azonban elvileg nem kellene kézzel megadni semmit, mert a -1-re állított paramétereket a Windows által visszaadottakkal helyettesíti.
-1-es paramétereknél hibát jelez, csak akkor mûködött amikor kézzel beírtam, hogy 80/2/9
Lehet, hogy a Windows agyában benne maradt az elõzõleg használt normál 720-as adatai? Na majd kipróbálom, hogy mi lesz, ha egy 1.44-es után teszem be.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #101 on: 2010.July.06. 11:20:12 »
-1-es paramétereknél hibát jelez, csak akkor mûködött amikor kézzel beírtam, hogy 80/2/9

Az bug lehet :?: Elvileg nem kellene hasznosnak lennie a kézzel beírt adatoknak igazi floppynál, mert az emulátor a Windowstól lekérdezi a tényleges paramétereket.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #102 on: 2010.July.06. 11:30:09 »
Az bug lehet :?: Elvileg nem kellene hasznosnak lennie a kézzel beírt adatoknak igazi floppynál, mert az emulátor a Windowstól lekérdezi a tényleges paramétereket.
De itt elvileg a Windows nem is tudhatja, mert ahol lennie kéne a paramétereknek a boot sectorban ott zagyvaság van, leginkább nullák.

Tudnál egy olyan kis progit fordítani, ami kiírja, hogy mit mond a Windows az adott lemezre?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: ep128emu 2.0.8
« Reply #103 on: 2010.July.06. 11:58:59 »
Tudnál egy olyan kis progit fordítani, ami kiírja, hogy mit mond a Windows az adott lemezre?

Nem teszteltem, de talán működik: :oops:
  [ Guests cannot view attachments ]
  [ Guests cannot view attachments ]
Paraméterként meg kell adni a kiírandó lemezek listáját (pl. \\.\A: az A: floppy-t írja ki).
« Last Edit: 2010.July.06. 15:57:54 by IstvanV, Reason: Javított verzió »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14721
  • Country: hu
    • http://enterprise.iko.hu/
Re: ep128emu 2.0.8
« Reply #104 on: 2010.July.06. 12:29:24 »
Nem teszteltem, de talán mûködik: :oops:
*** error opening disk  :oops:

Simán is meg paraméterrel is.