autor: Kamil Ševeček
Existuje již hodně programů, které na ZX-Spectru dokáží komunikovat s různými perifériemi. K pohodlné práci s I/O zařízeními jistě patří také sama detekce těchto zařízení. A abyste tedy i vy uměli správně zjistit přítomnost periferií, sepsal jsem tento článek, ve kterém bych vás chtěl naučit alespoň některé z nich.
Přítomnost Banky B (32kB Didaktiku Gama)
ld a,1
ld bc,(50000)
ld (50000),a
out (127),a
xor a
ld (50000),a
out (127),a
ld a,(50000)
ld (50000),bc
or a
Rutinka vrací obsah příznak nastaven takto: Zero znamená 48kB x NotZero 80kB.
Přítomnost ZX-Spectra 128 kB
ld a,17
ld de,(50000)
ld (50000),a
ld bc,32765
out (c),a
ld a,16
ld (50000),a
out (c),a
ld a,(50000)
ld (50000),de
or a
Rutina indikuje stav v příznaku Zero takto: Zero znamená 48kB x NotZero 128kB.
Přítomnost disketové mechaniky D40/D80
ld a,177
out (135),a
in a,(135)
cp 177
Nastavený Zero indikuje přítomnost D40/D80 x NotZero D40/D80 nepřipojena.
Obvod AY-3-8912
ld a,7
ld bc,65533
out (c),a
ld a,63
ld b,191
out (c),a
ld b,255
in a,(c)
cp 63
Zero indikuje přítomnost interface AY-3-8912 x NotZero AY-3-8912 nepřipojen.
A nyní trošku odbočím od autodetekce a povím vám o několika zajímavých skutečnostech, kterých můžete ve svých programech také využívat.
Pro efekt v demech se hodí zapínání a vypínání diody na disketové mechanice D40/D80 (pěkně do rytmu s nějakou hudbou).
Dioda na D40/D80
Zapnutí:
ld a,1
out (137),a
Vypnutí:
xor a
out (137),a
Poslední dnešní rutinkou bude docela užitečná věcička. Jedná se o zablokování funkce snapu na mechanice D40/D80. V zásadě jde vlastně o to, že M-DOSu zapíšete do bufferu, ve kterém si drží informace o připojených mechanikách, že žádnou mechaniku připojenu nemá a není tedy kam snapovat. Pokusy jsem zjistil, že některé podprogramy M-DOSu tento buffer s informacemi obnovují, ale SNAP to naštěstí nedělá. Zde to tedy je:
Zablokování SNAPu na D40/D80
xor a
ld (15872),a
Pozor! Nezapomeňte, že musíte mít nastránkovanou ROM D40/D80.
Loučím se s vámi při nějakém dalším článku v ZXM.
pondělí 22. července 1996
Přihlásit se k odběru:
Komentáře k příspěvku (Atom)
Žádné komentáře:
Okomentovat