Ilyen hol van írva? Minden ami NZ az hiba
Igen, valoban, visszatereskor ha A nem 0 (illetve Z flag beallitva ennek megfeleloen, amirol az EXOS gondkoskodik, hogy nekunk ne kelljen kulon). Amde, mint kiderult, csak az az "igazi" hiba, ahol a 7. bit beallitva az error code-ban (A), a tobbi warning! Szoval hibanak hiba, de pl ha sajat ROM-ban mondjuk hexa 70-et adok vissza, akkor az EXOS *NEM* hivja meg a ROM "explain error" (action code 5)-ot, azt csak hiba eseten teszi! Marmint onnan tudom, hogy kiprobaltam!
Szoval oke, hogy NZ stb, de van kulonleges jelentese a hibakod 7. (legfelso) bitjenek is, amit ugy hiv a leiras sok helyen, "hogy ha negativ az error kod". Ezt gondolom ugy erti, hogy kettes komplemens szerint negativ, azaz legfelso bit beallitva.
De amugy, hogy hol irja? Konkretan itt:
http://ep.homeserver.hu/Dokumentacio/Konyvek/EXOS_2.1_technikal_information/exos/constants/Ch3.htmlItt: "All EXOS calls return a status code which is zero to indicate success and
negative to indicate that an error occured.
Positive nonzero codes are
warning codes and are not widely used by EXOS, indeed there is only one warning code produced by EXOS and it is included here."
Egyébként hibás a leírás, mert a 7Fh-t használja az EXOS maga...
igen, ez lehet akkor az az "only one", tehat az egyetlen nem error, hanem warning, amit EXOS hasznal. Ezek szerint ... A fenti emlitett linken is warning code-nak hivjak. Es valoban, ha belegondolsz, ez nem error ... Hiszen _valamit_ sikerult allokalni, csak nem teljes szegemns, hanem csak shared-et
Tehat klasszikus ertelemben nem sikertelen a muvelet, hogy allokalni akartal egy szegmenst
Vagy hat, felfogas kerdese.
Igazabol a gondom tenyleg csak az, hogy ugy tunik, az EXOS a "warning" kodokra (tehat ahol a hibakod 0x80 alatt van), nem fogja meghivni a ROM-ok "explain error code" (action code 5) hivasat ... A Xep128-ba bele is irtam, hogy irjon ki minden hivast akciokoddal stb, EXOS meg sem hivja ... Csak ha 0x80 vagy felette van, azaz ha "negativ" az error code.
Magyaran, igazabol az oke, hogy 0 az jo, barmi mas az error (es a Z flag ez alapjan persze). A problema max ott jon elo, hogy EXOS maskepp kezeli a 0x80 alatti es folotti error kodokat, es ez pl konkretan baj, ha sajat hibauzeneteket akarsz visszaadni az explain error code segitsegevel, akkor szamit az is ... Ha ez nem fontos, akkor persze mindegy, akkor zero v nem zero eleg elvi szinten a donteshez!