<?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=Programowanie%3A_Jak_wy%C5%82%C4%85czy%C4%87_ROM_systemu</id>
	<title>Programowanie: Jak wyłączyć ROM systemu - 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=Programowanie%3A_Jak_wy%C5%82%C4%85czy%C4%87_ROM_systemu"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Programowanie:_Jak_wy%C5%82%C4%85czy%C4%87_ROM_systemu&amp;action=history"/>
	<updated>2026-10-03T09:38:15Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Programowanie:_Jak_wy%C5%82%C4%85czy%C4%87_ROM_systemu&amp;diff=3288&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=Programowanie:_Jak_wy%C5%82%C4%85czy%C4%87_ROM_systemu&amp;diff=3288&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;Atari z serii [[XL]] i [[XE]] ma tę ciekawą cechę, iż umożliwia wyłączenie pamięci [[ROM]] i podstawienie w jej miejsce bloku pamięci [[RAM]] dzięki czemu uzyskujemy dostęp do większej ilości tejże pamięci (obszary: $c000-$cfff oraz $d800-$ffff), zwykle niedostępnej dla programisty (gdy [[ROM]] jest podłączony).&lt;br /&gt;
Pamięć ROM przechowuje istotne elementy oprogramowania komputera - np. obsługę przerwań, dlatego należy zatroszczyć się o to, aby po wyłączeniu ROM-u przerwania nadal miały przypisane odpowiednie procedury obsługi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
; procedura system_off - wylaczamy OS, podlaczamy RAM pod ROMem i&lt;br /&gt;
; zajmujemy sie na wlasna reke obsluga NMI&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
system_off equ *&lt;br /&gt;
&lt;br /&gt;
 lda #0&lt;br /&gt;
 sta $d40e   ; wylaczamy NMI&lt;br /&gt;
 sei         ; oraz IRQ&lt;br /&gt;
 lda #$fe    ; oraz podlaczamy RAM pod ROMem, wylaczajac OS&lt;br /&gt;
 sta $d301&lt;br /&gt;
&lt;br /&gt;
; poniewaz nie mamy juz systemu nalezy zadbac o wlasna obsluge przerwan NMI&lt;br /&gt;
&lt;br /&gt;
 lda &amp;amp;lt;NMI&lt;br /&gt;
 sta $fffa&lt;br /&gt;
 lda &amp;amp;gt;NMI&lt;br /&gt;
 sta $fffb&lt;br /&gt;
 lda #$c0    ;wlaczamy NMI&lt;br /&gt;
 sta $d40e&lt;br /&gt;
 rts&lt;br /&gt;
&lt;br /&gt;
NMI bit $d40f ; sprawdzamy czy przerwanie to VBL czy DLI&lt;br /&gt;
 bpl _no&lt;br /&gt;
 jmp (DLI)&lt;br /&gt;
_no sta $d40f&lt;br /&gt;
 jmp (VBL)&lt;br /&gt;
&lt;br /&gt;
DLI dta a(my_dli) ; my_vbl i my_dli to juz nasze procedury obslugi przerwan.&lt;br /&gt;
VBL dta a(my_vbl)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Czasami chcemy mieć możliwość odłaczenia ROMu i mieć nieograniczony (prawie, bez ostatnich 6-7 bajtów) dostęp do pamięci pod romem. Najprostsze rozwiązanie to pusty handler przerwania i ustawienie na niego wektorów:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 org $fff9&lt;br /&gt;
 rti&lt;br /&gt;
 .word $fff9&lt;br /&gt;
 .word $fff9&lt;br /&gt;
 .word $fff9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Należy jednak mieć na uwadze, że w takim przypadku po odłączeniu romu nie będą się wykonywały żadne procedury przerwań, czyli np. nie będą liczyły timery czy mogą się rozsynchronizować przerwania DLI, a muzyka będzie miała przestoje. W przypadku zajścia przerwania IRQ bez wyzerowania bitu przerwania może nastąpić zapętlenie przerwań, więc przed odłączeniem systemu należy wykonać SEI, a po powrocie CLI - lub stworzyć handler, który będzie kasował bity przerwań w IRQST.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>