[SharpMZ] zaludnosti emulace - chyba pri nacitani z CMT

Michal Hučík - ORDOZ ordoz na ordoz.com
Úterý Leden 22 12:15:48 CET 2019


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 ...
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 :)

Michal


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://mail.ordoz.com/pipermail/sharpmz/attachments/20190122/eb000124/attachment.html>


Další informace o konferenci SharpMZ