Aslında ben geçenlerde Amiga ve C64 için mouse dönüştürücüsü yaparken tüm pinleri incelemiştim. Öncelikle 9 nolu pin C64 ve Amiga'da aslen Pot girişi bildiğiniz gibi. Çalışma mantığı diğer logic pinler gibi değil, bu pin ile 5v arasındaki direnç değerini ölçüyor.
Amiga'da doğrudan PAULA'ya, C64'de ise bir multiplexer üzerinden SID'e bağlı. Her iki sistemde de bu hatlar üzerinde internal pull-up yok. (Örneğin Amiga'da diğer logic hatların hepsinde internal 4.7K pull-up mevcut.)
Bu pot pinleri şu mantıkla çalışıyor. Bu hat üzerinde bir kondansatör var. Pot değeri ölçümleneceği zaman, bilgisayar bu pini GND seviyesine çekiyor ve ilgili kondansatör boşaltılıyor. Daha sonra pin boşa bırakılıyor. Bu noktada kondansatör ilgili pin ile 5V arasındaki direnç üzerinden dolmaya başlıyor. Bu direnç joystick içindeki potansiyometre aslında. Eğer direnç küçük ise çabuk doluyor, dolma süresine bakarak bilgisayar pot'un yerini hesaplıyor.
Şimdi bu pini digital olarak kullanmaya gelince, yazılımın nasıl yazıldığına bağlı aslında olay. Registerdean okunan değerin yüksek olmasını mı buton basılmış olarak algılıyor, yoksa düşük olmasını mı?
C64 tarafında bildiğim kadarı ile değerin yüksek olması 2 buton basılması olarak algılanıyor.
c64 wiki den bir joystick şeması:
Yani C64'te 2. ve 3. buttonlar için 5V a switchlenmeli diyebiliriz.
Ama amiga'da butonlar active low olduğundan GND'ye çekilerek çalıştırılmalı.
There have been two different ways to handle the additional buttons:
1. The classic C64GS two button joystick ("Cheetah Annihilator") uses the POTX line, which when the button is pressed is connected to VCC. For a third button, the same can be done with the POTY line. These two buttons can then be read from the paddle inputs: When the button is not pressed the POT line is floating, which equals a large resistance to VCC, and will read as $FF. When the button is pressed the POT line is connected to VCC, which equals no resistance to VCC, and will read as $00.
2. For use with the Amiga or the Chameleon docking station the above would not work, as their button inputs are low active (rather than "high active" as the POT lines are). So to be able to use the modified joystick with that, the respective lines must be pulled to GND rather than VCC.
Son olarak Amiga için ikinci butonun low'a çekilerek çalıştırılması bence de doğru ama anlamadığım nokta bu hat üzerinde Amiga içerisinde bir pull-up olmadan nasıl çalışabildiği. Belki de Paula içerisinde görmediğimiz bir pull-up vardır, yada sızıntı/kaçak akımdan dolayı bu hat eğer GND'ye bağlı değilse (button basılmamışsa) kendi kendine bir miktar yükseliyordur?
Ben bu modu yapıyor olsaydım, 9 nolu pini 4.7Kohm gibi bir direnç ile 5V'a bağlardım, ve bir switch ile GND'ye çekerdim. Garanti olsun...
EDIT: Bu arada şimdi kontrol ettim, gerçekten de PAULA'nın içinde sanırım zayıf bir pull-up direnç var. Çünkü pot pinleri 3 küsür volt seviyesinde boşta iken. Dolayısı ile direnç olmadan çalışıyor olması mantıklı, ama gene de bir pull-up ile 5V'a çekmek iyi olurdu bence...