Welcome, Guest. Please login or register.


Author Topic: Z180 (Read 27572 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #75 on: 2015.June.08. 12:41:00 »
Vicces a z80ex, mert tulkeppen van benne egy sor, ahol a P/V flag-et allitja int eseten, emulalva az NMOS hibat. na, csupan ezt kellett feltetelesse tenni a CPU tipusatol fuggoen, illetve ez az 0xFF out 0 helyett. Ha mas nincs, akkor tenyleg igaz, hogy van mar NMOS/CMOS emulacio is :) A kerdes az, hogy Z180-ban is van ilyen kulonbseg, ott is van NMOS/CMOS, es a fentiek az elteresek, vagy ott nincs ilyen, es csak CMOS van pl, vagy pedig mas elteres (is?) van CMOS/NMOS kozott? Jelenleg elvileg barmilyen kombunaciot tudok emulalni, azaz NMOS Z80, CMOS Z80, NMOS Z180, CMOS Z180, persze a Z180 meg nincs igazan kesz (pl az uj utasitasok kozul csak a MULT van kesz).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #76 on: 2015.June.08. 13:06:18 »
A Z180 az már eleve CMOS-ként indult.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #77 on: 2015.June.08. 23:19:35 »
Elolvasva a leírást, abból az jön ki, hogy TRAP interruptot csinál a 0000h címre, ha nem definiált opcodot talál. Ahol van rá lehetőség, hogy utasításkészlet bővítést helyezzünk el.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #78 on: 2015.June.09. 09:32:36 »
Hmm, biztos? En is olvastam, most hogy igy emlitetted, rakerestem a trap szora a pdf-ben. Ugye atlag programokban nem ritka annyira az IXY/stb hasznalata, a legtobb bajt gondolom ez okozza Z180-on. Amde, ha igaz lenne, hogy ilyenkor Z180 a 0 cimre ugrik mint invalid opcode trap, akkor nem is menne a program tovabb. Marpedig amennyire remlik, a party-n a Z180-as EP-n produkalt par program fura dolgokat (sajnos nem tudom mar mi es mit ...) de nem ugy tunt, hogy total beallt a cucc, ahogy gondolom kene, ha a 0-as cimre ugrik. Na mindjart irok egy programot, ami kirakja a Z80 registereket, megprobal pl egy INC IXH -t, aztan megint kirakja a registereket. En arra tippeltem, hogy ilyenkor ha a DD/FD prefix-et az adott opcode-ra a Z180 nem csinalja meg, akkor siman figyelmen kivul hagyja (mint Z80 pl ha LD A,B -t prefixalnad ...) azaz INC IXH helyett INC H-t hajt vegre.

Az eredmenyt mellekeltem, ez egy nagyon benan megirt program, de a celnak megfelel :) Kivancsi lennek, ha majd tudod valodi Z180-on futtatni, mi kulonbseg lesz Z80-hoz viszonyitva ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #79 on: 2015.June.09. 09:39:13 »
Amde, ha igaz lenne, hogy ilyenkor Z180 a 0 cimre ugrik mint invalid opcode trap, akkor nem is menne a program tovabb.
Mért ne menne? Előbb-utóbb csak akad egy RET, ha máshol nem a megszakítási rutinban :-)

Quote
Az eredmenyt mellekeltem, ez egy nagyon benan megirt program, de a celnak megfelel :) Kivancsi lennek, ha majd tudod valodi Z180-on futtatni, mi kulonbseg lesz Z80-hoz viszonyitva ...
Majd próbálkozok, tegnap
*** Too many wires
hiba volt :-D
(Kéne már nyákot gyártani hozzá...)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #80 on: 2015.June.09. 09:42:55 »
Egyébként néztem a leírásban, hogy ki lehet-e kapcsolni ezt, de nem, ez Non maskable interrupt, és ez a legmagasabb prioritású.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #81 on: 2015.June.09. 09:44:43 »
Nullas lapon mi van a 0-as cimen normal esetben? Csak mert gondoltam h a tesztet ki kene egeszitenem azzal, hogy detektalja, ha oda kerult a vezerles. Csak nem tudom, hogy alapjaban veve mi van ott amugy ... Azert filozok ezen annyit, mert az FD/DD az ugye prefix, es nem teljesen az opcode resze, nem ugy mint a CB es ED, nem tudom, hogy z180 mit tekint akkor opcode-nak es mit nem ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #82 on: 2015.June.09. 09:49:02 »
Nullas lapon mi van a 0-as cimen normal esetben?
Semmi, 2fh-ig szabad.
De pl sok Spectrum átírat tesz oda rutinokat, pl joy vagy billentyű figyelést, amit aztán RST 0-val hív meg.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #83 on: 2015.June.09. 09:49:49 »
Tegyél a tesztbe oda egy ugrást ami aztán kiírja, hogy 0-ra ugrás történt.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #84 on: 2015.June.09. 10:53:01 »
Ja, OK. Mellekelve, forras is. Keretik finoman kezelni, nem a kod minoseg es a rovidseg volt a fo szempontom erre :)

A lenyeg: minden teszt elott verembe benyomok egy erteket, amit a vegen ki is veszek, normal esetben nincs kihasznalva. Ha Z180 trap volt, akkor kiirja h trap, kiirja a stack-bol kivett word-ot (ami elvileg ugye a TRAP altal oda berakott PC erteke, gondolom), illetve megnezni az "alatta" levo szot (amit en nyomtam be), es oda ter vissza. Ez azert kell, mert nem tudom, hogy a TRAP Z180-on a kov utasitasra terne-e vissza (valoszinu h nem, mert ha nem ismeri az opcode-ot, nem is feltetlen tudja, hogy milyen hosszu az!), igy a teszt tovabbi resze elott lefagyna esetleg az egesz. A forras birtokaban persze finomithato a cucc, ronda az egesz :D

Persze majd lehetne nezni pl a CB opcode-ok kozotti dolgot is, hogy ott mit csinal, mondjuk ...

Kisse fajdalmas amugy ez a DD/FD prefixalt IX/IH 8 bitre bontas tema. Kar, hogy Z180-ba ez nem kerult be, imho ez az inkompatibilitas fo oka, a tobbi cucc ritkabb. A TRAP kisse ambivalens, ha itt tenyleg lesz: egyreszt jo lenne, mert lehetne emulalni oket :) masreszt viszont nehany esetben bonyolit a dolgon, foleg, ha az ember nem szamit ra.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #85 on: 2015.June.09. 11:46:39 »
Kisse fajdalmas amugy ez a DD/FD prefixalt IX/IH 8 bitre bontas tema. Kar, hogy Z180-ba ez nem kerult be, imho ez az inkompatibilitas fo oka, a tobbi cucc ritkabb.
Igen, pláne, hogy ehhez szerintem külön dolgozni kellett, hogy ne legyen benne...
Mondjuk már azt sem értem, hogy a Z80-nál ez miért nincs benne a dokumentációban?
És amikor a Zilog átvette a Hitachitól, miért nem rakták bele...

Egyébként emlékeim szerint amíg nem jött a Fenas, addig nem voltak ezek se közismertek EP-n.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #86 on: 2015.June.09. 11:59:57 »
Igen, pláne, hogy ehhez szerintem külön dolgozni kellett, hogy ne legyen benne...

Szerintem valoszinu, hogy nem ilyen egyszeru a kerdes azert. Z80-on az IX,IY "bonthatosaga" lehet nem volt a tervben, csak igy sikerult megvalositani, hogy logikusan a DD/FD prefix-ek hatasara ez tortenik, aztan kulon nem szorakoztak vele, hogy ezt eliminaljak, max nem dokumentaltak (hasonlo dolgok vannak 65xx CPU-kban is, de ott meg durvabb dolgok is). Lehet, Z180-nal nem az az oka, hogy direkt eliminalni akartak ezt, hanem, pl maskeppen dekodoljak mar az utasitasokat, ami mondjuk vmi Z180 feature-hoz kellett ezert nincs benne ott mar. Lehet, Z180 eseten pont ahhoz kellett volna kulon dolgozni mar, hogy benne legyen, elteroen a Z80-tol :) Elvegre ezt a feature-t Z80-on akar bug-nak is lehet tekinteni (ami feature hehe), es ugye kompatibilis termeknel mindig erdekes kerdes, hogy a bug-okat is kell-e implementalni.

Quote
Mondjuk már azt sem értem, hogy a Z80-nál ez miért nincs benne a dokumentációban?

Gondolom pont azert, mert nem tervezett feature, csak "igy jott ossze" :) Ezt mutatja az a teny is, hogy a Zilog sajat asm szintaxisa (miutan a 8080-at nem vittek tovabb, ha jol remlik vmi jogi problema lett volna ezzel - mondjuk _szerencsere_ azt kell, hogy mondjam, mert a 8080 asm az szerintem inkabb remalomra hasonlit) nem is "szep" ebben az esetben: mig BC az siman kettebonthato B es C neven, az IX ugye nem: nem I es X :) lesz belole, hanem IXH es IXL. Szerintem ez is mutatja, hogy erre nem gondoltak ... Aztan kesobb lett kitalalva vmi asm syntax erre is.

Quote
És amikor a Zilog átvette a Hitachitól, miért nem rakták bele...

Ez is jo kerdes. Lehet, mivel ez sose volt Zilog reszerol dokumentalva, ezert ugy tartottak, hogy ezt nem is szabadna hasznalni. Ami vegulis igaz is, lasd amikor EP "emlekiratok" kapcsan is elhangzott, hogy IS-nel volt eloiras: nem dokumentalt utasitast nem hasznalunk, hiszen oka van, hogy a gyarto nem dokumentalta. Es igazuk is lett ... Mert pl Z180 mar nincs. Ez persze nem valtoztat azon, hogy lehetne, jo lenne az .....

Mas: itt az uj teszt, sajnos most epp kiprobalni emun se tudtam :D szoval vagy mux, vagy nem. Van benne meg ket tesztelt opcode, ED-s es CB-s opcode-okbol.

update: volt egy hiba a test programban. Inkabb innen: https://raw.githubusercontent.com/lgblgblgb/xep128/master/doc/z180test.asm

Ez mar kiir egy "M" nevu cuccost is. Ez nem register, hanem egy byte a memoriaban, amit az egyik teszt allit, a set 6,(iy+0)->a konkretan. Ebben mar a Z180 trap detektalas is benne van, mint irtam, azt, hogy mukodik-e persze nem tudom :)
« Last Edit: 2015.June.09. 16:56:01 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #87 on: 2015.June.10. 08:50:21 »
Megneztem a neten keresgelve Z180 emulatorokat. Haaaaat :) Eleg nagy a szoras, ugy latom abban sincs egyetertes, hogy mi az invalid opcode es mi nem (ami ugye nekem is kerdes), lesz-e trap adott esetben vagy nem. Plusz altalaban addig jutnak, hogy loggoljak/kiirjak, hogy invalid opcode oszt' csok, trap stb emulacio az nuku. Szoval erdemes lenne majd megcsinalni normalisan, mert eleg gyer a felhozatal, ugy tunik :) Es igy puskazni sem tudok masrol :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Z180
« Reply #88 on: 2015.June.10. 15:16:53 »
Zozo, hogy is van az EXOS-odban? Alapbol a Z180 0-3F portokon figyel sajat celokra, ugye? Ha jol remlik EXOS 2.3-ban (2.4?) te ezt elmozgatod, hogy EXDOS-szal ne utkozzon. A kerdes, hogy hova! 40h-rol kezdve cimre, vagy C0h-tol? Gondolom a 80h nem focizik, mert akkor ugrana a Dave/Nick :D Most ez azert kell, mert a teszt programomat tovabb finomitanam, hogy kiirja a Z180 ITC (Interrupt-Trap control) port erteket is, ha trap-ra kerul a sor, hatha abbol is ki tudunk vmit kovetkeztetni (kozben ui olvasom a Z180 leirasat, es eppen ezt talaltam hasznosnak meg!). Ha jol latom emulatorom outputjabol 0x40-tol rakod, legalabbis a 0x3f portra ez megy ki, felso ket biten. Igazam vagyon?

A masik: azt latom, hogy Z180 akkor reagal csak belso portjaira, ha a 8 felso bit nulla az I/O cimnel. Itt, ha jol kombinalok nincs a Dave "elrontja a 16 bites I/O-t" eset, mivel a Z180 belso portjait meg persze a Dave elott "sajat magaban" latja mar eleve.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Z180
« Reply #89 on: 2015.June.10. 15:23:46 »
Igen 40h-re. (A Spectrum emu, ill. az órakártya programjában kell majd ezzel foglalkozni, vagy arrébb rakni őket :-) )