Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Dlaczego Port 2 a nie Port 1?  (Przeczytany 9161 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Mikra_Lbn

  • Level 3
  • ***
  • Wiadomości: 220
    • http://www.lubus.info
Dlaczego Port 2 a nie Port 1?
« dnia: 01 Maja 2013, 16:48 »
Mam takie (może dziwne) pytanie: co było przyczyną wybrania Portu 2 jako tego głównego? W pierwszych grach dżojstik należało podłączyć do Portu 1, potem twórcom coś się odmieniło.\"\"



Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #1 dnia: 01 Maja 2013, 17:05 »
"wewnetrznie" te porty maja odwrotne oznaczenia i pewnie stad ten balagan potem. istotnie port etykietowany jako 2 nie interferuje z matryca klawiatury stad jest uzywany jako glowny (jak masz joy wpiety do porty etykietowane 1 to ruszanie nim "wciska" ctrl <- 1 2 spacje)
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #2 dnia: 01 Maja 2013, 20:55 »
tak, port 1 służy również jako odczyt klawiatury
w dużym skrócie: odzczytywanie klawiszy na c64 odbywa się przez porty joyów, i teraz ciekawostka klawiszy jest dokładnie 64 (tak jak commodore 64).
Porty są dwa - 8bitowe $dc00 i $dc01, 8*8 to 64 i odczyt wyglada w ten sposób, że w jednym porcie ($dc00) wybieramy jedną linię 8-mio klawiszową, a odczytujemy klawisz (jeden z ośmiu na tej linii) w porcie $dc01.
Za to numercja tych portów to:
 $dc00 to port numer 2! a $dc01 to 1.
ale... wystarczy "tylko" w kodzie zmienić odwołania do portu $dc01 na $dc00 (lub odwrotnie) i  mamy bezproblemową zamianę joy-ów.
I trochę , mam tu pretensję do wszystkich robiących gry, że nie dodawali tej opcji - bo wystarczyło by podmieniać te odwołania na początku gry i nie trzeba by było zamieniać joysticków  - ile to układów CIA byłoby uratowanych.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #3 dnia: 01 Maja 2013, 21:58 »
Skull:
ile to układów CIA byłoby uratowanych

tia... ja sobie dzis na szybko sprawdzalem mojego c64c pod katem poprawnosci dzialania 4joy adaptera i sie okazuje ze klawiatura wprawdzie dziala ale userport niecalkiem oraz joystick port 1 calkiem martwy... surprisingly JP2 calkiem okay...
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #4 dnia: 01 Maja 2013, 22:19 »
@Raf możesz mi powiedzieć co ma wspólnego joy z UP? A to że działa klawiatura a nie joy 1 to już jakaś kompletna pomyłka.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline StaryMarabut

  • Level 6
  • ******
  • Wiadomości: 1794
  • Robię wszystkim dobrze *za pół ceny.
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #5 dnia: 01 Maja 2013, 22:20 »
Świetnie to działa, np: w grach BombermanC64,  Bomberland ; )
Raf.
Czyli CIA2 uwalone.    Polutowałeś PCB CGA bez problemu?  Tam brakowało zworki, na linji +5v.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #6 dnia: 01 Maja 2013, 23:04 »
ano wlasnie userport ma z joyami tyle wspolnego co adapter CGA ;D

StaryMarabut:
Polutowałeś PCB CGA bez problemu?  Tam brakowało zworki, na linji +5v.

nie bez problemu bo robilem to po pijaku, ale ostatecznie dziala - wlutowywanie podstawek pod 74257 nie bylo zbyt dobrym pomyslem, szczegolnie po pijaku - nie polutowalem gornej strony pcb pod socketem, ale ze byl to precyzyjny to jakos tam udalo mi sie lutownica spod spodu podejsc mimo obecnosci reszty elementow ;) . a z ta zworka tos mi niezla zagwozdke zrobil ;) ale dalem rade na ogol najpierw schemat i anal a potem robie komus problemy ;P
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline StaryMarabut

  • Level 6
  • ******
  • Wiadomości: 1794
  • Robię wszystkim dobrze *za pół ceny.
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #7 dnia: 01 Maja 2013, 23:25 »
\"\"
 Ja olalem podstawke. I dzięki temu weszło "na wysokość"
w koszyk "z klapką"na baterię 2XAA.
Będzie problem z doborem opakowania teraz.

Offline Psychik

  • Level 5
  • *****
  • Wiadomości: 912
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #8 dnia: 02 Maja 2013, 09:59 »
Raf:
wlutowywanie podstawek pod 74257 nie bylo zbyt dobrym pomyslem

mi to sie przypomnialo, jak skonczylem lutowzc, ze od gory tez mialy byc luty, ale spokojnie pod podstawka dalo sie podejsc.

StaryMarabut:
Będzie problem z doborem opakowania teraz.

uniwersalna obudowa od cartidge'a pasuje, ale trzeba zrobic otwor na wielkosc ukladu, a pozniej namowic Wacka na fajnego stickera i zapodac naklejke na wierzch. uklad chowa sie w swietle obudowy, wiec z naklejka nie widac. \"\"

Offline Mikra_Lbn

  • Level 3
  • ***
  • Wiadomości: 220
    • http://www.lubus.info
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #9 dnia: 02 Maja 2013, 21:19 »
Skull:
tak, port 1 służy również jako odczyt klawiatury

A przypadkiem Portu 2 nie dało się symulować poprzez jednoczesne wciśnięcie spacji i klawiszy Z, C, B, M i F1? Pamiętam, że po wyłamaniu wszystkich dżojstików szalałem na klawiaturze.

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #10 dnia: 03 Maja 2013, 08:46 »
Mikra_Lbn
tak, w niektórych produkcjach istniała taka możliwość - które korzystały z kernala (wszystkie basicowe), albo nie zmieniały stanu portu $dc00.
Niestety wpisanie #$ff do $dc00 (czyli nie wybranie żadnej liniii klawiszowej)- defnitywnie "odcina" klawiaturę, i zostają tylko joy-e , one mają zawsze priorytet.
Ten priorytet to też problem z używaniem jednoczesnym klawiatury i joy-a (np. w grze na dwie osoby).
W zasadzie udało mi się znaleźć tylko jedną kombinację klawiszy (którą wykorzystuje w grze), która nie koliduje z joy-ami (bity 0-4 w portach $dc00 i $dc01 zawsze będą maskowane przez joy-e) i sensownie jest rozłożona na klawiaturze.

Offline Mikra_Lbn

  • Level 3
  • ***
  • Wiadomości: 220
    • http://www.lubus.info
Dlaczego Port 2 a nie Port 1?
« Odpowiedź #11 dnia: 05 Maja 2013, 16:15 »
Skull, dzięki za obszerne wyjaśnienie. Przy okazji wyjaśniła się zagadka, dlaczego tylko w niektórych grach działał trik z klawiaturą.