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

Původní podoba příspěvku

Jiri Biba Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><div></div><p>Mam tady trosku programatorskej problem a nebo mam dnes nakej slabej den.</p><p>Porovnani dvou 16 bitovych cisel v&nbsp;Z80, neco jako je 8 bitu instrukce CP neco, tedy compare A s&nbsp;necim.</p><p>Bude rovnocene fungovat tohle:</p><p>                OR          A</p><p>                SBC        HL,BC</p><p>                ADD       HL,BC</p><p>Bude to umet priznak C a Z&nbsp;jako instrukce CP ?   Podle me by do melo dat Z&nbsp;pri rovnosti a CY  pokud bude BC vetsi nez HL. HL ani BC se nezmeni.  Nenastavuje to jeste neco jinyho, pripadne nemuze to jeste neco ovlivnit na vstupu, kdyz tam nuluju CY? Nemuzu nikde nalyzt jak se presne nastavujou priznaky u 16 bitovejch operacich.  Neco mi v&nbsp;tom useku nahodne nejde, a nemuzu to nalyzt. </p><p>&nbsp;</p><p>A jeste jedna vec.  Mam 16 bitu stary cislo stopy, kde aktualne sedi disk. Pri pozadavku vystavit na novou stopu je potreba poslat prikaz &#8222;Step in&#8220; (do stredu disku),nebo &#8222;Step out&#8220; (ke kraji disku) tolikrat, kolik je rozdil mezi starou a novou hodnotou.  Rozdil muze byt samozrejme kladnej i zapornej.  Stopa je nejvic 1024 dec. Takze jsem to udelal takhle, HL je aktualni, DE nova pozadovana stopa:</p><p>SEEK:</p><p>                OR          A</p><p>                SBC        HL,DE                    ;stara &#8211; nova = +/- rozdil</p><p>                RET        Z                             ;stejny, nemusis nic</p><p>                JP           NC,SEEK_IN       ;kladny, smer in</p><p>                LD           A,H</p><p>                CPL                                        ;dvojkovej doplnek high</p><p>                LD           H,A</p><p>                LD           A,L</p><p>                CPL                                        ;dvojkovej doplnek low</p><p>                LD           L,A</p><p>                INC        HL                          ;pricteni 1 k doplnku</p><p>                LD           E,COM_OUT      ;command Step out</p><p>                JP           SPOL</p><p>SEEK_IN:</p><p>                LD           E,COM_IN          ;command Step in</p><p>SPOL:</p><p>                LD           C,RADIC</p><p>LOOP:</p><p>                OUT       (C),E                      ;prikaz do radice</p><p>                DEC        HL</p><p>                LD           A,H</p><p>                OR          L</p><p>JP           NZ,LOOP             ;dokud nejsou vsechny</p><p>                RET                                        </p><p>Muze to chodit? Hlavne, jestli ta cast kolem doplku je spravne, nebo zda to nejde udelat nejak jinak a ne takhle klopotne nadvakrat. Kdyz to nepujde na prvni slapnuti, zkurvim disk....</p><p>Jsem jedno ucho a voko.</p><p>Diky</p><p>Jirka </p>