<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://atariki.krap.pl/index.php?action=history&amp;feed=atom&amp;title=SETVBLV</id>
	<title>SETVBLV - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://atariki.krap.pl/index.php?action=history&amp;feed=atom&amp;title=SETVBLV"/>
	<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SETVBLV&amp;action=history"/>
	<updated>2026-10-25T06:37:40Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SETVBLV&amp;diff=33052&amp;oldid=prev</id>
		<title>Tdc: lit.</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SETVBLV&amp;diff=33052&amp;oldid=prev"/>
		<updated>2013-03-16T03:29:30Z</updated>

		<summary type="html">&lt;p&gt;lit.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 16 mar 2013, 04:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Linia 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Procedura służąca do &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ustawianie &lt;/del&gt;wektorów przerwań, głównie przerwania [[VBL]]. Punkt wejścia znajduje się pod $E45C.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Procedura służąca do &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ustawiania &lt;/ins&gt;wektorów przerwań, głównie przerwania [[VBL]]. Punkt wejścia znajduje się pod $E45C.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Wstęp==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Wstęp==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tdc</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SETVBLV&amp;diff=22154&amp;oldid=prev</id>
		<title>KMK o 19:25, 26 gru 2006</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SETVBLV&amp;diff=22154&amp;oldid=prev"/>
		<updated>2006-12-26T19:25:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Procedura służąca do ustawianie wektorów przerwań, głównie przerwania [[VBL]]. Punkt wejścia znajduje się pod $E45C.&lt;br /&gt;
&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Przyczyną, dla której wektorów VBL nie należy ustawiać wprost, to znaczy sekwencją rozkazów LDA/STA/LDA/STA, jest to, że w ten sposób można zmienić tylko pół wektora (jeden bajt) na raz. Jeśli między przestawieniem jednego bajtu a przestawieniem drugiego wystąpi przerwanie, komputer &amp;quot;pójdzie w maliny&amp;quot;, na ogół zawieszając się mniej lub bardziej malowniczo.&lt;br /&gt;
&lt;br /&gt;
Z kolei wyłączanie przerwań [[NMI]] na czas ingerencji w wektory VBL ma dwie wady:&lt;br /&gt;
&lt;br /&gt;
* rejestr NMIEN jest tylko do zapisu, więc zmieniwszy go nie możemy odtworzyć jego stanu&lt;br /&gt;
* &amp;quot;ręczne&amp;quot; przestawienie wektora z wyłączaniem i ponownym włączaniem NMI zajmuje aż 22 bajty, podczas gdy wywołanie SETVBLV tylko 9.&lt;br /&gt;
&lt;br /&gt;
==Użycie procedury==&lt;br /&gt;
SETVBLV przyjmuje parametry w rejestrach procesora. Są to:&lt;br /&gt;
&lt;br /&gt;
* adres procedury, jaką ma wskazywać wektor przerwania (Y/X - młodszy/starszy bajt)&lt;br /&gt;
* numer wektora w akumulatorze&lt;br /&gt;
&lt;br /&gt;
Przed wywołaniem, jeśli program po zakończeniu się ma wracać do [[DOS]]-u, dobrze jest przechować pierwotną wartość wektora celem przywrócenia jej przed zakończeniem programu.&lt;br /&gt;
&lt;br /&gt;
Wymieniony wyżej &amp;quot;numer wektora&amp;quot; to nie adres, ale jego numer kolejny licząc od wektora VIMIRQ ($0216), albo inaczej mówiąc, liczony od tego wektora offset podzielony przez dwa. Sens mają następujące wartości wpisywane do akumulatora:&lt;br /&gt;
&lt;br /&gt;
* $00 - VIMIRQ ($0216)&lt;br /&gt;
* $01 - TIMCNT1 ($0218)&lt;br /&gt;
* $02 - TIMCNT2 ($021A)&lt;br /&gt;
* $03 - TIMCNT3 ($021C)&lt;br /&gt;
* $04 - TIMCNT4 ($021E)&lt;br /&gt;
* $05 - TIMCNT5 ($0220)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;$06 - VVBLKI ($0222)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;$07 - VVBLKD ($0224)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* $08 - TIMVEC1 ($0226)&lt;br /&gt;
* $09 - TIMVEC2 ($0228)&lt;br /&gt;
&lt;br /&gt;
TIMCNTx to nie wektory, tylko liczniki zliczające wstecz (od zadanej wartości do zera), zamiast adresu należy dla nich podać wartość początkową.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>KMK</name></author>
	</entry>
</feed>