RTV forum PL | NewsGroups PL

Zaskakująca cisza na liniach adresowych MOS6502 podczas eksperymentów na płytce uniwersalnej?

Eksperymenty ze starymi procesorami - MOS6502

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zaskakująca cisza na liniach adresowych MOS6502 podczas eksperymentów na płytce uniwersalnej?

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next

J.F.
Guest

Tue Jun 05, 2018 7:29 pm   



Dnia Tue, 5 Jun 2018 11:37:14 +0200, HF5BS napisał(a):
Quote:
Użytkownik "RadoslawF" <radoslawfl@spam_wp.pl> napisał w wiadomości
news:pf5h9s$rhk$1@node2.news.atman.pl...
Padały masowo folie klawiatury, porty to już trzeba było bawić

Folia klawiatury Spektrusiowa i solidność, to oksymoron Smile

Nawiasem mowiac - w Atari tez byla foliowa.
Ale jakas lepsza :-)

Quote:
Z zastrzeżeniem że małe atari zezwalało na wkładanie/wyjmowanie
kartridża.
Co nie oznaczało, że należało to bezkrytycznie robić.

U nas bylo malo kartridzy.

J.

Sebastian Biały
Guest

Tue Jun 05, 2018 8:08 pm   



On 6/4/2018 11:30 PM, HF5BS wrote:
Quote:
czy C128...? Bo jedyne, co mi na myśl przychodzi, co raczej DMA nie
jest, to przepinanie procków

W komputerach 8 bit DMA pojawia się zazwyczaj w kontekście kiedy to nie
procesor jest przez chwile masterem szyny.

W ZXSpectrum ULA miał prirytetowy dostęp do kawałka RAMu a realizowano
to za pomocą rezystorów (Sinclair byl mistrzeb taniego ale dobrego).
Jest tam bug sprzetowy, można manipulując assemblerem zakłucić mechanizm
dostepowy ULA powodując artefakty na ekranie.

Z Atari 400/800 była masa dodatkowych scalaków odpinających 6502 na czas
pobierania pamięci obrazu przez Antica i odświezania rowniez przez niego
RAMu. W Atari 800xl/65xe zmieniono procesor na taki z prawdziwym HALT,
wcześniej to było rekodzieło do kwadratu.

W C64 układ graficzny VIC pobieral dane z pamięci majstrując przy
cyklach dostępu CPU co było o tyle łatwiejsze ze procesor zwolniono
ponizej 1MHz żeby dalo się wykradać szynę.

W Atari 2600 był układ TIA który dma nie robił, ale za to wymagał na
kazdą linie obrazu ponownej inicjacji swoich rejestrów, stąd z reszta
pojęcie "racing the beam" i jedna z najbardziej ciezkich do
programowania architektur.

Wszelkie operacje dyskowe w C64 i Atari odbywały się bez DMA aczkolwiek
z pewnym wsparciem sprzetu bo za pomocą portów szeregowych.

Ogólnie w 8-bitach DMA raczej nie wykraczało poza ramy czytania pamięci
przez scalak generujący obraz oraz odswieżanie. Nie wiem czy coś więcej
nie zrobiono w Apple II, tam system z 6502 był mocno rozbudowany.

Z80 mał o tyle latwiej że sam odswiezal pamięć, w przypadku 6502 była
bieda straszna.

Quote:
procków - na Z80 - i "sy-pi-jem" czeka na komendy... Tym bardziej, że da
się bez przerwań podobno działać, jak stacja 1541, która sama jest
autonomicznym komputerem i ma 6502 w srodku.

Ale to nie jest DMA.

Grzegorz Kurczyk
Guest

Tue Jun 05, 2018 8:47 pm   



W dniu 05.06.2018 o 21:29, J.F. pisze:
Quote:
Dnia Tue, 5 Jun 2018 11:37:14 +0200, HF5BS napisał(a):
Użytkownik "RadoslawF" <radoslawfl@spam_wp.pl> napisał w wiadomości
news:pf5h9s$rhk$1@node2.news.atman.pl...
Padały masowo folie klawiatury, porty to już trzeba było bawić

Folia klawiatury Spektrusiowa i solidność, to oksymoron :)

Nawiasem mowiac - w Atari tez byla foliowa.
Ale jakas lepsza Smile

Foliowa była w późniejszych wersjach. Mam Atari 800XL z klawiaturą na
mikroswitchach wlutowanych na płytkę drukowaną (taka jak na tym zdjęciu
http://atariage.com/forums/uploads/post-8944-1176212354_thumb.jpg
Coś mi świta, że widziałem też konstrukcję podobną jak w pilotach.
Złocone "grzebiebnie" pól stykowych na laminacie i gumka przewodząca pod
plastikowym klawiszem.
Quote:

Z zastrzeżeniem że małe atari zezwalało na wkładanie/wyjmowanie
kartridża.
Co nie oznaczało, że należało to bezkrytycznie robić.

Moja Atarynka przeżyła podłączanie różnych dziwnych rzeczy zarówno do

złącza kadridge jak i tylnego złącza krawędziowego. O ile nie zwarło się
jakiegoś sygnału wyjściowego do +5V to nic się strasznego nie działo.
Zwarcie między liniami sygnałowymi lub zwarcia do masy powodowały co
najwyżej zwiechę komputera. Po resecie lub power off/on Atarik podnosił
się bez problemu :-)


--
Pozdrawiam
Grzegorz

J.F.
Guest

Tue Jun 05, 2018 9:01 pm   



Dnia Tue, 5 Jun 2018 22:08:46 +0200, Sebastian Biały napisał(a):
[...]
Quote:
Wszelkie operacje dyskowe w C64 i Atari odbywały się bez DMA aczkolwiek
z pewnym wsparciem sprzetu bo za pomocą portów szeregowych.

Tyle, ze stacje mialy wlasny procesor.

dyskietki mialy 250-500 kb/s, czyli 16-32us/bajt.
Tak gdzies blisko granicy mozliwosci programowych owczesnych
procesorow, ale ciagle w zasiegu.

Przy czym to dane z peceta - atarynka ze swoim FM miala chyba mniej.

IBM zdecydowal sie jednak na DMA.


Quote:
Ogólnie w 8-bitach DMA raczej nie wykraczało poza ramy czytania pamięci
przez scalak generujący obraz oraz odswieżanie. Nie wiem czy coś więcej
nie zrobiono w Apple II, tam system z 6502 był mocno rozbudowany.

Z80 mał o tyle latwiej że sam odswiezal pamięć, w przypadku 6502 była
bieda straszna.

Majac wyswietlanie obrazu odswiezanie juz raczej nie bylo problemem.


J.

Sebastian Biały
Guest

Tue Jun 05, 2018 9:44 pm   



On 6/5/2018 11:01 PM, J.F. wrote:
Quote:
Wszelkie operacje dyskowe w C64 i Atari odbywały się bez DMA aczkolwiek
z pewnym wsparciem sprzetu bo za pomocą portów szeregowych.
Tyle, ze stacje mialy wlasny procesor.

To dalej nie jest DMA. DMA jest wtedy kiedy procesor nie uczestniczy w
procesie przekazywania danych coś<->coś. A tu nie dośc że uczestniczy to
z kolega po drugiej stronie.

Można naciągać że skoro dane wchodziłty do UART to było to takie DMA o
max rozmiarze 8 bitów ;)

Quote:
dyskietki mialy 250-500 kb/s, czyli 16-32us/bajt.
Tak gdzies blisko granicy mozliwosci programowych owczesnych
procesorow, ale ciagle w zasiegu.

To akurat nie jest specjalnie problem, dane z głowicy można wciskać
rejestrem szeregowym do RAMu i nagle CPU ma 8x mniej do obrabiania. Nie
ma co demonizować, często dyskietki nie mogly być gęstsze z powodu
nosnika, budowy głowicy, precyzji itd. W powszechnym uzyciu były
dyskietki 360kB ktore nie działały w stacjach HD. Jak by były HD
dostepne to pewnie z 6502 dało by rade zrobić odczyt.

Quote:
Przy czym to dane z peceta - atarynka ze swoim FM miala chyba mniej.
IBM zdecydowal sie jednak na DMA.

Bo ich procesor był do tego przewidziany. 65092 nie miał nawet
najmniejszego wsparcia dla DMA, w podstawowej wersji nie dało się go
nawet oficjalnie "dynamicznie zatrzymać" przez wycinanie cykli
zegarowych co z resztą twórcy Atari olali Very Happy.

Quote:
Z80 mał o tyle latwiej że sam odswiezal pamięć, w przypadku 6502 była
bieda straszna.
Majac wyswietlanie obrazu odswiezanie juz raczej nie bylo problemem.

To jest problem, wiele systemów nie miało DMA obrazu albo nie miało
obrazu w ogóle i wtedy Z80 miał bardzo cenny kawałek prostego hardware
który robił różnicę wielu scalaków a więc i wielu dolarów.

J.F.
Guest

Tue Jun 05, 2018 10:35 pm   



Dnia Tue, 5 Jun 2018 23:44:24 +0200, Sebastian Biały napisał(a):
Quote:
On 6/5/2018 11:01 PM, J.F. wrote:
Wszelkie operacje dyskowe w C64 i Atari odbywały się bez DMA aczkolwiek
z pewnym wsparciem sprzetu bo za pomocą portów szeregowych.
Tyle, ze stacje mialy wlasny procesor.

To dalej nie jest DMA. DMA jest wtedy kiedy procesor nie uczestniczy w
procesie przekazywania danych coś<->coś. A tu nie dośc że uczestniczy to
z kolega po drugiej stronie.

Ale ja pisze o tym, ze trzeba zajrzec do stacji, jak tam zrobione.

Quote:
Można naciągać że skoro dane wchodziłty do UART to było to takie DMA o
max rozmiarze 8 bitów Wink

Ale brak w tym Memory :-)

Quote:
dyskietki mialy 250-500 kb/s, czyli 16-32us/bajt.
Tak gdzies blisko granicy mozliwosci programowych owczesnych
procesorow, ale ciagle w zasiegu.

To akurat nie jest specjalnie problem, dane z głowicy można wciskać
rejestrem szeregowym do RAMu i nagle CPU ma 8x mniej do obrabiania. Nie

Takie "wciskanie do RAM" to sie wlasnie DMA nazywa :-)

rejestr szeregowy byl w tych kontrolerach, ale nawet na caly bajt
czasu bylo dosc ciasno.

Nie znam tego kontrolera z C64 - tam jakis mocno uniwersalny byl,
moglo dodatkowo komplikowac sprawe.

Quote:
ma co demonizować, często dyskietki nie mogly być gęstsze z powodu
nosnika, budowy głowicy, precyzji itd. W powszechnym uzyciu były
dyskietki 360kB ktore nie działały w stacjach HD. Jak by były HD
dostepne to pewnie z 6502 dało by rade zrobić odczyt.

te z peceta mialy sektor 512B, i juz na 6502 robi sie trudniej :-)

Quote:
Z80 mał o tyle latwiej że sam odswiezal pamięć, w przypadku 6502 była
bieda straszna.
Majac wyswietlanie obrazu odswiezanie juz raczej nie bylo problemem.

To jest problem, wiele systemów nie miało DMA obrazu albo nie miało
obrazu w ogóle i wtedy Z80 miał bardzo cenny kawałek prostego hardware
który robił różnicę wielu scalaków a więc i wielu dolarów.

Ale nie w komputerach domowych, gdzie obraz obowiazkowy ..


J.

J.F.
Guest

Tue Jun 05, 2018 11:58 pm   



Dnia Tue, 5 Jun 2018 14:53:27 +0200, Atlantis napisał(a):
Quote:
Tak swoją drogą, jak wygląda kwestia kompatybilności procesorów 65C02 z
wersją NMOS? Jeśli uruchomię już płytkę ze standardową wersję tego
procesora (tylko takie mam teraz pod ręką), to czy po zakupie paru
egzemplarza CMOS będę mógł zastosować go w projekcie (lub przynajmniej
przetestować) po prostu podmieniając układ w podstawce? Czy też
konieczne będą jakieś przeróbki?

http://wilsonminesco.com/NMOS-CMOSdif/

Jedno moze byc przykre - uklady TTL-LS nie daja wystarczajaco
wysokiego napiecia dla wejsc CMOS.

J.

HF5BS
Guest

Thu Jun 07, 2018 7:15 am   



Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:lvw718wvfkxi.hswu22bgoc8.dlg@40tude.net...
Quote:
ma co demonizować, często dyskietki nie mogly być gęstsze z powodu
nosnika, budowy głowicy, precyzji itd. W powszechnym uzyciu były
dyskietki 360kB ktore nie działały w stacjach HD. Jak by były HD
dostepne to pewnie z 6502 dało by rade zrobić odczyt.

te z peceta mialy sektor 512B, i juz na 6502 robi sie trudniej Smile

Stacja 157x (gdzie x=0-2) umie czytać dyskietki PC 360 kB. Nawet w którymś
Bajtków był program do tego. Stację oczywiście trzeba przestawić w
odpowiedni tryb. Czy umie zapisywać... no, tego nie wiem. W każdym razie, z
dyskietką PC na pokładzie, zadałem stacji odczyt, nie wyrzucilo błędu. Nic
mi nie wiadomo, aby stacja miała coś pecetopodobnego na pokładzie. BTW
wiecie, że na dyskietce w 1581, zakładało się partycje? ZTCP, 4.

--
Pies może złamać serce tylko raz,
kiedy jego własne przestaje bić...

Włodzimierz Wojtiuk
Guest

Thu Jun 07, 2018 7:33 pm   



On 2018-06-04 18:07, J.F. wrote:
Quote:
Użytkownik "HF5BS" napisał w wiadomości grup
dyskusyjnych:pf3j9j$40k$1@node2.news.atman.pl...
Użytkownik "Atlantis" <marekw1986NOSPAM@wp.pl> napisał w wiadomości
No właśnie, jak to jest z tą odpornością na promieniowanie? Ponoć NASA
m.in. z tego powodu korzysta(ła) ze starszych procesorów w swoim
sprzęcie. Gdzie jest granica? Chodzi o antyczne procesory w technice
NMOS (np. właśnie MOS6502 albo rozmaite 8080 czy starsze Z80)? A może
jakieś starsze CMOS-y też się kwalifikują, np. wczesne 8051?

Skoro stary Złomodor C64c wytrzymał (i nadal działa) zakurzony 20 lat
w warsztacie samochodowym?

Promieniowania tam raczej nie ma.


Wszystko zależy od tego, kto co trzyma w garazu ;-)

W.

Atlantis
Guest

Fri Jun 08, 2018 6:43 am   



On 02.06.2018 18:53, Grzegorz Kurczyk wrote:

Quote:
Pisałem o tym trochę wcześniej. Możesz spokojnie użyć peryferiów Intela.
Magistrala 6502 jest synchroniczna. Zapis do na magistralę następuje
przy opadającym zboczu Fi2 przy aktywnym stanie niskim sygnału R/W.

Mam jeszcze jedno pytanie, związane z tym tematem.
W roli kontrolera szeregowego używam układu 8251, z 8253 używanym w roli
baudrate generatora. I teraz pytanie: czym taktować te układy?
Powinienem wziąć sygnał zegarowy z Fi1 albo Fi2 procesora, czy też
najlepiej będzie podać sygnał brany bezpośrednio z generatora (a
właściwe dzielnika za nim)?
W systemach opartych na 8080 był specjalny chip do generowania sygnału
taktującego (8224), który poza dwoma przesuniętymi w fazie przebiegami
dla CPU generował także sygnał TTL dla peryferiów.

J.F.
Guest

Fri Jun 08, 2018 7:04 am   



Dnia Fri, 8 Jun 2018 08:43:31 +0200, Atlantis napisał(a):
Quote:
On 02.06.2018 18:53, Grzegorz Kurczyk wrote:
Pisałem o tym trochę wcześniej. Możesz spokojnie użyć peryferiów Intela.
Magistrala 6502 jest synchroniczna. Zapis do na magistralę następuje
przy opadającym zboczu Fi2 przy aktywnym stanie niskim sygnału R/W.

Mam jeszcze jedno pytanie, związane z tym tematem.
W roli kontrolera szeregowego używam układu 8251, z 8253 używanym w roli
baudrate generatora. I teraz pytanie: czym taktować te układy?
Powinienem wziąć sygnał zegarowy z Fi1 albo Fi2 procesora, czy też
najlepiej będzie podać sygnał brany bezpośrednio z generatora (a
właściwe dzielnika za nim)?

Rodzina 82xx jest raczej asynchroniczna, szczegolnie 8251, ktory
potrzebuje zegarow dopasowanych do transmisji, i wlasnie 8253, jesli
on ma te zegary generowac. Nie bez powodu w pececie pojawil sie
dodatkowy kwarc, 1.8costam.
A nie chcesz uzyc tego "pecetowego" ... 8250 ?

Natomiast ... tak mi cos chodzi po glowie, ze
-ktorys uklad wymagal doprowadzenia sygnalu zegarowego, bo mial
"konstrukcje dynamiczna" ... czy to wlasnie nie 8251 ?
pdf trzeba doczytac.
Byle jaki mial to byc zegar, byle dopuszczalnym w zakresie
czestotliwosci sie miescil, ale najprosciej z procka pociagnac

-moze sie okazac, ze cos tam jest sprawdzane w okreslonej fazie
zegara, jak np linie przerwan w procesorze. Akurat magistrali
peryferiow intela to nie powinno dotyczyc.

J.

Atlantis
Guest

Fri Jun 08, 2018 9:56 am   



On 08.06.2018 09:04, J.F. wrote:

Quote:
Rodzina 82xx jest raczej asynchroniczna, szczegolnie 8251, ktory
potrzebuje zegarow dopasowanych do transmisji, i wlasnie 8253, jesli
on ma te zegary generowac. Nie bez powodu w pececie pojawil sie
dodatkowy kwarc, 1.8costam.

To nie zmienia faktu, że 8251 posiada trzy wejścia zegarowe: TXC, RXC i
CLK. Do dwóch pierwszych podłącza się sygnał z baudrate generatora. CLK
ma być natomiast taktowany z zegara systemowego. W urządzeniach na 8080
podłączało sie tutaj wyjście zegarowe TTL układu 8224.
Chciałem jedynie wiedzieć skąd wziąć ten sygnał w systemie opartym na
6502. Do wyboru mam wyjście generatora (to samo, do którego podłączone
jest wejście Fi0 procesora) albo jedno z wyjść Fi1 i Fi2.

A w pecetach dodatkowy kwarc pojawiał się chyba tylko po to, żeby można
było tam łatwo zastosować częstotliwość dzielącą się bez reszty do
standardowej prędkości portu szeregowego. W moim przypadku nie ma to
wielkiego znaczenia, bo główny generator ma być napędzany kwarcem 4.032
MHz, który potem będzie dzielony przez 2 lub 4 (do wyboru zworką, w
zależności od typu procesora). Ta częstotliwość ładnie się dzieli na
potrzeby UART-a.

Podobne rozwiązanie zastosowałem w projekcie na MCY7880.


Quote:
A nie chcesz uzyc tego "pecetowego" ... 8250 ?

Parę sztuk 8251 oraz 8253 mam pod ręką. ;)


Quote:
Natomiast ... tak mi cos chodzi po glowie, ze
-ktorys uklad wymagal doprowadzenia sygnalu zegarowego, bo mial
"konstrukcje dynamiczna" ... czy to wlasnie nie 8251 ?
pdf trzeba doczytac.

Tak. Właśnie 8251 posiada pin CLK, do którego podpinało się zegar systemowy.


Quote:
Byle jaki mial to byc zegar, byle dopuszczalnym w zakresie
czestotliwosci sie miescil, ale najprosciej z procka pociagnac

Nie ma tutaj potrzeby zachowani synchroniczności czy coś? Nie ma
znaczenia którego"Fi" użyję?

ajt
Guest

Fri Jun 08, 2018 10:05 am   



W dniu 2018-06-08 o 11:56, Atlantis pisze:
Quote:

Tak. Właśnie 8251 posiada pin CLK, do którego podpinało się zegar
systemowy.


Byle jaki mial to byc zegar, byle dopuszczalnym w zakresie
czestotliwosci sie miescil, ale najprosciej z procka pociagnac

Nie ma tutaj potrzeby zachowani synchroniczności czy coś? Nie ma
znaczenia którego"Fi" użyję?
Nie ma znaczenia, ten zegar jest wyłącznie do taktowania części
nadawczo-odbiorczej.

--
Pozdrawiam
Andrzej
www.radom.city

J.F.
Guest

Fri Jun 08, 2018 10:41 am   



Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5b1a52d1$0$610$65785112@news.neostrada.pl...
On 08.06.2018 09:04, J.F. wrote:
Quote:
Rodzina 82xx jest raczej asynchroniczna, szczegolnie 8251, ktory
potrzebuje zegarow dopasowanych do transmisji, i wlasnie 8253,
jesli
on ma te zegary generowac. Nie bez powodu w pececie pojawil sie
dodatkowy kwarc, 1.8costam.

To nie zmienia faktu, że 8251 posiada trzy wejścia zegarowe: TXC, RXC
i
CLK. Do dwóch pierwszych podłącza się sygnał z baudrate generatora.
CLK
ma być natomiast taktowany z zegara systemowego. W urządzeniach na
8080
podłączało sie tutaj wyjście zegarowe TTL układu 8224.
Chciałem jedynie wiedzieć skąd wziąć ten sygnał w systemie opartym na
6502. Do wyboru mam wyjście generatora (to samo, do którego
podłączone
jest wejście Fi0 procesora) albo jedno z wyjść Fi1 i Fi2.

http://www.nj7p.org/Manuals/PDFs/Intel/205222-002.pdf

No i ciekawie pisza
No external inputs or outputs are referenced to CLK, but the frequency
of CLK
must be greater than 30 times the Receiver or Transmitter data bit
rates.

ale w tabelce na stronie 15 (2-1Cool ... clock Period
min 320, max 1350 ns. Czyli jakies 0.75-3MHz.

Quote:
A w pecetach dodatkowy kwarc pojawiał się chyba tylko po to, żeby
można
było tam łatwo zastosować częstotliwość dzielącą się bez reszty do
standardowej prędkości portu szeregowego.

Zapewne.
Byc moze juz im tez chodzilo, ze systemowe zegary bedą rożnej
predkosci, wiec nie mozna na nich polegac.

Quote:
W moim przypadku nie ma to
wielkiego znaczenia, bo główny generator ma być napędzany kwarcem
4.032
MHz, który potem będzie dzielony przez 2 lub 4 (do wyboru zworką, w
zależności od typu procesora). Ta częstotliwość ładnie się dzieli na
potrzeby UART-a.

Zalezy.
Jak chcesz 1200, zegar ma byc *16, to sie dzieli ladnie przez 210.
Jak chcesz 2400, to trzeba podzielic przez 105 ... i juz nie mozna
najpierw podzielic przez 2.
Jak chcesz 9600 ... to nie z tym kwarcem :-(


Podobne rozwiązanie zastosowałem w projekcie na MCY7880.

J.

Atlantis
Guest

Fri Jun 08, 2018 12:41 pm   



On 08.06.2018 12:41, J.F. wrote:

Quote:
Zalezy.
Jak chcesz 1200, zegar ma byc *16, to sie dzieli ladnie przez 210.
Jak chcesz 2400, to trzeba podzielic przez 105 ... i juz nie mozna
najpierw podzielic przez 2.
Jak chcesz 9600 ... to nie z tym kwarcem Sad

Hmm... Teraz właśnie jeszcze raz na to patrze i faktycznie, wygląda na
to, że zegar 2000000 Hz jest dużo lepszym rozwiązaniem. Po podzieleniu
przez 13 (8253), a potem jeszcze przez 16 (wewnątrz 8251) uzyskam
baudrate w okolicy 9615.

Okazuje się, że w komputerze z MCY7880 również powinienem podmienić
kwarc na 18 MHz. Wtedy także będę miał zegar 2MHz i identyczną sytuację.
W chwili obecnej mam kwarc 18.432MHz, co daje zegar 2.048 MHz i baudrate
około 9846... O dziwo działa...

Tak to jest, gdy kopiuje się rozwiązania z internetu, bez przeliczenia
na wszelki wypadek...

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Zaskakująca cisza na liniach adresowych MOS6502 podczas eksperymentów na płytce uniwersalnej?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map