Ahoj,
žádné špinavosti v tom nejsou, při volání QD rutiny se SP uloží na 1148h a pokud dojde k chybě v libovolně zanořeném podprogramu, SP se obnoví na hodnotu prvního volání a vrátí se chybový kód. Ta 21h je v tabulce opravdu jen na přeskočení nastavení jiných hodnot než té první (JR 02h by udělalo to samé bez přepisu HL, ale zabralo by o byte víc a těch je v ROMce vždy málo), HL se změní, ale nemá žádný význam jako návratová hodnota.
Bohouš
žádné špinavosti v tom nejsou, při volání QD rutiny se SP uloží na 1148h a pokud dojde k chybě v libovolně zanořeném podprogramu, SP se obnoví na hodnotu prvního volání a vrátí se chybový kód. Ta 21h je v tabulce opravdu jen na přeskočení nastavení jiných hodnot než té první (JR 02h by udělalo to samé bez přepisu HL, ale zabralo by o byte víc a těch je v ROMce vždy málo), HL se změní, ale nemá žádný význam jako návratová hodnota.
Bohouš
Zobrazit citovaný text
---------- Původní zpráva ----------
Od: Vaclav Peroutka <vaclavpe[doména skryta]>
Komu: sharpmzmail.ordoz.com
Datum: 21. 6. 2016 19:25:56
Předmět: [SharpMZ] Podivnost v driveru QD
Ahoj,_______________________________________________
zkoumám driver QD a srovnávám ho s tím v MZ-1500. Jsou skoro shodné, nicméně našel jsem v ROMkodu MZ800 jednu podivnost, a to tuhle tabulku:
0753 E400 3E29 QIOE41: LD A,41 ; Hard error
0754 E402 21 DEFB 21H
0755 E403 3E2E QIOE46: LD A,46 ; poruseni ochrany
0756 E405 21 DEFB 21H
0757 E406 3E32 QIOE50: LD A,50 ; disk neni pripraven
0758 E408 21 DEFB 21H
0759 E409 3E35 QIOE53: LD A,53 ; neni misto na disku
0760 E40B 21 DEFB 21H
0761 E40C 3E36 QIOE54: LD A,54 ; nenaformatovano
0762 E40E ED7B4811 LD SP,(OLDSP)
0763 E412 37 SCF
0764 E413 C9 RET
Na ta návěští QIOE se skáče pomocí JP a JR. A "DEFB 21h" se samozřejmě disassembluje jako "LD HL,"
Trochu mi uniká smysl, se musím přiznat. Podezírám, že se dějí nějaké špinavosti se Stack Pointerem a HL se prostě zahazuje. jen nevím, kde.
Vašek
PS. Jo a je to i v ROMkodu MZ1500...
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz