Welcome, Guest. Please login or register.


Author Topic: .BAS konverzió PC-n (Read 8011 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 24.0.1312.35 Chrome 24.0.1312.35
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #60 on: 2012.December.09. 20:58:11 »
Jut eszembe ... Ugye az a mondas, hogy azert kell a 0Ah tipusu "zaro" fejlec, mert EXOS mindig megprobalja a file-ban a kovetkezot is betolteni. Viszont emlekeim szerint amikor legutobb asm/C jatszadoztam 5-os tipusu fejleccel, ott nem volt ilyen zaro elem. Most akkor nem minden esetben kell? :( Eleve kicsit misztikus, mert nekem ugy tunt volna logikusnak, ha mindig kell, illetve pl ha a fejlecben van info, hogy milyen hosszu a fejlec utani resz a kov fejlecig, de ugy latom ez se konzisztens, pl WP-bol kimentett file eseten a 8-as type-on kivul minden byte nulla a fejlecben. Ergo, csak akkor tudom hol a kov fejlec (ami lehet a 10-es zaro is) ha "parse-olom" az adott reszt, igy byte-re pontosan tudom hol van vege. Itt a masik gondom is: pl "editor document" (8as) tipus eseten nem igazan talaltam doxot h mi micsoda a "streamben" csak annyi info volt hogy van harom byte minden sor elejen ami "valamit" tartalmaz, aztan a sor, aztan meg egy zaro byte, am megint nem tudom mi, csak empirikus alapon azt csinaltam, hogyha 32-nel kisebb byte jon akkor az spec, es uj sor jon, ha meg 2, akkor vege a file-nak. Ezzel latszolag a konverter az altalam wp-ben irt teszt szoveget jol megjeleniti, de persze ez nem tul szep, es zavar is, hogy pontosan nem tudom mi micsoda.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 25.0.1364.97 Chrome 25.0.1364.97
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #61 on: 2013.February.22. 14:43:28 »
Azt hiszem at kell majd nevezni a cuccost, mert ez mar messze nem csak .BAS file-ok "listazasara" jo :) Ugye egyreszt mar elvileg tud editor buffer-t is (azaz pl WP file-okat), masreszt volt nemi type-5-re hex dump, a legujabb agymenesem pedig, hogy Z80 disassembler-t akarok irni. Ennek elso realizalodasa nem is lett imho olyan rossz, ahhoz kepest h en irtam a disassemblert, itt egy minta output: http://epbas.lgb.hu/disasm.html.

Elvileg nem lenne rossz a cucc, ui ez nem csak egy "sima" disassembler, hogy vegigmegy-oszt-csokolom, hanem tobb iteracios lepesben koveti a code-flow-t, code es data xref-eket csinal, sot - korlatozottan - linearis kod eseten tudja h mi van az egyes regiszterekben igy pl EXOS funkciokat, azok parametereinek szerepet stb is tudja (na jo: tudni fogja ...). Jelenleg mint lathato van pl "EXOS call, unknown function", ez csak amiatt van hogy nem toltottem fel a kerdeses hash-t, ami tartalmazza az exos funckiok szoveges leirast, csak 1-2 peldat tettem bele :)

Viszont elvileg tamogatja (vagy legalabbis kod szinten tamogatas van ra, user fele realizalni nehezkes ...) a manual code hintinget, es egyeb dolgokat, sot nem csak EXOS fejleces stuffra hanem akar egy ROM image-t is, csak kozolni kell a cuccal, hogy akkor az nem exos file lesz. Ez elvileg jo lehet(-ne) akar ROM image disassembly projecthez is.

Persze ez sem csodaszer, sajnos arra nem alkalmas, hogy futasidoben torteno dolgokrol tudjon rendesen, pl a B0-B3 regisztereken at a memorialapozas, nem konstans ugrasok (regiszter ertek alapjan pl), vagy nem konstansbol inicializalt regiszterek felhasznalasa. Igy, bar en EXOS rom image-re tesztkent raersztettem, nyilvan "siralmas" az eredmeny, mivel a code-flow kovetese kapcsan nem tul sok helyre jutott el. Manual codepoint hinting persze segitene rajta.

Viszont elvileg amit disassemblal a cuccos, elvileg sjasm le is tudja forditani, erre probaltam figyelni, meg tesztkent is hasznaltam a "visszaforditos ellenorzest".

Sajnos ez most igy total felkesz, sok sulyosabb hiba is van benne, illetve az invitel.hu/lgb/... cimemen levo verzio meg NEM EZ. A fenti url-en (epbas.lgb.hu) alatt valami felkesz verzio van, nem ajanlom most meg kiserletezesre, csak aki batrabb :)

Probaltam irni doxot is, sajnos fele kb ertelmetlen :) vagy valojaban nem is ugy van, de kb ad ralatast a dolgokra, ha valakit erdekelne: http://epbas.lgb.hu/readme.html.

Kerdesem az lenne  hogy szerintetek van-e ilyen feature-okre realis igeny, foglalkozzak-e vele, valakit erdekel-e ... Nyilvan sajat szorakoztatasomra elvagyok vele, amde "nagyobb az orom", ha valami olyasmit csinalok, ami hasznos masnak is esetleg. Illetve mondjon mar valaki nevet, hogy mi lehetne egy ilyen project neve, mivel ez mar messze nem basic csak ... tehat az "epbas" meg a forum topic nev is megteveszto.

Btw, disasm soran csinal belso xref listat is, ami html modban elvileg klikkelheto is, illetve oda is van irva h mi mire hivatkozik. Ez basic-nel is ott van mar nehany esetben (tehat messze nem mindenhol ahol kene). Szerintem ez jol johet, ha az ember egy nagyobb programot akar megerteni.

Amin meg gondolkoztam, az a "code/data hinting" intelligense tetele, azaz kb disasm-om kikop vmit, ha edital benne az ember h "szep neve" legyen egy label-nek, vagy megadja, hogy adott ponton belepes van (marmint ott kod), akkor kovetkezo pass-kor figyelmbe veszi, es mar ugy csinalja, illetve label-eket is ugy nevezi el, stb. Meg, egy kis python tornado framework bevonasa, amivel egy minimal webservert maga ala huz, igy weben at is hasznalhato, aminek ugyan sok ertelme nincs, de vicces legalabb :) Max arra jo, hogy nem CLI-bol kell hasznalni, hanem local gepen is lehet browserbol konvertalgatni mondjuk.

Amugy a disasm project onnan szuletett kis fejemben h nem talaltam ertelmes "intelligens" z80 disassemblert. Elvileg - ha jol tudom - az IDA (vagy mi a neve) tudna ilyet, de az vagy fizetos, vagy csak regi free van ott, vagy nekem nem mukodott, vagy pedig windows kell hozza, vagy ezek kombinacioja. Es persze hianyzik az elvezeti faktor is, hogy nekem kell megirni.

Tenyleg nem tudom, hogy ez erdekes dolog-e masok szamara ...
« Last Edit: 2013.February.22. 14:53:58 by lgb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #62 on: 2013.February.22. 15:03:32 »
Nagyon-nagyon jó lenne egy EP-re kihegyezett "IDA"!!!
Ha gondolod tudok kívánság listát írni, hogy mivel szokott meggyűlni a bajom :-) azaz mit kéne tudnia egy jó disassemblernek!

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 25.0.1364.97 Chrome 25.0.1364.97
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #63 on: 2013.February.22. 15:11:16 »
Quote from: Zozosoft
Nagyon-nagyon jó lenne egy EP-re kihegyezett "IDA"!!!
Ha gondolod tudok kívánság listát írni, hogy mivel szokott meggyűlni a bajom :-) azaz mit kéne tudnia egy jó disassemblernek!

Amugy az a bajom, hogy kisse szerteagazo a cucc, mert eredetileg basic "listernek" indult aztan mar kisse sok minden van belezsufolva. Lehet kulon kene bontani a dolgokat ... Az alapjan amit irtam pl readme linken meg a pelda disasm output van vmi hozzaszolasod h szerinted ez ertelme-e igy, vagy maskepp kene csinalni?

Masreszt persze, erdekelne marcsak kivancsisag miatt is, hogy neked pl mi a preferenciad egy ilyen stuff kapcsan, az mas kerdes, hogy nekem van a idom/energiam/stb, foleg ha tul komplex dolgokrol van szo ...

Persze nem konnyu "intelligens" disassemblert irni azert, nem veletlen (gondolom) hogy az igazan jok azok ritkak, es altalaban penzbe is kerulnek ...

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 25.0.1364.97 Chrome 25.0.1364.97
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #64 on: 2013.February.22. 16:47:26 »
EXOS fejlecu dolgokra ki lehet probalni online is a cuccost, itt: http://epbas.lgb.hu/tryit/

Mondjuk nem feltetlen "bolondbiztos", egy teszt alapjan elvileg igy megy ... Elmeletileg mehet neki basic, wp file, meg pl type-5-os headerrel megaldott cuccos.

Ezt most csak kidobtam oda, jelenleg minden debug/hex/info mod be van kapcsolva es nem allithato igy online, tehat az output eleg tarka lesz :-) Mar ha eppen mukodik :-@

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #65 on: 2013.February.22. 20:36:24 »
Igazán jó disassemblerhez szerintem külön projekt kéne, rendes ablakos programmal :-)
Míg egy BASIC vagy WP fájl teljesen egyértelmű, jól kezelhető parancssoros programból (vagy ilyen feltöltős formában!), addig a gépi kód visszafejtésénél számos ponton emberi segítségre van szükség, ahogy azt a readme-ben is említed. Ezt éppen úgy is meg lehetne tenni, hogy újabb bemenő paraméterekkel futtatjuk a parancssoros dolgot, de elég kellemetlen újra kezdeni az egészet, amikor már több száz sornyi komment meg van :oops:
Szóval valami olyan interaktív program kéne mint az IDA, csak EP-s dolgokra fejlesztve.
Ettől még megmaradhatna a disassembler "motor" a parancssorosban is, pláne ebben a feltöltős formában! Egyszerű dolgokra mint pl egy betöltő visszafejtése már remeknek látszik!

Jöjjön tehát az álmom :ds_icon_cheesygrin: alap az IDA működése.
A fált betölti a 64K címtartományban a megadott címre, amelyet az ismert típusoknál lehet a fejléc vagy típus alapján felajánlani.
A háttérben egy adatbázis dolgozik, amiben nyilván lesz tartva minden egyes bájtról, hogy kód, adat (DB), 16 bites adat, ASCII karakter, stb, valamint a bájtokhoz tartozó kommentsorokról is.
Minden egyes bájtra rá lehet bökni, megadva annak a típusát.
Alapból tehát egy rakás DB látszik, amíg rá nem bökünk egy adott helyre, hogy na ez kód. Ismert típusokhoz fel is lehet ajánlani a kezdőcímet kezdetnek.
Elsőként nyilván a program kezdetére bökünk, de később még számos alkalommal szükség lesz rá, ahogy felfedezünk pl. a JP (HL)-lel hívott szubrutinokat.
A megadott ponttól kezdve elindul az analízis, minden lehetséges elágazást bejárva, a feltárt kód bájtokat kóddá változtatva. Ezt már elég ügyesen tudja is a program, pár még kezelendő trükkről később írok még.

Ezután neki lát az ember a felderített kódot megérteni, kommentelni.
Szükség van arra, hogy az utasítások paramétereit módosítani, hogy az nem egy puszta szám, hanem a program egy pontja, ahova címkét kell tenni. Ez lehet adatra vagy kódra mutató, kódra mutatás megadása esetén már futhat is az analízis az adott címtől, ha eddig nem volt kód.
A címke generálásnál legyen lehetőség offsetet megadni, pl 0FFEH-ból legyen L1000-2, és a címke az 1000H címre kerül.
Ugyanez kéne címtáblázatok definiálásánál is, ahol egy rakás bájtról mondjuk meg, hogy ez most 16 bites rutincímek, amikhez mehet a címke gyártás, kód analizis.

Analizisnél olyan trükköket kéne kezelni, hogy ha utasításba történik írás/olvasás, azt az utasítás cimkéje+offset módon dekódolni, pl:
          LD (L1000+1),A
...
L1000  LD A,0

Töltelékbájtos módszert kezelni, amikor egy plusz utasítás beszúrásával érvénytelenítik a következő utasítást, pl egy felesleges értékadás paramétereivé változtatva az utasítás bájtokat, az EXDOS tele van ilyenekkel:
    ;csatorna megnyítása olvasásra, automatikus szabad csatornaszám kereséssel
lc336:  RES     7,L        ;itt belépve L 7-es bitje nullázva
    DB 01H    ;töltelék bájt, hogy az utána következő SET 7,L ne fusson le

    ;csatorna megnyítása írásra, automatikus szabad csatornaszám kereséssel

LC339:    SET    7,L        ;itt belépve pedig egyes
Innentől egy rutin az írás/olvasás, az itt beállított jelzőbitet használva.

Ez visszafejtésnél ellentmondásként fog jelentkezni, mivel egy több bájtos utasításba lesz újabb belépés. Az ilyet úgy kéne feloldani, hogy a hátrébb lévő rövidebb utasítás legyen a kód, a kimaradó bájt pedig DB (kommentbe mehet, hogy mi lett volna innen nézve az utasítás).

Nagyon fontos lenne MACRO utasítás definiálási lehetőség: gyakran használt módszer, hogy az RST vagy CALL utasítás után adatbájtok találhatóak, amelyeket nem szabad kódként értelmezni, mert a valódi visszatérés majd ezek után történik. Kéznél is van a példa, az EXOS hívás, ahol egy adatbájt van az RST hívás után felhasználva.
Kétféle ilyen lehetőség kéne, az egyiknél az lenne megmondva, hány adatbájt van, másiknál meg az, hogy milyen értékig kell adatbájtnak értelmezni.
Pl. megmondjuk, hogy a CALL 1234H hívásnak legyen SZORZAS a neve, amit két adat bájt követ.
Ekkor definiálja a SZORZAS macrot, majd az összes eddigi kódban kijavítja az előforduló hívásokat, ezutáni kód analizisnél meg eleve használja.

Kellene PHASE blokk kezelés, amikor egy adott kódszakaszról megmondjuk, hogy az egy másik címen fut, ennem megfelelően kell újraanalizálni, címkézni. Ebből kétféle lehet, egyik amikor fix más kezdőcím (átmásolt kódrészlet, pl PHASE 0100H), ill a más lapra lapozás, amikor pl. PHASE $+8000H féle formában történik a módosulás, azaz +/- 4000h,8000h,C000h értékkel változnak az eredeti címek.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 25.0.1364.97 Chrome 25.0.1364.97
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #66 on: 2013.February.25. 13:14:58 »
Koszi az iromanyt :) Amugy az en programom hasonlo elven mudik, mar ami a "db epitest" illeti, van belole egypar (code, data, xref, ...). A problema inkabb az, hogy ezen db-k beli info felhasznalasa korlatozott, mert azert (meg?) nem annyira szofisztikalt a cucc :) Bar azert most is van be egy rakas intelligencia, pl a code-flow kovetese regiszter ertekekkel egyutt (amig konstanssal van inicializalva legalabbis, ugymond), megprobalja kitalalni hogy ASCII string, probalja eldonteni hogy code vagy data stb. A legtobb gondom amugy a "fallback pass"-al van, amikor az iteraciok vegen "maradnak lyukak" (nem jut el a vezerles mindenhova az iteraciok elvegzese utan), ezeket megprobalja szinten kodnak tekinteni, hacsak nem erzekeli, hogy data label hivatkozas van. Nyilvan ez se jo (a peldakon is latszik, amit lattam a tryit linkemen kozben), amde mas otletem hirtelen nem volt. Abban igazad van, hogy ez jelen allapotaban igy is messze van az IDA-szeru allapottol, pl ha kodbol olvasol, akkor szegeny teljesen megkergul, illetve en is sokat lamentaltam a "kod elcsuszas" jelensegen amit pl az altalad is emlitett "toltelek byte" vagy egyes hivasok utan a code-ba "fesult" adat okoz (ez utobbira egyedul az EXOS hivasakonal most is van mukodo sema, masra nincs, de EXOS-ra konnyu, mert ugye az "fix" a tobbi viszont programfuggo: es itt mar valoszinuleg tenyleg user interakcio is szukseges, magatol nem feltetlen tudja eldonteni).

Irtal par dolgot viszont, ami - elso korben - nem feltetlenul jutott volna eszembe, hogy fontos lehet.

Oszinten IDA-t ezer eve hasznaltam (lehet szo szerint is, marmint az elozo evezred ertelmeben), DOS alatt meg, es csak x86-ra, tehat az ugyben mar nem remlik sok, azota csak a weboldalukat nezegettem, de igazabol csak windows stb verziokat talaltam, ami rajtam nem segit, mivel windows-om sose volt es most sincs.

Amit irtal az "interaktivitasrol": azt hiszem, felreertheto voltam. Nyilvan en sem gondolom, hogy valami hinting (en hivom csak igy ...) megadasa, vagy egyeb user interakcio utan legeneralja ugy, hogy minden user altal beirt comment-et, hint-et, stb lehet elolrol kezdeni, az azert eleg durva lenne :) Amire en gondoltam az az, hogy maga a "hinting' (es itt legyen szo user altal megadott sajat label nevekrol, esetleg code/data kijelolesrol, phase beallitasrol vagy barmirol amirol te is irtal) az az elozo lepesben disassemblalt listaban lenne valahogy, amit inputkent benyalva figyelembe vesz az output eloallitasanal, tehat abba a user comment-ek belekerulnek!

Ez utobbira azert gondoltam igy, mert nagyon utalom a GUI-t, foleg ha egy programba "bele van betonozva" :) Akkor ugye a program maris platformfuggo, gond lesz, hogy linux/windows, de meg tfh linux only, akkor is jon, hogy van aki gtk2-ot szereti, van aki gtk3-at, van aki qt-t. Ok, tudom vannak crossplatform gui toolkit-ek is, de azokat meg en nem szeretem pl :) Egyebkent is, ha valami GUI-val van megaldva, az elvagja a lehetoseget, hogy mondjuk autmatizalni lehessen script-bol .... Ezt mint mplayer fejleszto is megtanultam, hogy a legjobb, ha definial az ember vmi interface-t (ami script-bol mas programbol is elerheto), es maga a GUI - ha van/kell - csak erre epul ra, tehat szigoruan veve nem a program resze ... Ettol persze a user szamara tekintheto ugy is adott esetben. Errol az jut eszembe, hogy talan BeOS-en volt a GUI allat jo modon megoldva: olyan objektum orientalt strukturara volt "levetitve", hogy GUI volta ellenere, programbol is lehetett vezerelni _barmit_ amihez GUI-t irtal, mert minden grafikus elemnek a GUI kapcsan volt API szinten elerheto megfeleloje, raadasul automatikusan, nem neked kellett megirnod. Amennyire en koveteni tudom a "trendeket" azt latom, hogy egyre jobban ez a szitu, hogy platform fuggo GUI-t el akarjak felejteni, legyen pl minden webes technikakra leforditva (lasd pl WebOS, de ez a mozilla phone otlet is, vagy mi a fene) es ezen at elerheto (lasd lentebb). Mondjuk azert nekem ez ambivalens kisse, egyreszt tetszik is, masreszt nem is!

Amire en gondoltam, hogy olyan "GUI" lehetne hozza ami web based. Itt persze ne a "feltoltes oszt' csok" megoldasra gondolj, hiszen webes megjelenes eseten is lehet editor-t odavarazsolni, es minden mas csili-vili dolgot is. Ennek elonye lenne, hogy pl adott esetben installalni sem kell a programot ha hasznalni akarod (ellenkezo esetben pl kell python, kene egy csomo python modul, GUI toolkit, a fel vilagegyetem, stb). Olyan alomszeru advanced feature-okrol nem is beszelve, mint pl az, hogy tobb ember is lathat egy project-et akar. Hatranya, hogy weben van :) Jo pelda erre, hogy az lgb.hu "webserver" (kicsit tulzas annak nevezni, lepukkant PC) nem volt elerheto a hetvegen, ami engem is zavart konkretan :) Nyilvan sajat gepen futo megoldas eseten ez nem gond.

Persze nekem is nagy a szam, fene tudja, hogy lenne erom ilyet megcsinalni :)

Zozo, amugy ezt a "PHASE" kifejezest amit irtal, ezt IDA igy hasznalja, vagy valahol szokasos elnevezes? Csak erdekelne.

Illetve meg egy kerdes: ugy remlik mar anno kerdeztem az osidokben amikor EP emulatort irtam :) Van valahol _teljes_ osszefoglalas EP I/O portokrol? Amiben nem csak a szokasos Nick/Dave van benne, hanem minden kb, EXDOS kartyatol kezdve mindenfele ZozoRTC-ig, stb :) Nem emlekszem (es most nem is talalom ...), hogy erre aztan mondott-e vki valamit. Ha mar vannak szep EP doxok kb mindenrol, nem lenne rossz egy ilyen jellegu lista. Eleve latni, hol van meg szabad port, hogy lehetoleg semmifele hw kombinacioban ne legyen utkozes, illetve nekem konkretan a disassemblerembe kene hogy idiota kommenteket irhassak az IN/OUT utasitasokhoz (tudom, "nagyon" hasznos ...).
« Last Edit: 2013.February.25. 16:02:22 by lgb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #67 on: 2013.February.25. 23:00:21 »
Addig is rakhatsz FORTH listázást a programba, ez baromi egyszerű lesz :-)
1-es fejéc, az típus utáni bájt azt mondja meg, hogy hány BUFFER van a fájlban.
Minden buffer elején a száma, majd 00 (ezt még nem tudom mire jó), majd 1024 ASCII karakter (nem használt rész SPACE-val feltöltve).

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 25.0.1364.97 Chrome 25.0.1364.97
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #68 on: 2013.February.26. 00:12:56 »
Quote from: Zozosoft
Addig is rakhatsz FORTH listázást a programba, ez baromi egyszerű lesz :-)
1-es fejéc, az típus utáni bájt azt mondja meg, hogy hány BUFFER van a fájlban.
Minden buffer elején a száma, majd 00 (ezt még nem tudom mire jó), majd 1024 ASCII karakter (nem használt rész SPACE-val feltöltve).

Te Zozo, nem alapitasz egy IS-HUN Kft-t, es veszel fel bermunkaban? :) Nade komolytalanra forditva a szot: a te kedvedert es Bruce tiszteletere (akinek irasait nagy erdeklodessel olvasom "kezdo" EP-s letem ellenere - vagy pont azert) belepakoltam. Kiprobalhato a tryit-es linkemen szokas szerint. Vigyazat, csak egyetlen egy file-al teszteltem (amiben csak egy buffer van) ennek output-ja itt van:

http://epbas.lgb.hu/result-forth.html

Egy erdekesseg, amit meg mindig nem ertek: miert van az, hogy az EXOS fileformatum lathatoan remekul megtervezett, egymas utan tobb modul is lehet stb, viszont egyes esetekben a 10-es fejlec nelkul "vege a dalnak", ugy tunik az IS-FORTH tipus is ilyen, legalabbis abban a file-ban amiben teszteltem, az utso byte-ig tart, nem zarja le semmi. Ezt mindig igaznak feltetelezve beallitottam hogy az 1-es header tipus utan alljon le, igy nem fog hibat adni, hogy a kov EXOS header parse-olasa sikertelen mert csonka a file :)
« Last Edit: 2013.March.05. 23:26:41 by lgb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #69 on: 2013.March.08. 12:06:12 »
Quote from: lgb
Te Zozo, nem alapitasz egy IS-HUN Kft-t, es veszel fel bermunkaban? :)
Ha sikerül elvinni a lottóötöst, akkor lehet róla szó :-D

Quote
Egy erdekesseg, amit meg mindig nem ertek: miert van az, hogy az EXOS fileformatum lathatoan remekul megtervezett, egymas utan tobb modul is lehet stb, viszont egyes esetekben a 10-es fejlec nelkul "vege a dalnak", ugy tunik az IS-FORTH tipus is ilyen
Vannak olyan modulok, amik átveszik a vezérlést, és így megszakad a töltögetési ciklus, ilyen pl az 5-ös fejlécű gépi kódú program, ezután felesleges bájtpazarlás 10-es fejlécet tenni :-)
A IS-FORTH LOAD-BUFFERS parancsa nem kezel más típust, ezért nem is ciklikusan töltöget. (Ez mondjuk FORTH oldalról ok, EP oldalról nem szép :oops: )

Más: EXOS ROM típusnál, <=16K-val kéne nézni a max 16K-t. (ez mondjuk az ep128emu-ba is jó lenne, hogy ne kelljen a kisebb ROM-okat felkerekítgetni üres bájtokkal...)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.28 Chrome 26.0.1410.28
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #70 on: 2013.March.08. 15:13:51 »
Quote from: Zozosoft
Ha sikerül elvinni a lottóötöst, akkor lehet róla szó :-D
Majd szolj :)

Quote
Vannak olyan modulok, amik átveszik a vezérlést, és így megszakad a töltögetési ciklus, ilyen pl az 5-ös fejlécű gépi kódú program, ezután felesleges bájtpazarlás 10-es fejlécet tenni :-)
A IS-FORTH LOAD-BUFFERS parancsa nem kezel más típust, ezért nem is ciklikusan töltöget. (Ez mondjuk FORTH oldalról ok, EP oldalról nem szép :oops: )
Aha, koszi!

Quote
Más: EXOS ROM típusnál, <=16K-val kéne nézni a max 16K-t. (ez mondjuk az ep128emu-ba is jó lenne, hogy ne kelljen a kisebb ROM-okat felkerekítgetni üres bájtokkal...)

Ontevekeny vagy, nem is remlik, hogy reklamoztam (vagy csak elfelejtettem h megtettem) miszerint beleganyoltam hogy az EXOS_ROM-ot magatol felismerjen. Amugy OK, az az ellenorzes csak annyi hogy pont 0x4000 byte kell hogy legyen. Most atirtam arra, hogy annal nagyobb nem lehet, kisebb (vagy egyenlo) igen (a disassembler amugy byte pontossagra helyezi be az "emulalt memoriaba" szoval mindegy a pontos merete). 16K-nal nagyobb ROM-nal persze baj van, mert ha jol sejtem az EXOS_ROM-okat mindig C000-nal kezdi (azaz ha jol tippelek a 0xB3 dave regiszterrel lapozgatja be maganak), igy mar "nem fer el" tobb adat a 64K-ba. Gondolom oda mar lapozgatni kell a memoriat stb, amit ugye a disassemblerem most eppen amugy se dijazna, mert nem tud rola semmit, azon kivul h commentbe kepes odairni hogy IN/OUT volt ilyen regiszterekre :(

Ezek mellett amugy volt jo par bugfix pl disasm commentekben minden PC ertek helytelen volt :) meg hasonlok, lasd a mara mar total ertelmezhetetlenne valt dokumentaciom :) veget a changelog-nal. A doxot nyilvan at kene neznem egy jo resze nem is az aktualis allapotot tukrozni, vagy ellentmondasos stb. Bar nem tudom kit erdekel a dox egyaltalan (mondjuk volt egy forum thread ahol egy kulfoldi srac kerdezte van-e doksi az .BAS "on-disk/in-file formatumrol", neki esetleg jol jonne errol is ... tenyleg nekem is ugy kellett osszevadaszni innen-onnan, ilyen elven meg mar le is irhatnam valahova). Btw, a -db kapcsoloval (de amugy ott van a weboldalon is h mit ad outputnak) mar latszanak extra dolgok is, mint pl az IS-FORTH default wordlist, meg hasonlok (mivel ez kellett az IS-FORTH highlightinghoz). Ja, meg persze amit beszeltunk a forth-os angol thread-ben: probaltam fixalni az idiota block number anomaliat amit okoztam, hogy ne fuggjon tole, most a te proba.4th-dat is megeszi elvileg.
« Last Edit: 2013.March.08. 15:20:11 by lgb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #71 on: 2013.March.08. 15:18:46 »
Quote from: lgb
Ontevekeny vagy, nem is remlik, hogy reklamoztam (vagy csak elfelejtettem h megtettem) miszerint beleganyoltam hogy az EXOS_ROM-ot magatol felismerjen.
Oda van írva a tryit oldalra :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.28 Chrome 26.0.1410.28
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #72 on: 2013.March.08. 15:21:37 »
Quote from: Zozosoft
Oda van írva a tryit oldalra :-)

O ***CENSORED***, de szorakozott vagyok :) :) :) Ok, ott a pont :) Mondjuk meg mindig kevesbe ciki, mint amikor egy linuxos levlistan a sajat kerdesemre valaszoltam par het mulva, hogy kb: "Hi, neked is pont ez a problemad? ..." kezdetu levellel, a tobbiek jot mulattak rajtam :)

Btw, Zozo! Mi az abra a TEST_ROM -os dolgokkal? Az is kezelheto lenne hasonloan, adott fix cimre toltendo es adott fix cimen van a belepesi pont?

Azt meg megjegyeznem, hogy amugy elvileg az "absolute system extension" type is tamogatva van mar, habar csak dox alapjan beleirtam, egyaltalan nem biztos, hogy jo az ugy :) Lassan minden lesz itt mar, mondjuk az a "multiple basic program" az erdekelne hogy mi lehet. Illetve a LISP is erdekes lehet. A relocatable format-ot meg meg tanulmanyoznom kene.
« Last Edit: 2013.March.08. 16:47:17 by lgb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 19.0 Firefox 19.0
    • View Profile
    • http://enterprise.iko.hu/
Re: .BAS konverzió PC-n
« Reply #73 on: 2013.March.11. 16:01:13 »
Quote from: lgb
Lassan minden lesz itt mar
Ha lehet még javasolni, akkor jó lenne Asmon/Fenass/Heass forrásszöveg konverzió is (lényegében a szóközök vannak tömörítve).

Quote
mondjuk az a "multiple basic program" az erdekelne hogy mi lehet
Itt írtam róla.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 26.0.1410.28 Chrome 26.0.1410.28
    • View Profile
    • http://lgb.hu/
Re: .BAS konverzió PC-n
« Reply #74 on: 2013.March.11. 18:59:48 »
Quote from: Zozosoft
Ha lehet még javasolni, akkor jó lenne Asmon/Fenass/Heass forrásszöveg konverzió is (lényegében a szóközök vannak tömörítve).
Mivel en kvazi jaratlan vagyok (az atlaghoz kepest ...) az EP hasznalataban :) nalam mindig az a gond, hogy pelda kell, mivel az emlitett software-eket - a nevukon kivul, meg amit itt olvasok toletek - nem igazan ismerem.
 
Erot vettem magamon es megneztem a heass-t. Ez ugy tunik mintha exos header lenne 80h type-al. Nah hirtelen feltoltottem amit elsore sikerult, ket test file-al ugy-ahogy mukodni latszik, persze ez nem garancia ...

Ugy tunik az elso sor a file neve, ez ok is, ahogy rajottem arra is, hogy minden sor elejen a byte a sor hossza, illetve A0h vagy nagyobb byte az a space-ek szamat kodolja (A0=1db space, ...). FFh az jol lathatoan a file vege, bar nem tudom miert van utana akkor meg ket nulla byte feleslegesen. Ami viszont nem vili: az emlitett elso sor utan van 10db byte ami nem tudom mire jo, most siman atugrom. Az se biztos, hogy mindig 10 byte, akkor viszont biztos hulyeseget fog csinalni a programom :)

Ez amugy uaz a formatum mint asmon/fenass eseten, vagy van kulonbseg?

Quote
Itt írtam róla.
Aha, cool. Azert itt is: konkret file szintu peldat szivesen fogadnek. Tudom, el vagyok kenyeztetve :)
« Last Edit: 2013.March.12. 09:00:16 by lgb »