<?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=Programowanie%3A_Odczyt_znaku_z_klawiatury</id>
	<title>Programowanie: Odczyt znaku z klawiatury - 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=Programowanie%3A_Odczyt_znaku_z_klawiatury"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Programowanie:_Odczyt_znaku_z_klawiatury&amp;action=history"/>
	<updated>2026-10-04T01:29:06Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Programowanie:_Odczyt_znaku_z_klawiatury&amp;diff=3296&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=Programowanie:_Odczyt_znaku_z_klawiatury&amp;diff=3296&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;Procedura czeka, aż użytkownik naciśnie jakiś klawisz na klawiaturze, po czym zwraca odpowiedni kod [[ATASCII]] w akumulatorze.&lt;br /&gt;
&lt;br /&gt;
== Wersja elegancka, ale długa ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kname .byte &amp;quot;K:&amp;quot;,$9B&lt;br /&gt;
&lt;br /&gt;
cioexe sta iccmd,x&lt;br /&gt;
       jmp jciomain&lt;br /&gt;
&lt;br /&gt;
getkey jsr lookup&lt;br /&gt;
       bmi error&lt;br /&gt;
&lt;br /&gt;
       lda #&amp;amp;lt;kname&lt;br /&gt;
       sta icbufa,x&lt;br /&gt;
       lda #&amp;amp;gt;kname&lt;br /&gt;
       sta icbufa+1,x&lt;br /&gt;
       lda #$04&lt;br /&gt;
       sta icax1,x&lt;br /&gt;
       lda #$00&lt;br /&gt;
       sta icax2,x&lt;br /&gt;
       lda #$03&lt;br /&gt;
       jsr cioexe&lt;br /&gt;
       bmi error            ;w dobrze zdebugowanym programie raczej nie wystąpi tu błąd&lt;br /&gt;
&lt;br /&gt;
       lda #$00&lt;br /&gt;
       sta icbufl,x&lt;br /&gt;
       sta icbufl+1,x&lt;br /&gt;
       lda #$07&lt;br /&gt;
       jsr cioexe&lt;br /&gt;
       bmi error             ;np. naciśnięto Break&lt;br /&gt;
&lt;br /&gt;
       pha&lt;br /&gt;
       lda #$0c&lt;br /&gt;
       jsr cioexe&lt;br /&gt;
       pla&lt;br /&gt;
       rts&lt;br /&gt;
&lt;br /&gt;
error  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Procedura &amp;#039;&amp;#039;&amp;#039;lookup&amp;#039;&amp;#039;&amp;#039; jest do znalezienia [[Programowanie: Jak wyszukać pierwszy wolny IOCB|tutaj]]. Reszta to etykiety systemowe.&lt;br /&gt;
&lt;br /&gt;
Zaletą takiego sposobu odczytywania danych z klawiatury jest zgodność z każdym rodzajem klawiatury, byleby tylko był zainstalowany w systemie właściwy dlań sterownik &amp;quot;K:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Wersja krótka, ale nieelegancka ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
getkey lda $e425&lt;br /&gt;
       pha&lt;br /&gt;
       lda $e424&lt;br /&gt;
       pha&lt;br /&gt;
       rts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zaletą tego sposobu jest to, że procedura zajmuje tylko 9 bajtów; powinna też zawsze działać, gdyż korzysta z umieszczonego w ROM-ie wektora wskazującego procedurę odczytu bajtu z klawiatury, z którego to wektora korzysta też [[CIO]]. Niemniej jest to &amp;quot;półlegalna&amp;quot; metoda wywoływania systemu operacyjnego: te wektory nie są przeznaczone dla programów użytkownika, a to, że w każdej wersji OS-u są w tym samym miejscu wynika po prostu z faktu, że nie ma szczególnego powodu przenosić ich gdzie indziej.&lt;br /&gt;
&lt;br /&gt;
Wadą tej metody jest to, że omija ona tablicę urządzeń HATABS - a więc ewentualny handler zainstalowany przez użytkownika nie zostanie wywołany.&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>