Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 394232 times)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: EP128emu
« Reply #90 on: 2012.August.14. 14:34:08 »
Ezt már én is meg akartam kérdezni...  :oops:
Kérni lehet :D, be is terveztem, csak az a kérdés, hogy mikorra lesznek készen  :oops:
Remélem nem használtam sok programban, annyira megörültem, amikor rátaláltam az OUT (C),00h utasításra, és nem írták sehol, hogy ez valahol OUT(C),0FFh lol

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #91 on: 2012.August.14. 16:06:04 »
Kérni lehet :D, be is terveztem, csak az a kérdés, hogy mikorra lesznek készen  :oops:
Remélem nem használtam sok programban, annyira megörültem, amikor rátaláltam az OUT (C),00h utasításra, és nem írták sehol, hogy ez valahol OUT(C),0FFh lol

Szerencsére az IK+ Reloaded esetében, ha jól látom, nem is hasznos az OUT (C), 0, mert ott az A regiszterben már 0 van, tehát lehet helyette egyszerűen OUT (C), A.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #92 on: 2012.August.14. 17:29:50 »
Az emulátoron most viszont ellentmondásos a dolog, az LD A,I/R nem hibás, tehát CMOS proci van emulálva.
De az OUT (C),0 valóban 0-át küld ki, így meg NMOS procinak látszik.

Vagy az LD A,I/R-t kéne elrontani vagy az OUT-nál FFh-re cserélni az értéket.

Az ep128emu az eredeti (tehát NMOS Z80-as) EP-t próbálja emulálni, több-kevesebb sikerrel. Az LD A, I és LD A, R hibássá tétele új programok fejlesztésénél, vagy tesztelésnél lehet hasznos, az nem valószínű, hogy valami csak akkor működik jól, ha ezek az utasítások hibásak. A hiba felismeréséhez itt egy egyszerű teszt program:
Code: ZiLOG Z80 Assembler
  1.         org   00f0h
  2.         defw  0500h, codeEnd - main, 0, 0, 0, 0, 0, 0
  3.  
  4.     macro exos n
  5.         rst   30h
  6.         defb  n
  7.     endm
  8.  
  9. main:
  10.         di
  11.         ld    sp, 0100h
  12.         ld    a, 0ffh
  13.         out   (0b2h), a
  14.         ld    hl, resetRoutine
  15.         ld    (0bff8h), hl
  16.  
  17.         ld    hl, 0e9ddh                ; = JP (IX)
  18.         ld    (0038h), hl
  19.         ld    ix, .l2
  20.         ld    a, 03h
  21.         out   (0b4h), a
  22. .l1:    in    a, (0b4h)
  23.         and   02h
  24.         jr    z, .l1
  25.         ei
  26.         ld    a, i
  27. .l2:    pop   hl
  28.         ld    a, 30h
  29.         out   (0b4h), a
  30.  
  31.         ld    a, 92h
  32.         jp    pe, .l3
  33.         rrca
  34. .l3:    out   (81h), a
  35. .l4:    jr    .l4
  36.  
  37. resetRoutine:
  38.         di
  39.         ld    sp, 0100h
  40.         ld    a, 0ffh
  41.         out   (0b2h), a
  42.         ld    hl, resetRoutine
  43.         ld    (0bff8h), hl
  44.         ld    c, 40h
  45.         exos  0
  46.         ld    a, 01h
  47.         out   (0b3h), a
  48.         ld    a, 6
  49.         jp    0c00dh
  50.  
  51. codeEnd:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #93 on: 2012.August.14. 21:26:51 »
A legtökéletesebb megoldás az lenne, ha lenne egy CPU beállítás a Configure alatt, hogy NMOS vagy CMOS  :oops:

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: EP128emu
« Reply #94 on: 2012.August.15. 08:49:50 »
Szerencsére az IK+ Reloaded esetében, ha jól látom, nem is hasznos az OUT (C), 0, mert ott az A regiszterben már 0 van, tehát lehet helyette egyszerűen OUT (C), A.
Azt nem is vettem észre, de most hogy mondod, eszembe jutott, hogy az programrész elején ott ficeg a XOR A, és utána semmi módosítás, mindegy betettem a többi helyen is használt módosítást, nullázom a B-t, és OUT (C),B -t használok. Tegnap vettem észre, hogy a Dave nullázás nem is volt jó, mert 16-szor írtam az AF regiszterre 00h-t  :oops:

Offline Ep128

  • EP addict
  • *
  • Posts: 1849
  • Country: hu
    • Honlapom
Re: EP128emu
« Reply #95 on: 2012.November.13. 23:28:50 »
Quote from: Zozosoft
Igen, már csak a korábbi hibajavítások miatt is!

Van még egy bosszantó bug: Windows 7 alatt nem tud floppyra írni az emulátor  :(
Más programokkal is volt ilyen (Pl régebbi Winimage-val készült önkicsomagoló boot lemezek), valami jogosultsági gond lehet.
Ha "futtatás rendszergazdaként" indítom, akkor se mûködik.

Tippem szerint itt lehet valahol a bibi a wd177x.cpp-ben:
Code: [Select]
     h = CreateFileA(fileName, (DWORD) 0,
                      FILE_SHARE_READ | FILE_SHARE_WRITE,
                      (LPSECURITY_ATTRIBUTES) 0, OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL, (HANDLE) 0);
Sajnos csatlakozni kényszerülök ehhez, mert nem csak Windows 7, hanem Pista (Vista) alatt is ugyanez a gubanc!
István, ha látod ezt az üzenetet, kérlek reagálj! (Köszi! :-) )

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #96 on: 2012.November.14. 22:56:54 »
Az itt említett WAV gyártás nem volt zökkenő mentes :-(
Eredeti elképzelésem az volt, hogy az emulátor Record Audio funkciójával veszem fel a magnóhangot.
Bár első ránézésre működött, de a programfájl hibás lett, ezért egy idő után lefagyott a program, binárisan összehasonlítva, egy csomó bájt nulla lett.
Kipróbáltam úgy is, hogy más programmal veszem fel a hangkártya wave kimenetét, de ugyanez lett az eredmény.
A megoldás az lett, hogy valódi gépen futtattam a mentést, és az EP kimenetét kötöttem a PC hang bemenetére, és vettem fel WAV-ba.

István van ötleted, mitől nem sikerült az emulátorral?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #97 on: 2012.November.15. 18:02:26 »
Quote from: Zozosoft
Az itt említett WAV gyártás nem volt zökkenő mentes :-(
Eredeti elképzelésem az volt, hogy az emulátor Record Audio funkciójával veszem fel a magnóhangot.
Bár első ránézésre működött, de a programfájl hibás lett, ezért egy idő után lefagyott a program, binárisan összehasonlítva, egy csomó bájt nulla lett.
Ezt egészen pontosan hogyn tudnám tesztelni ?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #98 on: 2012.November.15. 18:48:50 »
Quote
Ezt egészen pontosan hogyn tudnám tesztelni ?
Itt egy komplett save csomag
:EXDOS SAVE.BAT
RAMDISK-ből csinálja, hogy az esetleges lemezkezelés miatti akadás is ki legyen zárva.
Ezt Record Audio-val felvenni.

Betöltéskor 014ex breakpoint kell, majd
s "s" 0 8000 a7ff
s "p" 0 0480 7ddd
És összehasonlítani az eredeti scr és prg fájlokkal.

Itt van a WAV is, amit nekem sikerül így az emuból felvenni, az scr az ok, a prg eleje hibás.

Valódi gépről felvett hanggal rendben működött a dolog.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #99 on: 2012.November.16. 11:08:46 »
Na ez most egyre érdekesebb!
Kipróbáltam egy másik számítógépen, ott jól működik!

Vajon mi lehet a hiba oka? Windows? Hangkártya? Egyáltalán a hangkártyának van köze ehhez, vagy saját magában veszi fel a kiküldött hangot?

Amin gépen nem jó: Windows 7 64 bit, Asus Xonar DS
Amin most működött Windows XP, több mint 10 éves ESS Maestro2

Jó lenne ha a többiek is kipróbálnák, náluk mi a helyzet.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: EP128emu
« Reply #100 on: 2012.November.16. 11:54:52 »
Quote from: Zozosoft
Jó lenne ha a többiek is kipróbálnák, náluk mi a helyzet.
Pontosan mit is kéne kipróbálni? Én már ott elakadtam, hogy az Eggs of Death játéknak miért kellene újra előállítani az eredeti, másolásvédett csipogását, már ha tényleg azt akartad előállítani...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #101 on: 2012.November.16. 13:23:23 »
Quote from: szipucsu
Pontosan mit is kéne kipróbálni? Én már ott elakadtam, hogy az Eggs of Death játéknak miért kellene újra előállítani az eredeti, másolásvédett csipogását, már ha tényleg azt akartad előállítani...
Azért, hogy jó minőségben, működően lehessen archiválni az eredeti verziót is a programból, amit aztán lehet emulátorral használni, vagy akár kimenteni kazettára valód géphez.
Ezt már jó pár másik programmal megcsináltuk, a sima EP magnó formátumú programokkal ez könnyű, gond ezekkel a másolásvédett programokkal van, ahol a gyári kazettáról wav-ba felvétel a lehetséges út, azonban a magyar kazettákban használt borzalmasan pocsék szocialista gyártmányú szalagok miatt sokszor az is lehetetlen, hogy használható WAV legyen, és még ha ez sikerül is nagy nehezen, akkor meg a TAP-ba konvertáló progi nem tudja feldolgozni.

Jelen esetben szerencsésen előkerült a gyári kazettára a csipogást előállító eredeti program, így lehetséges az, hogy a folyamatból kihagyjuk a 25 éves Polimer kazetta által okozott minőségromlást.

A dolog működik is, csak felmerült az a probléma, hogy nem minden gépen működik a legegyszerűbbnek gondolt módszer, azaz, hogy az ep128emu beépített hangfelvevő funkciójával vegyük fel a program által előállított csipogást.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #102 on: 2012.November.16. 13:36:49 »
Kipróbálás: az eggsave.zip tartalmát kimenteni egy lemezre.
Emulátorban betölteni egy sok ramos EXDOS-os konfigot.
:EXDOS SAVE.BAT
Ez bemásolja a RAMDISK-be a mentendő cuccot, majd vár egy ENTER-re.
Ekkor elindítani az emulátor Record Audio funkcióját, majd nyomni egy Entert, ekkor elkezdődik a kimentés.
Végigvárni a csipogást (kb 3 perc), majd Record Audio Stop.
Ezután betölteni egy magnós konfigot, töltésnél az elöbb felvett WAV-ot megadni kazettának (ALT+T, majd ALT+P a magnó indítása).
Töltés elött adjuk meg a debuggerben (ALT+B) töréspontnak: 014ex (a 2. oldalon a jobb felső ablak).
Ekkor a program meg fog állni a betöltés után, bejön a debuger.
Itt kimentjük a képernyő ill. programmemóriát, hogy összehasonlítsuk az eredeti adatfájlokkal.
Mikor bejön a debugger, akkor a második oldalon a bal felső parancs ablakba kell ezte a két sort beírni:
s "s" 0 8000 a7ff
s "p" 0 0480 7ddd
Ez megcsinálja a mentést (az emulátor munkakönyvtárába, ami ALT+F-el választható).
Utána össze kell hasonlítani az s fájlt a csomagban lévő scr fájlal, a p-t a prg-vel. Pl. a Total Commander fájl/összehasonlítás tartalomra.
Normál esetben egyezni kell, ha eltérés van, az a probléma.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #103 on: 2012.November.16. 13:52:31 »
Az hiba, ha a mentés végén a SAVE.BAT keretcsíkozással lefagy ? :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #104 on: 2012.November.16. 13:59:45 »
Quote from: Zozosoft
Mikor bejön a debugger, akkor a második oldalon a bal felső parancs ablakba kell ezte a két sort beírni:
s "s" 0 8000 a7ff
s "p" 0 0480 7ddd
Ez megcsinálja a mentést (az emulátor munkakönyvtárába, ami ALT+F-el választható).
Utána össze kell hasonlítani az s fájlt a csomagban lévő scr fájlal, a p-t a prg-vel. Pl. a Total Commander fájl/összehasonlítás tartalomra.
Normál esetben egyezni kell, ha eltérés van, az a probléma.
Egyszerűbb megoldás (feltételezi, hogy az emulátor "látja" az scr és prg file-okat a file I/O könyvtárban) a v (verify) parancs használatával:
Code: [Select]
v "scr" 0 8000
v "prg" 0 0480
Azonban nekem az alapértelmezett hang beállításokkal mentett WAV file magnó image-ként való használatakor nem volt eltérés. Talán nem mindig fordul elő a hiba, vagy csak bizonyos beállításoknál ?
« Last Edit: 2012.November.16. 14:05:40 by IstvanV »