| Author |
Message
|
Gizmoń Poziom 21

Joined: 06 Jun 2007 Posts: 1167 Location: Kiełczów k. Wrocławia
|
#1
19 Dec 2007 17:33 Commodore, control port, pytanie nie tylko dla posiadaczy! |
|
|
|
Muszę zrobić "sterownik" komputera Commodore. Np. joystick, schemat na rysunku:
Tylko jest jeden problem (po stronie technicznej): Które nóżki gniazda control port 1 i 2 zwierać, by komputer odbierał jednoznaczne informacje? Łącząc nóżki JOYA0...JOYA3 oraz Button A/LP do masy (GND) na ekranie czasem pojawiają się przypadkowe znaki. To tylko dotyczy portu Control Port 1, bo na drugi komputer wcale nie reaguje (mam dwa komputerki, więc uszkodzenie jako przyczyna odpada).
Zdobyłem schematy komputera na których widać gniazda control port oraz miejsce, do którego są podłączone. Tutaj ten schemat:
http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/prg-cpu-left.gif
Myślę, że ktoś obeznany z techniką cyfrową odpowie, co potraktować jako nóżkę wspólną (albo jak inaczej to zrobić) dla czterech włączników - cztery kierunki ruchu dla joysticka oraz dodatkowo przycisku A/LP.
Jest jeszcze jedno pytanie: wiem, że POT AX,AY,BX,BY to potencjometry 100kΩ (po 1 na gniazdo control port). Układ SID zawiera dwa przetworniki A/C, które są połączone z potencjometrami. I teraz tak: suwak potencjometru podłączam do masy, a końce ścieżek do AX, AY?
I w jaki sposób programowo rozpoznać położenie potencjometru?
W załączniku opis z Instrukcji Obsługi układu SID oraz gniazda.
| Description: |
|
 Download |
| Filename: |
dokument0005.pdf |
| Contents: |
|
| Filesize: |
124.04 KB |
| Punkty: |
0.00 |
|
|
| Back to top |
|
 |
Google

|
#
19 Dec 2007 17:33 |
|
|
|
|
|
| Back to top |
|
 |
electro_Nick Poziom 19

Joined: 26 Mar 2003 Posts: 676 Location: Kwidzyn/Roros
|
#2
19 Dec 2007 19:39 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Z tego co wiem to te sygnały zwiera się z masą (GND), a co do analogowych wejść to nie podpowiem, pewnie sid mierzy napięcie w zakresie 0-5V i potencjometr trzeba tak właśnie podłączyć. Korzystałeś z tego: http://www.hardwarebook.info/Amiga_Mouse/Joy
|
|
| Back to top |
|
 |
Gizmoń Poziom 21

Joined: 06 Jun 2007 Posts: 1167 Location: Kiełczów k. Wrocławia
|
#3
20 Dec 2007 17:12 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
TO widziałem, ale niepomogło. Schemat joysticka by się przydał...
Piszesz, że zwierając do masy osiągnę jakiś efekt. Tak robię, i nic!
Niezbyt mi się podoba podłączenie gniazda. Jedno tylko do kolumn, a drugie tylko do wierszy klawiatury. Zwierając wiersz do masy nic nie osiągam, zwierając piny sąsiednich gniazd Control Port (np. JOYA0 do JOYB3) mam to, o co chodzi. Ale zajmuję w ten sposób oba gniazda :(
|
|
| Back to top |
|
 |
electro_Nick Poziom 19

Joined: 26 Mar 2003 Posts: 676 Location: Kwidzyn/Roros
|
#4
20 Dec 2007 18:02 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Wedle schematu to prawidłowo ze pojawiają sie znaki, masz jakiś program do sprawdzania stanu tych linii czy jak? a potencjometr podobno ma być 470k
|
|
| Back to top |
|
 |
Google

|
#
20 Dec 2007 18:02 |
|
|
|
|
|
| Back to top |
|
 |
Gizmoń Poziom 21

Joined: 06 Jun 2007 Posts: 1167 Location: Kiełczów k. Wrocławia
|
#5
21 Dec 2007 19:57 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Rzeczywiście (czytałem opis), widzę, że jeśli nacisnę jeden przycisk 5 razy, to pojawienie się znaków & brak A L brak jest objawem działania poprawnego! No to już widzę kontrolę np. jakiejś gry za pomocą joysticka, gdy dobry kierunek ruchu postaci uzyska się po 4 ruchach drążkiem, a np. strzał nastąpi po dziesięciokrotnym wciśnięciu guzika! I czemu działa tylko control port 1?
|
|
| Back to top |
|
 |
electro_Nick Poziom 19

Joined: 26 Mar 2003 Posts: 676 Location: Kwidzyn/Roros
|
#6
21 Dec 2007 20:04 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Nadal nie napisałeś czego używasz do sprawdzania stanu tych linii, jak widzisz na schemacie te linie są podłączone bezpośrednio do klawiatury, po pierwszym naciśnięciu już powinno dać na ekranie jakiś znak... W sumie wiecej pomóc Ci nie mogę nie mając sprawnego commodorka w domu...
|
|
| Back to top |
|
 |
PabloL Poziom 3

Joined: 20 Mar 2005 Posts: 6
|
#7
21 Dec 2007 21:43 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Do odczytu portów służą odpowiednie rejestry w układzie CIA1. Adresy tych rejestrów (dziesiętnie) to 56320 i 56321. Z tego co pamiętam znaki pokazywane są na ekranie tylko dla portu 1.
Do pomocy mapa pamięci C64, tu jest wszystko opisane: http://sta.c64.org/cbm64mem.html
|
|
| Back to top |
|
 |
Google

|
#
21 Dec 2007 21:43 |
|
|
|
|
|
| Back to top |
|
 |
Gizmoń Poziom 21

Joined: 06 Jun 2007 Posts: 1167 Location: Kiełczów k. Wrocławia
|
#8
22 Dec 2007 11:42 Re: Commodore, control port, pytanie nie tylko dla posiadacz |
|
|
|
Wielkie dzięki PabloL!!! Oba porty działają (prawie)!
Najpierw napisałem coś takiego:
10 GET A$: IF A$="" THEN 10
20 PRINT A$: GOTO 10
I zwierając do masy te piny było to, co opisałem w pierwszym poście.
Przed chwilą napisałem to:
10 PRINT CHR$ (147)
20 PRINT PEEK (56320)
30 PRINT PEEK (56321)
40 GOTO 10
I wartości się zmieniały dla obydwu portów i wszystkich przycisków - tak jak być powinno.
Wcześniej podłączyłem potencjometr, i program
10 PRINT CHR$ (147) [Zmiany w programie:]
20 PRINT PEEK(54297) [control port 2: 54299]
30 PRINT PEEK(54298) [control port 2: 54300]
40 GOTO 10
Wyraźnie pokazywał zmianę wartości od 0 do 100 (gdy wartości jednego rejestru rosną, drugiego maleją), co później wykorzystałem do sterowania częstotliwością dźwięku. Ale w porcie control port 2 już było inaczej. Zmieniłem program, i mimo kręcenia potencjometrem wartości obu rejestrów były stałe i równe 0 . Zobaczę jeszcze na drugim komputerze, czy jest tak samo.
Wesołych Świąt!
|
|
| Back to top |
|
 |