Hagyva kicsit a Raspberry PI-t, megint szorakoztam Xep128 fejlesztessel ... Most a "normal" helyre kiteve, ha valakit meg erdekel
A mostani munkam fo lenyege, az angol forumbol mar ismeros windows/console problema, es ahhoz kapcsolhato. Szoval. Normal modban inditva az emut, egy pillanatra villan egy ablak, az nem lenyeg. Mar a futas alatt (default kbd mapping eseten ...) a keypad minusz gombjaval elo lehet csalni a console-t (bezarni nem biztos, hogy jo otlet egerrel, lehet bezarja az egesz xep128.exe futasat ...).
A lenyeg nem is ez, hanem hogy mar valamennyire hasznalhato benne egy monitor program, legalabbis reszben. memory dump es disassembly mar van benne. Fontos, hogy ami szinten melo volt, hogy a :XEP parancsok es a console-ban adhatoak ugyanazok, ergo elvileg mindket helyen kerheto, csak a szintaxis eleje mas ugye, pl disasm-ra:
:XEP DISASM C000:D
Ez a default combined.rom eseten pont a XEP internal ROM-ot fogja latni. A DISASM parancsnak amugy van roviditett verzioja is, ez egyszeruen a "D" betu, tehat pl :XEP D C000:D
A console-on ez ugyanaz, csak a :XEP hianyzik persze az elejerol. A DISASM/D amugy argumentum nelkul is adhato, akkor folytatja ahol tartott. Nagyon hasonloan mukodik a memoria dump, csak a parancs neve MEMDUMP (roviditese: M). Szoval pl konzolon meg egyszerubb, mivel a :XEP sem kell es van rovid D/M parancsok, eleg lehet egy betu + enter.
Fontos, hogy ez a cim megadas hogy XXXX:YY nyilvan az YY az a szegmens. XXXX lehet >= 0x4000 is, azaz mondjuk C000. Ez akkor ugy van ertelmezve, hogy az YY szegmensen belul az XXXX (also 14 bitje) csak pl a CPU szempontjabol C000-nak latszik, ez disasm-kor nem feltetlen mindegy pl nem relativ cimzesnel ... Ezert is van az, hogy pl BFFF:01 utan a listazas C000:02 -re ugrik viszont mar, mert a kezdeti megadas utan a szegmens hatar atlepesenel ezt feltetelezi. Azt sajnos igen nehez kezelni, hogy a CPU viszont lehet a kov Z80 lapon nem azt a szegmenst tartja pont
Szoval kicsit bena, de amugy nem lehet normalisan megoldani, ha alkalmasnak kell lennie a disasm-nak arra is, hogy eppen be sem lapozott szegmenseket nezzuk, mert akkor a Dave aktualis B0...B3 figyelembevetele baromira nem segitene
De amugy is ez csak ilyen mini debug tool, nem arra valo, hogy ezzel disasm-olja az ember a vilagot
A disassembler (ami amugy a z80ex sajatja, bar kicsit belekozmetikaztam ...) cuccba irtam egy kis EXOS hack-et, hogy normalisan mutassa az EXOS hivasokat.
Fontos lehet meg a REGS parancs (roviden: R), meglepo modon listazza a Z80 regisztereket ... Ez foleg :XEP -nel erdekes, latszik is, hogy epp egy ED-trap-ban van, ami ugye az emulatort megkeri, hogy csinaljon vmit, mert XEP EXOS parancs erkezett (a z80ex "sub-opcode" modban is mukodik, azaz ED prefix utan _visszater_ az opcode emulacio fuggveny, es ujra hivasaval folytatja persze, minden oke (ez igaz DD/FD/CB izebizeri is amugy). A console-rol kiadott R parancsnal ez nincs, mert az nem a XEP ROM-on at jon, hanem az emulacio fo agan, ezert kicsit mas latszik, hogy eppen akkor hol jar.
Ezek mellett meg par kisebb dolog, pl a XEP belso ROM inditaskor az EXOS orajat az emut futtato gep oraja alapjan beallitja, szoval ha ZozoTools nincs, akkor is van legalabb vmi, meg ha utana nem is marad szinkronban feltetlen
(nem, 1Hz-es interrupt-ra akaszkodni es sajat ZT-t irni azert nem szeretnek ...).
:XEP alol disasm/memdump persze text 80 alatt elvezheto csak igazan ...
A console window ha nagyon zavaro, a CLOSE paranccsal bezarhato. Elvileg
Es persze a HELP parancs mindig segit.
Szerintetek van ennek ertelme?