Welcome, Guest. Please login or register.


Author Topic: ROM0 kommentek a zöld könyvbõl (Read 15887 times)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #15 on: 2007.November.23. 21:32:46 »
Ha kézzel írja az ember a megjegyzéseket, akkor túl sok trükk nem kell ;-) Z80-at támogatja.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #16 on: 2007.November.23. 21:36:28 »
Z80-at támogatja.
És az olyan specialitásokat mint az EXOS hívás?

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #17 on: 2007.November.23. 22:29:36 »
Azzal még nem foglalkoztam, de szerintem meg tudom azt is csinálni majd.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #18 on: 2007.November.23. 22:38:25 »
Úgy általában jó lenne arra megoldás, hogy egy adott bájt(sorozat) után x db bájt az nem Z80 kód hanem egyéb adat.
Bonyolultabb amikor nem fix x bájtról van szó, henem mondjuk addig amíg pl nullával le nincs zárva a sorozat.

Ezután lehetne neki esni az eddig még nem visszafejtett ROM-oknak :-)

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #19 on: 2007.November.23. 22:46:21 »
Hogy egy egyszerû konkrét példát mutassak, az EXDOS-ban van ilyen:
Code: [Select]
        CALL    0C0F2 ;LD DE,(IY+055H)
        DB 055H

A bonyolultra meg az IS-BASIC RST 10H-ja a példa.
« Last Edit: 2007.November.23. 22:50:20 by Zozosoft »

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #20 on: 2007.November.23. 22:52:59 »
Az ilyen egyéb adatokat most is meg lehet adni lásd a képet.
[ Guests cannot view attachments ]
A trükk annyi, hogy ami szerinted kód ott nyomod a C-t, ami szerinted adat ott a D-t. Ilyenkor a D többszöri megnyomásával lehet váltogatni a DB,DW, DD stb között.
Egy gond van, bár ez az IDA működéséből adódik.
Ha megnézed a 0C008h-n lévő 5780h címet, akkor az tulajdonképpen a ROM0-ban lévő cím és ha P3-on van a ROM0, akkor 0D780h-nak felel meg.
Ha 0D780h lenne ott akkor az IDA simán tudja, hogy az egy offset a szegmensen belül (a beolvasott ROM-ból szegmenst kellett definiálni), mivel a ROM-ot 0xC000-ra töltöttem be. Így viszont nem tudja. Biztos van erre is valamilyen trükk, de még nem jöttem rá mi. Bűvészkedtem a szegmensekkel, de még nem az igazi.

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #21 on: 2007.November.23. 22:59:27 »
Sejtem már mire gondolsz.
Amikor egy "magasabb" szintű rutin, aminek több paramétert kellene átadni úgy kapja meg az adatokat, hogy a hívás utáni területen vannak az adatok. Ahhoz, hogy az ilyen hívások helyett szép, paraméteres függvényhívásokat lássunk, szerintem némi IDC-ben történő bütykölés szükséges, de a lényeg, hogy megoldható.
A cél gondolom az, hogy lefordítható assembly forrásunk legyen. Milyen fordítóval? HEASS vagy valamilyen PC-s Z80 assembler legyen a cél?
Gyanítom, hogy egy ilyen forráskód lefordítása Enterprise-on elég sok időt venne igénybe, talán célszerűbb lenne valamelyik PC-s assemblert megcélozni. Bár az ep128emu-t fel lehet kapcsolni max sebességre.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #22 on: 2007.November.23. 23:07:27 »
A trükk annyi, hogy ami szerinted kód ott nyomod a C-t, ami szerinted adat ott a D-t. Ilyenkor a D többszöri megnyomásával lehet váltogatni a DB,DW, DD stb között.
Ezt tudom, de azért van itt az asztalon ez a nagy doboz, hogy az dolgozzon helyettem :-)
Vagyis egyszerüen el lehessen magyarázni neki, és aztán csinálja meg automatán mindenütt.
Pl a DZ80-nak így lehet elmagyarázni az EXOS hívásokat. (Létezik hozzá pl Spectrum ROM-os fájl is, amiben vannak jó kis RST-k mint az IS-BASIC-ben :-) )

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #23 on: 2007.November.23. 23:27:26 »
Ahhoz, hogy az ilyen hívások helyett szép, paraméteres függvényhívásokat lássunk
Ez eredetiben szerintem MACRO használatával volt megoldva. De elsõ körben jó az is ha utasítás+DB lesz belõle, a fõ lényeg, hogy ne kezdje utasításnak gondolni az adatokat.
A cél gondolom az, hogy lefordítható assembly forrásunk legyen.
Jól gondolod! Aztán jöhet a továbbfejlesztés :-)
Milyen fordítóval? HEASS vagy valamilyen PC-s Z80 assembler legyen a cél?
Gyanítom, hogy egy ilyen forráskód lefordítása Enterprise-on elég sok idõt venne igénybe, talán célszerûbb lenne valamelyik PC-s assemblert megcélozni. Bár az ep128emu-t fel lehet kapcsolni max sebességre.
Az EPDOS1-9, ami hasonló bonyolultságú (tömörítettlen formában 425K forrásszöveg, és 32K-s szinte csak kódból álló ROM lesz a vége), az HEASS-al 7.12Mhz-es gépen 30 másodperc. Ez szerintem nem túl sok idõ, így ragaszkodok az EP-hez :-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #24 on: 2007.November.24. 00:38:25 »
a fõ lényeg, hogy ne kezdje utasításnak gondolni az adatokat.
Nem teszi. A kód analizátora felismeri az ilyen 'halott' kódokat, ahová nem jutna el a vezérlés és automatikusan DB-t csinál belőle.

HEASS-al 7.12Mhz-es gépen 30 másodperc. Ez szerintem nem túl sok idõ, így ragaszkodok az EP-hez :-)
Ez tényleg elviselhető.
Jó játék lesz mire előállítjuk majd azt a forráskódot, amit lefordítva az eredivel byte szinten teljesen azonos bináris állományt kapunk ;-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: ROM0 kommentek a zöld könyvbõl
« Reply #25 on: 2007.November.24. 00:41:09 »
Vagyis egyszerüen el lehessen magyarázni neki, és aztán csinálja meg automatán mindenütt.
Erre való az IDC. Ezzel lehet az IDA-t programozni. Nagyon hasonlít a C-hez. Ezzel akár azt is meg lehet csinálni, hogy olyan forrást csináljon az IDA ami változtatás nélkül fordítható a HEASS-szal pl. Még nem tudom hogyan, de tuti meg lehet ;-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Infók a rendszerszegmensről
« Reply #26 on: 2007.November.24. 03:00:53 »
Na, ez sem rossz :-)
Bármilyen ROM vagy EP program betöltése után indítsd ezt el (File, IDC File)
Csinál egy új szegmenst ami a rendszerszegmenst képviseli (0x8000 és 0xc000 között). Minden hasznos címnek ad (majd) nevet és megjegyzéseket.
Egyelőre csak pár dolgot írtam bele, a megkezdett minta alapján akinek van kedve beírhatná az összes létező infót akár a zöld könyből, akár máshonnan.

Online Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: ROM0 kommentek a zöld könyvbõl
« Reply #27 on: 2007.November.24. 12:14:07 »
Ez tetszik!
Egy kis segítséget most konvertáltam át HWP-bõl :-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Kibővített epsystem.idc
« Reply #28 on: 2007.November.24. 13:25:09 »
Némi regex-es find&replace után az általad szerzett infókkal kiegészítve így néz ki. A nagyobb területek és a 24 bites címek leírását kikommenteztem egyelőre. Ezekre majd kitalálok valamit. A 24 bites cím gondolom DB,DW formában legyen. A nagyobb területekhez pedig lehet definiálni array-t.

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
EPSystem.idc v0.1
« Reply #29 on: 2007.November.25. 13:45:48 »
Itt az új verzió. Most már a területek is benne vannak.