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