Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 401040 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #735 on: 2016.October.10. 22:05:16 »
Ugy gondoltam, hogy 0 esetén is az A: WD regiszterei lennének elérhetök, de nyilván ilyenkor nem hajtodnának végre a parancsok.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #736 on: 2016.October.11. 21:59:30 »
Módosított floppy emuláció, csak egy WD177x és 4 meghajtó:
[ Guests cannot view attachments ]

Valószínűleg vannak hamarosan javítandó új hibák (szerk.: már találtam is, hiányzó lemez esetén nem megfelelő a hiba emulációja :oops:), ezért csak egy változatot fordítottam (64 bites és LuaJIT-et használ). :)
« Last Edit: 2016.October.11. 22:29:09 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #737 on: 2016.October.11. 22:50:40 »
Valószínűleg vannak hamarosan javítandó új hibák
Ezt játszom éppen az EXDOS 1.4-el is :oops:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #738 on: 2016.October.11. 23:17:18 »
Az EXDOS 1.4 file-ok közül a BRD és az UK változat valójában csak a HFONT-os másolata, illetve az ESP az 1.3-as verzió átnevezve. :oops: Természetesen a kész csomagban nem ezek lesznek, de egyelőre megfelelnek arra a célra, hogy a hiányzó ROM-ok ne okozzanak hibát.
Itt vannak az aktuális verziók, bugtalanítva az ATTR, ATDIR, ISDOS parancsok. (És az újabb berakott bug is kiszedve :-) Módosítás dátumához akartam berakni, hogy 2014-16, csak a kötőjeltől megkergült a szövegkezelő rendszer...) Valamint megfelelő nyelvű IS-DOS van beépítve

Hátra van még a WD ellenőrzés, itt kell majd még egy új hibaüzenet is (Controller not ready vagy ilyesmi). Ill. kell egy a Lost Data-hoz is, ez gyárilag data error-nak van jelezve.


Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #739 on: 2016.October.12. 11:04:16 »
szerk.: már találtam is, hiányzó lemez esetén nem megfelelő a hiba emulációja :oops:

Javítva a GitHub forráskódban, hamarosan új beta verziót készítek a frissített EXDOS 1.4 ROM-okkal. Javítandó probléma még, hogy az IDE emuláció használhatatlanná válik snapshot töltés után. Bár lehet, hogy van valamilyen IDE.ROM parancs, ami újra lefuttatja a meghajtók detektálását? Jelenleg az emulátor snapshot töltéskor minden lemezes eszközt a hidegindítás utáninak megfelelő állapotba hoz, és mindegyiken lemezcserét jelez, mivel nem garantálható, hogy töltésnél ugyanazok az image file-ok, mint amik a mentéskor voltak.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #740 on: 2016.October.12. 19:31:51 »
A WD hiba javítva:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

ROM csomag az aktuális EXDOS 1.4 verzióval és a ZozoTools is frissítve:
[ Guests cannot view attachments ]

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #741 on: 2016.October.13. 03:01:54 »
Javítva a GitHub forráskódban, hamarosan új beta verziót készítek a frissített EXDOS 1.4 ROM-okkal. Javítandó probléma még, hogy az IDE emuláció használhatatlanná válik snapshot töltés után. Bár lehet, hogy van valamilyen IDE.ROM parancs, ami újra lefuttatja a meghajtók detektálását? Jelenleg az emulátor snapshot töltéskor minden lemezes eszközt a hidegindítás utáninak megfelelő állapotba hoz, és mindegyiken lemezcserét jelez, mivel nem garantálható, hogy töltésnél ugyanazok az image file-ok, mint amik a mentéskor voltak.

Tenyleg, azt nem lehetne megoldani, hogy a disk image is belekeruljon a snapshot-ba? Oke, egy IDE cucc esetn "kisse" nagy lenne :) De pl egy floppy eseten meg elmegy, es neha hasznos lehetne (foleg, ha mondjuk vmi egyszerun tomorites is van rajta, egy kevesbe kihasznalt disk csomo blokkja "ures"). Vagy esetleg legalabb vmi checksum, igy ellenorizheto, hogy a hasznalt image ugyanaz-e, es az alapjan dontest hozni (pl akkor nem ad lemezcsere "jelet" ha uaz). Ja, spec vmi egyszeru tomorites pl memorianal sem rossz otlet talan ... Nem kell vmi extra, talan valami RLE is jo ilyesmikre ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #742 on: 2016.October.13. 10:32:26 »
Bár lehet, hogy van valamilyen IDE.ROM parancs, ami újra lefuttatja a meghajtók detektálását?
Nincs, a vinyók alapból nem cserélhető lemezek :oops:

Az SD-nél viszont kidolgozás alatt van az ügy (ott van a hardverből érkező kártyacsere jel). Esetleg az Lgb által elkezdett ep128emu-s SD emulációt lehetne rendesen adaptálni?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #743 on: 2016.October.13. 10:39:20 »
Tenyleg, azt nem lehetne megoldani, hogy a disk image is belekeruljon a snapshot-ba? Oke, egy IDE cucc esetn "kisse" nagy lenne :) De pl egy floppy eseten meg elmegy, es neha hasznos lehetne (foleg, ha mondjuk vmi egyszerun tomorites is van rajta, egy kevesbe kihasznalt disk csomo blokkja "ures").

Elvileg a floppy is lehet legfeljebb kb. 60 MB méretű (254 * 2 * 240 szektor), amiből négy még mindig meglehetősen nagy lenne. :) Ettől eltekintve nem tudom biztosan, hogyan lenne célszerű kezelni a betöltött image-t, mivel így az eredeti lemez (amit a felhasználó Alt+D-vel választott) már nem látható, viszont ahhoz valamikor vissza kell térni, és akkor a snapshotból töltött image (esetleg már módosult) tartalma elveszik.

Azonban a snapshotban mentett lemezre már most is van megoldás, a RAMDISK használata. Ez ugyan nem a legkényelmesebb, mert a felhasználónak létre kell hoznia, de elkerüli az image mentéssel kapcsolatos problémákat.

Quote
Vagy esetleg legalabb vmi checksum, igy ellenorizheto, hogy a hasznalt image ugyanaz-e, es az alapjan dontest hozni (pl akkor nem ad lemezcsere "jelet" ha uaz).

Erre már gondoltam, bár a megvalósításához még meg kellene írni a snapshot támogatást a floppy és IDE emulációban. :oops: Talán egy későbbi verzióban. Azonban a jelenlegi megoldás floppy esetén általában nem okoz problémát, mivel ez egyébként is cserélhető lemezes eszköz, és az EXDOS megfelelően kezeli a lemezcserét. Hiba csak akkor van, ha lemezművelet közben (amit a floppy LED-ek jeleznek) készül snapshot.

A lemezcsere az IDE.ROM-nál okoz hibát, de ugyanitt problémás lenne a snapshot mentés is, a nagy image méretek miatt a checksum is észrevehetően lassíthatná a snapshot műveleteket, mivel a teljes (legfeljebb 4) file-t be kell olvasni a számításához.

Quote
Ja, spec vmi egyszeru tomorites pl memorianal sem rossz otlet talan ... Nem kell vmi extra, talan valami RLE is jo ilyesmikre ...

Megoldható lenne, bár nem tudom, mennyire lenne hasznos, valószínűleg ritkán okoz problémát a szabad lemezterület hiánya a snapshot file-ok számára, viszont a fórumon csatolt file-ként küldve talán praktikus lenne például egy 4 MB-os konfigurációról készült snapshot tömörítése. De ha az emulált konfigurációban nincs sok kihasználatlan RAM, akkor nem jelent nagy különbséget.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #744 on: 2016.October.13. 11:30:56 »
Nincs, a vinyók alapból nem cserélhető lemezek :oops:

Elvileg létezik cserélhető lemezes IDE eszköz, és az ezekhez kapcsolódó parancsokat az IDE emuláció támogatja is, bár az újabb dokumentációk szerint elavultak.

Quote
Az SD-nél viszont kidolgozás alatt van az ügy (ott van a hardverből érkező kártyacsere jel). Esetleg az Lgb által elkezdett ep128emu-s SD emulációt lehetne rendesen adaptálni?

Talán be lehetne építeni, de nem tudom, a felhasználó szempontjából mennyire hasznos ha van IDE és SD emuláció is, valódi gépen az utóbbi praktikusabb, azonban emulátoron mindkettő VHD formátumú image-t tesz láthatóvá az EXDOS számára. Ha az IDE kezd elavulttá válni, akkor érdemes lehetne az SD-t megvalósítani, de ennek az emulációja problémásabbnak tűnik, ha jól látom, egy 64K-s ROM-ot használ a 04-07h szegmenseken, amelyen belül található SRAM és memóriába ágyazott I/O is (I/O portok helyett)?

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #745 on: 2016.October.13. 11:32:27 »
Megoldható lenne, bár nem tudom, mennyire lenne hasznos, valószínűleg ritkán okoz problémát a szabad lemezterület hiánya a snapshot file-ok számára, viszont a fórumon csatolt file-ként küldve talán praktikus lenne például egy 4 MB-os konfigurációról készült snapshot tömörítése. De ha az emulált konfigurációban nincs sok kihasználatlan RAM, akkor nem jelent nagy különbséget.

En is erre gondoltam: nyilvan a mai tarkapacitasok viszonylataban nem gond, csak azert forumokra tenni ide/oda mail-ben kuldeni stb akar, ott azert meg mindig szamithat!

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #746 on: 2016.October.13. 11:51:00 »
Quote
Talán be lehetne építeni, de nem tudom, a felhasználó szempontjából mennyire hasznos ha van IDE és SD emuláció is, valódi gépen az utóbbi praktikusabb, azonban emulátoron mindkettő VHD formátumú image-t tesz láthatóvá az EXDOS számára. Az Xep128 sdcard.img-je működik is IDE lemezként. :)

Persze, tok mind1 neki, az is sima "lemezkep" csak, ha IDE, ha SD ... Annyi van meg a Xep128-ban (bar ez meg nincs fenn talan a github-on), hogy egyreszt erzekeli az MS-tudomisen milyen VHD image-t (utolso sector nem adat valojaban hanem a forumatum resze). Meg size korrekcio, mivel elvileg SD image meret nem lehet akarmi, meg akkor sem, h 512-vel oszthato, tehat ott jatszok vele egy kicsit es bovitem az image-et ha kell, kulonben a SD id-et hasznalo cuccok (pl Zozo fdisk) helytelenul fognak mukodni.

Quote
Ha az IDE kezd elavulttá válni, akkor érdemes lehetne az SD-t megvalósítani, de ennek az emulációja problémásabbnak tűnik, ha jól látom, egy 64K-s ROM-ot használ a 04-07h szegmenseken, amelyen belül található SRAM és memóriába ágyazott I/O is (I/O portok helyett)?

Ja, valami olyasmi, lasd Xep128 forrasaban :) Amugy en ep128emu-ba ugye egyszer "belehackeltem" :) ha emlekszel, igen randa modon, mukodott is (sot meg az SD audio player-emmel is... ha jol remlik te is nezted pont anno). Az hogy mennyire "szep", hat biztos nem az :) ide pakoltam anno ki (az oldal vege fel van link forrast tartalmazo zip-re is!): http://ep.lgb.hu/ep128emu-sdext/

Ezzel mondjuk az a baj, hogy az en SD-card implementaciom eleg ronda. Nekem is ujra kene irni, meg amugy a hibakezeles rossz benne, pl ha valami SD-controller szintu hiba van (marmint a kartyan levo controller maga ... mert ugye vmi mcu szeruseg van mindegyikben ami illeszti a flash cuccosokat az SPI/vagy mas hozzaferesi dolgokhoz) azt en mas szinten adom vissza (nem mint data packet szintu hiba), ez okozza, hogy a Xep128-ban ha pl read-only sd img-t irsz, akkor exdos error lesz es utana olvasni sem hajlando mar az exdos (ez mondjuk lehet az exdos/sd diskio/akarmi hibaja is, mert ettol meg kene neki tovabb hasznalni csak szerintem ilyen hibakra lehet, hogy nincs felkeszitve ...). A Xep128 beli implementacio amugy emulalja a flash-eleset is a "ROM-nak", amit meg Zozo kert. A cuccos itt van:

https://github.com/lgblgblgb/xep128/blob/master/sdext.c

Velemenyem szerint, amugy par embernek hasznos az IDE is, sot lehet a ketto keverese is (ha jol remlik Zozo irta, hogy ez regen nem ment, de most mar igen ...). Szoval azt is lehetne akar mondjuk csak a GUI szempontjabol, hogy ami az "IDE" volt oda rakni egy fulre az SD-t is. Bar tudom, itt nem a GUI atalakitasa fo problema ;) En mar egyszer majdnem ravettem magam :) hogy ha mar ugyis beleganyoltam az ep128emu-ba (lasd fentebb) akkor az IDE emus GUI reszt "elteriteni" h SD-t lehessen (is?) vele allitani. De ugye mivel a C++ nekem kinai, es szerintem csak az ember nyugalmanak megzavarasara jo, ezert feladtam :) En mar annak is orultem, hogy sikerult belegyanolnom ep128emu-ba valahogy, meg ha borzalmas modon is :)
« Last Edit: 2016.October.13. 12:02:39 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #747 on: 2016.October.13. 12:05:42 »
Elvileg létezik cserélhető lemezes IDE eszköz, és az ezekhez kapcsolódó parancsokat az IDE emuláció támogatja is, bár az újabb dokumentációk szerint elavultak.
Akkor elvileg későbbi IDE verzióban meg lehet majd oldani, vissza kell majd portolni az SD-ből. (Az egész ügyben a nehézség, hogy itt nem csak egy egyszerű lemezcseréről van szó, mint a floppynál, hanem vinyók/kártyák száma is változhat, és persze mindegyiken újra fel kell deríteni a partíciós struktúrát , aminek végeredményében egy rakás EXDOS logikai meghajtó alakul át, vagy lesz belőle több vagy kevesebb, amihez hackelni kell az EXDOS táblázatait.)

Quote
Talán be lehetne építeni, de nem tudom, a felhasználó szempontjából mennyire hasznos ha van IDE és SD emuláció is, valódi gépen az utóbbi praktikusabb
Ismerek olyan embert, többet is, aki valódi gépen is ragaszkodik mindkettőhöz! :-) A legutóbbi SDEXT verzió éppen ezért született, hogy együtt működjön az IDE-vel.
Nekem meg azért hasznos, mert mindkettőt lehet fejleszteni, sőt az Lgb féle hackelt ep128emu-val lehet mindkettőt egyszerre, tesztelni az együttműködést (csak most kéne majd a 2.0.10-ből is hackelt :oops: )

Annyi van még, hogy a SymbOS jelenleg csak SD-t kezel. Valamint az SD gyorsabb valamivel, az olvasás az LDIR-rel is tud működni, míg az IDE-nél rakás I/O utasítás kell, különösen a 8/16 bit konverzió miatt.

Quote
egy 64K-s ROM-ot használ a 04-07h szegmenseken, amelyen belül található SRAM és memóriába ágyazott I/O is (I/O portok helyett)?
A 04-06h azok szabványos ROM szegmensek, tartalmuk sem kötött. SD emulációba csak akkor kell belevenni, ha a FLASH ROM írása is meg lesz valósítva.
A 07h az SD, ahol ROM,SRAM és I/O regiszterek találhatóak. Ebből az első 8K ROM, ami valójában 64K, és 8K lapokban lapozható (az így elérhető plusz terület jelenleg még nincs kihasználva). Ezután 7K RAM, majd 1K az I/O terület. Az I/O az 4 bájt, ami alapból ismétlődik az egész területen:
-SD adat regiszter (R/W)
-SD vezérlés (W)/állapot (R)
-ROM lapregiszter (W)
-nagysebességű olvasás vezérlő bit (W)
Nagysebességű módban a teljese területen az adat regiszter olvasható, ilyenkor lehet LDIR-rel másolni

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #748 on: 2016.October.13. 12:25:21 »
Persze, tok mind1 neki, az is sima "lemezkep" csak, ha IDE, ha SD ... Annyi van meg a Xep128-ban (bar ez meg nincs fenn talan a github-on), hogy egyreszt erzekeli az MS-tudomisen milyen VHD image-t (utolso sector nem adat valojaban hanem a forumatum resze).

A VHD formátumot az ep128emu eddig is támogatta, bár éppen most javítottam egy hibát: csak akkor működött ez a formátum, ha a file neve .vhd kiterjesztésű, ezért például az sdcard.img-t át kellett nevezni. :oops: A javított változatban már csak az utolsó szektor tartalma a lényeges.

Annyi van még, hogy a SymbOS jelenleg csak SD-t kezel. Valamint az SD gyorsabb valamivel, az olvasás az LDIR-rel is tud működni, míg az IDE-nél rakás I/O utasítás kell, különösen a 8/16 bit konverzió miatt.

Ha ez az IDE szektor olvasó rutin, akkor talán lehetne gyorsítani rajta:
Code: ZiLOG Z80 Assembler
  1. .   D066  06 00        LD    B, 00
  2. .   D068  3E 20        LD    A, 20
  3. .   D06A  DD 4E 02     LD    C, (IX+02)
  4. .   D06D  ED 79        OUT   (C), A
  5. .   D06F  F6 30        OR    30
  6. .   D071  ED 79        OUT   (C), A
  7. .   D073  DD 4E 00     LD    C, (IX)
  8. .   D076  ED 78        IN    A, (C)
  9. .   D078  77           LD    (HL), A
  10. .   D079  23           INC   HL
  11. .   D07A  DD 4E 01     LD    C, (IX+01)
  12. .   D07D  ED 78        IN    A, (C)
  13. .   D07F  77           LD    (HL), A
  14. .   D080  23           INC   HL
  15. .   D081  10 E5        DJNZ  D068
  16. .   D083  AF           XOR   A
  17. .   D084  FB           EI
  18. .   D085  C9           RET
Helyette (nem tudom, itt fontos-e a DE, BC', DE', és az F visszatéréskor, ha igen, akkor kell még néhány utasítás, de az IDE.ROM-ban még sok a szabad hely, ezért lehetne még hosszabb és valamivel gyorsabb kód is):
Code: ZiLOG Z80 Assembler
  1. .   D066  DD 5E 00     LD    E, (IX)
  2. .   D069  DD 56 01     LD    D, (IX+01)
  3. .   D06C  AF           XOR   A
  4. .   D06D  D9           EXX
  5. .   D06E  DD 4E 02     LD    C, (IX+02)
  6. .   D071  47           LD    B, A
  7. .   D072  11 20 30     LD    DE, 3020
  8. .   D075  ED 59        OUT   (C), E
  9. .   D077  ED 51        OUT   (C), D
  10. .   D079  D9           EXX
  11. .   D07A  4B           LD    C, E
  12. .   D07B  ED A2        INI
  13. .   D07D  4A           LD    C, D
  14. .   D07E  ED A2        INI
  15. .   D080  D9           EXX
  16. .   D081  10 F2        DJNZ  D075
  17. .   D083  D9           EXX
  18. .   D084  FB           EI  
  19. .   D085  C9           RET

Nekem meg azért hasznos, mert mindkettőt lehet fejleszteni, sőt az Lgb féle hackelt ep128emu-val lehet mindkettőt egyszerre, tesztelni az együttműködést (csak most kéne majd a 2.0.10-ből is hackelt :oops: )

Ennek a hackelt verziónak a forráskódja megtalálható valahol?
« Last Edit: 2016.October.13. 13:12:56 by IstvanV »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #749 on: 2016.October.13. 13:01:03 »
A VHD formátumot az ep128emu eddig is támogatta, bár éppen most javítottam egy hibát: csak akkor működött ez a formátum, ha a file neve .vhd kiterjesztésű, ezért például az sdcard.img-t át kellett nevezni. :oops: A javított változatban már csak az utolsó szektor tartalma a lényeges.

Na, ezt nem tudtam, jo tudni :)

Quote
Ennek a hackelt verziónak a forráskódja megtalálható valahol?

Fentebb irtam pont egy elozo hozzaszolasomban am (a "Licenc kerdesek resznel az oldalon) :D

http://ep.lgb.hu/ep128emu-sdext/

Oldal alja fele van link. Mondjuk _tenyleg_ ronda hack, es az SD "tamogatas" benne is kisse hmm ganyolt :)