Forum

Z PMD 85 Infoserver

:: späť na zoznam tém ::
Správa
Autor  Autor ::  Libor L.A.
Poslaná  Poslaná ::  24.07.2013 18:40:28
Predmet  Predmet ::  Detekce připojené disketové jednotky
Nazdar kluci, potřeboval bych poradit.

U připravovaných Lemmings bude možnost ovládání z klávesnice nebo některým z joysticků. A protože PMD-32 (je-li připojena) se připojuje do stejných portů, potřeboval bych radu. Tedy několik rad:

1) Může být PMD-32 připojena na oba porty, nebo striktně jen na GPIO0, tak jak to máte na stránkách?
2) Jak nejlépe nenápadně detekovat připojenou PMD-32 nebo její ovladač, abych zbytečně "neroztáčel" disk a test proběhl bleskově? Pokud zjistím, že je PMD-32 připojena, pak totiž nepovolím na tomto portu joystick. Hlavně to chci testovat proto, abych přepisem řídícího portu 8255-ky nezabránil pozdějšímu dohrávání sektorů prostřednictvím PMD-32.
3) S tím souvisí další věc: nastavuje si ovladač PMD-32 řídicí port 8255-ky? A pokud ano, co udělá s režimem GPIO1?
 
Správa
Autor  Autor ::  Libor L.A.
Poslaná  Poslaná ::  24.07.2013 18:54:34
Predmet  Predmet ::  Re: Detekce připojené disketové jednotky
Na dotaz ad 1) jsem našel odpověď v historii tohoto WEBu (že PMD-32 přehodit nelze). Ale ty dva ostatní body mi zůstávají záhadou.
 
Správa
Autor  Autor ::  Roman Bórik
Poslaná  Poslaná ::  24.07.2013 20:04:01
Predmet  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  Autor ::  Libor L.A.
Poslaná  Poslaná ::  24.07.2013 20:58:01
Predmet  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.
:: späť na zoznam tém ::