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><pre>Ahoj.
To rozlíšenie je jednoduche a logické.
M je použité iba u inštrukcií, ktoré pracujú s 8 bitovými registrami,
<img src="BODY_IMAGES_WRAP_GIF"> takže v tom prípade 6 znamená jedine M.
PSW je použiteľné iba u inštrukcií PUSH a POP, takže je jasné, že 6
<img src="BODY_IMAGES_WRAP_GIF">môže byť jedine PSW. Naviac, za PUSH a POP môže byť iba párna hodnota 0,
<img src="BODY_IMAGES_WRAP_GIF">2, 4 a 6 pre B, D, H, PSW.
SP je použité iba u inštrukcií, ktoré pracujú s 16 bitovými registrami
<img src="BODY_IMAGES_WRAP_GIF">(LXI, INX, DCX, DAD), takže v tom prípade 6 znamená jedine SP. A opäť sú
<img src="BODY_IMAGES_WRAP_GIF">povolené iba párné hodnoty 0, 2, 4 a 6 pre B, D, H, SP.
Neskúšal som to, ale predpokladám, že tento mechanizmus nie je možné
<img src="BODY_IMAGES_WRAP_GIF">použiť v Z80 notácii. Napr. inštrukcia LD x,y je príliš univerzálna na
<img src="BODY_IMAGES_WRAP_GIF">to, aby sa to dalo takýmto spôsobom rozlíšiť.
Jednoznačne, deliť hodnotu RTC čítača prostým odpočítavaním je
<img src="BODY_IMAGES_WRAP_GIF">neefektívne, hlavne pri veľkých hodnotách.
Treba použiť nejakú rutinu delenia, ktora bude vždy trvať približne
<img src="BODY_IMAGES_WRAP_GIF">konštantný čas.
Inšpirovať sa môžeš napr. tu:
http://baze.au.com/misc/z80bits.html
V tvojom prípade by asi vyhovovaa rutina delenia "Restoring 24-bit / 8-bit
<img src="BODY_IMAGES_WRAP_GIF">Unsigned".
Chýbajúca informácia o pretečení čítača je nepríjemná. Stačil by
<img src="BODY_IMAGES_WRAP_GIF">jeden bit, ktorý by o pretečení informoval a to by umožnilo užívateľa
<img src="BODY_IMAGES_WRAP_GIF">informovať o potrebe čas znovu nastaviť.
Roman
----- Original Message -----
From: "Jiri Biba (sapi@pandora.cz)" <unive.nb@[doména skryta]>
To: "Konference "SAPI-1 a československé mikropočítače""
<img src="BODY_IMAGES_WRAP_GIF"><sapi@pandora.cz>
Sent: Sunday, November 06, 2011 11:02 AM
Subject: RE: Chyba M80??
<span class="replyquote1">>
> Ahoj Romane!
> No to je dobry s tema cislama registru! Akorat jak se boha jeho rozlisuje M,
> SP a PSW, kdyz jsou vsechny za 6 ? Rekl bych ze tohle psal primo Bill, jeste
> kdyz sedel v garazi. -:)) A ze v tech kokotinach pokracuje Mrkvosoft
> dodnes.-:)) U M80 prepnutym pomoci .Z80 to umi taky? Co vidis za uzitecnyho
> na ty instrukci jako operand? -:) Ja jen dalsi zmatek.
>
> Resil jsem ted obsluhu "pseudo" realnyho casu na Sapi1 desce RTC-1. Je to 20
> bitovej citac (5 Cmosu ala 74193 za sebou), ktery se plni z generatoru 0,5HZ
> (dvousekundy) a vse jede na zalozni baterku. Do citace se vejde asi 23 dni.
> Ja to pouzivam jen jako tydeni casovac. Vycitani a prevod tech 20 bitu na
> cas
> jsem resil tak, ze od hodnoty citace odcitam pocet dvousekund co ma den,
> dokud neni CY. Takze mam den. Z toho co zbyde odecitam pocet dvousekund co
> ma hodina, zase dokud neni CY, mam pak hodinu. Z toho co zbyde, zase
> odecitam pocet dvousekund co ma minuta, tim ziskam minuty. No a zbytek jsou
> dvousekundy.
> Pri zapisu opacne, do tech 20 bitu zase pricitam den * pocet dvousekund dne,
> hodina * pocet dvousekund hodiny atd.
> Cely to chodi jak ma, jen je problem, ze pri preteceni toho 20 bitovyho
> citace v dobe chodu na baterku to ztrati hodnotu spravnyho casu(jede znova
> od 0 a HW nezajisti o tom zadnou informaci). Problem je, ze jak je to delany
> tim postupnym odecitanim ci pricitanim, tak kdyz jses v poslednim dnu tydne
> 23:59:59 tak to musi udelat kolem 4100 odcitacich a nebo scitacich cyklu,
> kazdy ma kolem 10 instrukci, kazda prumerne 10 cyklu, takze by to mohlo byt
> u neceho rychlostni omezeni.
> Nenapada te prosim nejaka metoda jak to delat jinak? Ja tohle napsal na
> zaklade prvniho zpusobu, co me napadl. -:) Hlavne to prosim nepis, ta deska
> ma urcita omezeni a RTC mam vyresen specialnim svabem uplne jinak, tohle
> jsem psal jen tak ze zajmu.
> Diky
> Jirka
>
>
> -----Original Message-----
> From: Roman Bórik (sapi@pandora.cz) [mailto:roman.borik@[doména skryta]]
> Sent: Saturday, November 05, 2011 11:57 AM
> To: Konference "SAPI-1 a československé mikropočítače"
> Subject: Re: Chyba M80??
>
>
> Nie je to chyba M80, ale jeho vlastnosť (It is not a bug, it's a feature
> :-).
>
> Ale súhlasím, že je to viac matúce, ako užitočné.
> Mnohokrát sa mi stalo, že som pri všeliakých úpravách a
<img src="BODY_IMAGES_WRAP_GIF">optimalizáciách
> napísal napr.
> MOV A,2 a potom som sa čudoval, prečo mi program robí psie kusy...
> M80 to preložil ako MOV A,D (7Ah), ale ja som pochopiteľne chcel MVI A,2
> (3Eh 02h).
>
> Nedávno som na Aukre získal knihu "Operační systém CP/M, Příručka
> programátora, TESLA ELTOS, 1985, 2. vydanie 1988", kde je k formátu
> zdrojového textu pre M80 uvedené, že mená registrov sú rezervované
<img src="BODY_IMAGES_WRAP_GIF">mená, ale
> zároveň majú priradené nasledujúce hodnoty:
>
> B C D E H L M SP PSW A
> 0 1 2 3 4 5 6 6 6 7
>
> Takže to je dôvod, prečo pri "chybnom" zápise M80 nekričí.
>
> Užitočnou vlastnosťou M80 je ale napr. to, že ako operand môže byť
<img src="BODY_IMAGES_WRAP_GIF">použitý
> názov inštrukcie, napr.:
> MVI A,(LXI H), čo sa preloží ako MVI A,21h
>
> Roman
>
> ----------
>
> Dnes jsem se vratil k nejakymu starsimu programku, ktery jsem odlozil
> protoze "zahadne" nechodil. Narazil jsem na jeden muj kopanec, ktery se po
> prekladu pomoci Mrkvosofti M80 chova naprosto zvlastne.
> Spletl jsem si v 8080-ce dve scitaci instrukce ADC a ADI. ADC je pricteni
> obsahu reg k stradaci , ACI je pricteni konstanty k stradaci.
> Napsal jsem : ADC 0, jine zase ADC 6 coz je spatne, melo by byt ACI 0,
> nebo ACI 6. Zajimavy ovsem je, ze to M80 schroupla a neprotestovala. Ale
> treba ADC 32 uz protestovala na chybu argumentu..
> Tak jsem se chtel zeptat, jestli to je chyba M80 a nebo to je neco podobnyho
> jako u 8051, kde se muzou registry oznacovat cislem, tedy adresou jejich
> ulozeni v pameti RAM. Jenze u 8051 jsou ! registry skutecne v RAM a u 8080
> jsou primo v procesoru. Pokud je skutecne mozny oznacovat registry H,L,D,E
> atd cislama, nikdy jsem o tom neslysel. Treba v knize Zakladni instrukce
> 8080 od Tesla Eltos o tom neni ani carka a v popisu M80 taky nic. Dalo by se
> to odladit, co je co, ale na to jsem docela linej. -:)) Uz si to proste
> nespletu. Zkusim ale zda to M80 dela i pri Z80 instrukcich.
> Jirka
>
> ---------------------
> sapi@pandora.cz
> Konference o SAPI-1
> ---
>
> ---------------------
> sapi@pandora.cz
> Konference o SAPI-1
> ---
</pre>