26 Ostatnio edytowany przez jer (2012-03-15 07:04:53)

Nikt Ci nie poda dokładnego czasu, bo jest on zależny od wartości elementów RC oraz układu scalonego obsługującego reset (w XL to inwerter Schmitta 74LS14, XLF i XE to NE555). O ile parametry scalaków pozostają mniej więcej takie same, to elementy RC (głównie C, bo to elektrolity) zmieniaja znacznie swoje parametryi z upływem lat. Tolerancja pojemnści nowego elektrolitu jest -20% +50%, można więc z dobrym przybliżeniem przyjąć, że taka jest też tolerancja tego czasu.
Wpływ ma również sam zasilacz, bo jeden będzie miał dłuższy czas staru, inny krótszy. Chodzi mi o to, że od momentu włączenia prztyczka zasilania następuje ładowanie pojemności na płycie komputera, co zasilacz odbiera jako zwarcie i obniża napięcie wyjściowe, potem wraca do pełnego napięcia, Ten czas jest krótki, ale opóźnienie ustawienia sygnału RESET w stan 1 jest znacznie większe.

27

jesli chcesz emulowac szyne przez jakies zewnetrzne mcu to musisz miec procek >50mhz, prawdopodobnie z jakimis peryferiami typu dma (arm ma wolne gpio)
jesli zdecydujesz sie na c
w asmie moze uda ci sie obgonic przy 30mhz, w zaleznosci co ten procek bedzie umial
nie jestem tutaj zeby ci mowic ze cos sie nie da - nic z tych rzeczy
wszystko zalezy od twojej determinacji
ale jakbys sie wreszcie wyslowil, zamiast tworzyc kolejne tematy podchodowe, bylo by fajnie

przechodze na tumiwisizm

28 Ostatnio edytowany przez nosty (2012-03-15 09:10:14)

@jer - ale chodzi mi tylko o rząd wielkosci: 1ms, 10ms, 100ms? Wiem, ze jest to zmienne i zaleznie od uzytego obwodu do podtrzymania sygnalu reset w stanie niskim, dlatego liczylem na orientacyjna odpowiedz "z praktyki". Sam nie mam nawet oscyloskopu. Znalalzme opis ze schematem z którego wynikało ze w C64 jest to ustawione na 0.5s

@Candle - faktycznie robilem takie podchody. Dobrze mnie rozszyfrowales na podstawie pytan :) Ale wiesz, ze jak sie zacznie publicznie dyskutowac projekt to zazwyczaj nic dobrego z tego nie wynika - konkrety się rozmywają w offtopicach :/ Wolalem zadac konkretne pytania i pomyslec samemu.
Też początkowo obliczalem ze uC 50MHz da rade, a juz 100MHz będzie się nudził. Ale jak zaczałem analizowac specyfikację konkretnych uC to juz zrobilo sie mniej różowo. Tak szybkie procki to są wlasnie ARM zazwyczaj, mocno skomplikowane. Owszem mają DMA ale zazwyczaj nie pracujące z GPIO ktore moznaby podpiąć rownolegle pod szynę Atari tylko przeznaczone do transmisji danych z pamieci do USB albo SPI. I jak piszesz mało który ma spięte GPIO do szybkiej wewnętrznej szyny danych. Okazało się też, że mimo szybkości, reakcja na przerwanie i odlozenie rejestru procesora na stos to 7 a czasem 11 taktow. No isą na 3.3V a nie na 5V. To wszystko jest mocno zniechęcające, całość moze sie okazac niestabilna.
Ale chcialbym sobie nad tym tematem popracowac jeszcze troche samemu. To takie moje prywatne marzenie od lat i chciałbym je kiedys samemu zrealizowac. Ty masz swoich rewelacyjnych projektów całą masę, ja też chciałem mieć jakis swój ambitny i się na nim uczyć :) A za odpowiedzi na pytania jestem bardzo wdzięczny.

29 Ostatnio edytowany przez xxl (2012-03-15 09:07:30)

> 2. Czy włożenie lub wyjęcie carta ze slotu w czasie pracy Atari (poza ryzykiem czysto elektrycznym) nie spowoduje żadnych "efektow ubocznych" w pracy Atari jesli w obszarze pamieci mapowanym na carta nie ma kodu programu/DL/pamieci ekranu itp itd.?
> EDITED: Na to tez znalazlem juz odpowiedz: w tekscie Zenona http://www.atarionline.pl/v01/index.php … =wynalazki
Nie mozna ot tak sobie wyjac carta z gniazda.

jesi atari os jest wylaczony tez sa jakies z tym problemy?

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

30 Ostatnio edytowany przez nosty (2012-03-15 09:15:32)

@XXL - i Zenon i atariki podają to samo źródło problemu:

"Przyczyną jest fakt, że procedura SYSVBL (a ściślej: jej druga faza) zawiera kod sprawdzający zgodność stanu TRIG3 i jego cienia GINTLK ($03FA), i jeśli się nie zgadzają, zawiesza komputer. "

"Po wyjęciu cartridge’a z gniazda, najdalej po upływie 1/50 sekundy fakt ten zostanie wykryty poprzez porównanie zawartości TRIG3 i GINTLK które będą różne: TRIG3=0 natomiast GINTLK=1.
Wykryte nieprawidłowości spowodują albo zawieszenie się komputera, (...)"

Innych nie podają.

31

czyli problem jest sztuczny.

a co do carta to pewnie zaraz Candle wyskoczy z renderingiem Twojego projektu.

;-)

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

32 Ostatnio edytowany przez jer (2012-04-04 05:53:05)

Z przybliżonych obliczeń wychodzi (dla 600XL)  0,66sek. Stała czasowa 2,63sek (R=56k C=47uF). Po upływie 2,63sek*. kondensator naładuje się do 3,15V, a napięcie przełączenia LS14 jest 1,6V. 1,6/3,15=0,5. Jeżeli weźmiemy pod uwagę wpływ oporności wewnętrznej bramki, która zmniejsza stałą czasową (pi razy oko) dwukrotnie, to wychodzi
0.5 * 2,63sek/2 =0,66sek.

* Po upływie jednej stałej czasowej kondensator naładuje się do 63% napięcia zasilania, a po 5 stałych do 99%.

33

Nosty napisał..
"Po wyjęciu cartridge’a z gniazda, najdalej po upływie 1/50 sekundy fakt ten zostanie wykryty poprzez porównanie zawartości TRIG3 i GINTLK które będą różne: TRIG3=0 natomiast GINTLK=1.
Wykryte nieprawidłowości spowodują albo zawieszenie się komputera, (...)"

Literatura podaje że to zawieszenie polega na wskoczeniu do procedury WAIT która robi coś takiego
WAIT JMP WAIT
więc procesor i ATARI nadal prawidłowo pracują, tyle że wykonuje się pusta pętla i komputer oczekuje na naciśnięcie RESET. Gdyby zmienić OS i w tym miejscu wpisać coś sensownego można oszukać ATARI które choć zauważy zamianę karta nadal prawidłowo będzie pracować pod warunkiem że... no właśnie, uruchamia się inny mechanizm sprawdzający poprawność zapisania kilku bajtów pamięci w obszarze karta.
Słowem, ATARI ma kilka mechanizmów które wykrywają różne komplikacje z kartridżem
W modelach ATARI które mamy nie można wykonać BOOT z obszaru $8000-$9FFF bo choć tu umieści się nagłówek dla carta system nie sprawdza tego, sprawdza tylko obszar wyższy (RD5). Wcześniejsze Atari to robiły (literatura)
Ale.... można wymusić BOOT po zamianie połówek pamięci co działa w RAM-CARTACH które robiłem np Double RAM-CART. Na jedno wychodzi, bo ostatecznie i tak nagłówek znajdzie się gdzie trzeba.

34

carta mozna wyciagac bezkarnie w 400/800, ale nie ze wzgledu na brak obslugi trig3 przez os, ale dlatego ze szyna danych jest buforowana
w xl/xe powoduje to zwykle zwieche - bez wzgledu na os
xxl: taki render, to po prostu podglad z programu cad/cam ktorego uzywam do projektowania

przechodze na tumiwisizm