<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Obliczenie_rozmiaru_pami%C4%99ci_liniowej</id>
	<title>Obliczenie rozmiaru pamięci liniowej - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Obliczenie_rozmiaru_pami%C4%99ci_liniowej"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Obliczenie_rozmiaru_pami%C4%99ci_liniowej&amp;action=history"/>
	<updated>2026-10-04T15:53:11Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Obliczenie_rozmiaru_pami%C4%99ci_liniowej&amp;diff=3048&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Obliczenie_rozmiaru_pami%C4%99ci_liniowej&amp;diff=3048&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Szybkie obliczenie rozmiaru pamięci ==&lt;br /&gt;
&lt;br /&gt;
Procedura sprawdza liczbę segmentów 64k RAM dostępnych powyżej adresu $00FFFF. Sprawdzany jest tylko pierwszy bajt każdego z nich, zakłada się, że pojedynczy segment składa się poza tym wyłącznie z komórek pamięci RAM.&lt;br /&gt;
&lt;br /&gt;
Procedura działa tak samo w obu trybach pracy [[65C816]] (natywnym i emulacji [[6502]]). Jedyny wymóg to uruchomienie w segmencie 0 (czyli w pierwszych 64k przestrzeni adresowej).&lt;br /&gt;
&lt;br /&gt;
=== Zmienne na stronie zerowej ===&lt;br /&gt;
&lt;br /&gt;
Wstępnie deklarujemy na stronie zerowej następujące zmienne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adr	.ds 3&lt;br /&gt;
bfirst	.ds 1&lt;br /&gt;
bcnt	.ds 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kod ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ramsize	stz adr&lt;br /&gt;
	stz adr+1&lt;br /&gt;
	lda #$01&lt;br /&gt;
	sta adr+2&lt;br /&gt;
&lt;br /&gt;
	stz bfirst&lt;br /&gt;
	stz bcnt&lt;br /&gt;
&lt;br /&gt;
?lp0	stz !$0000&lt;br /&gt;
&lt;br /&gt;
	lda [adr]&lt;br /&gt;
	eor #$ff&lt;br /&gt;
	sta [adr]&lt;br /&gt;
	cmp [adr]&lt;br /&gt;
	bne ?nx&lt;br /&gt;
	ldx !$0000&lt;br /&gt;
	bne ?nx&lt;br /&gt;
	eor #$ff&lt;br /&gt;
	sta [adr]&lt;br /&gt;
	bra ?fnd&lt;br /&gt;
&lt;br /&gt;
?nx	inc adr+2&lt;br /&gt;
	bne ?lp0&lt;br /&gt;
&lt;br /&gt;
	bra ?abt&lt;br /&gt;
&lt;br /&gt;
?fnd	lda adr+2&lt;br /&gt;
	sta bfirst&lt;br /&gt;
&lt;br /&gt;
	inc adr+2&lt;br /&gt;
	inc bcnt&lt;br /&gt;
&lt;br /&gt;
?lp1	stz !$0000&lt;br /&gt;
&lt;br /&gt;
	lda [adr]&lt;br /&gt;
	eor #$ff&lt;br /&gt;
	sta [adr]&lt;br /&gt;
	cmp [adr]&lt;br /&gt;
	bne ?abt&lt;br /&gt;
	ldx !$0000&lt;br /&gt;
	bne ?abt&lt;br /&gt;
	eor #$ff&lt;br /&gt;
	sta [adr]&lt;br /&gt;
	inc bcnt&lt;br /&gt;
	inc adr+2&lt;br /&gt;
	bne ?lp1&lt;br /&gt;
&lt;br /&gt;
        dec bcnt&lt;br /&gt;
&lt;br /&gt;
?abt    rts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Użycie ===&lt;br /&gt;
&lt;br /&gt;
Procedurę uruchamiamy przez &amp;lt;code&amp;gt;jsr ramsize&amp;lt;/code&amp;gt;. Wyniki:&lt;br /&gt;
&lt;br /&gt;
* bfirst - najstarszy bajt adresu pierwszego segmentu 64k powyżej segmentu 0 (np. $01 = pamięć liniowa zaczyna się od adresu $010000)&lt;br /&gt;
* bcnt - liczba dodatkowych segmentów 64k ponad segment 0 (np. 47 = 4 MB)&lt;br /&gt;
&lt;br /&gt;
Zmienna &amp;lt;code&amp;gt;bcnt&amp;lt;/code&amp;gt; zawiera liczbę dodatkowych segmentów ponad segment 0, czyli liczbę wszystkich segmentów zmniejszoną o 1.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Akceleratory]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>