1

witam,

chcialbym polaczyc dwie atarki kablem SIO w taki sposob, ze specjalnie napisany program mogl wysylac/odbierac dane i co wazne dowolne atari powinno miec mozliwosc zainicjowania polaczenie.

do dyspozycji w gniezdzie SIO jest:
- Data IN
- Data OUT
- Audio (in)
- Motor Control (out)
- Command (in/out)
- Proceed (in)
- Interrupt (in)

chcialbym tez, zeby linia Audio byla podlaczona (do Motor Control lub Command) aby komputer mogl generowac dzwiek na drugim atari.

interesuje mnie czy jest mozliwe opracowanie na tych kilku liniach protokolu ktory umozliwi taka komunikacje - narazie problem budowy "interfejsu" zostawiam.

http://atari.pl/hsc/ad.php?i=1.

2 Ostatnio edytowany przez Monsoft (2012-09-15 21:16:07)

Z Data IN/OUT to przypuszczam ze bylo by na krzyz tak jak jest w null-modemie z Audio to nie mam pojecia :(

3

XXL, GameLink II ?

___
Press play on tape...

4

w GameLinkII jeden komputer jest hostem. nie interesuje mnie rozwiazanie "master-slave"

http://atari.pl/hsc/ad.php?i=1.

5

W GameLink II nie jest powiedziane, że jeden komputer jest hostem - to jest po prostu połączenie szeregowe. O tym już decyduje oprogramowanie. W zasadzie nie ma tu żadnego interfejsu - jest po prostu połączenie kabli. A o tym czy taki protokół - peer to peer -  jest możliwy to już zadecydujesz Ty , jako programista :)

The problem is not the problem; the problem is your attitude about the problem

6

Oj z tym Command jako in/out to nie wiem czy się da.
Ale jeśli już czytanie stanu linii Command by działało, to dla mnie rozwiązanie jest oczywiste, korzystamy ze standardowego protokołu SIO, zakładając jakiś konkretny numer urządzenia przydzielony komputerowi. Reszta to kwestia oprogramowania (czekanie na zmianę stanu linii Command i jeśli tak to odbiór komendy, rozpoznanie, sprawdzenie czy jest ona "do mnie" i realizacja polecenia). Tak działałby komputer realizujący polecenia, a nadawca stosowałby standardową komunikację SIO.

Ale znając XXLa wymyśli coś tak pokrętnego, na około i niestandardowego, że moje sugestie na nic są tutaj ;P

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

7

> Oj z tym Command jako in/out to nie wiem czy się da.

da sie: http://www.atari.org.pl/forum/viewtopic … 92#p128292

podoba mi sie pomysl ze standardowym protokolem SIO ale jak ustalic kto jest w danym momencie nadawca a kto odbiorca?

http://atari.pl/hsc/ad.php?i=1.

8 Ostatnio edytowany przez syscall (2012-09-16 00:14:40)

Najprostsze co mi przychodzi do glowy to
Skrosowac data in/data out oraz proceed/interrupt.
Na obu atarkach 'napisac.se' handler IRQ do obslugi przerwan od PortA i PortB.
Domyslnie system blokuje te przerwania.
No i w tych przerwaniach robic co tam chcesz :)

Po namysle chyba proceed/interrupt nie da sie skrosowac.
Ogolnie ciekawe zagadnienie :)

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

9 Ostatnio edytowany przez Pecus (2012-09-16 00:52:44)

xxl napisał/a:

podoba mi sie pomysl ze standardowym protokolem SIO ale jak ustalic kto jest w danym momencie nadawca a kto odbiorca?

Nadawca wie, że jest nadawcą, bo to nadawca (komendy) inicjuje działanie, nawet jeśli jest to komenda odbierająca dane, tak więc to rozkaz wysłany przez inicjatora połączenia decyduje o kierunku transmisji.
Wszystkie pozostałe maszyny/urządzenia cały czas nasłuchują linię Command.
Każda może być inicjatorem, przerywa nasłuch i już.

Przeanalizuj sobie komunikację ze stacją dysków. Z resztą tak działa całe SIO, wszystkie urządzenia nasłuchują ciągle Command i wszystkie przyjmują rozkazy, dopiero po zdekodowaniu rozkazu, urządzenie przez ten rozkaz wskazane odpowiada. Jeśli tak samo oprogramujesz SIO w komputerze (to znaczy tak jak w dowolnym urządzeniu (poza magnetofonem oczywiście ;) podłączanym do portu szeregowego), to masz gotowe rozwiązanie.
I nie wymaga to wiele pracy, jest standardowe, nie zaburza możliwości równoległego podpięcia stacji dysków itp.

Tak myślę.

Najważniejsze (co wynika z linku do dyskusji, który podałeś), że linia Command może być źródłem przerwań, bo oczekiwanie na zmianę stanu tej linii jest dość krytyczne czasowo i sens ma w zasadzie tylko posiłkowanie się przerwaniami. Jakoś nie wyobrażam sobie by maszyna nie zajmowała się niczym innym, tylko w pętli czekała na zmianę stanu Command ;) przynajmniej nie komputer, bo taka stacja dysków może sobie czekać nawet w taki sposób- nie ma nic innego do roboty w tym czasie ;)

...

A tak w ogóle to pamiętam na którymś z forów dyskusję o emulatorze stacji dysków na malucha - to jest właśnie gotowa realizacja tego pomysłu..... tyle że nie musiała być na przerwaniu Command - emulator stacji też nic nie musi robić jeśli nie realizuje poleceń :) może sobie w nieskończonej pętli czekać.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

10

> Jeśli tak samo oprogramujesz SIO w komputerze (to znaczy tak jak w dowolnym urządzeniu (poza magnetofonem oczywiście podłączanym do portu szeregowego), to masz gotowe rozwiązanie.

byloby dobrze ale przeanalizujmy taka sytuacje:
2 komputery, polaczone kablem SIO, kazdy nasluchuje COMMAND, kazdy moze zainicjowac komunikacje i ustawic COMMAND i dochodzi do sytuacji ze obydwa na raz ustawia COMMAND. co sie dzieje, albo jak zrobic zeby nie bylo takiej sytuacji. do SIO nie ma podlaczone nic innego tylko te dwa komputery.

a moze gdyby COMMAND podlaczyc w kablu tak, ze z jednej strony wtyczki wskazuje INTERRUPT, a z drugiej strony COMMAND wskazuje PROCEED, moze na tej podstawie da sie jakos okreslic priorytety?

narazie widze ze mozna skrosowac DATA IN i DATA OUT, AUDIO IN i MOTOR CONTROL ale co dalej.

http://atari.pl/hsc/ad.php?i=1.

11 Ostatnio edytowany przez Pin (2012-09-16 10:18:41)

Gotowe i oprogramowane rozwiązanie to SIMDRV ;)- Z komputera Master można zbootować Slave, z Master można udostępnić urządzenie od D1: do D15:, obsługuje "przyspieszacze", potrafi udostępnić plik *.atr z Mastera dla Slave.

xxl napisał/a:

chcialbym tez, zeby linia Audio byla podlaczona (do Motor Control lub Command) aby komputer mogl generowac dzwiek na drugim atari.

tego tylko w tym rozwiązaniu nie ma.


EDIT:

...o, znalazłem nawet schemat ;)-

http://www.ghnet.com.pl/~pin/aarea/simdrv_schemat.gif

Kontakt: pin@usdk.pl

12 Ostatnio edytowany przez xxl (2012-09-16 10:26:31)

byc moze SIMDRV jest odpowiedzia na pytanie o sprzet - nie wiem. ale z tego co piszesz raczej nie jest odpowiedzia na pytanie jak podlaczyc dwie atarki, zeby kazda mogla zainicjowac polaczenie (protokol).

> tego tylko w tym rozwiązaniu nie ma.

sie doklei

---
nie znam sie ale po tym, ze interfejs ma osobne wtyki dla mastera i slave wnosze, ze raczej nie o to mi chodzi.

http://atari.pl/hsc/ad.php?i=1.

13

Połączyć specjalnie inaczej się nie da. Wszystko jest kwestią oprogramowania - po prostu Atarka by default musi nasłuchiwać wywołania. Wywołanie następuje - przełącza się na odbiór i już. Nadawca kończy nadawanie i przechodzi na nasłuch. Itp. Linia command w ogóle nie jest potrzebna

The problem is not the problem; the problem is your attitude about the problem

14

> po prostu Atarka by default musi nasłuchiwać wywołania. Wywołanie następuje - przełącza się na odbiór i już. Nadawca kończy nadawanie i przechodzi na nasłuch. Itp. Linia command w ogóle nie jest potrzebna

obydwie nasluchuja (czyli konkretnie ktora linie) i obydwie w tym samym momencie chca sie komunikowac i wyslac rozkaz. opisz jak to zrobic.

http://atari.pl/hsc/ad.php?i=1.

15

Na moj gust cos takiego nie nastapi. Ktoras zawsze bedzie pierwsza, ta druga musi ze swoim przeslaniem poczekac

The problem is not the problem; the problem is your attitude about the problem

16

nie masz racji

http://atari.pl/hsc/ad.php?i=1.

17

Z punktu widzenia telekomutacji - ma racje. Z punktu widzenia SIO nie ma racji :)

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

18

a gdyby COMMAND1 polaczyc z PROCEED2 a COMMAND2 z INTERRUPT1, krosowac DATA IN i OUT, MOTOR CTRL z AUDIO IN

obydwa komputery na raz ustawiaja COMMAND i dostaja sygnal przerwania, pierwszy komputer ma sygnal INTERRUPT a drugi PROCEED w tym momencie obydwa sprawdzaja czy zadaly dostepu do SIO jesli ten ktory dostal przerwanie PROCEED ustawil COMMAND to ignoruje przerwanie i nadaje rozkazy, jesli komputer ktory dostal przerwanie INTERRUPT ustawial COMMAND to gasi COMMAND i odbiera rozkazy. nie ma znaczenia jak podepniemy kabel zawsze jeden z tych kompow bedzie uprzywilejowany w przypadku JEDNOCZESNEJ ze strony komputerkow checi nadawania. czy cos takiego moze dzialac?

http://atari.pl/hsc/ad.php?i=1.

19

Aby nie wymyślać od nowa standardu Ethernet prostszy logicznie protokół TokenRing - tak "po łebkach":
Urządzenia muszą mieć nadane numery w sieci
Przekazywanie "żetonu" zezwolenia na wysłanie danych po kolei każdemu urządzeniu zgodnie z numeracją
Ktoś chce nadać - wkłada dane w ramke, wpisuje odbiorce i śle dalej.
Pakiet dociera do odbiorcy, ten przechwytuje dane i oddaje "żeton".
I tak w kółko
Urządzenia podpięte są w taki sposób, że wypięcie dowolnego powoduje w sąsiednich zamknięcie pętli aby przepływ danych
był zachowany.

20 Ostatnio edytowany przez xxl (2012-09-16 13:55:32)

ale to mi wyglada na zarzniecie 'sieci', atari nawet jak nic nie chce wysylac to i tak musi sie zglosic i wyslac rozkaz a bo moze akurat drugi komp bedzie chcial cos wyslac, drugi to samo i w kolko obsluguja SIO.


---
ale moze to jest wlasnie rozwiazanie! nie potrzeba nie wiadomo jakiej 'przepustowosci', wystarczy co kilka ramek przekazac kilkanascie bajtow...

http://atari.pl/hsc/ad.php?i=1.

21

Nie znam się itd :) - ale o ile to komukolwiek tu w tym temacie pomoże, to zrobiłem onegdaj pewien eksperyment. Podłączyłem dwie Atarki pod jedną stację (wywalając z jednego z przewodów SIO +5V ;) ) załadowałem kolejno na jednym a następnie na drugim kompie dosa z dyskietki, po czym - po wklepaniu na dwóch atarkach "DIR" i równoczesnym potwierdzeniu operacji returnem katalog jednocześnie został odczytany na dwóch komputerach. Nie pamiętam dokładnie (bo to dawno było), ale prawie jestem pewny, że udawało się czasem (jeśli się dobrze trafiło) zbootować tegoż dosa z jednej stacji na dwóch kompach :D

Kontakt: pin@usdk.pl

22

nastepnym razem jak Ci cos nie bedzie dzialac przypomne ta wypowiedz :D

http://atari.pl/hsc/ad.php?i=1.

23

Napiszę sobie to na ścianie ;)-

Kontakt: pin@usdk.pl

24

a MIDIMATE ?  ma to ktos?

http://atari.pl/hsc/ad.php?i=1.

25

xxl napisał/a:

ale to mi wyglada na zarzniecie 'sieci', atari nawet jak nic nie chce wysylac to i tak musi sie zglosic i wyslac rozkaz a bo moze akurat drugi komp bedzie chcial cos wyslac, drugi to samo i w kolko obsluguja SIO.
---
ale moze to jest wlasnie rozwiazanie! nie potrzeba nie wiadomo jakiej 'przepustowosci', wystarczy co kilka ramek przekazac kilkanascie bajtow...

Właściwie kilka. Token ring został wymyślony właśnie po to aby uniknąć zarżnięcia sieci tzn. aby nie doszło do sytuacji, że jeden node zrobi takeover i będzie słał i słał, a reszta czeka. Takie okienko na pakiet. Poza tym o jakiej sieci mówimy, 2 nody? Spokojnie może chodzić. A i lepiej - przy odpowiednim zaplanowaniu można wyobrazić sobie szeregową sieć na wiele atarek połączonych w pierścień. Jak "wiele" to niestety przepustowość SIO określi :)

The problem is not the problem; the problem is your attitude about the problem