<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://pmd85.borik.net/w/skins/common/feed.css?240204"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;limit=20&amp;action=history&amp;feed=atom</id>
		<title>Blog:Ovládač pre komunikáciu s PMD 32 - História úprav</title>
		<link rel="self" type="application/atom+xml" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;limit=20&amp;action=history&amp;feed=atom"/>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;action=history"/>
		<updated>2026-05-02T03:25:21Z</updated>
		<subtitle>História úprav pre túto stránku na wiki</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=2063&amp;oldid=prev</id>
		<title>Rombor: Opravené preklepy a doplnená diakritika</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=2063&amp;oldid=prev"/>
				<updated>2023-10-22T10:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;Opravené preklepy a doplnená diakritika&lt;/p&gt;
&lt;a href=&quot;https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;amp;diff=2063&amp;amp;oldid=1111&quot;&gt;(Rozdiel medzi revíziami)&lt;/a&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=1111&amp;oldid=prev</id>
		<title>Rombor: Opravený preklep; pridaný download link</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=1111&amp;oldid=prev"/>
				<updated>2012-11-15T17:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Opravený preklep; pridaný download link&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 17:21, 15. november 2012&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Odoslanie bytu a povelu&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Odoslanie bytu a povelu&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Pred volaním rutiny &amp;lt;tt&amp;gt;SendByte&amp;lt;/tt&amp;gt; musí byť povolený &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;vystup &lt;/del&gt;bytu volaním rutiny &amp;lt;tt&amp;gt;EnaByteOut&amp;lt;/tt&amp;gt;. Rutina priebežne modifikuje CRC, ktoré sa prenáša v registri B.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Pred volaním rutiny &amp;lt;tt&amp;gt;SendByte&amp;lt;/tt&amp;gt; musí byť povolený &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;výstup &lt;/ins&gt;bytu volaním rutiny &amp;lt;tt&amp;gt;EnaByteOut&amp;lt;/tt&amp;gt;. Rutina priebežne modifikuje CRC, ktoré sa prenáša v registri B.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Rutina &amp;lt;tt&amp;gt;SendCommand&amp;lt;/tt&amp;gt; slúži pre odoslanie povelu. Táto rutina najprv volaním rutiny &amp;lt;tt&amp;gt;IsPresent&amp;lt;/tt&amp;gt; preveruje, či náhodou nie je na zbernici prezentačný byte, ktorý posiela PMD 32, keď je &amp;quot;v kľude&amp;quot;. Pokiaľ na zbernici prezentačný byte nie je, povolí sa výstup bytu a povel sa odošle. Inak sa najprv napsäť odošle prezentačný byte a následne samotný povel. Rutina pred odoslaním povelu inicializuje CRC.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Rutina &amp;lt;tt&amp;gt;SendCommand&amp;lt;/tt&amp;gt; slúži pre odoslanie povelu. Táto rutina najprv volaním rutiny &amp;lt;tt&amp;gt;IsPresent&amp;lt;/tt&amp;gt; preveruje, či náhodou nie je na zbernici prezentačný byte, ktorý posiela PMD 32, keď je &amp;quot;v kľude&amp;quot;. Pokiaľ na zbernici prezentačný byte nie je, povolí sa výstup bytu a povel sa odošle. Inak sa najprv napsäť odošle prezentačný byte a následne samotný povel. Rutina pred odoslaním povelu inicializuje CRC.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 379:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 379:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Zdroják je pripravený na kompiláciu v ASe. Ale pochopiteľne je ho možné upraviť a kompilovať &amp;quot;v čomkoľvek&amp;quot;. &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Zdroják je pripravený na kompiláciu v ASe. Ale pochopiteľne je ho možné upraviť a kompilovať &amp;quot;v čomkoľvek&amp;quot;. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[download:59|zdrojový súbor]] tohto ovládača&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[download:59|zdrojový súbor]] tohto ovládača&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[download:16|komunikačný protokol]] [[PMD 32]]/[[PMD 32-SD]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Kategória:Blog| 006]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Kategória:Blog| 006]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=1087&amp;oldid=prev</id>
		<title>Rombor: Doplnený komentár</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=1087&amp;oldid=prev"/>
				<updated>2012-03-03T07:54:07Z</updated>
		
		<summary type="html">&lt;p&gt;Doplnený komentár&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 07:54, 3. marec 2012&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Z 8255 sa využíva iba port PA v móde 2 ako 8 bitová obojsmerná dátová zbernica a 4 riadiace bity hornej polovice portu PC pre handshake. Stav zbernice sa ale testuje 3. bitom portu PC (INTRA), ktorý podľa zvoleného smeru prenosu indikuje, či je na zbernici platný byte (vstup dát), alebo bol byte perifériou prečítaný (výstup dát). Smer prenosu dát sa volí povolením alebo zakázaním prerušenia (signál INTRA) pre vstup alebo výstup dát.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Z 8255 sa využíva iba port PA v móde 2 ako 8 bitová obojsmerná dátová zbernica a 4 riadiace bity hornej polovice portu PC pre handshake. Stav zbernice sa ale testuje 3. bitom portu PC (INTRA), ktorý podľa zvoleného smeru prenosu indikuje, či je na zbernici platný byte (vstup dát), alebo bol byte perifériou prečítaný (výstup dát). Smer prenosu dát sa volí povolením alebo zakázaním prerušenia (signál INTRA) pre vstup alebo výstup dát.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Ovládač potrebuje niekde v RAM 4 premenné:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Drive:  DS     1            ; cislo disku 0 = A:, 1 = B:, 2 = C:, 3 = D:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Sector: DS     1            ; cislo sektora 0 az N (N je max. 63)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Track:  DS     1            ; cislo stopy 0 az N (N je max. 255)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Dma:    DS     2            ; cielova/zdrojova adresa pre citanie/zapis sektora&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Základná komunikácia na najnižšej úrovni zahŕňa niekoľko elementárnych rutín:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Základná komunikácia na najnižšej úrovni zahŕňa niekoľko elementárnych rutín:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 283:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 290:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Drive&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Drive &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;       ; cislo disku transformuj do 7. a 6. bitu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     A&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     A &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; disk A: ?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack2&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack2 &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;; ano, skoc&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     C,0C0H&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     C,0C0H &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;      ; transformovana hodnota pre disk D:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        XRI     3&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        XRI     3 &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; invertuj (prehod) bity cisla disku&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack3&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack3 &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;; je to disk D: ? ano, skoc &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;        RRC                  ; pre disky B: a C: posun cislo do hornych bitov&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;        RRC&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack2: &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;          ; C bude obsahovat transformovanu hodnotu cisla disku&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack2:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     C,A &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;         ; C -&amp;gt; 00h=A: 80h=B: 40h=C: 0C0h=D:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     C,A&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack3:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack3:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Sector&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Sector &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;      ; vezmi cislo sektora 0 az N (N je max. 63)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ANI     03FH         ; nemusi byt, ak sa zabezpeci povoleny rozsah&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ANI     03FH         ; &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; -&amp;gt; &lt;/ins&gt;nemusi byt, ak sa zabezpeci povoleny rozsah&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     C&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     C &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; do hornych bitov pridaj cislo disku&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;    ; posli cislo disku a sektora&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;                  ; navrat s CY=1 pri chybe&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Track&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Track &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;       ; cislo stopy 0 az N (N je max. 255)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     SendByte&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     SendByte &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;    ; posli stopu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=774&amp;oldid=prev</id>
		<title>Rombor: Opravená chyba v rutine SendSectorTrack</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=774&amp;oldid=prev"/>
				<updated>2009-12-22T08:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Opravená chyba v rutine SendSectorTrack&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 08:45, 22. december 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 277:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 277:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle do PMD 32 cislo sektoru vratane cisla disku a cislo stopy.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle do PMD 32 cislo sektoru vratane cisla disku a cislo stopy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cislo sektoru, disku a stopy na adresach Drive, Sector, Track&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cislo sektoru, disku a stopy na adresach Drive, Sector, Track&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;        B=priebezne CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK, B = A = modifikovane CRC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK, B = A = modifikovane CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: AF, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;B&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: AF, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;BC&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 285:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 286:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     A&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack2&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;B&lt;/del&gt;,0C0H&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;C&lt;/ins&gt;,0C0H&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        XRI     3&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        XRI     3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack3&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 291:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 292:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack2:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack2:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;B&lt;/del&gt;,A&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;C&lt;/ins&gt;,A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack3:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack3:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Sector&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Sector&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ANI     03FH         ; nemusi byt, ak sa zabezpeci povoleny rozsah&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ANI     03FH         ; nemusi byt, ak sa zabezpeci povoleny rozsah&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;B&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;C&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=771&amp;oldid=prev</id>
		<title>Rombor: Dokončený článok</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=771&amp;oldid=prev"/>
				<updated>2009-12-20T22:45:49Z</updated>
		
		<summary type="html">&lt;p&gt;Dokončený článok&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 22:45, 20. december 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Ovládač pre komunikáciu s PMD 32 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Ovládač pre komunikáciu s PMD 32 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[PMD 32]], resp. PMD 32-SD komunikuje s nadradeným počítačom prostredníctvom obojsmerného paraleného kanála, ktorý je na strane počítača tvorený interfejsovým obvodom PPI 8255.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[PMD 85#PMD 85-3|PMD 85-3]] obsahuje vo svojej EPROM, na rozdiel od predošlých verzií PMD 85, ovládač pre disketovú jednotku &lt;/ins&gt;[[PMD 32]]&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;. Keďže sa ukázalo, že [[Blog:Postavte_si_PMD_32-SD|PMD 32-SD]], teda náhradu za PMD 32, by si chceli niektorí pripojiť aj k iným počítačom (SAPI, IQ-151), uvediem tu výpis tohto ovládača, aby si ho záujemci mohli prispôsobiť pre svoj počítač. Ovládač nie je úplnou kópiou z PMD 85-3, ale je naopak optimalizovaný a skrátený. Zároveň ale neobsahuje implementáciu všetkých povelov, ktoré PMD 32, či PMD 32-SD poskytujú, pretože to ani nie je účelné. Verím, že prípadný záujemca si ďalšie povely bez problémov doplní sám.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;PMD 32&lt;/ins&gt;, resp. PMD 32-SD komunikuje s nadradeným počítačom prostredníctvom obojsmerného paraleného kanála, ktorý je na strane počítača tvorený interfejsovým obvodom PPI 8255.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Z 8255 sa využíva iba port PA v móde 2 ako 8 bitová obojsmerná dátová zbernica a 4 riadiace bity hornej polovice portu PC pre handshake. Stav zbernice sa ale testuje 3. bitom portu PC (INTRA), ktorý podľa zvoleného smeru prenosu indikuje, či je na zbernici platný byte (vstup dát), alebo bol byte perifériou prečítaný (výstup dát). Smer prenosu dát sa volí povolením alebo zakázaním prerušenia (signál INTRA) pre vstup alebo výstup dát.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Z 8255 sa využíva iba port PA v móde 2 ako 8 bitová obojsmerná dátová zbernica a 4 riadiace bity hornej polovice portu PC pre handshake. Stav zbernice sa ale testuje 3. bitom portu PC (INTRA), ktorý podľa zvoleného smeru prenosu indikuje, či je na zbernici platný byte (vstup dát), alebo bol byte perifériou prečítaný (výstup dát). Smer prenosu dát sa volí povolením alebo zakázaním prerušenia (signál INTRA) pre vstup alebo výstup dát.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 77:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadByte:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadByte:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         PUSH   D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         PUSH   D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; DE na zasobnik&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         CALL   IsIntra      ; je platny byte na vstupe?&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         CALL   IsIntra      ; je platny byte na vstupe?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         POP    D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         POP    D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; obnov DE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         RC                  ; nie, vrat sa s chybou&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         RC                  ; nie, vrat sa s chybou&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         IN     PIO_A        ; precitaj byte&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;         IN     PIO_A        ; precitaj byte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 103:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendCommand:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendCommand:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     B,A          ; uloz posielany byte do B&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     B,A          ; uloz posielany byte do B&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    B            ; BC na zasobnik&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    B            ; BC&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;, DE &lt;/ins&gt;na zasobnik&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsPresent    ; zisti, ci je na zbernici prezentacny byte 0AAh&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsPresent    ; zisti, ci je na zbernici prezentacny byte 0AAh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                             ; ak ano, odosli naspat prezentacny byte&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                             ; ak ano, odosli naspat prezentacny byte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     B            ; obnov BC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     B            ; obnov &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;DE, &lt;/ins&gt;BC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     A,B          ; vrat posielany byte do A&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     A,B          ; vrat posielany byte do A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 114:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 116:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle byte do PMD 32 a modifikuje priebezne CRC.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle byte do PMD 32 a modifikuje priebezne CRC.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; I: A=posielany byte, B=&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;priebežné &lt;/del&gt;CRC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; I: A=posielany byte, B=&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;priebezne &lt;/ins&gt;CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; O: CY=1 - chyba&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; O: CY=1 - chyba&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;    CY=0 - OK, B=A=modifikovane CRC&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;    CY=0 - OK, B=A=modifikovane CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 120:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendByte:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendByte:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; DE na zasobnik&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsIntra      ; zisti, ci je volny vystup&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsIntra      ; zisti, ci je volny vystup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; obnov DE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku timeoutu&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku timeoutu&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        OUT     PIO_A        ; posli byte na vystup&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        OUT     PIO_A        ; posli byte na vystup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 229:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 231:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LXI     D,3000       ; timeout asi 15,5 sec&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LXI     D,3000       ; timeout asi 15,5 sec&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; WaitErrT:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; WaitErrT:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        PUSH    D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; DE na zasobnik&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsIntra      ; je platny byte na vstupe?&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    IsIntra      ; je platny byte na vstupe?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        POP     D &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;           ; obnov DE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JNC     ReadByte     ; ak ano, skoc ho precitat&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JNC     ReadByte     ; ak ano, skoc ho precitat&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        DCX     D            ; zniz pocitadlo timeoutu&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        DCX     D            ; zniz pocitadlo timeoutu&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 268:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 270:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        STC                  ; nastav priznak chyby&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        STC                  ; nastav priznak chyby&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RET&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RET&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Rutiny pre čítanie a zápis sektora&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Jedná sa o povely B, Q a T. Povely Q a T používajú rutinu &amp;lt;tt&amp;gt;SendSectorTrack&amp;lt;/tt&amp;gt;, ktorá odošle sektor a disk ako prvý byte a následne stopu ako druhý byte. Aj keď má zvyčajne prvý sektor na disku fyzické číslo 1, PMD 32 vo svojich poveloch čísluje sektory od 0. Číslo disku od 0 do 3 sa posiela v horných dvoch bitoch prvého bytu. Aby sa zachovala spätná kompatibilita s pôvodnou PMD 32, kde sú iba dva disky a disk B je označený siedmym bitom, bity označujúce disk sú zamenené. Keďže žiadna komunikácia nie je bez chýb, (tieto) povely je vhodné vložiť do slučky niekoľkých pokusov pri chybe. BIOS PMD 85 napr. používa 4 pokusy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle do PMD 32 cislo sektoru vratane cisla disku a cislo stopy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cislo sektoru, disku a stopy na adresach Drive, Sector, Track&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK, B = A = modifikovane CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: AF, B&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Drive&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     B,0C0H&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        XRI     3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JZ      SendSectorTrack3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack2:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     B,A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; SendSectorTrack3:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Sector&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ANI     03FH         ; nemusi byt, ak sa zabezpeci povoleny rozsah&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        ORA     B&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LDA     Track&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     SendByte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Posle povel &amp;quot;B&amp;quot; a precita BOOT - sektor 0 a 0. stope.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Vzdy je to z jednotky A:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cielova adresa na adrese Dma&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba timeout, CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: vsetky&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadBoot:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     A,&amp;#039;B&amp;#039;        ; povel &amp;quot;B&amp;quot; - precitaj BOOT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendCommand  ; odosli na vystup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     ReadSectorB&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Povel &amp;quot;Q&amp;quot; - precitanie sektora z disku.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cislo sektoru, disku a stopy na adresach Drive, Sector, Track&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;        cielova adresa na adrese Dma&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba timeout, CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: vsetky&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadSector:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     A,&amp;#039;Q&amp;#039;        ; povel &amp;quot;Q&amp;quot; - precitaj sektor&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendCommand  ; odosli na vystup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendSectorTrack ; posli stopu a sektor&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadSectorB:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SndCrcRdAck  ; posli CRC a pockaj na potvrdenie&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     B,0          ; vynuluj CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     D,128        ; nastav pocitadlo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LHLD    Dma          ; do HL adresa pamati&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ReadSector2:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    ReadByte     ; precitaj byte&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     M,A          ; uloz byte do pamati&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        INX     H            ; posun ukazatel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        DCR     D            ; zniz pocitadlo prijimanych bytov&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JNZ     ReadSector2  ; ak neboli prijate vsetky, vrat sa do slucky&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     ReadCheckCrc ; skoc precitat CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; Povel &amp;quot;T&amp;quot; - zapise sektor na disk.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vstup: cislo sektoru, disku a stopy na adresach Drive, Sector, Track&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;        zdrojova adresa na adrese Dma&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; vystup: CY = 1 - chyba timeout, CRC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;         CY = 0 - OK&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ; meni: vsetky&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; ;------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; WriteSector:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     A,&amp;#039;T&amp;#039;        ; povel &amp;quot;T&amp;quot; - zapis sektor&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendCommand  ; odosli na vystup&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendSectorTrack ; posli stopu a sektor&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MVI     D,128        ; nastav pocitadlo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        LHLD    Dma          ; do HL adresa pamati&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; WriteSector2:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        MOV     A,M          ; byte z pamati&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        CALL    SendByte     ; odosli&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        RC                   ; vrat sa, ak doslo ku chybe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        INX     H            ; posun ukazatel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        DCR     D            ; zniz pocitadlo bytov&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JNZ     WriteSector2 ; opakuj pre vsetkych 128 bytov&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;        JMP     SndCrcRdAck  ; odosli CRC a cakaj na potvrdenie&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Download ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Zdroják je pripravený na kompiláciu v ASe. Ale pochopiteľne je ho možné upraviť a kompilovať &amp;quot;v čomkoľvek&amp;quot;. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[download:59|zdrojový súbor]] tohto ovládača&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Kategória:Blog| 006]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	<entry>
		<id>https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=770&amp;oldid=prev</id>
		<title>Rombor: Prvotný koncept</title>
		<link rel="alternate" type="text/html" href="https://pmd85.borik.net/wiki/Blog:Ovl%C3%A1da%C4%8D_pre_komunik%C3%A1ciu_s_PMD_32&amp;diff=770&amp;oldid=prev"/>
				<updated>2009-12-19T18:11:28Z</updated>
		
		<summary type="html">&lt;p&gt;Prvotný koncept&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Ovládač pre komunikáciu s PMD 32 ==&lt;br /&gt;
&lt;br /&gt;
[[PMD 32]], resp. PMD 32-SD komunikuje s nadradeným počítačom prostredníctvom obojsmerného paraleného kanála, ktorý je na strane počítača tvorený interfejsovým obvodom PPI 8255.&lt;br /&gt;
&lt;br /&gt;
Z 8255 sa využíva iba port PA v móde 2 ako 8 bitová obojsmerná dátová zbernica a 4 riadiace bity hornej polovice portu PC pre handshake. Stav zbernice sa ale testuje 3. bitom portu PC (INTRA), ktorý podľa zvoleného smeru prenosu indikuje, či je na zbernici platný byte (vstup dát), alebo bol byte perifériou prečítaný (výstup dát). Smer prenosu dát sa volí povolením alebo zakázaním prerušenia (signál INTRA) pre vstup alebo výstup dát.&lt;br /&gt;
&lt;br /&gt;
Základná komunikácia na najnižšej úrovni zahŕňa niekoľko elementárnych rutín:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nastavenie smeru prenosu a test, či je na vstupe platný byte, alebo či bol perifériou byte prečítaný&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Tieto rutiny sú volané ostanými rutinami, pre čítanie a zápis bytu atď., takže pri vytváraní rutín vyšších úrovní ich zrejme nebude treba volať.&lt;br /&gt;
&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Povoli prerusenie pre vstup na porte A&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: povolene prerusenie pre vstup bytu&lt;br /&gt;
 ; M: A&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 EnaByteIn:&lt;br /&gt;
         MVI    A,09h        ; 1-&amp;gt;C4 povolenie prerusovacieho signalu INTRA&lt;br /&gt;
         OUT    PIO_CW       ; pre vstup na porte A&lt;br /&gt;
         MVI    A,0Ch        ; 0-&amp;gt;C6 zakazanie prerusovacieho signalu INTRA&lt;br /&gt;
         OUT    PIO_CW       ; pre vystup porte A&lt;br /&gt;
         RET&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Povoli prerusenie pre vystup portu A&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: povolene prerusenie pre vystup bytu&lt;br /&gt;
 ; M: A&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 EnaByteOut:&lt;br /&gt;
         MVI    A,08h        ; 0-&amp;gt;C4 zakazanie prerusovacieho signalu INTRA&lt;br /&gt;
         OUT    PIO_CW       ; pre vstup na porte A&lt;br /&gt;
         MVI    A,0Dh        ; 1-&amp;gt;C6 povolenie prerusovacieho signalu INTRA&lt;br /&gt;
         OUT    PIO_CW       ; pre vystup na porteA&lt;br /&gt;
         RET&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Zisti, ci je nastavene INTRA. Na INTRA sa caka zvoleny cas.&lt;br /&gt;
 ; INTRA=1, ak je platny byte na vstupe, alebo bol precitany byte z vystupu.&lt;br /&gt;
 ; I: Pri volani od IsIntraD DE=timeout&lt;br /&gt;
 ; O: CY=1 - timeout&lt;br /&gt;
 ;    CY=0 - OK&lt;br /&gt;
 ; M: CY, DE&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 IsIntra:&lt;br /&gt;
         LXI    D,205        ; timeout asi 5ms&lt;br /&gt;
 IsIntraD:&lt;br /&gt;
         PUSH   PSW          ; uloz AF&lt;br /&gt;
 IsIntra2:&lt;br /&gt;
         IN     PIO_C        ; zisti stav INTRA&lt;br /&gt;
         ANI    8&lt;br /&gt;
         JNZ    IsIntra3     ; ak je INTRA=1, skoc dopredu&lt;br /&gt;
         DCX    D&lt;br /&gt;
         MOV    A,D&lt;br /&gt;
         ORA    E&lt;br /&gt;
         JNZ    IsIntra2     ; a ak nie je nulove, vrat sa do slucky&lt;br /&gt;
         POP    PSW          ; doslo k timeoutu, obnov AF&lt;br /&gt;
         STC                 ; nastav CY ako priznak chyby&lt;br /&gt;
         RET&lt;br /&gt;
 IsIntra3:&lt;br /&gt;
         POP    PSW&lt;br /&gt;
         ORA    A            ; vynuluj CY&lt;br /&gt;
         RET&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Čítanie bytu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pred volaním tejto rutiny musí byť povolený vstup bytu volaním rutiny &amp;lt;tt&amp;gt;EnaByteIn&amp;lt;/tt&amp;gt;. Rutina priebežne modifikuje CRC, ktoré sa prenáša v registri B.&lt;br /&gt;
&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Precita byte z PMD 32 a zaroven modifikuje CRC.&lt;br /&gt;
 ; I: B=priebežné CRC&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - A=C=precitany byte, B=modifikovane CRC&lt;br /&gt;
 ; M: AF, BC&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ReadByte:&lt;br /&gt;
         PUSH   D&lt;br /&gt;
         CALL   IsIntra      ; je platny byte na vstupe?&lt;br /&gt;
         POP    D&lt;br /&gt;
         RC                  ; nie, vrat sa s chybou&lt;br /&gt;
         IN     PIO_A        ; precitaj byte&lt;br /&gt;
         MOV    C,A          ; odloz si ho do C&lt;br /&gt;
         XRA    B            ; modifikuj CRC&lt;br /&gt;
         MOV    B,A          ; a uloz ho naspat do B&lt;br /&gt;
         MOV    A,C          ; vrat nacitany byte do A&lt;br /&gt;
         RET&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Odoslanie bytu a povelu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pred volaním rutiny &amp;lt;tt&amp;gt;SendByte&amp;lt;/tt&amp;gt; musí byť povolený vystup bytu volaním rutiny &amp;lt;tt&amp;gt;EnaByteOut&amp;lt;/tt&amp;gt;. Rutina priebežne modifikuje CRC, ktoré sa prenáša v registri B.&lt;br /&gt;
&lt;br /&gt;
Rutina &amp;lt;tt&amp;gt;SendCommand&amp;lt;/tt&amp;gt; slúži pre odoslanie povelu. Táto rutina najprv volaním rutiny &amp;lt;tt&amp;gt;IsPresent&amp;lt;/tt&amp;gt; preveruje, či náhodou nie je na zbernici prezentačný byte, ktorý posiela PMD 32, keď je &amp;quot;v kľude&amp;quot;. Pokiaľ na zbernici prezentačný byte nie je, povolí sa výstup bytu a povel sa odošle. Inak sa najprv napsäť odošle prezentačný byte a následne samotný povel. Rutina pred odoslaním povelu inicializuje CRC.&lt;br /&gt;
&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Posle povel do PMD 32. Pred poslanim povelu sa najprv preveri, ci na zbernici&lt;br /&gt;
 ; nahodou nie je prezentacny byte.&lt;br /&gt;
 ; I: A=povel&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - OK, B=A=modifikovane CRC&lt;br /&gt;
 ; M: AF, B&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 SendCommand:&lt;br /&gt;
        MOV     B,A          ; uloz posielany byte do B&lt;br /&gt;
        PUSH    B            ; BC na zasobnik&lt;br /&gt;
        PUSH    D&lt;br /&gt;
        CALL    IsPresent    ; zisti, ci je na zbernici prezentacny byte 0AAh&lt;br /&gt;
                             ; ak ano, odosli naspat prezentacny byte&lt;br /&gt;
        POP     D&lt;br /&gt;
        POP     B            ; obnov BC&lt;br /&gt;
        RC                   ; vrat sa, ak doslo ku chybe&lt;br /&gt;
        MOV     A,B          ; vrat posielany byte do A&lt;br /&gt;
        MVI     B,0          ; vynuluj CRC&lt;br /&gt;
 ; pokracuj dalej&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Posle byte do PMD 32 a modifikuje priebezne CRC.&lt;br /&gt;
 ; I: A=posielany byte, B=priebežné CRC&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - OK, B=A=modifikovane CRC&lt;br /&gt;
 ; M: AF, B&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 SendByte:&lt;br /&gt;
        PUSH    D&lt;br /&gt;
        CALL    IsIntra      ; zisti, ci je volny vystup&lt;br /&gt;
        POP     D&lt;br /&gt;
        RC                   ; vrat sa, ak doslo ku timeoutu&lt;br /&gt;
        OUT     PIO_A        ; posli byte na vystup&lt;br /&gt;
        XRA     B            ; modofikuj CRC&lt;br /&gt;
        MOV     B,A          ; a uloz ho naspat do B&lt;br /&gt;
        RET&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Zisti, ci na zbernici nie je nahodou prezentacny byte 0AAh, ktory poslala&lt;br /&gt;
 ; disketova jednotka po navrate do &amp;quot;idle&amp;quot; stavu, kedy cakala na povel.&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - OK&lt;br /&gt;
 ; M: AF, DE&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 IsPresent:&lt;br /&gt;
        CALL    EnaByteIn    ; povol prerusenie pre vstup&lt;br /&gt;
        CALL    WaitQ        ; male zdrzanie asi 90 us&lt;br /&gt;
        IN      PIO_C&lt;br /&gt;
        ANI     8            ; je platny byte na vstupe?&lt;br /&gt;
        JZ      EnaByteOut   ; ak nie, vrat sa cez povolenie prerusenia pre vystup&lt;br /&gt;
 IsPresent5:&lt;br /&gt;
        CALL    EnaByteIn    ; povol prerusenie pre vstup&lt;br /&gt;
 IsPresent4:&lt;br /&gt;
        IN      PIO_A        ; precitaj byte zo vstupu&lt;br /&gt;
        CPI     0AAh         ; ak je to prezentacny byte 0AAh&lt;br /&gt;
        JZ      IsPresent2   ; skoc poslat prezentacny byte 0AAh na vystup&lt;br /&gt;
        LXI     D,5000       ; timeout asi 125 ms&lt;br /&gt;
        CALL    IsIntraD     ; cakaj na byte&lt;br /&gt;
        RC                   ; timeout, vrat sa&lt;br /&gt;
        JMP     IsPresent4   ; ano, skoc precitat byte zo vstupu&lt;br /&gt;
  &lt;br /&gt;
 IsPresent2:&lt;br /&gt;
        CALL    WaitQ        ; male zdrzanie asi 90 us&lt;br /&gt;
        CALL    EnaByteOut   ; povol prerusenie pre vystup&lt;br /&gt;
        MVI     A,0AAh       ; posli na vystup prezentacny byte 0AAh&lt;br /&gt;
        OUT     PIO_A&lt;br /&gt;
        LXI     D,5000       ; timeout asi 125 ms&lt;br /&gt;
        CALL    IsIntraD     ; cakaj na byte&lt;br /&gt;
        JC      IsPresent5   ; ak nebol prezentacny byte prijaty, skoc otestovat vstup&lt;br /&gt;
        RET                  ; bol prijaty prezentacny byte, vrat sa s vynulovanym CY&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Kratke zdrzanie&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: kratke zdrzanie asi 90 us&lt;br /&gt;
 ; M: AF&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 WaitQ:&lt;br /&gt;
        MVI     A,20&lt;br /&gt;
 WaitQ1:&lt;br /&gt;
        DCR     A&lt;br /&gt;
        JNZ     WaitQ1&lt;br /&gt;
        RET&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Zistenie, či je PMD 32 pripojená&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Táto rutina musí byť volaná ako prvá, pretože inicializuje 8255 a preveruje, či je PMD 32 pripojená.&lt;br /&gt;
&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Zisti, ci je pripojena PMD 32 a ci odpoveda prezentacnym bytom.&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: CY=1 - chyba, timeout, PMD 32 neodpoveda prezentacnym bytom&lt;br /&gt;
 ; M: AF, DE, B&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 CheckDevice:&lt;br /&gt;
        MVI     A,0C4h       ; inicializuj GPIO 8255&lt;br /&gt;
        OUT     PIO_CW       ; SK A: MOD 2, A-IN/OUT,  SK B: MOD 1, B-OUT&lt;br /&gt;
        CALL    EnaByteIn    ; povol prerusenie pre vstup&lt;br /&gt;
        LXI     D,10000      ; timeout asi 250 ms&lt;br /&gt;
        CALL    IsIntraD     ; cakaj na byte&lt;br /&gt;
        RC                   ; timeout, vrat sa&lt;br /&gt;
        IN      PIO_A        ; precitaj prijaty byte&lt;br /&gt;
        CPI     0AAh         ; je to prezentacny byte 0AAh ?&lt;br /&gt;
        STC                  ; nastav CY ako priznak chyby&lt;br /&gt;
        RNZ                  ; nie je to prezentacny byte 0AAh, vrat sa s CY&lt;br /&gt;
        CALL    EnaByteOut   ; povol prerusenie pre vystup&lt;br /&gt;
        MVI     A,0AAh       ; posli ako odpoved prezentacny byte 0AAh&lt;br /&gt;
        JMP     SendByte&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rutiny pre ukončenie povelu&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Rutina &amp;lt;tt&amp;gt;SndCrcRdAckErr&amp;lt;/tt&amp;gt; slúži pre odoslanie CRC, ktoré sa priebežne počíta v registri B. Po odoslaní sa počká na potvrdzovací byte ACK a na chybový kód. &lt;br /&gt;
&lt;br /&gt;
Rutina &amp;lt;tt&amp;gt;SndCrcRdAck&amp;lt;/tt&amp;gt; je rovnaká ako predošlá, ale chybový kód sa testuje na nulu. &lt;br /&gt;
&lt;br /&gt;
Rutina &amp;lt;tt&amp;gt;ReadCheckCrc&amp;lt;/tt&amp;gt; precita CRC z PMD 32 a porovná ho s priebežne počítaným CRC v registri B.&lt;br /&gt;
&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Posle CRC na vystup a pocka na ACK a vysledok povelu.&lt;br /&gt;
 ; I: B=aktualne CRC&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - OK, A=vysledok povelu&lt;br /&gt;
 ; M: AF, BC, DE&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 SndCrcRdAckErr:&lt;br /&gt;
        MOV     A,B          ; posielane CRC do A&lt;br /&gt;
        CALL    SendByte     ; posli na vystup&lt;br /&gt;
        RC                   ; vrat sa, ak doslo ku chybe&lt;br /&gt;
 ReadAckErr:&lt;br /&gt;
        CALL    EnaByteIn    ; povol prerusenie na vstupe&lt;br /&gt;
        CALL    ReadByte     ; precitaj byte zo vstupu&lt;br /&gt;
        RC                   ; vrat sa, ak doslo ku chybe&lt;br /&gt;
        CPI     33h          ; bolo prijate byte ACK?&lt;br /&gt;
        STC                  ; nastav chybovy priznak&lt;br /&gt;
        RNZ                  ; vrat sa s chybou, ak to nebolo ACK&lt;br /&gt;
 WaitErrT15:&lt;br /&gt;
        LXI     D,3000       ; timeout asi 15,5 sec&lt;br /&gt;
 WaitErrT:&lt;br /&gt;
        PUSH    D&lt;br /&gt;
        CALL    IsIntra      ; je platny byte na vstupe?&lt;br /&gt;
        POP     D&lt;br /&gt;
        JNC     ReadByte     ; ak ano, skoc ho precitat&lt;br /&gt;
        DCX     D            ; zniz pocitadlo timeoutu&lt;br /&gt;
        MOV     A,D          ; a testuj ho na nulu&lt;br /&gt;
        ORA     E&lt;br /&gt;
        JNZ     WaitErrT     ; ak nie je nulovy, skoc do slucky&lt;br /&gt;
        STC                  ; nastav priznak chyby&lt;br /&gt;
        RET&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Odosle CRC a caka na potvrdenie. Otestuje chybovy kod na nulu.&lt;br /&gt;
 ; I: B=posielane CRC&lt;br /&gt;
 ; O: CY=1 - chyba&lt;br /&gt;
 ;    CY=0 - OK&lt;br /&gt;
 ; M: AF, BC, DE&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 SndCrcRdAck:&lt;br /&gt;
        CALL    SndCrcRdAckErr ; posli CRC a cakaj ACK a vysledok povelu&lt;br /&gt;
        RC                     ; vrat sa, ak doslo ku chybe&lt;br /&gt;
        JMP     ReadCheckCrc2  ; ak bol druhy byte skutocne 0, je to OK&lt;br /&gt;
  &lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ; Precita byte zo vstupu, predstavujuci CRC&lt;br /&gt;
 ; I: -&lt;br /&gt;
 ; O: CY=1 - chyba CRC alebo timeout&lt;br /&gt;
 ;    CY=0 - CRC OK&lt;br /&gt;
 ; M: AF, BC&lt;br /&gt;
 ;------------------------------------------------------------------------------&lt;br /&gt;
 ReadCheckCrc:&lt;br /&gt;
        CALL    ReadByte     ; precitaj CRC zo vstupu&lt;br /&gt;
        RC                   ; vrat sa, ak doslo ku chybe&lt;br /&gt;
        MOV     A,B          ; skontroluj CRC&lt;br /&gt;
 ReadCheckCrc2:&lt;br /&gt;
        ORA     A&lt;br /&gt;
        RZ                   ; OK&lt;br /&gt;
        STC                  ; nastav priznak chyby&lt;br /&gt;
        RET&lt;/div&gt;</summary>
		<author><name>Rombor</name></author>	</entry>

	</feed>