Autor ::Roman Bórik Poslaná :: 24.07.2013 20:04:01 Predmet ::Re: Detekce připojené disketové jednotky
V hre Plotting (viď. zdrojáky) mám po spustení hry použitý tento test:
; Test, či je pripojená PMD 32 na GPIO-0.
; Pokiaľ je pripojená PMD 32 na GPIO-0, tak sa Joystick bude testovať na GPIO-1.
; Ak PMD 32 pripojená nie je, Joystick sa bude testovať štandardne na GPIO-0.
CheckPort: MVI A,0C2h ; inicializuj GPIO 8255
OUT Pio55Ctrl ; SK A: MOD 2, A-IN/OUT, SK B: MOD 0, B-IN, C03-OUT
MVI A,09h ; 1->C4 povolenie prerušovacieho signálu INTRA
OUT Pio55Ctrl ; pre vstup na porte A
MVI A,0Ch ; 0->C6 zakázanie prerušovacieho signálu INTRA
OUT Pio55Ctrl ; pre výstup porte A
LXI D,4000 ; timeout asi 100 ms
CheckPort2: IN Pio55C ; zisti stav INTRA
ANI 8
JZ CheckPort3 ; ak je INTRA=0, skoč dopredu
IN Pio55A ; precitaj prijatý byte
CPI 0AAh ; je to prezentačný byte 0AAh od PMD 32?
JNZ CheckPort4 ; nie, skoč dopredu
MVI A,1 ; PMD 32 je pripojená,
MVI B,Pio55B ; tak pre Joystick použijeme GPIO-1
JMP CheckPort5
CheckPort3: DCX D ; zniz počítadlo timeoutu
MOV A,D
ORA E
JNZ CheckPort2 ; a ak nie je nulové, vráť sa do slučky
CheckPort4: MVI A,92h ; PMD 32 zrejme nie je pripojená,
OUT Pio55Ctrl ; tak pre Joystick použijeme GPIO-0
MVI A,10h
MVI B,Pio55A
CheckPort5: OUT Pio55C
MOV A,B
STA TestJoyPort+1 ; zapíš číslo portu Joysticku
Správa
Autor ::Libor L.A. Poslaná :: 24.07.2013 20:58:01 Predmet ::Re: Detekce připojené disketové jednotky
Super, díky moc. To je asi přesně to, co jsem potřeboval. Zítra se na to mrknu.