pondělí 22. července 1996

Detekce hardware

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.

Žádné komentáře:

Okomentovat