Do snapshots jsem nahral verzi, ktera ma u CMTHACK option pro auto fix terminatoru ve FNAME (implicitne zapnuto). Zaroven je tam ze zacatku ledna i docela vyznamny bugfix CTC0.
https://www.ordoz.com/mz800emu/snapshot/
Ahoj,
Vasek mi ted reportoval zajimavy problem s emulatorem. Poslal mi kraticky program, ktery se startuje na 0x2000... Pri nacteni RESET+C (s CMT hackem) se to vzdy zbori a pocitac na startovaci adresu 0x2000 nikdy nedorazi. Pokud se vsak program nahrava z monitoru prikazem "L", nebo pokud se nacita pres virtual CMT, tak je vse OK. Stejne se program chova i u Zdenka.
Zjistil jsem, ze primarni pricinou chyby je chybejici terminator 0x0d za nazvem v MZF headeru.
Nahravaci rutina v ROM zacina na 0xE945. Jakmile se nacte header, tak se smaze obrazovka, napise se "IPL is loading " a nasleduje vypsani jmena programu, ktere zacina na adrese 0x10F1 - zavolani teto rutiny zacina na 0xE989, pres RST 0x18. Diky chybejicimu terminatoru se to vsak odsud uz nikdy nevrati ...
Michal
Nicmene ta prava zaludnost je v tom, ze kdyz program nacitame z virtual CMT, nebo prikazem z monitoru, tak se zrejme v zasobniku objevi "repair code", diky kteremu se nam to z te print rutiny prati a pokracuje se nacitanim tela programu :)
_______________________________________________ SharpMZ mailing list SharpMZmail.ordoz.com http://mail.ordoz.com/mailman/listinfo/sharpmz