Welcome, Guest. Please login or register.


Author Topic: Xep128 (Read 166821 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #210 on: 2016.March.11. 20:26:47 »
Ujabb orulet a reszemrol, Primo felig hardware emulator a Xep128-on belul :-/ Mondjuk sajnos windows build-et nem tudok adni, mert melohelyen koltozes van, igy a szokasos build szerverem nem elerheto. Szoval max forraskodban van meg a github-on ...

Amugy csak az jutott eszembe, hogy nem is tudom van-e Primo emulator nem Windows ala ... Es inkabb nem irnek egyet, mert belerakhatom a Xep128-ba, olyas forman, hogy amugy tovabbra is EP-kent fut a gep (tehat LPT stb minden megy!) csak eppen az I/O portok ertelmezese kerul lecserelesre a 0x40 alatti I/O port tartomanyban, amig fut az emulator. Igy viszont persze az idozitesek/orajel precizitasatol eltekintve kb pontos emulacio, azaz az eredeti Primo ROM image van, amivel a keyboard is megy.

Mondjuk speciel az EP->Primo scancode konvertalas nincs kesz, tehat random elegge, hogy milyen gomb megnyomasara mi tortenik :) De ide csak egy konverzios tabla kene.

Illetve azert persze a ROM-ot kesobb megse artana patch-elni, mivel pl betoltes/kimentes mukodhetne is akar (mivel a primo emu mod I/O porton kapcsolhato, a ROM le is kapcsolhatja "maga alatt" idolegesen amig EXOS funkciot hiv ehhez, akarmi), igy tul sok ertelme meg azert nincs.

A jelenlegi kod ugyan C-ben van irva, de amugy I/O portos dolgok, LPT felepites stb, ez a resze mukodhetne normal Z80 gepi kodbol is, ami egyedul Xep specifikus, az a primo mod bekapcsolasa, ami egyreszt a VINT -et a Nick-rol NMI-ve forditja, masreszt az emlitett I/O port tartomany ertelmezes es annak specialis lekezelese. Elvileg nem lenne lehetetlen ilyen hardware-t a valosagban sem epiteni, bar azert nehany funkcioja trukkos lenne a ZX Spectrum emu NMI-trap jellegu megoldasat nem hasznalva (amit itt nem igazan lehet hasznalni, ui a Primo eleve hasznalja az NMI-t ...).

A kepeken a hatter szandekosan piros, persze lehetne fekete is ...

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #211 on: 2016.March.11. 21:26:42 »
Az akadozást az okozhatja, hogy az időzítést továbbra is az emu_timekeeping_delay() végzi, és az audio puffer állapotát nem veszi figyelembe. Így idővel "elmászik" az időzítés, és a puffer megtelik (overrun) vagy elfogy az adat (underrun), azaz szaggat a hang. Erre az egyszerűbb megoldás az emu_timekeeping_delay() helyett az audio puffer írásánál várakozni (pl. SDL_SemWait()) ha megtelik, amíg újra lesz szabad hely. Így azonban teljesen az audio drivertől függ az időzítés, tehát könnyen előfordulhat, hogy a kép fog akadozni. Egy másik lehetőség az eredeti időzítő rutinban a sebességet szabályozni az audio puffer állapotától függően (gyorsítani 50% alatt, lassítani 50% felett).

Egyertelmu, tenyleg nincs figyelembe veve :) Jelenleg max a szerencse, hogy kb olyan sebeseggel jatszik le ahogy az emu megy, de ugye tokeletesen sose fog megegyezni, tehat valoban, ezt majd az idozitesnel tenyleg figyelmbe kene venni :) Mondjuk spec otletem sem volt, hogy az SDL-ben hogy tudom meg a puffer allapotat, en arra tippeltem, hogy az SDL altal meghivott audio callback altal allitott "lejatszasi pointer"-t (mert ugye az altalam hasznalt puffer az joval nagyobb mint az SDL-tol kert/altala kapott puffer meret amit a callback-nek fel kell toltenie) es a Dave altal irt "felvetele pointert" figyelem, mert az alapjan latszik.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #212 on: 2016.March.12. 21:01:31 »
Probalkoztam egy win32 build-el, hogy legyen Windows exe, de SDL 2.0.4 volt keznel, de 2.0.2-es DLL-el, szoval nem tudom ... Mindenesetre a szokott helyre kirakva. Ajanlott tesztelesi mod, ha vkit erdekel:

:XEP AUDIO

igy hang bekapcs, aztan:

:XEP PRIMO

Uj combined.rom kell hozza (amiben a Primo ROM is benne van, ez garantalja, hogy a Primo ROM nem felulirhato ... ha betoltve lenne ahhoz kepest pl), ami szinten a zip-ben van. Elvileg, ugy-ahogy mar gepelni is lehet "ertelmesen" ...
« Last Edit: 2016.March.13. 14:24:27 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #213 on: 2016.March.15. 11:07:24 »
:) Ja, hat nem nagy szam megcsinalni, csak egy kis copy&paste customizalas, lasd pl JSep-ben is van :) De ugyis ujrairom, addig nem akarok hozzanyulni nagyon. Illetve elobb config file meg ilyenek erdekelnek most eppen.

Ja, es felre ne ertsd, koszi, hogy erdeklodsz es segitesz :) Nem azert irom, hogy nem erdekes, csak mindig van valami ami eppen jobban foglalkoztat, vagy hasonlo. Persze lehet, en latom rosszul, es masnak a hasznalhatosag szempontjabol mas lenne a fontos pont :)
« Last Edit: 2016.March.15. 15:25:06 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #214 on: 2016.March.15. 12:18:28 »
https://github.com/lgblgblgb/xep128/issues

Itt szepen elvagyok magammal, hogy ticket-eket irogatok, mit kene :) Igy legalabb nem felejtem el :)

Persze, elvileg mas is belerondithat oda, ha akar ... :-D
« Last Edit: 2016.March.15. 15:26:44 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #215 on: 2016.March.18. 15:31:37 »
Na, belepakoltam egy csomo "hulyeseget" :) Eloszor is van config file, benne elvileg nemi hulyen megoldott billentyuzetkisztas is, de csak pozicio map megy (tehat ha vmi shift-elve van a PC keyboard-on, EP-re is ugy megy at, es viszont ...). Az elejen - ha meg nem volt config file - kiir egy mintat, aminek elmondja az utvonalat egy ablakban, azt elvileg at lehet irni, meg at kell nevezni config nevre. Illetve command line parameterek is vannak, azzal is allithatoak a dolgok. xep128.exe -help megmondja amit erdemes tudni ...

Masreszt, szabadon configolhato ROM/RAM kiosztas, nem kell folyamatosnak lennie a RAM-nak sem. Ezt mindjart harom modon is lehet vegezni:

command line:

xep128.exe -ram 128      normal, "folyamatos" 128K ahogy EP128-on van, persze 128 helyett mas szam is lehet.
xep128.exe -ram @E0,F0-F3,F7        ez olyat csinal, hogy a felsorolt szegmens/szegmens tartomanyok lesznek RAM

A command line persze mindig felulbiralja a config file-t, ami pedig felulbiralja a built-in default configot (config file nelkul is elindul persze az emulator, nem kotelezo hasznalni). Lehet, masnak ez nem nagy ertek, nekem hasznos, mert altalaban mindent command line-bol csinalok :D

Ugyanez config file-ban is megadhato, akkor nem kell mindig beirni:

ram = 128
ram = @E0,F0-F3,F7

Ugyanez az emulatort futtatva a :XEP interface-en at is elerheto:

:XEP RAM
Ez a parancs megmutatja a memoriakiosztast, pl a ROM-okat is egyben.

:XEP RAM !128
:XEP RAM !@E0,F0-F3,F7

Itt a felkialtojel biztonsagi intezkedes, mert error check csak minimalis van ... nehogy egy extra leutessel egy sima lekerdezeshez kepest atconfiguralja magat, ha nem akarjuk. Ezutan persze auto cold reset lesz, mondanom sem kell. Ez persze nem irodik ki, mint config, csak amig fut az emulator.

ROM-okat is lehet kulon is toltogetni, command line es config file is jatszik esetleg. Formatum:

xep128.exe -rom@00 exosromfilename -rom@10 valami-a-tizes-hex-szegmensre

Gondolom ez alapjan kitalalhato a config file formatum is:

rom@00 = .....
rom@10 = .....

A :XEP-hez kello ROM-ot sajat magabol veszi, egy nem hasznalt szegmensre rateszi, azt nem kell kulon megadni (valojaban kerdeses, hogy regi EXOS-sal menne-e, szerintem nem, mivel ott nem minden szegmenst nezett ha jol tudom ...)

Config file-ba akar az "audio = 1" is berakhato, akkor magatol is lesz hang. Vagy command line-ban az -audio 1   (a 0 ertek a default, hogy nincs)

Stb, SD kartya path stb is adhato persze. Itt fontos, hogy ahol allomanynevek vannak, ott a Xep128 vagy vegigprobal par konyvtarat (pl ahol az exe is van), vagy ha abszulut path (tehat \-el kezdodik win alatt, vagy X:\ szeru modon kezdodik) akkor ugy ahogy van hasznalja, vagy ha a filenev pl @akarmi, akkor a @ helyere a "preferences directory" kerul, ami rendszer (es SDL ...) fuggo, ez latszik amugy amikor kiirja a sample config-ot es elmondja, vagy a :XEP EMU paranccsal is megnezheto.

A primo emulator reszben (:XEP PRIMO) mar lehet gepelni is, hurra :-/ Sokra nem jo, mert betolteni vele vmit nem igazan. Viszont hang is emulalva van pl. Az hogy mennyire pontos - valoszinuleg semennyire, mert egyreszt alapbol is gaz meg a hang a Xep128-al, masreszt Primo-on csak 1 bites software vezerles van, tehat fugg a CPU sebessegetol, ami tutira nem annyi most, mint Primo-on lenne :)

SD kartya emulacio kicsit talan jobb, nem akasztja meg annyira az emulatort, meg par biztonsagi ellenorzes stb is bekerult. Iras tovabbra sincs (meg) ...

APU emulaciot kb atirtam JSep-bol, de sokra nem jo, mivel tesztelni azota sem tudtuk, se hw nincs amihez hasonlitani lehetne, se teszt program :)

A console-t (ez mondjuk nem erdekes, ha nem onnan lett inditva ...) mar nem szemeteli teli. -debug opcioval kerheto log file, es abba irja, ha nincs megadva, akkor nem csinal ilyet, es csak "erdekesebb" dolgokat jeleniti meg az emulator mukodese soran.

A Z80ex-et jocsakan atpofoztam, kiraly dolog az absztrakcio, foleg ha tobb Z80-at emulal az ember egyszerre, de sok ilyen-olyan pointeren at lassabb is volt az egesz, korulmenyesebb, es a kod is nagyobb volt. Igy eleg szepen custom-izaltam mar tobb helyen (pl a Z180 emulacios "kezdemenyrol" nem is beszelve).

Ize, mas nem jut az eszembe hirtelen. Biztos hasznosabbnak iteltetne, ha mas dolgokat irnek pl, pl Nick pontosabb emulacio, hang normalisabban, meg ilyenek :) Csak azert a dolog alapjait akartam volna rendbe tenni eloszor.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14735
  • Country: hu
    • http://enterprise.iko.hu/
Re: Xep128
« Reply #216 on: 2016.March.18. 15:36:59 »
Tetszik!

Lehet kívánság műsor? :-)
SRAM kéne még memóriatípusnak. Ez ugyanúgy fájlnévvel lenne megadva mint a ROM, de írható, valamint kilépéskor mentené a tartalmát. (EPDOS 2.x rendszer emulálásához).

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #217 on: 2016.March.18. 15:54:43 »
Lehet kívánság műsor? :-)

A sd card flash-elosdit is azert kerult bele am ... :) Eszembe nem jutott volna magamtol ... Ja, meg a Z180 is , igaz azota sincs kesz, bar a Z180-on nem mukodo undocumented Z80 opcode-okra kb jo, hogy azzal sem megy akkor :oops:

Amugy ezek szerint akkor mux, vagy nem probaltad? En windows alol tesztelni sem tudom. Fura ugy irni win-es dolgokrol, hogy nem is hasznalom, programozni meg plane ;) Szerencsere ritkan kell tudni a specialitasokat mert ott van kozben az SDL meg a MingW cross compiler, de azert elfofordul ... Azon is filoztam, de ilyet nem talaltam sehol, hogy vajon letezik-e Linux ala MacOSX-re fordito cuccos (cross compiler az is marmint). Hatha valakinek kene egy olyan, elvileg SDL amugy tamogatna (ahogy Android-ot es pl Raspberry Pi-t hoppa ....).

Quote
SRAM kéne még memóriatípusnak. Ez ugyanúgy fájlnévvel lenne megadva mint a ROM, de írható, valamint kilépéskor mentené a tartalmát. (EPDOS 2.x rendszer emulálásához

Ez miert jo? Valodi EP-n az vmi akksi taplalt cucc, hogy megmarad a tartalma? Mert ha nem, akkor rendes RAM csupan, nem latok kulonbseget ... Ehhez eleg egyetlen szegmens ilyen SRAM, vagy elfordulhat, hogy tobb kell belole?

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14735
  • Country: hu
    • http://enterprise.iko.hu/
Re: Xep128
« Reply #218 on: 2016.March.18. 16:00:04 »
Valodi EP-n az vmi akksi taplalt cucc, hogy megmarad a tartalma?
Így van.

Quote
Ehhez eleg egyetlen szegmens ilyen SRAM, vagy elfordulhat, hogy tobb kell belole?
Mészáros féle EPROM/SRAM kártyán 32K volt alapból, de többet is bele lehet tenni. Ha jól emlékszem az EPDOS 2 az 16K-t használt belőle saját magának.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Xep128
« Reply #219 on: 2016.March.18. 16:00:22 »
ha jól értem ezt az emut majd pl futtatni lehet pl egy pi-n?
:)
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #220 on: 2016.March.18. 16:11:00 »
ha jól értem ezt az emut majd pl futtatni lehet pl egy pi-n? :)

Elvileg az nem lenne tul nehez (kopp-kopp ...), foleg mivel azon is Linux van (is), szoval kulonbseg elenyeszo, en meg amugy is Linux-on fejlesztem (csak epp x86-on persze). Persze, ki kene probalni ... Figyel itt egy nalam egy pi, csak hat ido kene erre is. Az Android nehezebb dio, sok tutorial van hogy kell, oszinten en mar kb 10%-nal fejfajast kapok igy ranezesre is :-/

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Xep128
« Reply #221 on: 2016.March.18. 16:33:01 »
Elvileg az nem lenne tul nehez (kopp-kopp ...), foleg mivel azon is Linux van (is), szoval kulonbseg elenyeszo, en meg amugy is Linux-on fejlesztem (csak epp x86-on persze). Persze, ki kene probalni ... Figyel itt egy nalam egy pi, csak hat ido kene erre is. Az Android nehezebb dio, sok tutorial van hogy kell, oszinten en mar kb 10%-nal fejfajast kapok igy ranezesre is :-/

andoid szerintem nem érdekes. ki akar tapiképernyőn szenvedni? plusz elég erős hw kéne szerintem hozzá...
egy önálló kis hardveren viszont érdekes lehet, mint fake-igazi gép :)
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #222 on: 2016.March.18. 17:08:29 »
andoid szerintem nem érdekes. ki akar tapiképernyőn szenvedni? plusz elég erős hw kéne szerintem hozzá...

Nem hinnem, hogy egy raspi jelentosen erosebb lenne egy modern telefonnal hw-ben (kisse kallondo kinai 'kici-oco' csoda telefomban negy mag van, raspi-mben egyetlen egy ... es meg az orajele is kevesebb - ok tudom van/lesz raspi 2/3 meg mittomen' is) ... Hat lenyege nem tudom lenne-e, vegulis lehetne telefonon jatszani, ha vkit erdekel, eredeti EP-s jatekokkal. Vagy nem tudom :) Eleve, csak a kihivas miatt is erdekes lenne. Azt se felejtsuk, hogy az JSep egesz meglepoen gyors tud lenni mobil telefonokon, pedig ott a browser es az JS is meg a hw es a kod kozott, itt meg nativ kod lenne ...

Quote
egy önálló kis hardveren viszont érdekes lehet, mint fake-igazi gép :)

Igen, ez mar nekem is eszembe jutott :) Meg az is, hogy "felig igazi szeru" megoldast is lehetne, pl anno en egy lepukkant C16-os hazaba tettem volna, GPIO-ra meg az eredeti C16 billencs, es igy megvan a feeling (ettol meg radughato egy USB-s is ...).

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Xep128
« Reply #223 on: 2016.March.18. 17:14:53 »
az android miatt gondolom hogy lassú lenne
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Xep128
« Reply #224 on: 2016.March.18. 17:17:52 »
az android miatt gondolom hogy lassú lenne

Az nem lassit rajta szerintem ... Bar nem ertek hozza igazan (ezert se mertem meg belevagni), de az "egyszeru" app-ok vegulis egy JavaVM szeru izeben futnak (Arts vagy mi a neve, de elotte volt a Dalvik talan), tehat nem nativ kod. Amde lehetoseg van nativ ARM gepi kodot is futtatni. Amiket tutorialokat lattam, ott vmi olyan van, hogy sima C kod, ARM gcc cross-compiler-rel fordul, es vmi minimalis "java szeru" keret van korulotte, amivel kb megfelel egy Android app-nak meg elintezi a vezerles atadasat stb. De a kod lenyegi resze nativ mar. Bar - mint mondtam - tenyleg nem ertek hozza, bennem ez a kep alakult ki, hogy kb igy mukodne a dolog, ahogy elolvastam 1-2 leirast ...

Plusz, ha meg nem is nativ lenne, az se katasztrofa, lasd JSep-ben a JavaScript az meg "rosszabb", marmint nehezebb jo hatasfokkal hiper-szuper JIT cuccossal jo sebessegen futtatni, megis eleg gyors az is, pedig az en kezzel irt idiota kodom, nem am asm.js vagy ilyen specializalt valtozat ...
« Last Edit: 2016.March.18. 17:22:02 by lgb »