<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[atari.area forum - Programowanie - 8 bit]]></title>
		<link>https://www.atari.org.pl/forum/index.php</link>
		<atom:link href="https://www.atari.org.pl/forum/extern.php?action=feed&amp;fid=26&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Najświeże tematy w atari.area forum.]]></description>
		<lastBuildDate>Tue, 24 Feb 2026 16:25:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[mad pascal na mac os]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20647&amp;action=new</link>
			<description><![CDATA[<p>Cześć,</p><p>skompilowałem sobie mad pascala i madsa pod mac os, wciepałem wykonywalne pliki do jednego folderu razem z repo mad pascala, skonfigurowałem sobie Geany jak Bocianu kazał (<a href="https://bocianu.atari.pl/blog/madgeany">https://bocianu.atari.pl/blog/madgeany</a>) i przy próbie kompilacji mam lipę :/</p><p>może ktoś coś wyłapie co mam źle ustawione?</p><br /><br /><p><span class="postimg"><img src="https://www.atari.org.pl/forum/misc.php?action=pun_attachment&amp;item=13442" alt="https://www.atari.org.pl/forum/misc.php?action=pun_attachment&amp;amp;item=13442" /></span></p>]]></description>
			<author><![CDATA[null@example.com (insert)]]></author>
			<pubDate>Tue, 24 Feb 2026 16:25:05 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20647&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Monitor / Debugger]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20633&amp;action=new</link>
			<description><![CDATA[<p>Cześć wszystkim!</p><p>Zrobiłem prototyp frontendu monitora i debuggera a800mon, wraz z binarnym protokołem.</p><p>Głównym powodem jest chęć eksploracji pamięci Atari i eksperymenty na żywym organizmie. Na Linuxie używam emulatora Atari800, którego debugger i monitor jest, mówiąc delikatnie, nieużywalny. Stąd pomysł, żeby zrobić do tego wygodne UI oraz CLI.&nbsp; Protokół do monitora i debuggera siłą rzeczy musiał powstać, żeby to działało.</p><p>Dzięki protokołowi można użyć a800mon z dowolnym backendem (np. innym emulatorem) - wystarczy że backend zaimplementuje protokół. To zdejmuje ciężar programowania samej emulacji i można polegać na istniejących rozwiązaniach.</p><p>Projekt jest we wczesnej fazie developmentu. Wymaga sforkowanego emulatora Atari800 z włączonym Remote Monitorem. Aktualnie działa tylko na Linuxach i unixpodobnych systemach (wymagane sockety). Transport TCP/IP lub alternatywny dodam, jeśli maintainerzy Atari800 w ogóle przyjmią pull request z Remote Monitorem.</p><p>Jestem ciekawy Waszych uwag.</p><p><a href="https://www.youtube.com/watch?v=9Co0CPifd6Y">https://www.youtube.com/watch?v=9Co0CPifd6Y</a></p><br /><p>- a800mon: <a href="https://github.com/a800mon/a800mon">https://github.com/a800mon/a800mon</a><br />- Fork Atari800: <a href="https://github.com/a800mon/atari800">https://github.com/a800mon/atari800</a></p>]]></description>
			<author><![CDATA[null@example.com (marcinjn)]]></author>
			<pubDate>Sun, 15 Feb 2026 17:22:37 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20633&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Mad-Pascal (najnowszy) i kompilacja na Linuksie]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20600&amp;action=new</link>
			<description><![CDATA[<p>Czołem Atarowcy!</p><p>Ponieważ mój dotychczasowy Mad-Pascal to 1.7.1, postanowiłem sobie go odświeżyć. Sciągam najnosze źródełka z gita... łyczek kawki... i make... błąd!<br />Myślę sobie, ok, wejdziemy do src i skompilujemy z ręki, a tu znowu... zonk! Na dwóch róznych systemach z działającym fpc, to samo (Fedora i Arch Linux):</p><div class="codebox"><pre><code> % fpc -MDelphi -vh -O3 mp.pas

Hint: Start of reading config file /etc/fpc.cfg
Hint: End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.2.2 [2024/05/01] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling mp.pas
Compiling Common.pas
Compiling CommonTypes.pas
Compiling CompilerTypes.pas
Compiling DataTypes.pas
Compiling FileIO.pas
FileIO.pas(269,15) Warning: An inherited method is hidden by &quot;Assign(const AnsiString);&quot;
FileIO.pas(270,15) Warning: An inherited method is hidden by &quot;Close;&quot;
FileIO.pas(271,15) Warning: An inherited method is hidden by &quot;Erase;&quot;
FileIO.pas(272,14) Warning: An inherited method is hidden by &quot;EOF:Boolean;&quot;
FileIO.pas(273,15) Warning: An inherited method is hidden by &quot;Reset;&quot;
FileIO.pas(274,15) Warning: An inherited method is hidden by &quot;Rewrite;&quot;
generics.collections.pas(1186,20) Note: Call to subroutine &quot;function TEnumerable&lt;System.AnsiString&gt;.GetEnumerator:TEnumerator$1&lt;SYSTEM.AnsiString&gt;;&quot; marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine &quot;function TEnumerable&lt;FileIO.TPair&lt;System.AnsiString,System.AnsiString&gt;&gt;.GetEnumerator:TEnumerator$1&lt;FILEIO.TPair$2&lt;SYSTEM.AnsiString,SYSTEM.AnsiString&gt;&gt;;&quot; marked as inline is not inlined
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc897DEE08&quot; with abstract method &quot;DoMoveNext&quot;
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(&lt;TEnumerator$1$crc6824777A&gt;):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc897DEE08&quot; with abstract method &quot;GetCurrent&quot;
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(&lt;TCustomDictionaryEnumerator$4$crc897DEE08&gt;;&lt;var AnsiString&gt;):AnsiString;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc897DEE08&quot; with abstract method &quot;DoMoveNext&quot;
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(&lt;TEnumerator$1$crc6824777A&gt;):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc897DEE08&quot; with abstract method &quot;GetCurrent&quot;
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(&lt;TCustomDictionaryEnumerator$4$crc897DEE08&gt;;&lt;var AnsiString&gt;):AnsiString;
generics.dictionariesh.inc(286,33) Hint: Parameter &quot;AFrom&quot; not used
generics.dictionariesh.inc(286,40) Hint: Parameter &quot;ATo&quot; not used
FileIO.pas(199,31) Hint: Parameter &quot;w&quot; not used
FileIO.pas(806,11) Hint: Local variable &quot;c&quot; does not seem to be initialized
generics.collections.pas(144,52) Note: Private type &quot;TCustomPointersEnumerator$2&lt;SYSTEM.AnsiString,FILEIO.TCustomList$1$crc6824777A.PT&gt;.T&quot; never used
generics.collections.pas(144,52) Note: Private type &quot;TCustomPointersEnumerator$2&lt;FILEIO.TPair$2&lt;SYSTEM.AnsiString,SYSTEM.AnsiString&gt;,FILEIO.TCustomList$1$crcE101151F.PT&gt;.T&quot; never used
FileIO.pas(9,16) Hint: Unit &quot;CommonTypes&quot; not used in FileIO
Compiling Tokens.pas
generics.collections.pas(1186,20) Note: Call to subroutine &quot;function TEnumerable&lt;System.AnsiString&gt;.GetEnumerator:TEnumerator$1&lt;SYSTEM.AnsiString&gt;;&quot; marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine &quot;function TEnumerable&lt;Tokens.TTokenKind&gt;.GetEnumerator:TEnumerator$1&lt;TOKENS.TTokenKind&gt;;&quot; marked as inline is not inlined
generics.collections.pas(1186,20) Note: Call to subroutine &quot;function TEnumerable&lt;Tokens.TPair&lt;System.AnsiString,Tokens.TTokenKind&gt;&gt;.GetEnumerator:TEnumerator$1&lt;TOKENS.TPair$2&lt;SYSTEM.AnsiString,TOKENS.TTokenKind&gt;&gt;;&quot; marked as inline is not inlined
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc8EA04C88&quot; with abstract method &quot;DoMoveNext&quot;
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(&lt;TEnumerator$1$crc3746980C&gt;):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc8EA04C88&quot; with abstract method &quot;GetCurrent&quot;
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(&lt;TCustomDictionaryEnumerator$4$crc8EA04C88&gt;):&lt;enumeration type&gt;;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc1E1490C8&quot; with abstract method &quot;DoMoveNext&quot;
generics.collections.pas(121,14) Hint: Found abstract method: DoMoveNext(&lt;TEnumerator$1$crc6824777A&gt;):Boolean;
generics.dictionaries.inc(191,92) Warning: Constructing a class &quot;TCustomDictionaryEnumerator$4$crc1E1490C8&quot; with abstract method &quot;GetCurrent&quot;
generics.dictionariesh.inc(119,14) Hint: Found abstract method: GetCurrent(&lt;TCustomDictionaryEnumerator$4$crc1E1490C8&gt;;&lt;var AnsiString&gt;):AnsiString;
generics.defaults.pas(2634,1) Warning: function result variable of a managed type does not seem to be initialized
Hint: Parameter &quot;AFrom&quot; not used
Hint: Parameter &quot;ATo&quot; not used
generics.collections.pas(144,52) Note: Private type &quot;TCustomPointersEnumerator$2&lt;SYSTEM.AnsiString,TOKENS.TCustomList$1$crc6824777A.PT&gt;.T&quot; never used
generics.collections.pas(144,52) Note: Private type &quot;TCustomPointersEnumerator$2&lt;TOKENS.TTokenKind,TOKENS.TCustomList$1$crc3746980C.PT&gt;.T&quot; never used
generics.collections.pas(144,52) Note: Private type &quot;TCustomPointersEnumerator$2&lt;TOKENS.TPair$2&lt;SYSTEM.AnsiString,TOKENS.TTokenKind&gt;,TOKENS.TCustomList$1$crc602E2D29.PT&gt;.T&quot; never used
CompilerTypes.pas(872,1) Warning: function result variable of a managed type does not seem to be initialized
CompilerTypes.pas(284,5) Note: Private field &quot;TTypeList.Count&quot; is never used
Compiling Memory.pas
Compiling StringUtilities.pas
StringUtilities.pas(77,3) Note: Local variable &quot;i&quot; is assigned but never used
Compiling Targets.pas
Compiling Messages.pas
Compiling Console.pas
Compiling Utilities.pas
Common.pas(190,20) Hint: Parameter &quot;message&quot; not used
Common.pas(180,32) Hint: Parameter &quot;tokenIndex&quot; not used
Compiling Compiler.pas
Compiling Assembler.pas
Assembler.pas(87,3) Hint: Local const &quot;msg&quot; is not used
Assembler.pas(107,3) Hint: Local const &quot;msg&quot; is not used
Compiling CommonIO.pas
Compiling Debugger.pas
Compiling Parser.pas
Compiling Numbers.pas
Numbers.pas(26,23) Hint: Parameter &quot;valType&quot; not used
Compiling Debugger.pas
Parser.pas(1828,32) Warning: Local variable &quot;identifier&quot; does not seem to be initialized
Parser.pas(1828,3) Warning: Local variable &quot;Block&quot; does not seem to be initialized
Compiling MathEvaluate.pas
Compiling Optimizer.pas
Compiling Optimize.pas
Compiling OptimizeTemporary.pas
Compiling OptimizerTypes.pas
Optimize.pas(461,27) Hint: Parameter &quot;context&quot; not used
opt_STACK_AX_CX.inc(231,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(232,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(233,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(236,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(237,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(239,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(240,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(243,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(244,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(246,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(248,35) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(272,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(273,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(274,9) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(275,9) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(276,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(279,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(280,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(282,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(283,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(286,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(287,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(289,2) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(291,35) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(501,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(502,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(503,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(504,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(505,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(506,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(508,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(509,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(510,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(511,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(512,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(513,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(516,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(517,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(518,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(519,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(520,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(521,18) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(552,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(553,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(554,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(555,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(556,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(557,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(559,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(560,3) Error: Identifier not found &quot;listing_tmp&quot;
opt_STACK_AX_CX.inc(560,3) Fatal: There were 50 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode</code></pre></div><p>.. może ktoś to przewalczył, zanim zacznę wyarzać otwarte drzwi? ;-)</p><p>-U</p>]]></description>
			<author><![CDATA[null@example.com (UnDead)]]></author>
			<pubDate>Sat, 24 Jan 2026 16:34:11 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20600&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Atari XE 1Mb SuperCart]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20542&amp;action=new</link>
			<description><![CDATA[<p>Cześć,</p><p> Znalazłem taki oto projekt carta na PCBway i zamówiłem sobie płytki : <a href="https://www.pcbway.com/project/shareproject/Atari_XE_1MB_XE_SuperCart.html">https://www.pcbway.com/project/sharepro … rCart.html</a> </p><p>Polutowałem wszystko tak jak trzeba pod wersję 128K (27010) no i przyszedł czas na zrobienie wsadu. <br />Jako ze romy mialem w rozmiarze 8kB to na koncu każdego z nich z pomoca winhex&#039;a wkleiłem 8192 zer i zrobiłem paczkę z 8x16K. Jako pamięć do carta użyłem eproma M27C1001, flash 29F001 też działa&nbsp; . <br />Po wgraniu wsadu do pamięci i uruchomieniu na atarce mam do dyspozycji tylko ostatnią grę w Altirra tak samo. W jaki sposób przełączyć się na inny bank carta ?<br />Czy do wyboru innego banku z grą trzeba napisać jakieś menu z wyborem czy jednak robię coś nie tak ?<br />Jako że z programowania jestem zielony to z pomocą chatagpt próbowałem wygenerować jakieś menu i poźniej to skompilować ale bez powodzenia. W razie czego wklejam to co wygenerował czat i wsad .<br />Czy znajdzie się ktroś kto pomoże w uruchomieniu tego carta ?</p>]]></description>
			<author><![CDATA[null@example.com (axg)]]></author>
			<pubDate>Fri, 21 Nov 2025 19:13:30 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20542&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Free Pascal i MOS6502]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20494&amp;action=new</link>
			<description><![CDATA[<p>Właśnie zauważyłem nową gałąź kompilatora FPC:<br /><a href="https://gitlab.com/freepascal.org/fpc/source/-/commits/mos6502?ref_type=heads">https://gitlab.com/freepascal.org/fpc/s … type=heads</a><br />Trzymam kciuki.</p>]]></description>
			<author><![CDATA[null@example.com (gabor)]]></author>
			<pubDate>Fri, 17 Oct 2025 18:00:32 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20494&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Mad-Pascal, PMG i tryb graficzny 15]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20254&amp;action=new</link>
			<description><![CDATA[<p>Po długiej przerwie od Atari postanowiłem powrócić do niego i naszło mnie, aby stworzyć jakiś prosty projekt.<br />Jako dzieciak bawiłem się językiem BASIC, ale teraz po wielu latach siedzenia w językach wysokiego poziomu na PC raczej ten język nie wchodzi w grę.<br />Mad-Pascal wydaje mi się fajnym rozwiązaniem.<br />Oczywiście szybko natrafiłem na pierwsze problemy.<br />Póki co moim założeniem jest sprawdzenie możliwości graficznych.<br />I tu moje pierwsze pytanie. Czy jest możliwe wyświetlanie duszków w trybie graficznym 15 bez magicznych sztuczek w assemblerze?<br />Tryb graficzny 15 dlatego, że oferuje akceptowalną &quot;rozdzielczość&quot; + 4 kolory. Jakby doszły do tego 4 kolory duszków to jest to czego potrzebuję.</p><p>Mój kod:</p><div class="codebox"><pre><code>uses pmg, crt, graph;
var
    p0Data: array[0.._P_MAX] of byte = (28, 8, 137, 126, 62, 34, 34, 102, 0, 0, 0, 0, 0, 0, 0);
begin
    InitGraph(15+16);
    
    SizeP(0, 0);
    ColorPM(0, 58);
    p_data[0] := p0Data;
    
    SetPM(_PM_DOUBLE_RES);  
    InitPM(_PM_DOUBLE_RES);
    
    ShowPM(_PM_SHOW_ON);  
    MoveP(0, 60, 10);
    
    ReadKey;
    ShowPM(_PM_SHOW_OFF);
end.</code></pre></div><p>Wyświetla artefakty w tym trybie (jak w załączniku). Dlaczego? Rozumiem, że dane w pamięci się &quot;gryzą&quot; ze sobą. Jak temu zaradzić i czy się da to zrobić tylko i wyłącznie za pomocą mad-pascala?<br />Próbowałem też wykorzystując bibliotekę Bociana b_pmg ale efekt ten sam.</p>]]></description>
			<author><![CDATA[null@example.com (mtjk)]]></author>
			<pubDate>Sun, 02 Mar 2025 17:05:13 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20254&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Kod źrodłowy Elite]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=20197&amp;action=new</link>
			<description><![CDATA[<p>W kilku różnych wersjach na 6502 można znaleźć tu: <a href="https://elite.bbcelite.com/">https://elite.bbcelite.com/</a><br />Może ktoś się podejmie portu?</p>]]></description>
			<author><![CDATA[null@example.com (Adam Klobukowski)]]></author>
			<pubDate>Fri, 31 Jan 2025 22:57:31 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=20197&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Muzyczka w C i pierwsze koty za płoty]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19978&amp;action=new</link>
			<description><![CDATA[<p>Ahoj!</p><p>Próbuję trochę swoich sił w C.<br />Idzie mi tak sobie, narazie mam takiego biegnącego SuperFroga :)</p><p><span class="postimg"><img src="https://i.ibb.co/t3zzvRg/ddfd6c6e-2f56-44b9-b049-c80baa6692ea.gif" alt="https://i.ibb.co/t3zzvRg/ddfd6c6e-2f56-44b9-b049-c80baa6692ea.gif" /></span></p><p>Czy ktoś może ma jakieś doświadczenie z odgrywaniem muzyki w C? (sap, rmt)? Może jakieś inne porady?<br />Kawałek kodu?<br />Ciężko coś wygooglować w tym temacie.</p><p>Załączam też plik rom, do odpalenia u siebie, chociaż póki co nie ma co podziwiać :)</p><p>Pozdr.<br />Javalonde</p>]]></description>
			<author><![CDATA[null@example.com (Javalonde)]]></author>
			<pubDate>Fri, 20 Sep 2024 14:46:02 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19978&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[mads - procedury]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19961&amp;action=new</link>
			<description><![CDATA[<p>Próbuje liznąć lekko asm dla A8, ogólnie zainspirował mnie David Arlington ze swoją serią na YT, tylko on używa Mac/65 na real Atari, ja jednak wybrałem madsa, w sumie ze względu, że można używać procedur co wydaje mi się ułatwiać programowanie.</p><p>Napisałem prostą procedurę do której przekazuje znak.</p><p>Może ktoś mi wyjaśni dlaczego jak zadeklaruje ZNAK2 jako byte, to przy przekazaniu tego do procedury dostaję niezgodność typów ?</p><p>ZNAK1 = &#039;&gt;&#039; <br />ZNAK2 .BYTE &#039;*&#039;</p><div class="codebox"><pre><code>org $2000

ZNAK1 = &#039;&gt;&#039; 
ZNAK2 .BYTE &#039;*&#039;

   ; PLOT #ZNAK1
    PLOT #ZNAK2

PLOT .proc (.BYTE ZN) .var 
    .var ZN .byte

    .endp</code></pre></div><div class="codebox"><pre><code>test2.asm (7) ERROR: Incompatible types ZN</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (lopez)]]></author>
			<pubDate>Mon, 09 Sep 2024 05:40:33 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19961&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Bug w Atariki w PMBASE?]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19893&amp;action=new</link>
			<description><![CDATA[<p>W trakcie szkolenia AI do pisania gier w asemblerze na Atari trafiłem chyba na błąd tu:<br /><a href="http://atariki.krap.pl/index.php/Rejestry_ANTIC-a#PMBASE">http://atariki.krap.pl/index.php/Rejest … C-a#PMBASE</a></p><p>Wydaje mi się, że powinno być odwrotnie, zgodnie z:<br /><a href="https://atariwiki.org/wiki/Wiki.jsp?page=PMBASE">https://atariwiki.org/wiki/Wiki.jsp?page=PMBASE</a></p><p>Czyli: dla duszków dwuliniowych, obszar P&amp;M zajmuje 1KB i taka musi być granica początku pamięci P&amp;M zapisywanego do PMBASE, a dla jednoliniowych jest to 2KB.</p><p>Zgadza się?</p><p>Piszę z pewną taką nieśmiałością, bo dawno nie programowałem na Atari, a trudno mi uwierzyć, by błąd przez tyle lat nie został zauważony.</p>]]></description>
			<author><![CDATA[null@example.com (nosty)]]></author>
			<pubDate>Tue, 23 Jul 2024 19:31:08 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19893&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Mnożenie na Lynx]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19870&amp;action=new</link>
			<description><![CDATA[<p><a href="https://www.monlynx.de/lynx/lynx9.html">https://www.monlynx.de/lynx/lynx9.html</a><br /></p><div class="quotebox"><blockquote><p>Writing to B,D,F,H,K, or M will force a &#039;0&#039; to be written to A,C,E,G,J, or L, respectfully. Therefore, if you only have 8 bits in a particular number, there is no need to write the upper byte to &#039;0&#039;. (except for signed multiplies)<br />Writing to A will start a 16 bit multiply.</p></blockquote></div><p>W upkr potrzebuję mnożenia 8x8. Jestem skonfudowany stwierdzeniem, że zapis do B zeruje A. Czy to startuje mnożenie, czy i tak trzeba zapisać do A? Jeśli tak, to jaki ma sens pisanie o zerowaniu A?<br />Czy te rejestry są też do odczytu?</p>]]></description>
			<author><![CDATA[null@example.com (Fox)]]></author>
			<pubDate>Sat, 06 Jul 2024 06:22:38 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19870&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Wspólny kod dla 6502, 65C02, 65816]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19869&amp;action=new</link>
			<description><![CDATA[<p>Kto ma doświadcznie z kodem, który można zasemblować zarówno na gołe 6502, np.<br /></p><div class="codebox"><pre><code> LDA (ptr,X) ; X=0</code></pre></div><p>a przy asemblacji na 65C02 korzysta z jego instrukcji i trybów adresowania, np.<br /></p><div class="codebox"><pre><code> LDA (ptr)</code></pre></div><p>Drugi przykład:<br /></p><div class="codebox"><pre><code> STX foo ; X=0</code></pre></div><div class="codebox"><pre><code> STZ foo</code></pre></div><p>Chodzi mi o to, żeby nie pisać za każdym razem asemblerowego ifa.</p><p>Czy znacie asemblery, które mają pseudoinstrukcje lub specjalną składnię w tym celu?<br />Ewentualnie zestawy makr - jakie sami używacie lub gdzieś widzieliście.</p>]]></description>
			<author><![CDATA[null@example.com (Fox)]]></author>
			<pubDate>Fri, 05 Jul 2024 14:25:58 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19869&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Potrzebny dobry schemat kompresji grafiki do FPGA]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19852&amp;action=new</link>
			<description><![CDATA[<p>Nie jestem pewien do jakiego działu to pasuje, bo to trochę interdyscyplinarne, ale lecim...</p><p>Kiełkowała mi od kilku lat idea zrobienia alternatywnego rdzenia do VBXE, który byłby bardziej dostosowany do typowych wyzwań stawianych przez gry i wygląda na to, że projekt ma szansę na materializację przy wielkiej i nieocenionej pomocy MatGuru.<br />Pod pojęciem &quot;bardziej dostosowany do typowych wyzwań stawianych przez gry&quot; rozumiem &quot;coś mniej więcej jak zrobili w Atari Lynx&quot;. A w szczególności chcę wzorować się na lynksowym blitterze, którego principia działania nie polegają na przepuszczaniu pamięci przez operacje logiczne (tak jak działa to w klasycznym blitterze rodem z Amigi, Atari ST i w rezultacie też takim jaki został zaimplementowany w VBXE), lecz raczej... na rysowaniu sprajtów na ekranie.&nbsp; Nie jest to teraz miejsce na zgłębianie ogólnych mechanizmów działania tego blittera, zainteresowanych mogę odesłać do <a href="http://www.monlynx.de/lynx/lynx6.html">dokumentacji</a>. Mnie teraz w szczególności interesuje jeden jego aspekt, a jest nim schemat kompresji grafiki zastosowany w ustrukturyzowanych danych lynksowego sprajta.</p><p>Przygotowałem uproszczony (wyrzuciłem rzeczy, które nie są teraz istotne) schemat struktury danych sprajta:</p><p><span class="postimg"><img src="https://i.imgur.com/CZTkKFq.png" alt="https://i.imgur.com/CZTkKFq.png" /></span></p><p>Nigdzie w strukturze sprajta nie jest zadeklarowana jego szerokość, ani wysokość, lecz jest on strukturalnie podzielony na wiersze, nagłówek wiersza jest offsetem do następnego wiersza, offset = 0 oznacza koniec sprajta. Pomiędzy offsetami są dane wiersza, które są podzielone na pakiety. Pakiet składa się z 5-bitowego nagłówka - 1 bit na wyznacznik, czy dane są literalne (1), czy powtórzone (0) oraz 4 bitów długości pakietu (N). W przypadku danych literalnych zawartość pakietu to dane N pikseli, w przypadku danych spakowanych jest to jeden piksel, który ma być powtórzony N razy. Czyli dość klasyczne RLE.</p><p>Dekompresor tego jest zrealizowany sprzętowo i też tak samo &quot;sprzętowo&quot; (w FPGA) będzie musiało to być zrealizowane w VBXE. Zagadnienie z jakim się zwracam na forum to:</p><p> <span style="color: blue"><strong>Czy można wymyślić coś o lepszym stopniu kompresji, co nie byłoby trudne do implementacji w FPGA?</strong></span></p><p>Nie muszę robić wiernej kopii rozwiązania z Lynksa, bo nie zależy mi na kompatybilności 1:1, np już uprościłem sobie strukturę ustalając na sztywno liczbę bitów na piksel do 4. Nie chciałbym wychodzić poza RLE - rozwiązania słownikowe wydają się zbyt skomplikowane. No chyba że ktoś uzasadni, że jakieś &quot;LZ&quot; byłoby do zrobienia i miałoby sens.</p><p>Na takie pomysły zmian wpadałem do tej pory:<br />* Można w strukturze opisu sprajta zawrzeć liczbę bitów do kodowania długości pakietu (w Lynksie jest to zawsze 4).<br />* Można liczbę bitów długości pakietu kodować per wiersz (np na trzech bitach od 0 do 7)<br />* A może w strukturze opisu sprajta zawrzeć liczbę pakietów, co ile ustalane byłoby ile bitów ma długość pakietu? Może pozbyć się wyznacznika literal/repeated?</p><br /><p>Ogólnie ja nie wiem, czy można wymyślić coś lepszego, co dalej byłoby RLE. Pomysły i tak trzeba byłoby jakoś empiryczne zbadać na jakichś danych testowych. Zaznaczę tylko, że przeznaczeniem tej kompresji byłoby pakowanie 16-kolorowych sprajtów, które kodują przezroczystość na kolorze 0 i zwykle nie są jakoś bardzo duże. Maksymalny sensowny rozmiar, to 336 pikseli szerokości ekranu i każdy wiersz sprajta rozpatrujemy osobno jako niezależnie kompresowany ciąg.</p><p>Jest na sali jakiś spec od kompresji (wiem, że są ;p), który miałby jakieś pomysły w ramach burzy mózgów?</p>]]></description>
			<author><![CDATA[null@example.com (laoo/ng)]]></author>
			<pubDate>Tue, 25 Jun 2024 07:43:43 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19852&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Szukam Mads 1.7.9]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19799&amp;action=new</link>
			<description><![CDATA[<p>W celach sentymentalnych szukam binarki mads 1.7.9 - gadałem z Tebe, ale nie udało się nam znaleźć.<br />Czy ktoś ma może w swoich historycznych archiwach takie coś?<br />Z góry dzięki!</p>]]></description>
			<author><![CDATA[null@example.com (eru)]]></author>
			<pubDate>Mon, 20 May 2024 22:07:06 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19799&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[FujiNet Users Guide being written - Help Needed]]></title>
			<link>https://www.atari.org.pl/forum/viewtopic.php?id=19725&amp;action=new</link>
			<description><![CDATA[<p>Hello all.</p><p>I am in the middle of writing the FujiNet User&#039;s Guide.</p><p>Part 2 of the user&#039;s guide is a Programming Guide, showing how to use the FujiNet in multiple programming languages, doing the same examples in each language, as a sort of Rosetta Stone.</p><p>I know more than a few of you spend lots of time in MAD Pascal, could you take the examples I have written in the other languages, and write Pascal examples?</p><p>The repository for the manual is here:<br /><a href="https://github.com/FujiNetWIFI/fujinet-manuals/tree/main/fujinet_for_atari_users">https://github.com/FujiNetWIFI/fujinet- … tari_users</a></p><p>And the manual is being written in Docbook XML (version 5.1).</p><p>-Thom</p>]]></description>
			<author><![CDATA[null@example.com (tschak909)]]></author>
			<pubDate>Sun, 31 Mar 2024 00:51:15 +0000</pubDate>
			<guid>https://www.atari.org.pl/forum/viewtopic.php?id=19725&amp;action=new</guid>
		</item>
	</channel>
</rss>
