Szerintem a nick-et moderálták, s ment vele a hozzászólás is. Itt semmi kirívó nem volt benne, nagyjából azt kérdezte, hogy mit jelent az, hogy eredeti.
Talán azt, hogy nincsen felturbózva? Nagyon jó kis szoftvere volt, csak lassú, ezért szokás volt a Z80A-t Z80B-re cserélni, és az órajelet 6MHz-re felnyomni (lehetőleg átkapcsolhatóan).
Most is javítottam zee-n, felraktam az új verziót. A javítás a képernyő megjelenítésben történt, ugyanis ha a képernyő leírót úgy állítjuk be hogy a szélesség legyen 104, a zoom pedig 100, akkor egy 104*100 pixel szélességű képet próbált előállítani ami jó kis java-s exception-t okozott. A mostani verzió lekezeli a problémát, ugyanis max 2048 pixel magas, és 2048 pixel széles képet engedélyez. Ráadásul ha nem sikeres a kép megjelenítése akkor szépen kiírja ezt az asm-képernyőn. Ezt az újítást úgy tudjátok kipróbálni hogy először is letöltitek a v20070204 -es zee.jar-t, majd a teszt_random.asm -ben egy pontosvesszővel ki kell kommentezni 2 sort. Az egyik a "RET C", a másik a "RET Z". Így a fel-le billentyűkkel bármekkora zoom-ot (0..255) rákényszeríthetünk a megjelenítőre és vizsgálhatjuk mire hogy reagál. Jó próbálkozást.
Új z80-assembly progit írtam (teszt_random.asm), nézzétek meg. Ezenkívül fontos hogy a zee.jar-ból is a legfrissebbet használjátok, volt benne pár hiba ami az assembly forrást nem jól értelmezte, ezt is javítottam.
No, így már mindjárt más: monospaced font korrekt, a dump-ban a sorok hossza is rendben. Egyébként azért kellett így, mert iszonyat áttekinthetetlen, ha a sor elején a címek így jönnének:
0000 000A 0014 001E 0028 0032 003C 0046
stb.
Azért gyilkos dolog lenne így keresni a memóriában valamit. De így, hogy kijavítottad, már rendben van.
Most gyorsreagálású vagyok :) 1-3 pontokat megcsináltam, feltettem a honlapra, nézd meg. Most jónak kéne lenni az infó mezőben a fontnak, mert a logikai monospaced-et használom, az meg egy fix szélességű fontot vesz az oprendszertől.
1. Az info mezőbe valójában fix szélességű font van választva (courier 10) itt lehet hogy megint az lehet a probléma hogy linuxon nincs pont ez a típusú font. Java-ban van olyan hogy "monospaced", ez egy logikai név (fix szélességű fonthoz) ezzel próbálkozok majd legközelebb.
2. A memória, port címtartomány beírásánál megcsinálom hogy dec vagy hexaként értelmezze, ha "H" vagy "h"-val végződik akkor hexaként értelmezem, különben decimális lesz. Erre gondoltam én is.
3. Hexa dumpnál legyen 16 byte ? Végülis nem rossz ötlet, kivitelezés nem probléma, ez eszembe sem jutott hogy jobb lenne mint 10 byte kiírása, de talán lehet benne valami. A 10 byte olyan hasraütésszerűen jött, túl keveset sem akartam egy sorban hogy ne foglaljon sok sort, de hosszú sorokat sem akartam mert akkor nehezebb kiszámolni hanyadik byte-ot látom. De miért is látható át jobban ha egy sorban 16 byte van 10 helyett ?
4. "Ok" gomb felé érve valóban törli az üzenet mező tartalmát. Igazából itt meg akartam spórolni egy felugró popup ablak ok-zását. Ez megszokható így.
Mondom az észrevételeket. :) Valóban kijavult az olvashatóság, a szövegmezők már elegendően szélesek. A dump így már használható. Egyedüli bug, hogy a címtartomány input mezejében mindenképpen decimális értéket vár. Erre kétféle ötletem van: az egyik, hogy a megadás módjától függjön az értelmezés, pl. 0A7H, 0xA7, H'A7', 167. A másik, hogy az output radixát meghatározó radio button szerint értelmezze. Ez első általánosabb, flexibilisebb, viszont picivel nehezebb implementálni. Meg aztán azt ugye nem gondolod komolyan, hogy decimális 10 byte-ot írsz egy sorba, ha hexadecimális dump-ot választol? ;) Finoman szólva is nehéz így bármit megtalálni a memóriában. Ilyenkor tessék egy sorba 16 byte-ot írni. Ezen felül fixed szélességű font kellene a dump-hoz.
Az szándékos, hogy a státusz mezőt törlöd, ha az OK gomb fölé megy az egér kurzor? Egyfelől logikus, ugyanakkor szokatlan, kissé zavaró megoldás.
De nem is múlik, mert végre elkészült zee 2. kiadása v20070126-os verzióval, a szokásos helyről a honlapomról letölthető.
Módosítások: - Regiszter dump formája - Memória dump formája - Port dump formája - Grafikus felület feliratai (így remélhetőleg linuxon is látszanak)
Újdonság: - A billentyű kezelőt (keyboard modul) rá lehet venni egy checkbox-szal hogy a standard kimenetre is kiírja, milyen billentyűt milyen kóddal kezel.
A dump-ok megjelenítése már megtervezve (jó régóta, egy szöveges file-ban), csak még nem jutottam el a megvalósításhoz. Türelem, ami késik nem múlik...
Off Legboldogabb akkor voltam, amikor valaki kipróbálta a "ping 011.012.013.014" parancsot, abban a hitben hogy az ugyanaz, mint a "ping 11.12.13.14", holott igazából ugyanaz, mint a "ping 9.10.11.12" (bár gondolom ez implementációfüggő)
az oktálistól eltekintenék azt sosem szerettem, úgy mint a grízes tésztát :))
Ezzel én is így voltam addig, amíg nem találkoztam a unixos jogosultságokkal, ahol a jogok három bites csoportokban vannak: rwx. Ezt viszont nincs értelme hexadecimálisan ábrázolni, mert úgy nem mond semmit. Valamint te is minden bizonnyal használtál már printf-et, ami szintén használja az oktális ábrázolást. Az már más kérdés, hogy Zee-nek valóban semmi szüksége rá.
Az jó ! Csak Sun-os JRE/JVM-et érdemes használni. Pár hete szívtam egy jópár órát egy lefagyási dologgal, mire kiderült hogy ha egy másik JVM futtatta a programot akkor lefagyott, de akkor sem mindig.
Ezek szerint nálad is működött (linux alatt) ez jó hír !
Linux alatt nem próbáltam, valszeg ott kicsit más fontkészlettel dolgozik, így szélesebbek a karakterek, ezt megoldom, köszi hogy nyomtattál képet így látom hol kell javítani.
Ez a memory-dump/elrendezés dolog jogosnak tűnik, be fogok tenni egy számrendszer választót. Legalább 2,10,16-os számrendszerek kellenek, az oktálistól eltekintenék azt sosem szerettem, úgy mint a grízes tésztát :))
Néhány észrevételem lenne. A regiszter és memória dump igen áttekinthetetlen, ráadásul praktikusabb lenne hexadecimálisan dump-olni, vagy választható radix-szal. A regisztereket például párban:
stb. Memória a szokásos módon. Bal oldalon cím, utána hexadecimális értékek, majd ASCII-ben ugyanez, a nem nyomtatható karakterekre pont.
Ezen felül szűkek a rendelkezésre álló mezők, a feliratok nem férnek ki. Egyébként működött, kiírta, hogy Zé, bár a teszt programban is Zee-re kellene javítani a feliratot. ;)
Lassan felrakom a honlapomra Zé első változatát, aztán ti is kipróbálhatjátok. De még jelenleg a dokumentálásánál járok, minimális szinten azt is meg kell írni.
Egyébként névváltozás történt a gépem nem Zé hanem zee lett. Lehet hogy ez így csúnyább, de ez lett. A program meg egy file-ban van összecsomagolva a zee.jar-ba ezt kell majd elindítani így:
java -jar zee.jar
Emellé kaptok még egy-két minta assembly-t (pl. teszt1.asm), persze nagyon primitívekre gondoljatok. Aztán jöhetnek majd a professzionális assembly programok, amit persze bárki írhat, vagy konvertálhat egy meglévőből.
De, az lenne az igazi, de ilyen megírására nem gondoltam és nem is vállalkozok. Valahogy úgy látom megint a lényeg kezd elveszni, ha elmennék ebbe az irányba. A topik/project lényege a Z80-ra koncentrál, nem az emulátorra. Az emulátor téma (remélem) lassan lezárul, és utána jön a lényeg amit leírtam a topiknyitáskor: igenis kezdjünk el ismét Z80-ban programozni. Zé-nek meg lehetne írni a ROM-ját, lehetne írni Basic-fordítót/futtatót assembly-ben, de az sem lenne baj ha valaki átültetne játékokat Zé-re. Én ilyet sem vállaltam be, de ha kedvem van akkor bármikor össze fogok dobni egy 100 soros assemblyt, és gyönyörködök a futtatásakor :) Jó-jó persze már vannak ilyen-olyan emulátorok, de tudjátok én nem vagyok nyugodt akkor ha nem én írtam az emulátort. Így jobban bele tudok nyúlni, ha emulátorprobléma van. Meg Zé olyan amilyet én akartam, teljesen az én elképzelésem. Ez a legjobb az egészben.
Hát... például a HT 1080Z és a ZX Spectrum, vagy mondjuk a Commodore 64 Basic nyelve nagyon nem ugyanaz volt. Kellene tudni, melyik gépre írt programokat találtad meg, s egy emulátort kellene keresned, amelyik a megfelelő környezetet emulálja, majd azon kéne futtatnod ezeket a programokat.
Nem az lenne az igazi, ha ugyanaz a program egy-egy konfig-file-lal megtámogatva tudna emulálni Primo-t, HT1080Z-t, TVC-t, Spectrumot? Persze a ROM-ok kellenének hozzá... valami ilyesmi:
# Spectrum.conf Preload-ROM "spectrum.rom" at 0x0000 Video-RAM resolution 256x192 at 0x4000 depth 1 organization ... Video-Attribute-RAM resolution 32x24 at 0x5800 organization ... Keyboard-Mapping ...
A '...' azt jelzi, hogy azt még jobban ki kellene dolgozni;)