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>Tak jsem Romane zcela nepochodil, potreboval bych deleni 24/24 bitu. Nejvic
tam je 24/16 bitu. Ale ty ostatni funkce jsou perfektni. Jak jsem psal, bylo
to jen na zkousku desky a jestli nekdy bude cas, pokusim se to deleni 24/24
napsat. Inspiraci v tom odkazu je dost.
Jirka
-----Original Message-----
From: Roman Bórik (sapi@pandora.cz) [mailto:roman.borik@[doména skryta]]
Sent: Sunday, November 06, 2011 2:15 PM
To: Konference "SAPI-1 a československé mikropočítače"
Subject: Re: Chyba M80??
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, 2, 4 a 6
<img src="BODY_IMAGES_WRAP_GIF">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 to, aby
<img src="BODY_IMAGES_WRAP_GIF">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
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
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 informovať
<img src="BODY_IMAGES_WRAP_GIF">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
</span>M,
<span class="replyquote1">> SP a PSW, kdyz jsou vsechny za 6 ? Rekl bych ze tohle psal primo Bill,
</span>jeste
<span class="replyquote1">> kdyz sedel v garazi. -:)) A ze v tech kokotinach pokracuje Mrkvosoft
> dodnes.-:)) U M80 prepnutym pomoci .Z80 to umi taky? Co vidis za
</span>uzitecnyho
<span class="replyquote1">> na ty instrukci jako operand? -:) Ja jen dalsi zmatek.
>
> Resil jsem ted obsluhu "pseudo" realnyho casu na Sapi1 desce RTC-1. Je to
</span>20
<span class="replyquote1">> bitovej citac (5 Cmosu ala 74193 za sebou), ktery se plni z generatoru
</span>0,5HZ
<span class="replyquote1">> (dvousekundy) a vse jede na zalozni baterku. Do citace se vejde asi 23
</span>dni.
<span class="replyquote1">> 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
</span>jsou
<span class="replyquote1">> dvousekundy.
> Pri zapisu opacne, do tech 20 bitu zase pricitam den * pocet dvousekund
</span>dne,
<span class="replyquote1">> 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
</span>delany
<span class="replyquote1">> tim postupnym odecitanim ci pricitanim, tak kdyz jses v poslednim dnu
</span>tydne
<span class="replyquote1">> 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
</span>byt
<span class="replyquote1">> 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
</span>deska
<span class="replyquote1">> 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á,
</span>ale
<span class="replyquote1">> 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
</span>pricteni
<span class="replyquote1">> 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
</span>podobnyho
<span class="replyquote1">> 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
</span>se
<span class="replyquote1">> to odladit, co je co, ale na to jsem docela linej. -:)) Uz si to
</span>proste
<span class="replyquote1">> 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
> ---
</span>---------------------
sapi@pandora.cz
Konference o SAPI-1
---
</pre>