<?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=DracOS</id>
	<title>DracOS - 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=DracOS"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=DracOS&amp;action=history"/>
	<updated>2026-10-03T00:45:29Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=DracOS&amp;diff=755&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=DracOS&amp;diff=755&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;[[OS|Systemy operacyjne]]:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8-bit:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Altirra OS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Atari OS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[CP/M]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DracOS&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[OS plus plus|OS++]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[QMEG OS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Turbo-816 OS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[XL OS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;16/32-bit:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[TOS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[MultiTOS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[FreeMiNT]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[MagiC]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Minix]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Odmiana [[XL OS]] przygotowana dla komputerów [[XL]] i [[XE]] wyposażonych w [[Procesor|procesor]][[65C816]] oraz (opcjonalnie) dodatkową [[Pamięć liniowa|pamięć liniową]]. Za podstawę służył kod źródłowy XL OS wersji BB 1.02, wprowadzono także większość modyfikacji z wersji BB 2.03 (późniejszej), oraz sporo własnych rozszerzeń, m.in. obsługę przerwań trybu natywnego, inicjowanie i alokację pamięci w obszarze $010000-$FFFFFF, szybkie procedury SIO, bootmenu itp. Brak jest za to [[SELF TEST]]-u oraz handlera magnetofonu - usunięta jest nawet możliwość bootowania z magnetofonu, a klawisz START ma zmienioną funkcję. Ich miejsce zajęły procedury systemowe.&lt;br /&gt;
Autorem tej wersji XL OS jest [[KMK]]. Istnieje - ciągle w dość wczesnym stadium rozwoju - dedykowany temu systemowi interpreter [[BASIC]]-a, nazywający się [[MultiBASIC]].&lt;br /&gt;
&lt;br /&gt;
== Rozszerzenie SIO ==&lt;br /&gt;
&lt;br /&gt;
System zawiera rozszerzenie SIO pozwalające na transfery danych bezpośrednio do i z dodatkowej pamięci adresowalnej liniowo (tj. znajdującej się pod adresami wyższymi niż $FFFF) oraz 32-bitowe adresowanie sektorów.&lt;br /&gt;
&lt;br /&gt;
=== Blok DCB ===&lt;br /&gt;
&lt;br /&gt;
Blok DCB w tej wersji systemu jest rozszerzony do 16 bajtów i wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Adres&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Etykieta&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Wielkość&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Znaczenie&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| $0300&lt;br /&gt;
| DDEVIC&lt;br /&gt;
| Bajt&lt;br /&gt;
| Identyfikator urządzenia (zob. niżej).&lt;br /&gt;
|-&lt;br /&gt;
| $0301&lt;br /&gt;
| DUNIT&lt;br /&gt;
| Bajt&lt;br /&gt;
| Numer urządzenia; w przypadku stacji dysków numer napędu.&lt;br /&gt;
|-&lt;br /&gt;
| $0302&lt;br /&gt;
| DCMND&lt;br /&gt;
| Bajt&lt;br /&gt;
| Komenda dla urządzenia.&lt;br /&gt;
|-&lt;br /&gt;
| $0303&lt;br /&gt;
| DSTATS&lt;br /&gt;
| Bajt&lt;br /&gt;
| Przed wywołaniem SIO należy ustawić tu rodzaj operacji ($40 odczyt, $80 zapis). Po powrocie z systemu znajduje się tu status operacji ([[Kody błędów|kod błędu]]).&lt;br /&gt;
|-&lt;br /&gt;
| $0304&lt;br /&gt;
| DBUFA&lt;br /&gt;
| Dwa bajty&lt;br /&gt;
| Adres bufora.&lt;br /&gt;
|-&lt;br /&gt;
| $0306&lt;br /&gt;
| DTIMLO&lt;br /&gt;
| Bajt&lt;br /&gt;
| Czas oczekiwania - w sekundach - na pozytywną odpowiedź urządzenia.&lt;br /&gt;
|-&lt;br /&gt;
| $0307&lt;br /&gt;
| DUNUSE&lt;br /&gt;
| Bajt&lt;br /&gt;
| Bajt nieużywany, zarezerwowany do przyszłych zastosowań.&lt;br /&gt;
|-&lt;br /&gt;
| $0308&lt;br /&gt;
| DBYT&lt;br /&gt;
| Dwa bajty&lt;br /&gt;
| Wielkość bufora; musi być zgodna z wielkością transmitowanego bloku danych.&lt;br /&gt;
|-&lt;br /&gt;
| $030A&lt;br /&gt;
| DAUX1&lt;br /&gt;
| Bajt&lt;br /&gt;
| Pierwszy bajt pomocniczy. W operacjach dyskowych młodszy bajt numeru sektora.&lt;br /&gt;
|-&lt;br /&gt;
| $030B&lt;br /&gt;
| DAUX2&lt;br /&gt;
| Bajt&lt;br /&gt;
| Drugi bajt pomocniczy. W operacjach dyskowych starszy bajt numeru sektora.&lt;br /&gt;
|-&lt;br /&gt;
| $030C&lt;br /&gt;
| DAUXA&lt;br /&gt;
| Bajt&lt;br /&gt;
| Trzeci bajt pomocniczy. Młodszy bajt starszego słowa 32-bitowego numeru sektora.&lt;br /&gt;
|-&lt;br /&gt;
| $030D&lt;br /&gt;
| DAUXB&lt;br /&gt;
| Bajt&lt;br /&gt;
| Czwarty bajt pomocniczy. Starszy bajt starszego słowa 32-bitowego numeru sektora.&lt;br /&gt;
|-&lt;br /&gt;
| $030E&lt;br /&gt;
| DBFX1&lt;br /&gt;
| Bajt&lt;br /&gt;
| Najstarszy bajt adresu bufora.&lt;br /&gt;
|-&lt;br /&gt;
| $030F&lt;br /&gt;
| DBFX2&lt;br /&gt;
| Bajt&lt;br /&gt;
| Bajt zarezerwowany.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sposób użycia ===&lt;br /&gt;
&lt;br /&gt;
Dla utrzymania zgodności z dotychczasowym oprogramowaniem, a już zwłaszcza z dotychczasowymi sterownikami urządzeń podłączanych do szyny równoległej, wpisanie pod $000304/5/E 24-bitowego adresu nie da pożądanego wyniku; jeśliby bowiem urządzenie brało pod uwagę tylko 16 najmłodszych bitów adresu ignorując najstarszy bajt wpisany pod $00030E, wtedy - przy odczycie - dane zostałyby umieszczone nie tam, gdzie trzeba. Musi więc istnieć mechanizm, który zapobiega tego typu nieporozumieniom.&lt;br /&gt;
&lt;br /&gt;
W tym celu SIO definiuje trzy nowe urządzenia wirtualne, o kodach jak następuje:&lt;br /&gt;
&lt;br /&gt;
* $B1 (= $31 + $80) - stacja dysków&lt;br /&gt;
* $C0 (= $40 + $80) - drukarka&lt;br /&gt;
* $D0 (= $50 + $80) - RS-232C&lt;br /&gt;
&lt;br /&gt;
Wywołanie urządzenia z takim kodem w DDEVIC powiadamia sterownik SIO, że adres bufora w DCB jest 24-bitowy i że najstarszy bajt adresu jest pod $00030E (w przeciwnym wypadku SIO zakłada, że najstarszy bajt adresu to 0); oraz że numer sektora jest 32-bitowy i jest umieszczony w DAUX1/DAUX2/DAUXA/DAUXB (&amp;#039;&amp;#039;&amp;#039;UWAGA: w przypadku szeregowych stacji dysków, [[SIO2IDE]], [[SIO2PC]] itp. dwa najstarsze bajty tego numeru są ignorowane&amp;#039;&amp;#039;&amp;#039;, ale powinny być wyzerowane dla kompatybilności). Poza tym działanie urządzeń wirtualnych jest identyczne, jak tradycyjnych (odpowiednio $31, $40 i $50), a kod urządzenia jest przed wysłaniem na port szeregowy przekładany na kod rzeczywisty.&lt;br /&gt;
&lt;br /&gt;
Przyjmując komendę do wykonania SIO w żaden sposób nie sprawdza, czy dodatkowa pamięć w ogóle istnieje - zakłada się, że program sam stwierdzi jej istnienie (choćby za pomocą funkcji alokacji pamięci) przed próbą odczytu do niej danych.&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [http://drac030.krap.pl/ Szczegółowe informacje]&lt;br /&gt;
* [[SIO]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Menu Główne]]&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>