ENTERPRISE KLUB
2019. szeptember 7., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: ep128emu 2.0.8 (Read 81354 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
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.

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
    • 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:

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
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.

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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 :-)

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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: 4806
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Links 2.2 Links 2.2
    • View Profile
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.

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
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.

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
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.

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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: 4806
  • OS:
  • Linux 64 bit (Suse) Linux 64 bit (Suse)
  • Browser:
  • Firefox 3.5.4 Firefox 3.5.4
    • View Profile
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:
  * diskparm.exe (6 kB - downloaded 234 times.)
  * diskparm.cpp (3.33 kB - downloaded 280 times.)
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ó »

Online Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • 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.