<?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=Plama_256</id>
	<title>Plama 256 - 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=Plama_256"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Plama_256&amp;action=history"/>
	<updated>2026-10-03T03:08:41Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Plama_256&amp;diff=3214&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=Plama_256&amp;diff=3214&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;[[File:Plama prg.png]]&lt;br /&gt;
&lt;br /&gt;
Program graficzny, napisany w pierwszej połowie lat 90. XX w. przez [[AB-Soft]]. Wykorzystywał pełną dostępną paletę Atari (256 kolorów) w trybie graficznym o rozdzielczości 80x96. Użyty tryb graficzny i zasady rysowania są podobne do tych stosowanych w edytorze [[Paint 256]], &amp;quot;Plama 256&amp;quot; tak samo jak &amp;quot;Paint 256&amp;quot; nie wykorzystuje techniki [[Interlace|interlace]] (tak jak np. [[Digi-Paint]]), stąd pionowa rozdzielczość obrazka to tylko 96 pikseli.&lt;br /&gt;
&lt;br /&gt;
== Technikalia ==&lt;br /&gt;
&lt;br /&gt;
W trybie graficznym w którym pracuje program, linie parzyste określają jasność piksela, natomiast w liniach nieparzystych określane są kolory pikseli. Działanie tego trybu graficznego wykorzystuje specyfikę systemu telewizyjnego [https://pl.wikipedia.org/wiki/PAL PAL], w którym to rozdzielczość pionowa koloru jest dwa razy niższa niż w przypadku jasności. Zatem, gdy jedna linia obrazu będzie zawierała informację tylko o jasnościach ([https://pl.wikipedia.org/wiki/Luminancja luminancja]), a druga z sąsiadujących linii będzie zawierała informację o barwach ([https://pl.wikipedia.org/wiki/Chrominancja chrominancję]), nastąpi efekt mieszania się zawartości dwóch linii obrazu i nastąpi tzw. &amp;quot;PAL Blending&amp;quot; (efekt nazwany właśnie od standardu kodowania sygnału wizji w którym on występuje). To właśnie dzięki temu &amp;quot;efektowi ubocznemu&amp;quot; występującemu w systemie PAL możliwe jest uzyskanie tego typu trybów graficznych. Efekt ten występuje również w systemie NTSC jednak mieszanie kolorów występuje w znacznie mniejszej skali, przez co ten tryb na komputerach pracujących w systemie NTSC będzie wyglądał dość mało atrakcyjnie (obraz będzie blady i &amp;quot;wyprany&amp;quot; z kolorów&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Ciekawostki ==&lt;br /&gt;
&lt;br /&gt;
Pierwszym znanym programem wykorzystującym ten tryb było prawdopodobnie &amp;quot;demo technologiczne&amp;quot; [http://www.atarimania.com/demo-atari-400-800-xl-xe-technicolor-dream-demo_30478.html Technicolor Dream] wydane już w 1986 roku przez [[RedRat Software]]. Wydaje się że RedRat software opublikowało kilka dyskietek zawierających różne zestawy obrazków, przykładową kolekcję składającą się z obrazów trzech dyskietek możemy znaleźć w kolekcji [[Fandal|Fandal-a]]: [https://a8.fandal.cz/detail.php?files_id=3722 Technicolor Dream]&lt;br /&gt;
&lt;br /&gt;
== Format pliku PLM ==&lt;br /&gt;
&lt;br /&gt;
Program przechowuje obrazki w plikach .PLM, [[PLM|format danych]] jest niezwykle prosty, plik .PLM zawiera dane obrazu zgrane bezpośrednio z pamięci ekranu, zatem plik przechowujący obrazek w rozdzielczości 80x192 o głębi bitowej 4 bity/piksel zajmuje dokładnie 7680 bajtów ($1E00). Żadne dane o palecie czy rejestrach kolorów nie są przechowane, ponieważ program nie umożliwia manipulacji rejestrami kolorów, a paleta barw jest ściśle określona z góry możliwościami trybu [[Graphics 11]]. Dane obrazu zawierają naprzemiennie dane linii zawierających luminancję i chrominancję (po 40 bajtów na linię). Prostota formatu umożliwia bardzo proste wyświetlanie obrazków w tymże formacie nawet z użyciem BASIC-a. Wszystkie operacje I/O bez problemu można obsłużyć z języku wyższego poziomu, natomiast procedura naprzemiennie zmieniająca tryby GTIA pomiędzy [[Graphics 9]] a Graphics 11 może zostać napisana w assemblerze.&lt;br /&gt;
&lt;br /&gt;
Przykładowy program napisany w [[Turbo BASIC XL]] wyświetlający wszystkie pliki *.PLM znalezione na dysku może wyglądać tak:&lt;br /&gt;
&lt;br /&gt;
[[File:Plama256 small.png]]&amp;lt;br /&amp;gt;Przykładowe grafiki dołączone do programu&amp;lt;pre&amp;gt;100 ------------------------------&lt;br /&gt;
110 REM PLAMA256 viewer v.1.1&lt;br /&gt;
120 REM done by Seban/SLT, (p) 1995&lt;br /&gt;
130 ------------------------------&lt;br /&gt;
140 DIM D$(32),N$(32),F$(32)&lt;br /&gt;
150 GOSUB 340&lt;br /&gt;
160 D$=&amp;quot;D:&amp;quot;&lt;br /&gt;
170 N$=D$:N$(LEN(D$)+1)=&amp;quot;*.PLM&amp;quot;&lt;br /&gt;
180 OPEN #1,6,0,N$:TRAP 320&lt;br /&gt;
190 INPUT #1,N$&lt;br /&gt;
200 F$=D$:I=LEN(F$)+1&lt;br /&gt;
210 FOR J=3 TO 10&lt;br /&gt;
220   IF N$(J,J)=&amp;quot; &amp;quot; THEN EXIT&lt;br /&gt;
230   F$(I,I)=N$(J,J)&lt;br /&gt;
240   I=I+1:NEXT J&lt;br /&gt;
250 F$(LEN(F$)+1)=&amp;quot;.PLM&amp;quot;&lt;br /&gt;
260 OPEN #2,4,0,F$&lt;br /&gt;
270 GRAPHICS 9&lt;br /&gt;
280 BGET #2,DPEEK(88),$1E00&lt;br /&gt;
290 CLOSE #2&lt;br /&gt;
300 X=USR(1536)&lt;br /&gt;
310 GOTO 190&lt;br /&gt;
320 GRAPHICS 0:? :? &amp;quot;END OF FILES? (&amp;quot;;ERR;&amp;quot;)&amp;quot;&lt;br /&gt;
330 END&lt;br /&gt;
340 ------------------------------&lt;br /&gt;
350 DIM A$(128):RESTORE 400:READ A$&lt;br /&gt;
360 FOR I=0 TO $24&lt;br /&gt;
370   POKE $0600+I,DEC(A$(I*2+1,I*2+2))&lt;br /&gt;
380 NEXT I&lt;br /&gt;
390 RETURN&lt;br /&gt;
400 DATA A90FCD0BD4D0FBA2C2AD6F028D0AD48D1BD049808D6F02CAD0EFAD0FD22904D0DF68606860&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Program czyta katalog dysku w poszukiwaniu plików *.PLM, a następnie podejmuje próbę otwarcia, wczytania i wyświetlenia każdego z tych plików. Program do zmiany trybów (9/11) w każdej linii wykorzystuje prostą procedurę napisaną w asemblerze a następnie zakodowaną jako ciąg liczb szesnastkowych umieszczonych w linii nr 400. Procedura nie wykorzystuje przerwań [[DLI]], bazuje jedynie na rejestrach [[Rejestry ANTIC-a|VCOUNT/WSYNC]] aby odczekać odpowiedni okres czasu w zmienić tryb pracy GTIA na końcu każdej z linii obrazu tworzonej przez tandem [[ANTIC (układ)|ANTIC]] oraz [[GTIA]].&lt;br /&gt;
&lt;br /&gt;
Procedura owa wygląda tak:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;W0 LDA #$0F		; będziemy czekać na 30-tą linię skaningową&lt;br /&gt;
W1 CMP VCOUNT	        ; porównujemy z zawartością licznika linii VCOUNT&lt;br /&gt;
   BNE W1		; czekamy do czasu aż rej. VCOUNT nie przyjmie ustalonej wartości&lt;br /&gt;
   LDX #$C2		; rej. X posłuży jako licznik pętli (w tym wypadku liczba linii)&lt;br /&gt;
W2 LDA GPRIOR	        ; ładujemy aktualną wartość rej. cienia określającego tryb pracy GTIA&lt;br /&gt;
   STA WSYNC	        ; odczekujemy do końca linii ekranowej&lt;br /&gt;
   STA PRIOR	        ; zapisujemy otrzymaną wartość bezpośrednio do układu GTIA&lt;br /&gt;
   EOR #$80		; zmieniamy tryb GTIA&lt;br /&gt;
   STA GPRIOR	        ; zapisujemy otrzymaną wartość do rej. cienia&lt;br /&gt;
   DEX			; zmniejszamy rej. X (w tym wypadku licznik pętli)&lt;br /&gt;
   BNE W2		; czy to już koniec? (rej X=0 ?)&lt;br /&gt;
   LDA SKSTAT	        ; odczytujemy rej. POKEY zawierający informację o stanie klawiatury&lt;br /&gt;
   AND #$04		; czy wciśnięto jakiś klawisz? (bit #2 informuje o wciśnięciu klawisza)&lt;br /&gt;
   BNE W0		; jeżeli nie wciśnięto nic, powtarzamy pętlę&lt;br /&gt;
   PLA			; zdejmujemy ze stosu ilość parametrów przekazaną przez BASIC&lt;br /&gt;
   RTS			; wracamy!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Najprostszy program wyświetlający pojedynczy plik *.PLM o podanej nazwie może wyglądać tak:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10 DIM F$(32):GOSUB 21&lt;br /&gt;
11 GRAPHICS 0:?&lt;br /&gt;
12 INPUT &amp;quot;ENTER FILENAME &amp;quot;;F$&lt;br /&gt;
13 TRAP 19:OPEN #1,4,0,F$&lt;br /&gt;
14 GRAPHICS 9&lt;br /&gt;
15 BGET #1,DPEEK(88),$1E00&lt;br /&gt;
16 CLOSE #1&lt;br /&gt;
17 X=USR(1536):POKE 764,255&lt;br /&gt;
18 GOTO 11&lt;br /&gt;
19 GRAPHICS 0:? :? &amp;quot;ERROR #&amp;quot;;ERR&lt;br /&gt;
20 END&lt;br /&gt;
21 ------------------------------&lt;br /&gt;
22 DIM A$(128):RESTORE 27:READ A$&lt;br /&gt;
23 FOR I=0 TO $24&lt;br /&gt;
24   POKE $0600+I,DEC(A$(I*2+1,I*2+2))&lt;br /&gt;
25 NEXT I&lt;br /&gt;
26 RETURN&lt;br /&gt;
27 DATA A90FCD0BD4D0FBA2C2AD6F028D0AD48D1BD049808D6F02CAD0EFAD0FD22904D0DF68606860&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Linki ==&lt;br /&gt;
&lt;br /&gt;
* [[PLM|Format danych PLM]]&lt;br /&gt;
* [http://atarionline.pl/utils/2.%20Grafika/Plama%20256/Plama%20256.atr Download]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Programy użytkowe]]&lt;br /&gt;
[[Kategoria:Programy graficzne]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>