Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 400011 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #225 on: 2013.April.15. 17:19:41 »
A WinGDB semmiképp nem nyerő, az nem standalone, hanem egy plugin, és nem támogat VS -hoz express verziókat:

WinGDB supports:
[ul]
  • Visual Studio 2005
  • Visual Studio 2008
  • Visual Studio 2010
  • Visual Studio 2012
[/ul]All editions are supported except Express editions.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #226 on: 2013.April.15. 17:20:17 »
Jó lesz az a másik szerintem ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #227 on: 2013.April.17. 10:24:07 »
Az itt említett Z80 resetelés javítva (módosított forrás fájl csatolva).

István! Arra tudnál tippet adni, hogy a bekapcsoláskori véletlenszerű regiszter feltöltődést hogyan lehetne emulálni? Emlékeim szerint a Nicknél már lett ilyen csinálva, hogy az EXOS 2.0 keretszín bugja látható legyen, ahogy az igazi gépen is.
« Last Edit: 2013.April.17. 12:25:49 by Zozosoft »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #228 on: 2013.April.17. 11:15:36 »
Quote from: Zozosoft
István! Arra tudnál tippet adni, hogy a bekapcsoláskori véletlenszerű regiszter feltöltődést hogyan lehetne emulálni?
A z80funcs2.cpp-ben a Z80::Z80() függvény a Z80 első inicializálása. Ez csak az emulátor indításakor fut le, minden más esetben (bármilyen reset, snapshot betöltés, stb.) csak egyszerű Z80::reset() történik. Tehát a véletlenszerű regisztereket ide lehetne beépíteni, a memset() és a reset() közé, de elvileg kerülhetne a reset()-be is, hogy mindig véletlenszerű legyen, ha ez nem is felel meg pontosan a valódi gépnek. Egy másik lehetőség az Ep128VM::reset()-ben (ep128vm.cpp) 'isColdReset' esetén véletlenszerűsíteni a Z80 regisztereket. Hasonló reset függvény azonban van még külön a Spectrum és CPC emulációhoz is.

A véletlenszerű inicializálásra egy lehetséges megoldás:
Code: [Select]
#include "system.hpp"
...
{
  int     seed = 0;
  Ep128Emu::setRandomSeed(seed, Ep128Emu::Timer::getRandomSeedFromTime());

  R.AF.W = Z80_WORD(Ep128Emu::getRandomNumber(seed) & 0xFFFF);
  ...
}

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #229 on: 2013.April.17. 12:27:34 »
Köszi!
Quote from: IstvanV
A z80funcs2.cpp-ben a Z80::Z80() függvény a Z80 első inicializálása. Ez csak az emulátor indításakor fut le
Ez szerintem elég jó lesz bekapcsoláshoz :-)
Akkor itt kiegészítettem a rnd feltöltéssel.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #230 on: 2013.April.23. 21:25:21 »
Na végre megint lett időm, itt az eszközös floppy kezelés javítása win -re.

Természetesen lehet benne hiba, abszolút nó varangy, úgyhogy nem nekiesni a pótolhatatlan lemezeknek vele, hanem próbálgatni. Szerintem jó lesz.

Csak win -en fordítottam, de mivel egy #ifdef van csak benne, mas rendszereken is fordulnia kéne. Maga a módosítás csak az adott fordítási modulra terjed ki, vagyis csak a floppy kezelésre lesz hatással, mást nem módosít. És azt is csak win -en, más platformokon nincs különbség.

A file buffer kikapcsolása nem lett megvalósítva a javított kódban, vagyis mostmár bufferelten fog működni. Ez miért lett kikapcsolva vajon az eredetiben, ill. nélkülözhetetlen -e ? Működni nekem így is működik ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #231 on: 2013.April.23. 21:28:47 »
Ja, és eszközzel próbáltam ugye, de image -dzsel meg nem ... tehát azt is ellenőrizni kell, hogy az meg jó maradt -e ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #232 on: 2013.April.23. 21:40:44 »
És még valami. Mivel az eszköz floppy -t mostantól lock -olni kell, ezért ha valahol listazva van a floppy tartalma (explorer, totál kapitány), akkor csak read -only -ban nyílik majd meg a lemez, tehát az emuban úgy fog látszani, mintha írásvédett lenne a lemez.

Ugyanez fordítva, ha emu be tudta lock -olni a floppy -t, akkor nem lehet majd listázni előző helyeken, hibát fognak dobni az iménti programok.

Szintén nem próbáltam ki, de 99% hogy a lock -olás csak akkor sikerül majd ha admin jogokkal fut az emu. Ha nem, akkor megintcsak read- only lesz a lemez.
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #233 on: 2013.April.23. 22:38:53 »
Első próbák alapján működik! :smt038

Egy apróság, nem az utolsó WD177x.cpp lett módosítva, megint írhattam át rakás 240-t 254-re :oops:

Quote from: Z80System
A file buffer kikapcsolása nem lett megvalósítva a javított kódban, vagyis mostmár bufferelten fog működni. Ez miért lett kikapcsolva vajon az eredetiben, ill. nélkülözhetetlen -e ? Működni nekem így is működik ...
Én sejtem, legalábbis nagyon úgy tűnik visszajött az a hiba, amit István egyszer kijavított :oops:
Az emulált EP befejezi az írást, visszajön a prompt, az ember dolgozna tovább, erre megakad egy kicsit, mert az emu nekiáll kiírni a lemezre a puffert.
Mondjuk úgy emlékszem, hogy akkor valami időzítést vett István kicsire.

A lockolás jól működik, nem kell rendszergazdaként indítani.
A megnyitott Totális Parancsnok ablak se baj, attól még nyugodtan lockolja az emu a lemezt, és ha esetleg újra a Parancsnok lesz az aktív ablak, akkor mondja, hogy nem tudja olvasni az A:-t
Sőt ez így sokkal jobb lett, mert korábban tapasztaltam adatvesztést amiatt, hogy a Parancsnok nem vette észre, hogy az emu írt a lemezre, ezért én mindig azt csináltam, hogy kivettem a lemezt, ráolvastam az üres A-ra, majd utána a visszatett lemezre, hogy biztosan az aktuális adatokat olvassa.
Most, az emu futása után a Parancsnok egyből frissít, gondolom megtudja a Win-től, hogy ez közben lockolt meghajtó volt, frissíteni kell.

Itt a lefordított EXE, hogy a többiek is tudják próbálgatni.
Meg 254 track-esre javított CPP :oops:

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #234 on: 2013.April.23. 23:17:47 »
Quote
Egy apróság, nem az utolsó WD177x.cpp lett módosítva, megint írhattam át rakás 240-t 254-re

Használj valami ilyen programot forrás file -ok összefésülésére:

http://winmerge.org/

Ez pld. egy ingyenes példány.

Ha egy ilyennel ránézel 2 forrás file -ra, akkor egyből megmutatja grafikusan, hogy hol vannak az eltérések közöttük, és egyből láttad volna, hogy én csak egy darab összefüggő blokkot szúrtam be a forrásba, azt az egy blokkot 2 klikkeléssel át tudod benne dobni az általad már hekkelt file -ba, és nem kellett volna újraírogatni semmit ...

Egyébként pedig idővel kapni fogunk majd svn hozzáférést az emu repójához, akkor csökkennek a kézi összefésülések majd.

Quote
Én sejtem, legalábbis nagyon úgy tűnik visszajött az a hiba, amit István egyszer kijavított
Az emulált EP befejezi az írást, visszajön a prompt, az ember dolgozna tovább, erre megakad egy kicsit, mert az emu nekiáll kiírni a lemezre a puffert.
Mondjuk úgy emlékszem, hogy akkor valami időzítést vett István kicsire.
Jó, akkor megkeresem hogy kell kikapcsolni winen a bufferelt írást, hogy ugyanúgy működjön ... Időzítésről én mit sem tudok ...

Quote
A lockolás jól működik, nem kell rendszergazdaként indítani.
Szupi akkor (nem ezt olvastam), de biztos nem ragadt át az emura a TC -ből, vagy valahonnan máshonnan az admin jogkör ?

Quote
A megnyitott Totális Parancsnok ablak se baj, attól még nyugodtan lockolja az emu a lemezt, és ha esetleg újra a Parancsnok lesz az aktív ablak, akkor mondja, hogy nem tudja olvasni az A:-t
Sőt ez így sokkal jobb lett, mert korábban tapasztaltam adatvesztést amiatt, hogy a Parancsnok nem vette észre, hogy az emu írt a lemezre, ezért én mindig azt csináltam, hogy kivettem a lemezt, ráolvastam az üres A-ra, majd utána a visszatett lemezre, hogy biztosan az aktuális adatokat olvassa.
Most, az emu futása után a Parancsnok egyből frissít, gondolom megtudja a Win-től, hogy ez közben lockolt meghajtó volt, frissíteni kell.
Ok, én csak egyik irányt próbáltam (mikor a TC nem látja már az emu -ban lockolt drive -ot, pontosabban nem fér hozzá), ha másik irányból el tudja venni az emu a drive -ot a TC -től, akkor még jobb. ( Bár gondolom, ha éppen írja a TC a lemezt, akkor azért mégsem fog az neki sikerülni... nem ? )
« Last Edit: 2013.April.23. 23:21:35 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #235 on: 2013.April.23. 23:29:59 »
Magát a buffert kikapcsolni egy flag használatával is ki lehet ezzel a jelenlegi file API -val, viszont az megkoveteli hogy szektorhatárra legyen align -olva az írás ... Tehát hogy csak egész szektorokat írjon.

Tudunk erről valamit ? Hogy az emu szektoronként írja -e a floppy -t ? Mert ha úgy írná, akkor egy pillanat műve berakni.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #236 on: 2013.April.23. 23:31:54 »
ráadásul "fizikai" szektor -ra igazítva, nem pedig "logikai" szektorra ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: EP128emu
« Reply #237 on: 2013.April.23. 23:35:49 »
Valami 512 -es értékkel szorozza meg fixen a kiírni akart szektorok indexét/számát. Lehetséges hogy floppy -nál mindíg 512 byte egy szektor (track) ?
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #238 on: 2013.April.23. 23:36:24 »
Quote from: Z80System
Tudunk erről valamit ? Hogy az emu szektoronként írja -e a floppy -t ?
Igen úgy írja, mivel az igazi WD is úgy írja.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #239 on: 2013.April.23. 23:38:56 »
Quote from: Z80System
Valami 512 -es értékkel szorozza meg fixen a kiírni akart szektorok indexét/számát. Lehetséges hogy floppy -nál mindíg 512 byte egy szektor (track) ?
EP-s lemezen mindig 512 bájt egy szektor.
Viszont majd egyszer jó lenne ezt is beállítható paraméterré tenni, hogy lehessen majd a zx128emu módba floppyt varázsolni, ott pedig mint a SpeccyDOS mind a Beta Disk 256 bájtos szektorokat használ.
Egyébként a WD 128/256/512/1024 bájtos méreteket ismer.