<?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=Deep_Blue_C</id>
	<title>Deep Blue C - 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=Deep_Blue_C"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Deep_Blue_C&amp;action=history"/>
	<updated>2026-10-02T06:47:47Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Deep_Blue_C&amp;diff=712&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=Deep_Blue_C&amp;diff=712&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;== Ograniczenia ==&lt;br /&gt;
&lt;br /&gt;
Jeden z nielicznych kompilatorów języka C na [[Atari 8-bit|małe Atari]]. Twórcą kompilatora jest John H. Palevich. Składnia dopuszczalna przez Deep Blue C zbliżona jest do standardu ANSI C, z istotnymi ograniczeniami. Niedostępne są:&lt;br /&gt;
&lt;br /&gt;
* struktury&lt;br /&gt;
* unie&lt;br /&gt;
* tablice wielowymiarowe&lt;br /&gt;
* liczby zmiennoprzecinkowe&lt;br /&gt;
* funkcje zwracające wartości typu innego niż &amp;#039;&amp;#039;int&amp;#039;&amp;#039;&lt;br /&gt;
* operator &amp;#039;&amp;#039;sizeof&amp;#039;&amp;#039;&lt;br /&gt;
* rzutowanie typów&lt;br /&gt;
&lt;br /&gt;
Inne niestandardowe właściwości Deep Blue C:&lt;br /&gt;
&lt;br /&gt;
* Ostatni człon (&amp;#039;&amp;#039;case&amp;#039;&amp;#039; lub &amp;#039;&amp;#039;default&amp;#039;&amp;#039;) klauzuli &amp;#039;&amp;#039;switch&amp;#039;&amp;#039; musi być zakończony jedną z instrukcji: &amp;#039;&amp;#039;break&amp;#039;&amp;#039;, &amp;#039;&amp;#039;continue&amp;#039;&amp;#039; lub &amp;#039;&amp;#039;return&amp;#039;&amp;#039;.&lt;br /&gt;
* Typ &amp;#039;&amp;#039;char&amp;#039;&amp;#039; jest zawsze bez znaku.&lt;br /&gt;
* Łańcuchy znakowe nie mogą być dzielone.&lt;br /&gt;
* Długość linii kodu źródłowego nie może przekraczać 79 znaków.&lt;br /&gt;
* Funkcja nie może mieć więcej niż 126 argumentów.&lt;br /&gt;
* Niedostępne są nawiasy klamrowe { i }, w zamian należy użyć sekwencji $( i $).&lt;br /&gt;
&lt;br /&gt;
== Możliwości ==&lt;br /&gt;
&lt;br /&gt;
Środowisko Deep Blue C (DBC) zapewnia dostęp do następujących konstrukcji programowych [http://www.atariarchives.org/APX/showinfo.php?cat=20166 [1]]:&lt;br /&gt;
&lt;br /&gt;
* Typy podstawowe: &amp;#039;&amp;#039;char&amp;#039;&amp;#039;, &amp;#039;&amp;#039;int&amp;#039;&amp;#039;, typ wskaźnikowy (&amp;#039;&amp;#039;pointer&amp;#039;&amp;#039;)&lt;br /&gt;
* Tablice jednowymiarowe&lt;br /&gt;
* Operatory jednoargumentowe: + - * &amp;amp; ++ -- ! $- (tylda)&lt;br /&gt;
* Operatory dwuargumentowe: + - * / % | ^ &amp;amp; == != &amp;lt; &amp;lt;= &amp;gt;= &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt;op&amp;gt;= &amp;amp;&amp;amp; || ?: ,&lt;br /&gt;
* Słowa kluczowe: &amp;#039;&amp;#039;if, else, while, break, continue, return, for, do, switch, case, default&amp;#039;&amp;#039;&lt;br /&gt;
* Dyrektywy kompilatora: #&amp;#039;&amp;#039;define&amp;#039;&amp;#039;, #&amp;#039;&amp;#039;include&amp;#039;&amp;#039;&lt;br /&gt;
* Linker (konsolidator) z funkcją relokowania&lt;br /&gt;
* Stałe: szesnastkowe, ósemkowe, \ (backslash)&lt;br /&gt;
&lt;br /&gt;
== Biblioteka standardowa ==&lt;br /&gt;
&lt;br /&gt;
Prawdziwie mocną stroną DBC są dołączone do środowiska biblioteki programistyczne. Zapewniają one niemal ten sam zestaw funkcji jak w [[Atari BASIC]], oprócz zmiennych typu rzeczywistego. Poniżej przedstawiono podstawowe biblioteki dostępne podczas tworzenia programu [http://www.atariarchives.org/APX/showinfo.php?cat=20166 [2]]:&lt;br /&gt;
&lt;br /&gt;
* AIO - biblioteka podstawowych funkcji wejścia/wyjścia. Praktycznie wymagana w każdym tworzonym programie&lt;br /&gt;
* DBC - biblioteka uruchomieniowa&lt;br /&gt;
* GRAPHICS - biblioteka graficzna. Tryby tekstowe i graficzne Atari oraz funkcje graficzne wzorowane na Atari Basic&lt;br /&gt;
* PMG - biblioteka grafiki [[Player/Missile Graphics|grafiki Gracz-Pocisk]] (Player Missile Graphics)&lt;br /&gt;
* PRINTF - biblioteka obsługi konsoli&lt;br /&gt;
&lt;br /&gt;
Użyteczny jest kod źródłowy ww. bibliotek znajdujący się razem z innymi plikami DBC.&lt;br /&gt;
&lt;br /&gt;
== Biblioteka funkcji matematycznych ==&lt;br /&gt;
&lt;br /&gt;
Standardowy język C określa typ podstawowy &amp;#039;&amp;#039;float&amp;#039;&amp;#039; oraz zestaw funkcji dla obliczeń numerycznych. Próbą przybliżenia możliwości DBC do standardu jest biblioteka Mathlib autorstwa Franka Parisa. Zawiera ona się w dwóch plikach:&lt;br /&gt;
&lt;br /&gt;
* MATHLIB.C - biblioteka funkcji podstawowych na liczbach zmiennoprzecinkowych, wykorzystująca [[Pakiet matematyczny|pakiet matematyczny]] w ROM Atari&lt;br /&gt;
* TRIG.C - biblioteka funkcji trygonometrycznych&lt;br /&gt;
&lt;br /&gt;
== Szybkość działania ==&lt;br /&gt;
&lt;br /&gt;
Kompilator DBC nie tworzy kodu maszynowego dla procesora 6502. Wynikiem jego działania jest kod pośredni (C-code), który jest następnie wykonywany przez interpretator kodu pośredniego [http://www.atariarchives.org/APX/showinfo.php?cat=20166 [3]]. Według [http://www.faqs.org/faqs/atari-8-bit/faq/ Atari 8-bit Faq] Deep Blue C kompiluje do kodu Intel 8080, który jest następnie wykonywany przez maszynę wirtualną/interpretator procesora 8080. Jest to technika znana ze współczesnej platformy JAVA i jest też głównym powodem niewielkiej szybkości działania kodu wykonywalnego tworzonego za pomocą DBC.&lt;br /&gt;
&lt;br /&gt;
== Przykładowy program ==&lt;br /&gt;
&lt;br /&gt;
Zamieszczony poniżej program ma za zadanie uprzejmie przywitać się ze światem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; main()&lt;br /&gt;
 $(&lt;br /&gt;
   printf(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
 $)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Charakterystyczny jest brak dyrektywy preprocesora &amp;quot;#include&amp;quot;. W DBC zastosowano odmienne podejście do kwestii linkowania z biblioteką - rozwiązywaniem nazw funkcji zajmuje się linker.&lt;br /&gt;
Powyższy kod źródłowy należy przetworzyć kompilatorem CC.COM w wersję C-code. Dla uzyskania wersji wykonywalnej konieczne jest jeszcze połączenie/zlinkowanie C-code z bibliotekami i maszyną wirtualną DBC. Służy do tego linker LINK.COM, któremu przekazujemy do przetworzenia następujący plik o nazwie HELLO.LNK:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; HELLO&lt;br /&gt;
 AIO&lt;br /&gt;
 PRINTF&lt;br /&gt;
 DBC.OBJ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wynikiem jest plik binarny HELLO.COM gotowy do uruchomienia pod DOS-em (sprawdzone dla DOS 2.5 i MyDOS 4.53).&lt;br /&gt;
&lt;br /&gt;
== Wersje rozwojowe ==&lt;br /&gt;
&lt;br /&gt;
Środowisko DBC doczekało się kolejnych wersji, z których każda zapewnia większą funkcjonalność  stosunku do poprzedniej. Są to:&lt;br /&gt;
&lt;br /&gt;
* [[ACE C]] - podobne ograniczenia jak w DBC oraz korzystanie z kodu pośredniego dla interpretatora &amp;quot;C-code&amp;quot;. Niektóre biblioteki zostały zakodowane ponownie przy użyciu języka assemblera. Ciekawym dodatkiem jest kompilator optymalizujący FAST.COM, który według autora ma zwiększać szybkość działania programu wynikowego o 20-30%.&lt;br /&gt;
* [[CC8]] - W porównaniu do DBC i ACE C jest to środowisko znacznie rozbudowane. Dostępne są m.in. typy zmiennoprzecinkowe, tablice wielowymiarowe, struktury, unie i typy wyliczeniowe. Rozszerzono zbiór poleceń preprocesora. Funkcje mogą zwracać już inne typy poza standardowym &amp;quot;int&amp;quot;, tj. również &amp;quot;char&amp;quot; i &amp;quot;pointer&amp;quot;. Dostępna jest biblioteka rozszerzająca CC 8 o obsługę dynamicznego zarządzania pamięcią - [[ALMLIB]], autorstwa Marka Millera.&lt;br /&gt;
&lt;br /&gt;
== Dostępność ==&lt;br /&gt;
&lt;br /&gt;
Podstawowy pakiet DBC jest do pobrania na stronie [http://www.atariarchives.org Atari Archives]. Nie jest określony jawnie status tego pakietu, ale sądząc po sposobie działania ludzi z Atari Archives powinien mieć status publiczny. Na powyższej stronie udostępniono również kod źródłowy całego środowiska programistycznego.&lt;br /&gt;
Pakiet funkcji matematycznych Mathlib jest niedostępny publicznie, powodem jest brak kontaktu z autorem tej biblioteki, Frankiem Parisem [http://www.atariarchives.org/APX/showinfo.php?cat=20231 [4]].&lt;br /&gt;
&lt;br /&gt;
== Materiały źródłowe ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.atariarchives.org/APX/showinfo.php?cat=20166 Deep Blue C - AtariArchives.org]&lt;br /&gt;
* [[Języki Atari XL/XE cz. 2|W. Zientara, &amp;quot;Języki programowania Atari cz.2&amp;quot;, SOETO, Warszawa, 1989]]&lt;br /&gt;
* [http://www.atariarchives.org/APX/showinfo.php?cat=20231 Mathlib for Deep Blue C - AtariArchives.org]&lt;br /&gt;
* [http://www.faqs.org/faqs/atari-8-bit/faq/ Atari 8-bit Faq]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Języki programowania]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>