Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 2 zprávy

[SharpMZ] zaludnosti emulace - chyba pri nacitani z CMT

Michal Hučík - ORDOZ <ordoz@[doména skryta]> SHARP MZ-800

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


Re: [SharpMZ] zaludnosti emulace - chyba pri nacitani z CMT

Michal Hučík - ORDOZ <ordoz@[doména skryta]> SHARP MZ-800


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/


Dne 22.1.2019 v 12:15 Michal Hučík - ORDOZ napsal(a):

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



_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz