Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 400928 times)

Offline szalai56

  • EP user
  • *
  • Posts: 291
Re: EP128emu
« Reply #780 on: 2016.October.16. 16:08:34 »
Bocsánat, ezt a rom.bin -t mivel tudom kicsomagolni?

Köszi
« Last Edit: 2016.October.16. 18:48:42 by szalai56 »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #781 on: 2016.October.16. 18:05:42 »
A makecfg automatikusan kicsomagolja, ha ilyen nevű file-t talál a "roms" alatt, illetve kész verzióknál az installer letölti. Ugyanez a csomag .zip formátumban:
[ Guests cannot view attachments ]

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #782 on: 2016.October.16. 23:06:28 »
[ Guests cannot view attachments ]

Most már grafikus felületen konfigurálható az SD kártya emuláció, és lehetőség van tömörített formátumú snapshot és demo file-ok mentésére (ez a "Machine configuration" ablakban engedélyezhető, de a Ctrl+F9-el készített "quick snapshot"-ra nincs hatása). A tömörítő sebességét sikerült többé-kevésbé elfogadhatóra javítani, összehasonlításképpen a Total Eclipse demo elejéről készült snapshot mérete:
  166082 byte - az emulátorral mentve (Alt+S)
  525131 byte - ugyanez kicsomagolva
  166023 byte - újra tömörítve a parancssoros epcompress-el, hasonló paraméterekkel (-blocksize 65536 -maxoffs 65536)
  163585 byte - parancssoros epcompress, maximális tömörítés (-raw -9 -maxoffs 262144)
  167285 byte - gzip formátum 7za-val (parancssoros 7-Zip) létrehozva, ez kisebb file-t készít mint az eredeti gzip és zip programok

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #783 on: 2016.October.16. 23:34:43 »
Most már grafikus felületen konfigurálható az SD kártya emuláció
:smt038

Kipróbáláshoz 64-ksra növelt SDEXT.

Azt esetleg lehetne, úgy általában is, hogy rövidebb ROM fájlt FF-ekkel felkerekítsen a szükséges méretre?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #784 on: 2016.October.16. 23:42:42 »
Kártya (azaz jelenesetben VHD) cseréhez, ezeket az infókat kaptam a hardver tervezőjétől:
Quote
A kártya detektálásának lépései:

1. kártyacsere ellenőrzése

2. ha volt kártyacsere, akkor az inicializáló rutin meghívása -> ez már jelzi, hogy van-e működőképes kártya az adott foglalatban

3. inicializálás után lehet hívni a blokkszám lekérdezését


Az SD kártyákat mindig inicializálni kell behelyezés után, addig semmilyen művelet nem végezhető velük. A 2 foglalat INSERT és DISKCHNG jeleit közösítettem, mert a CPLD-ben már fogytán voltak az erőforrások. Így, ha bármelyik kártyát kiveszik vagy újat tesznek be, a DISKCHNG bit aktiválódik (sajnos mind kivételre, mind pedig behelyezésre aktiválódik a bit, ezzel nincs mit tenni). Az inicializáló rutin az összes foglalatban lévő kártyát újrainicializálja, függetlenül, hogy ott nem is volt változás. Ezt érdemes figyelembe venned, ha az a terved, hogy az 1Hz-es megszakításból figyeled a kártyacseréket.

A jelenlegi SDEXT verzió még nem foglalkozik vele :oops: Így kártya csere után Not ready lesz, mivel nem lett inicializálva a kártya.
Ennek az emulációja még hiányzik. (Azaz, hogy csere után várjon az inicializálásra.)
Ha ez is meglesz, akkor már az új ep128emu segítségével készülhet a következő SDEXT :smt038

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #785 on: 2016.October.17. 11:44:14 »
Azt esetleg lehetne, úgy általában is, hogy rövidebb ROM fájlt FF-ekkel felkerekítsen a szükséges méretre?

Ez megoldható lenne, bár a file méret ellenőrzésnek az is a célja, hogy ne lehessen nem ROM file-t betölteni. :) Azonban a 64K-s ROM a 04-07h szegmensekre már nem elég, kell még egy külön file a lapozható flash ROM céljára. Ilyen ROM-okra itt található példa. A 7-es szegmens valójában nem is használt ha engedélyezett az SD kártya. De nem tudom, a külön programozható 64K ROM mennyire hasznos az emulátorban, és snapshot kezelésnél problémás is (mert így a ROM image már tulajdonképpen írható "lemez"; szerk.: esetleg a tartalmát menteni lehetne, és töltés után Shift+F11-ig írásvédett ROM lenne), talán a flash emuláció helyett elég lenne a korábbi megoldás ami csak a 7-es szegmenst lapozza és nem írható?

Ennek az emulációja még hiányzik. (Azaz, hogy csere után várjon az inicializálásra.)

Itt pontosan mit is kell tenni az emulátornak? Az Xep128 forráskód szerint ez olvasható az 1-es regiszteren, és ennek az írásakor az 5. bit beállítása törli a lemezcserét:

case 1: // status reg: bit7=wp1, bit6=insert, bit5=changed
                   (insert/changed=1: some of the cards not inserted or changed)


A 9-es parancsnál hiányzik még a lemez méretének a lekérdezése, ezt ugyan VHD megnyitásakor az emulátor kiszámítja, de jelenleg nem olvasható. :oops:
« Last Edit: 2016.October.17. 11:56:06 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #786 on: 2016.October.17. 12:42:09 »
Ez megoldható lenne, bár a file méret ellenőrzésnek az is a célja, hogy ne lehessen nem ROM file-t betölteni. :)
Esetleg legyen egy figyelmeztető kérdés, hogy tényleg akarod-e :-)
Alapvetően régen EP-n úgy tároltam a ROM fájlokat, hogy olyan hosszú amennyi kód van benne. Most is pl az SDEXT04 az csak 5289 bájt :-) amit fel kellett kerekíteni 64K-ra, hogy elfogadja.

Quote
talán a flash emuláció helyett elég lenne a korábbi megoldás ami csak a 7-es szegmenst lapozza és nem írható?
Végülis emulátoron a fájlok frissítésével/konfigurálásával meg lehet oldani a ROM frissítést, flash emuláció már csak flashelő program fejlesztéshez érdekes. De az megoldható Xep128 alatt is.

Quote
Itt pontosan mit is kell tenni az emulátornak?
Az írás/olvasás parancsok Not ready-t adnak vissza (sd_wait_ready), amíg nincs inicializálva (sd_init) a kártya (típustól függően CMD1 vagy CMD41 parancs).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #787 on: 2016.October.17. 15:19:25 »
Angol Spectrum emulátor ROM, ez is mehet a ROM csomagba.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #788 on: 2016.October.17. 19:54:13 »
Itt pontosan mit is kell tenni az emulátornak? Az Xep128 forráskód szerint ez olvasható az 1-es regiszteren, és ennek az írásakor az 5. bit beállítása törli a lemezcserét:

case 1: // status reg: bit7=wp1, bit6=insert, bit5=changed
                   (insert/changed=1: some of the cards not inserted or changed)


Nos, a Xep128-ban valojaban tenyleg nincs olyan, hogy "nem inicializalt a kartya". Elfogadja azokat a parancsokat, amit ilyenkor szokas csinalni, de ezek hianyaban is mukodne, ami mondjuk persze sajna nem egyezik a valosaggal, de "fix" SD image eseten ez elvileg tul sok vizet nem zavar, ha az SDEXT amugy is tutira megcsinalja, akkor valodi gepen is megy. Az mas kerdes, hogy "hot swap" eseten persze jo, ha ez is tesztelheto ...

Quote
A 9-es parancsnál hiányzik még a lemez méretének a lekérdezése, ezt ugyan VHD megnyitásakor az emulátor kiszámítja, de jelenleg nem olvasható. :oops:

Marmint ez Xep128-ban - elvileg - benne van. Vagy ugy ertetted, hogy ep128emu-ban nincs? _size_calc() fuggveny modositja a _read_csd_answer tombot, amit a 9-es parancs visszaad aztan. A fenti fuggveny a sdext_check_and_set_size()-bol van hivva. Hmm ... ha minden igaz :D Arra persze nem eskudnek meg, hogy ez igy tuti jo most, ahogy van. Ha jol remlik Zozo tesztelte (meg o is kerte ezt), es par probalkozas utan jonak tunt szerinte. *Ha* jol emlekszem :) Ami megmaradt az az, hogy nagyokat karomkodtam magamban, hogy milyen pepecs munka a CSD valaszt atirni, meg az egesz meret dolgot csinalni :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #789 on: 2016.October.17. 22:54:08 »
Vagy ugy ertetted, hogy ep128emu-ban nincs?

Eddig nem volt, de már van:
[ Guests cannot view attachments ]
Szintén támogatottak a fent említett állapot bitek (írásvédelem, nincs kártya, kártya csere; ez a byte a debuggerben olvasva az alsó két biten a cs0 és cs1 állapotát adja vissza), bár az image file nélküli E0h/C0h érték nem biztos, hogy helyes. Kártya csere után inicializálásra van szükség, erre a célra csak a CMD1 megvalósított, ha nincs kártya, akkor az inicializálás sikertelen.

Most már lehetőség van snapshot mentésre is, de ez csak az SRAM és flash ROM tartalmát tárolja és a ROM lapozóregisztert, illetve hogy a hardver engedélyezett-e. Jelenleg a használhatóságát rontja, hogy töltéskor kártya cserét állít be. :) A demo felvétel és lejátszás pedig kártya nélküli állapotot, ami nem igazán felhasználóbarát, mert a demo után az image-t újra meg kell nyitni.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #790 on: 2016.October.17. 23:05:25 »
Most már lehetőség van snapshot mentésre is, de ez csak az SRAM és flash ROM tartalmát tárolja és a ROM lapozóregisztert, illetve hogy a hardver engedélyezett-e.

Az jo :) Xep128-ba beletettem *nemi* igazan nem tul pontos ep128emu snapshot loading-ot meg anno, de a fo problemam mindig az volt, hogy WD/disk support-ot lusta voltam csinalni, SD-t meg az ep128emu nem tudott, ez nemikepp rontott a hasznalhatosagon :)

Amugy szerintem a Xep128-al nem is nagyon fogok tobbet foglalkozni, nincs ertelme, az ep128emu kvazi mindenben jobb, most meg mar biztosan, mert ugye eddig volt par elonye azert a Xep128-nak (SD kartya, eger ...). Igazabol a letrejottet is az az igeny szulte, hogy kellett nekem par dolog, de az ep128emu es foleg a C++ dolgokhoz kozom nincs (marmint, hogy abba irtam volna bele, sajat emulator helyett).
« Last Edit: 2016.October.17. 23:19:55 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #791 on: 2016.October.18. 07:28:03 »
bár az image file nélküli E0h/C0h érték nem biztos, hogy helyes.
A nem használt bitek 1-esek, ill. a csak írható regiszterek, és nem aktív adat regiszter is FFh-nak olvasható.
Nincs bent kártya: DFh
Kártya bekerül: 3Fh, majd a change bit törlése után 1Fh
Kártya kivétele: FFh, majd a change törlése után DFh

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #792 on: 2016.October.18. 07:33:00 »
de a fo problemam mindig az volt, hogy WD/disk support-ot lusta voltam csinalni,
Mire megcsinálom neked, hogy ne fagyjon le az EXDOS WD nélkül, már nem is érdekel? :oops:

Quote
eddig volt par elonye azert a Xep128-nak (SD kartya, eger ...).
Z180? :-) Elöbb-utóbb aktuális lesz :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #793 on: 2016.October.18. 08:02:24 »
Mire megcsinálom neked, hogy ne fagyjon le az EXDOS WD nélkül, már nem is érdekel? :oops:
Z180? :-) Elöbb-utóbb aktuális lesz :-)

:) Amugy a tervem nem az, hogy Xep128 tobbe egyaltalan ne legyen, de nem biztos, hogy ebben a formaban. Van az Xemu nevu projectem, ami tobb gepet is emulal (pl a mar emlitett Commodore 65 meg Commodore LCD, illetve a Mega-65 is, de abban pl Primo kezdemeny is van mar). Ez igy ilyen generic emulator framework-nek csufolhato valami. Belepakolom abba majd elobb-utobb, igy nem kell ket kulon project-kent kezelni. Nameg benne van meg az emscripten irany, JSep "kivaltasra" is jo lehet, ami hasznos lehet ahhoz a tervhez, hogy weben prezentalni egy-egy EP programot "gyorsan". Az JSep kisse "bena" volt :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #794 on: 2016.October.18. 21:48:59 »
A nem használt bitek 1-esek

Ez biztosan így van? Az eddigi & 0xE0-al működik, viszont | 0x1F-re módosítva a ROM nem találja az F: után a többi logikai meghajtót. :oops: De máshol is lehet a hiba.

Szerk.: a ROM csomag már nem aktuális, mivel az EXDOS frissült, ezért egyelőre töröltem, hamarosan újat készítek.
« Last Edit: 2016.October.18. 21:53:19 by IstvanV »