26

Jasne, tylko daj znać jak nauczysz swój "emulator stacji" odbierać dane po DATA OUT i wysyłać po DATA IN.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

27

zamienic kolejnosc tych dwoch przewodow w kablu?

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

28

SIO2Atari ? ;)

https://www.youtube.com/watch?v=jofNR_WkoCE

29

Fox: takie coś już istnieje i to od 11 lat chyba, nazywa się SimDrive, skonstruował to Simius, a ma to pinokio.

xxl: skoro i tak trzeba mieć specjalny kabel, żeby skrosować linię IN z OUT, to można też przy okazji skrosować COMMAND z INTERRUPT, nie?

KMK
? HEX$(6670358)

30

@Fox: bardziej Atari2Atari :)

@drac030: nie, poniewaz korzystajac z jednej konfigurowanej linii COMMAND obydwa komputery moga dla siebie byc widziane jako stacji dyskow czyli komputer A jest stacja dla komputera B a komputer B stacja dla komputera A, w przypadku SimDrive raczej tak nie jest. ciekawe tez o ile SimDrive bylby mniej skomplikowany gdyby autor wiedzial ze linia COMMAND jest konfigurowana i moze sluzyc za wejscie przerwan.

ps. simdrive http://www.ftp.pigwa.net/stuff/collecti … simdrv.gif zeby czytelnik wiedzial o czym mowa.

@Krótki: oczywiscie, ze autorzy OS nie musza wykorzystywa zasoby komputera. dopoki jest mozliwosc odlaczenia os jest ok.

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

31 Ostatnio edytowany przez xxl (2011-06-11 14:50:14)

e, tam. na uparciocha COMMAND i INTERRUPT tez by sie dalo.
nie wiem czy pisalem ale INTERRUPT i PROCEED opisane w atariki jako wejscie przerwan moze byc rownie dobrze skonfigurowane na WEYJSCIE :-) linie COMMAND,INTERRUPT i PROCEED programuje sie dokladnie tak samo :-)

przydaloby sie zeby ktos obeznany sprzetowo dal kilka wskazowek.


---
dwa komputery, jedna stacja, wszystko podlaczone STANDARDOWYM kablem SIO, atarki nie moga wymieniac sie danymi (tylko pozostalymi dwoma liniami PIA, ktore oznaczaja zajecie sieci) ale moga korzystac ze wspolnej stacji dyskow. jedna zmiana - obydwie atarki maja ustawione COMMAND na wejscie, przelaczenie ktorejkolwiek na wyjscie a co za tym idzie zajecie sieci i uzycie stacji zglasza liniami PIA, zeby druga atarka nie mogla przelaczyc command na wyjscie.

ogolnie to ciekawi mnie dlaczego atari8bitowe nie mialo zadnej namiastki sieci - a moze mialo?

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

32

xxl napisał/a:

dwa komputery, jedna stacja, wszystko podlaczone STANDARDOWYM kablem SIO, atarki nie moga wymieniac sie danymi (tylko pozostalymi dwoma liniami PIA, ktore oznaczaja zajecie sieci) ale moga korzystac ze wspolnej stacji dyskow. jedna zmiana - obydwie atarki maja ustawione COMMAND na wejscie, przelaczenie ktorejkolwiek na wyjscie a co za tym idzie zajecie sieci i uzycie stacji zglasza liniami PIA, zeby druga atarka nie mogla przelaczyc command na wyjscie.

ogolnie to ciekawi mnie dlaczego atari8bitowe nie mialo zadnej namiastki sieci - a moze mialo?

Toż Ci tłumaczyłem, że nie zadziała,  bo jest race condition.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

33

wytlumacz, mozliwe ze roznie to rozumiemy.

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

34

No a wyobraź sobie, że w tym samym momencie oba komputery przełączają COMMAND na wyjście. W tym momencie żaden z nich nie może już odebrać przerwania po COMMAND, i oba zaczynają transmisję.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

35 Ostatnio edytowany przez drac030 (2011-06-11 15:24:16)

Race condition jest wtedy, kiedy dwa (albo więcej) niezależne procesy (w systemie wieloprocesowym) albo dwa (lub więcej) niezależne maszyny (w systemie wieloprocesorowym) jednocześnie zajmują ten sam zasób.

Nie jesteś w stanie testować stanu linii zajętości swojej sieci jednocześnie z ustawieniem jej stanu na "zajęta", więc masz race condition.

EDIT: Krótki był szybszy.

KMK
? HEX$(6670358)

36

:-) nie chodzi o znaczenie pojecia bo sprowadzimy rozmowe do poziomu 'czytania instrukcji obslugi' ;-) tylko gdzie problem KONKRETNIE wystepuje w tym przypadku :-)

@Krótki: komputer nie przelacza linii COMMAND kiedy chce.
mamy 3 linie wejscia/wyjscie PIA jedna z nich to COMMAND znaczenie znane, obydwa komputery maja ta linie ustawiona na WEJSCIE (czyli odwrotnie jak standardowo) lub standardowo na WYJSCIE a mozliwosc komunikacji rozstrzygana 'nizej'.

mamy komputer 1 i 2, komputer 1 zglasza status linia 1 PIA, komputer 2 linia 2 PIA czyli:
komputer 1 linia A(in) linia B(out)
komputer 2 linia A(out) linia B(in)
obydwa obsluguja przerania generowane przez PIA (ale tez niekoniecznie - moga ustawiac bity przeciwnego kompuera nie wywolujac przerwan - cpu moze miec prerwania zablokowane ale odpowiednie bity w PIA beda sie zachowywaly jak trzeba nadal).

czyli mamy taka sytuacje:
1|2 - komputery
1) 0|0 - konfigurowane linie PIA
2) 0|1
3) 1|0
4) 1|1

sytuacja 2 i 3 jest jasna - jeden z nich zajmuje siec. rozumiem Krótki, ze chodzi o sytuacje 4.

no wiec tak:
komputery chca zglosic chec przejecia sieci, sprawdzaja 2 linie PIA i napotykaja sytuacje 1) 0|0 czyli moga zglaszac chec. ustawiaja swoje linie satusu co sprzetowo ustawia odpowiedni bit w PIA drugiego komputera.

i teraz mamy sytuacje 4) 1|1 czyli obydwa komputery chca przejac siec. obydwa komputery sprawdzaja bity statusu ORAZ bity konfiguracji swojej linii statusu.
komputer A napotyka 1|1 (mam priorytet, zajmuje siec - konfiguruje COMMAND lub nie zaleznie od tego co na poczatku napisalem ale komunikacja jest mozliwa, siec nalezy do mnie)
KOMPUTER B napotykam 1|1 (nie mam priorytetu, kasuje swoja linie, sytuacja 3) 1|0 - ktos inny ma siec, wyjdz.

o to chodzilo?

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

37

xxl napisał/a:

mamy 3 linie wejscia/wyjscie PIA jedna z nich to COMMAND

A te dwie pozostałe to które są?

Z komentowaniem reszty się na razie wstrzymam, bo może się okaże że nie warto.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

38

kilka razy wczesniej pisalem, ze PIA ma 4 linie w gniezdzie SIO: COMMAND,MOTOR CTL,PROCEED,INTERRUPT. wiadomo jak programuje je OS ale okazalo sie ze mozna je dowolnie zaprogramowac jako wejscie lub wyjscie, wszystkie maja bity statusu w PIA itd. linia MOTOR CTL jest nie do uzytku bo jest sprzetowo zablokowana przez tranzystor na plycie atari, pozostale linie sa do wykorzystania

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

39

A PROCEED i INTERRUPT zamierzasz zaprogramować na wyjście jak konkretnie?

A8CAS - narzędzie do 100% archiwizacji kaset Atari

40

:/ pisalem...

komputer 1 linia A(in) linia B(out)
komputer 2 linia A(out) linia B(in)
(to determinuje priorytet)

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

41

Nie zrozumiałeś. Pokaż mi jak zmienić kierunek tych dwóch linii.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

42 Ostatnio edytowany przez xxl (2011-06-11 21:57:58)

:/ tez juz pislame w poscie 16.

jest tam jeszcze kilka mozliwosci przeprogramowania PIA i postaram sie przez weekend rozpracowac co jeszcze mozna z tego wycisnac.

a komentarz do postu 36 ?

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

43

A zajrzyj jeszcze raz do datasheetu.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

44

jakas wskazowka czego szukac? cos pokrecilem? konkretnie co?

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

45

Konkretnie to już pisałem, pokaż mi jak przestawić PROCEED albo INTERRUPT na wyjście.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

46 Ostatnio edytowany przez xxl (2011-06-11 22:54:32)

a widzisz, nie da sie. to tylko command i motor ctrl mozna przeprogramowac :/

trzeba krosowac kabel sygnaly interrupt i motor ctrl

z postu 36 zmianimy:

komp 1/2: motor ctrl (out) interrupt (in)

cala reszta tak samo? slaby punkt?

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

47

ok. najnowsza altirra obsluguje linie COMMAND, MOTOR CTL i przerwania PIA jak w rzeczywistosci a nie jak w instrukcjach obslugi atari :)

http://www.atariage.com/forums/topic/18 … try2320999

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

48

To w takim razie konfigurując MOTORCTL jako wyjście i odblokowując IRQ możemy sobie sami programowo generować sprzętowe przerwanie? Czy odblokowując przerwanie od PORTA i włączając silnik magnetofonu możemy zawiesić kompa (IRQ nie obsłużone włazi ciągle w procedurę obsługi).

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

49 Ostatnio edytowany przez xxl (2013-12-04 15:27:54)

w skrocie tak... atari jest tak czadowe ze mozesz sobie programowo generowac przerwania sprzetowe :)

z testow jakie przeprowadzalem gdy sie tym bawilem pamietam:

1. mozna samemu generowac sprzetowe przerwania PIA IRQ (z i bez podlaczania urzadzenia zewnetrznego) mozliwe do identyfikacji - zglaszanie bitem 6
2. mozna ustawic linie COMMAND jako wejscie przerwania - przerwanie zgloszone ta droga jest nierozpoznane i nie jest kasowane
3. przerwanie zgloszone przez miachaniem MOTORCTRL tez jest nierozpoznane ale jest kasowane przez OS po odczycie stanu joystickow.

zglosilem to gosciowi od Altirry i emulator chyba juz to obsluguje od jakiegos czasu.

---
heheh dwa posty wyzej przeciez o tym pisalem :-)

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

50

przyklad jak niezidentyfikowane przerwania IRQ moga zwiesic atari:

przyklad dla linii MOTORCTL

LDA #$30 ; wlacz silnik magnetofonu
STA PACTL
LDA #$18 ; zezwalam na nieudokumentowane IRQ
STA PACTL
BYE BYE ATARI

to samo mozna zrobic z linia COMMAND

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