<?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=Wiersz_polece%C5%84</id>
	<title>Wiersz poleceń - 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=Wiersz_polece%C5%84"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Wiersz_polece%C5%84&amp;action=history"/>
	<updated>2026-10-03T19:06:31Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Wiersz_polece%C5%84&amp;diff=4228&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=Wiersz_polece%C5%84&amp;diff=4228&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;Część [[DOS]]-ów dla Atari obsługiwana jest za pośrednictwem tzw. [https://pl.wikipedia.org/wiki/Wiersz_polece%C5%84 wiersza poleceń] (ang. &amp;#039;&amp;#039;command line&amp;#039;&amp;#039;). Takimi DOS-ami są np. [[OS/A Plus|OS/A+]], [[DOS XL]], [[SpartaDOS]], [[BW-DOS]], [[CP|DOS 2.5CP]], [[DOS II/D|DOS II+/D]], [[TopDOS]]. System (na ogół) oferuje przy tym funkcję pozwalającą programowi na w miarę bezbolesny odczyt parametrów podanych przez użytkownika.&lt;br /&gt;
&lt;br /&gt;
== Standard OSS ==&lt;br /&gt;
&lt;br /&gt;
Najpopularniejszy standard w tej dziedzinie jest dziełem firmy [[OSS]]. Zgodny z nim interfejs wiersza poleceń zaimplementowano w OS/A+ (czyli DOS XL), a [[ICD]] użyło go w SpartaDOS. Obsługuje go też BW-DOS - jako klon SpartaDOS.&lt;br /&gt;
&lt;br /&gt;
=== Wykrycie dostępności wiersza poleceń ===&lt;br /&gt;
&lt;br /&gt;
Nie wszystkie DOS-y zawierają funkcje odczytu wiersza poleceń, jego dostępność trzeba zatem wykryć. Standard DOS XL przewiduje, że funkcja odczytu wiersza poleceń jest dostępna, jeśli pod adresem wskazanym przez wektor DOSVEC ($0a), dodać 3, znajduje się rozkaz skoku JMP procesora [[6502]]. Rozkaz ten (w trybie absolutnym) ma kod operacyjny 76 ($4C):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
boot?  = $09&lt;br /&gt;
dosvec = $0a&lt;br /&gt;
&lt;br /&gt;
     lda boot?           ; sprawdzamy, czy DOS w ogóle jest w pamięci&lt;br /&gt;
     lsr&lt;br /&gt;
     bcc _no_command_line&lt;br /&gt;
&lt;br /&gt;
     lda dosvec+1        ; a jeśli tak, czy DOSVEC nie wskazuje ROM-u&lt;br /&gt;
     cmp #$c0&lt;br /&gt;
     bcs _no_command_line&lt;br /&gt;
&lt;br /&gt;
     ldy #$03&lt;br /&gt;
     lda (dosvec),y&lt;br /&gt;
     cmp #$4c&lt;br /&gt;
     bne _no_command_line&lt;br /&gt;
     ...                 ; tu dalsze czynności związane z wierszem poleceń&lt;br /&gt;
&lt;br /&gt;
_no_command_line&lt;br /&gt;
     ...                 ; przeskok tutaj oznacza brak dostępności wiersza poleceń&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inicjowanie funkcji odczytu wiersza poleceń ===&lt;br /&gt;
&lt;br /&gt;
Jeśli wykrycie się powiodło, ten adres - tzn. (DOSVEC)+3 - jest adresem wywołania procedury pobrania parametrów z wiersza poleceń. Ponieważ w 6502 brakuje rozkazu wywołania procedury w trybie pośrednim indeksowym, najlepiej jest ten adres przepisać do własnego programu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     lda dosvec&lt;br /&gt;
     clc&lt;br /&gt;
     adc #$03&lt;br /&gt;
     sta zcr+1&lt;br /&gt;
     lda dosvec+1&lt;br /&gt;
     adc #$00&lt;br /&gt;
     sta zcr+2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wywołanie funkcji odczytu wiersza poleceń ===&lt;br /&gt;
&lt;br /&gt;
Kodem jak powyżej inicjujemy następujący rozkaz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zcr  jsr $0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wykonanie tego JSR-a pobiera podany parametr do bufora COMFNAM znajdującego się pod adresem (DOSVEC)+33. Zawartość COMFNAM zawsze zaczyna się od specyfikacji urządzenia (np. &amp;quot;D:&amp;quot;) i zawsze zakończona jest znakiem EOL (ASCII 155), co oznacza że przekazując do programu parametr &amp;quot;DOWOL.TXT&amp;quot; w COMFNAM otrzymamy ciąg &amp;quot;D1:DOWOL.TXT&amp;quot;+EOL.&lt;br /&gt;
&lt;br /&gt;
Procedura pobierania parametru nie sprawdza automatycznie, czy wiersz polecenia już się skończył: program musi to sprawdzić przez porównanie stanu wskaźnika bufora wejściowego (BUFOFF) sprzed wywołania procedury ze stanem po jej wywołaniu. A zatem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
next ldy #$0a&lt;br /&gt;
     lda (dosvec),y&lt;br /&gt;
     pha&lt;br /&gt;
zcr  jsr $0000&lt;br /&gt;
     ldy #$0a&lt;br /&gt;
     pla&lt;br /&gt;
     cmp (dosvec),y&lt;br /&gt;
     beq _no_more_parameters&lt;br /&gt;
&lt;br /&gt;
     ldy #33&lt;br /&gt;
_cp  lda (dosvec),y&lt;br /&gt;
     sta parbuf-33,y&lt;br /&gt;
     iny&lt;br /&gt;
     cmp #$9b&lt;br /&gt;
     bne _cp&lt;br /&gt;
     ...                 ; tu robimy z parametrem pobranym do bufora &amp;quot;parbuf&amp;quot; to, co potrzebujemy&lt;br /&gt;
     jmp next&lt;br /&gt;
&lt;br /&gt;
_no_more_parameters&lt;br /&gt;
     ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;UWAGA!&amp;#039;&amp;#039;&amp;#039; Nieoczywistym może być, że nazwy urządzeń podawane jako parametry do programu rozwijane są wewnętrznie według konwencji przyjętej przez używany DOS. Tak więc parametr &amp;quot;D:DOWOL.TXT&amp;quot; w DOS XL zostanie rozwinięty do postaci &amp;quot;D1:DOWOL.TXT&amp;quot;, ale już Sparta DOS X rozwinie go jako &amp;quot;D4:DOWOL.TXT&amp;quot;, a to dlatego że &amp;quot;D:&amp;quot; to dla niego czwarty dysk (począwszy od &amp;quot;A:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== SpartaDOS X ==&lt;br /&gt;
&lt;br /&gt;
[[SpartaDOS X]], jako klon SpartaDOS, oferuje zgodny z powyżej opisanym interfejs programowy, dzięki czemu istnieje zgodność wstecz, a programy napisane dla DOS XL i SpartaDOS są w stanie interpretować wiersz poleceń również wtedy, kiedy zostały uruchomione pod tym DOS-em.&lt;br /&gt;
&lt;br /&gt;
Programy napisane specjalnie dla SpartaDOS X mają do dyspozycji oddzielny, bardziej wyrafinowany interfejs służący do interpretacji parametrów przekazanych w wierszu polecenia. Składa się nań kilkanaście procedur dostępnych za pośrednictwem [[Symbol|symboli]] i zawartych w [[Biblioteka SpartaDOS X|bibliotece SpartaDOS X]], które nie tylko pobierają z wiersza poleceń kolejne parametry, ale też są w stanie je automatycznie interpretować i przetwarzać (np. liczbę przekazaną w postaci ciągu ASCII na postać 32-bitowej reprezentacji całkowitej).&lt;br /&gt;
&lt;br /&gt;
Opis tego interfejsu znajduje się w [[Przewodnik programisty SpartaDOS X|Przewodniku programisty SpartaDOS X]], dostępnym [http://sdx.atari8.info/index.php?show=en_docs tutaj] (rozdział 5, &amp;quot;Obróbka wiersza poleceń&amp;quot;).&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>