Autor ::Zdeněk Poslaná :: 27.07.2010 10:28:04 Predmet ::Chyba v ALLRAM
Ahoj, schválně si vyzkoušejte toto v PMD85-2A (možná i v jiných):
Nahrajte si AllRam program a spusťte ho.
Stiskněte K0 (F1)
Napište písmeno A
Nevypadá trošku zvláštně? ;-)
Příčinu neuvedu, jen rychlé řešení:
- po zkopírování ROM do RAM změňte na adrese 8832H hodnotu z 3AH na 21H.
Správa
Autor ::Roman Bórik Poslaná :: 27.07.2010 11:04:03 Predmet ::Re: Chyba v ALLRAM
Toto nie je chyba AllRAM módu v zmysle jeho emulácie, ale chyba v ROM, resp. v tom akú inštrukciu použil autor na preskočenie inštrukcie MVI C,87h na adrese 8833h. Na preskočenie tejto inštrukcie je na adrese 8832h inštrukcia STA xxxx (32h), kde xxxx je adresa 870Eh, teda vlastne vyššie zmienená inštrukcia. Na adrese 870Eh je font a konkrétne práve písmeno A. V prípade ROM to nevadí. Ale po prekopírovaní obsahu ROM do RAM, čo sa deje pri prechode do AllRAM módu, sa stane inštrukcia STA 870Eh deštrukčná a po stlačení ktorejkoľvek kľúčovej klávesy poškodí písmeno A.
Chybu obsahujú Monitory PMD 85-2, 2A a Maťo. V prípade PMD 85-2 a Maťa to nevadí.
Chyba je odstránená v Monitoroch PMD 85-3, Consul 2717 a aj Didaktik Alfa 2 tým, že je deštruktívna inštrukcia STA xxxx (32h) nahradená nedeštruktívnou LDA xxxx (3Ah).
Najideálnejším riešením teda bude pridať na koniec AllRAM rutinky:
MVI A,3Ah
STA 8832h
Správa
Autor ::Zdeněk Poslaná :: 27.07.2010 14:00:01 Predmet ::Re: Chyba v ALLRAM
Ano, správně jsem měl napsat chyba v ROM v režimu AllRam. Děkuji za vyčerpávající popis.