Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 399437 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #210 on: 2013.April.15. 00:26:43 »
Normál file floppy image -be jól működik az emu ?

Csak direkt floppy -ra íráskor vacakol ? (Most mindegy, hogy a direkt floppy az vas vagy emulált floppy)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #211 on: 2013.April.15. 01:14:06 »
Na, a mai alkalom akkor annyira volt elég, hogy lefordítsam a cuccot, összelőjem a GDB -t ( mindenféle vackok kellenek meg az IstvanV mingw -jéhez hogy a GDB is menjen ), meg begerjesszem a virtuális floppy mókát, meg kicsit megismerkedjek a GDB -vel, de mostmár akkor a következő időkben tudok majd effektíven a problémával is foglalkozni.
(Nem is baj, hogy kicsit ezzel is megismerkedek, ki tudja mikor fog kelleni...)

Egyetlen kézzelfogható eredmenye a mostani szessönnek, hogy a mérhetetlen debuggolások közepedte felismertem, hogy amit mondasz CreateFile, az le sem fut a mi esetünkben ... :)

Ezért kell a debugger, mert ketten is néztük, mégsem lattuk:

#ifdef WIN32
    if (std::strlen(fileName) < 5)
      return 0;                 // return value == 0: regular file
    if (!(fileName[0] == '\\' && fileName[1] == '\\' &&
          fileName[2] == '.' && fileName[3] == '\\')) {
      return 0;
    }
    DISK_GEOMETRY diskGeometry;
    HANDLE  h = INVALID_HANDLE_VALUE;
    DWORD   tmp;
    bool    retryFlag = false;
    while (true) {
      h = CreateFileA(fileName, (DWORD) 0,
                      FILE_SHARE_READ | FILE_SHARE_WRITE,
                      (LPSECURITY_ATTRIBUTES) 0, OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL, (HANDLE) 0);
      if (h == INVALID_HANDLE_VALUE)
        return -1;              // return value == -1: error opening device
      if (DeviceIoControl(h, IOCTL_DISK_GET_DRIVE_GEOMETRY,
                          (LPVOID) 0, (DWORD) 0,
                          &diskGeometry, (DWORD) sizeof(diskGeometry),
                          &tmp, (LPOVERLAPPED) 0) == FALSE) {


Ha megnézed az első 2 if -et, akkor látod, hogy ha a bejövő filename (ami a mi esetünkben most : "\\.\A:" ugye ...) hossza kisebb mint 5 karakter, vagy az eleje megegyezik a "\\.\" -rel, akkor ez a függvény egyből visszatér ...

Szal ennek a CreateFile -nak semmi köze a dologhoz ...

Ezt az első 2 if -et esetleg már hekkelte valaki ? Vagy ez így volt már akkor is, mikor még jól működött az emu ?
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #212 on: 2013.April.15. 09:18:12 »
Quote from: Z80System
Na, a mai alkalom akkor annyira volt elég, hogy lefordítsam a cuccot, összelőjem a GDB -t ( mindenféle vackok kellenek meg az IstvanV mingw -jéhez hogy a GDB is menjen ), meg begerjesszem a virtuális floppy mókát, meg kicsit megismerkedjek a GDB -vel, de mostmár akkor a következő időkben tudok majd effektíven a problémával is foglalkozni.
Ehhez akkor tudnál receptet írni? Lenne majd még más debuggolni való probléma is.

Quote
Ha megnézed az első 2 if -et, akkor látod, hogy ha a bejövő filename (ami a mi esetünkben most : "\\.\A:" ugye ...) hossza kisebb mint 5 karakter, vagy az eleje megegyezik a "\\.\" -rel, akkor ez a függvény egyből visszatér ...

Szal ennek a CreateFile -nak semmi köze a dologhoz ...
A másodiknál van egy not az elején :oops:
Vagyis akkor tér vissza, ha 5-nél rövidebb, vagy az eleje nem "\\.\"!
« Last Edit: 2013.April.23. 22:49:11 by Zozosoft »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #213 on: 2013.April.15. 09:29:59 »
Quote
Ehhez akkor tudnál receptet írni? Lenne majd még más duboggolni való probléma is.

Igen, 3 dolgot le kell tölteni, be kell másolni, és a scons -ban egyet módosítani, és megy a GDB, összeírom ezeket nemsokára.

Quote
A másodiknál van egy not az elején
Vagyis akkor tér vissza, ha 5-nél rövidebb, vagy az eleje nem "\\.\"!
De. Valóban... az úgy akkor logikailag helyrerakná a dolgokat, a gyakorlatban meg most akkor 2 dolog lehet: vagy benéztem valamit a GDB -ben (ugye most láttam először) és nem is tért vissza, vagy pedig nem az a karakterszekvencia van megadva a fileName -ben, mint ami kéne. Furcsa is volt, hogy a fileName -re a gdb azt írja ki hogy "\\\\.\\a:", de azt hittem, hogy ez valami output formázási gáz csak, és a változóban a jó string van ... persze még mindíg lehet az első is, hogy csak benéztem ... na majd megnézem.
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #214 on: 2013.April.15. 13:59:26 »
Quote from: Z80System
Furcsa is volt, hogy a fileName -re a gdb azt írja ki hogy "\\\\.\\a:"
Ez nem hiba, a \ a C nyelvben speciális "escape" karakter, amit valóban kétszer kell írni ahhoz, hogy egyszerű nyomtatható \ karaktert jelentsen.

Debug fordításnál célszerű letiltani az optimalizálást (-g -O0), mert az "megkeverheti" a változókat és az utasítások sorrendjét, és egyes változók el is tűnhetnek. Optimalizálás nélkül gyorsabb is a fordítás, ezzel és párhuzamos (-j) módban másodpercek alatt lefordítható az egész forráskód.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #215 on: 2013.April.15. 14:44:57 »
Quote
Ez nem hiba, a \ a C nyelvben speciális "escape" karakter, amit valóban kétszer kell írni ahhoz, hogy egyszerű nyomtatható \ karaktert jelentsen.
Természetesen, de attol meg ha a változó ezt írja ki a GDB -ben runtime, az gáz mert az escape szekvenciák compile time információk, amik a fordítónak szólnak, a változóban már csak átverésként szerepelhetnének. Márpedig az volt benne.


Quote
Debug fordításnál célszerű letiltani az optimalizálást (-g -O0), mert az "megkeverheti" a változókat és az utasítások sorrendjét, és egyes változók el is tűnhetnek. Optimalizálás nélkül gyorsabb is a fordítás, ezzel és párhuzamos (-j) módban másodpercek alatt lefordítható az egész forráskód.
Thx, optimalizációt nem vettem ki, lehet hogy a változó tartalmát is azért írja ki rosszul ...
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #216 on: 2013.April.15. 14:59:55 »
Quote from: Z80System
Természetesen, de attol meg ha a változó ezt írja ki a GDB -ben runtime, az gáz mert az escape szekvenciák compile time információk, amik a fordítónak szólnak
A GDB is ezt a formátumot használja, így a nem nyomtatható karaktereket (pl. '\n') is ki tudja írni.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #217 on: 2013.April.15. 15:00:49 »
Quote from: IstvanV
Ez nem hiba, a \ a C nyelvben speciális "escape" karakter, amit valóban kétszer kell írni ahhoz, hogy egyszerű nyomtatható \ karaktert jelentsen.

Ezert utalom a DOS baromsagat, hogy pont a \-t valasztottak dir separatornak, UNIX-nal ez pl /. Bar allitolag amikor DOS-ba a UNIX szeru konyvtarak fogalmat behoztak akkor eredendoen /-t akartak ahogy ott is van, csak rajottek h gaz van, mert DOS-os command-oknal a / azok altalaban kapcsolok ugye (ez UNIX-nal altalaban minusz jel viszont), es sok program onnan akarta megmondani hogy a parancssoraban file nev van vagy kapcsolo, hogy a / jellel kezdodik akkor kapcsolo ... Ezert inkabb \-t hasznaltak. Mondjuk a DOS amugy is oszver, mert a CP/M meghajtobetujel otletet sikeresen kevertek a UNIX-ok hierarchikus konyvtarszerkezetevel (UNIX-ban ugye nincsenek meghajtobetujelek) es lett egy ilyen ize belole. Bar ahogy remlik DOSRUN-os idokbol, a DOS-ban megvan a nyoma hogy /-t is felismeri dirseparatornak valahol, sot pl a UNIX style device specifikaciot (CON helyett pl \DEV\CON, utalva a szokasos unix-os /dev/ strukturara). Ize, lehet tenyleg kene egy "elkalandoztam" topic, mert ez se igazan ide illik :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #218 on: 2013.April.15. 15:04:17 »
Akkor nem marad más hátra mint hogy benéztem valamit, vagy hogy esetleg a szimbóluminformáció és az optimalizáció összeveszett és mást mutatott.

Majd megnézem.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #219 on: 2013.April.15. 15:19:06 »
Debuggolni pedig úgy lehet winen, hogy a korábbi Zozosoft összefoglalóhoz képest még az ember letölti ennek a három libnek a binárisát:

http://sourceforge.net/projects/mingw/files/MinGW/Extension/expat/expat-2.0.1-1/
http://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/libiconv-1.13/
http://waterlan.home.xs4all.nl/libintl.html

És bemásolja a mingw\bin mappába.

Ekkor a GDB már elkezd működni, es a Sconstruct file -ba pedig ideiglenesen át kell írni, hogy a használt konfiguráció mellett (amelyik ág lefut a debug/release flag- ek hatására) a compilerFlags változó -g kapcsolót és -O0 kapcsolót tartalmazzon. (Ha van másik optimalizációs flag, pld. -O3, akkor azt gondolom el kell távolítani, csak a -O0 maradjon a debuggolni szándékozott verzió fordításának idejére.)

Egyébként pedig a GDB -hez vannak tutorial -ok a neten, számottevően számtalan számra ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #220 on: 2013.April.15. 15:23:27 »
Pld. itt van egy GDB for dammiz:

http://www.dirac.org/linux/gdb/
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #221 on: 2013.April.15. 15:36:59 »
Tényleg, Linux baglyok !

Nem lehet hogy van windows -ra valami GUI frontend a GDB -hez ? Mert ha lenne, akkor nem kellene kínlodjunk itt a parancssoros GDB -vel, nyomhatnánk kényelmesen ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #222 on: 2013.April.15. 15:41:23 »
Juhúúúúú ! Sztm ez lesz a mi barátunk:

http://www.affinic.com/?page_id=109

Van ilyen is de ez nem ingyenes:

http://www.wingdb.com/
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #223 on: 2013.April.15. 15:42:41 »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #224 on: 2013.April.15. 16:15:38 »
Quote from: Z80System
Juhúúúúú !

http://www.affinic.com/?page_id=137
Így már kezd szimpatikus lenni a dolog :-)