RTV forum PL | NewsGroups PL

Eksperymenty ze starymi procesorami - MOS6502

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Eksperymenty ze starymi procesorami - MOS6502

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

Atlantis
Guest

Tue May 29, 2018 11:37 pm   



Ostatnio w celach edukacyjnych eksperymentowałem trochę ze starymi
procesorami. Udało mi się odpalić TinyBasic na prostym komputerze
opartym o MCY7880. Teraz kontynuując te eksperymenty postanowiłem
przyjrzeć się innemu klasycznemu procesorowi - MOS6502, w starej wersji
NMOS.

Na szybko skleciłem układ na płytce uniwersalnej. W tej chwili jest tam
tylko procesor, układ resetujący przy starce (NE555) i generator 4 MHz
na 74LS04 z dzielnikiem przez cztery na 74LS74.

Piny RES, RDY, NMI, IRQ oraz SO podciągnięte do VCC za pomocą rezystorów
3,3k. Całość zasilana z 5V zasilacza impulsowego. Przy każdym układzie
rzecz jasna kondensator 100nF.

Na chwilę obecną nie są podłączone żadne pamięci, dekodery adresów itp.
Na pinach 3 i 39 mam faktycznie powtórzony sygnał zegarowy, a więc
faktycznie wygląda na to, że przynajmniej coś w procesorze działa i nie
jestto podróbka (a taką sytuację brałem pod uwagę, bo był kupiony na
Aliexpress).

Natomiast jedna rzecz mnie zaskakuje - zupełny brak aktywności na
liniach adresowych i danych. MCY7880 pokazywał na tych liniach regularne
przebiegi na oscyloskopie, nawet jeśli nic jeszcze nie było podpięte do
magistrali. Tutaj tego nie ma.

Ten typ tak miał, czy coś może być nie tak?

J.F.
Guest

Wed May 30, 2018 3:08 am   



Dnia Wed, 30 May 2018 01:37:04 +0200, Atlantis napisał(a):
Quote:
Na szybko skleciłem układ na płytce uniwersalnej. W tej chwili jest tam
tylko procesor, układ resetujący przy starce (NE555) i generator 4 MHz
na 74LS04 z dzielnikiem przez cztery na 74LS74.

Piny RES, RDY, NMI, IRQ oraz SO podciągnięte do VCC za pomocą rezystorów
3,3k. Całość zasilana z 5V zasilacza impulsowego. Przy każdym układzie
rzecz jasna kondensator 100nF.

Na chwilę obecną nie są podłączone żadne pamięci, dekodery adresów itp.
Na pinach 3 i 39 mam faktycznie powtórzony sygnał zegarowy, a więc
faktycznie wygląda na to, że przynajmniej coś w procesorze działa i nie
jestto podróbka (a taką sytuację brałem pod uwagę, bo był kupiony na
Aliexpress).
Natomiast jedna rzecz mnie zaskakuje - zupełny brak aktywności na
liniach adresowych i danych. MCY7880 pokazywał na tych liniach regularne
przebiegi na oscyloskopie, nawet jeśli nic jeszcze nie było podpięte do
magistrali. Tutaj tego nie ma.
Ten typ tak miał, czy coś może być nie tak?

Patrze na pinout - Reset nie ma znaczka negacji, moze mu trzeba pull
down zrobic ? RDY tez by warto sprawdzic.

Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.

J.

Guest

Wed May 30, 2018 5:45 am   



W dniu wtorek, 29 maja 2018 22:08:52 UTC-5 użytkownik J.F. napisał:
Quote:
Dnia Wed, 30 May 2018 01:37:04 +0200, Atlantis napisał(a):
Na szybko skleciłem układ na płytce uniwersalnej. W tej chwili jest tam
tylko procesor, układ resetujący przy starce (NE555) i generator 4 MHz
na 74LS04 z dzielnikiem przez cztery na 74LS74.

Piny RES, RDY, NMI, IRQ oraz SO podciągnięte do VCC za pomocą rezystorów
3,3k. Całość zasilana z 5V zasilacza impulsowego. Przy każdym układzie
rzecz jasna kondensator 100nF.

Na chwilę obecną nie są podłączone żadne pamięci, dekodery adresów itp.
Na pinach 3 i 39 mam faktycznie powtórzony sygnał zegarowy, a więc
faktycznie wygląda na to, że przynajmniej coś w procesorze działa i nie
jestto podróbka (a taką sytuację brałem pod uwagę, bo był kupiony na
Aliexpress).
Natomiast jedna rzecz mnie zaskakuje - zupełny brak aktywności na
liniach adresowych i danych. MCY7880 pokazywał na tych liniach regularne
przebiegi na oscyloskopie, nawet jeśli nic jeszcze nie było podpięte do
magistrali. Tutaj tego nie ma.
Ten typ tak miał, czy coś może być nie tak?

Patrze na pinout - Reset nie ma znaczka negacji, moze mu trzeba pull
down zrobic ? RDY tez by warto sprawdzic.

Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.


http://www.obelisk.me.uk/6502/reference.html#NOP

6502 to dosyc prosty cpu. tam raczej nie ma nic fikusnego.
chyba prosciej bedzie zaemulowac mu rom/ram przelacznikami i taktowac recznie aby sie pobawic.

Albo podpiac jakas mala pamiec lub mikrokontroler robiacy za takowa...

Atlantis
Guest

Wed May 30, 2018 5:48 am   



On 30.05.2018 05:08, J.F. wrote:

Quote:
Patrze na pinout - Reset nie ma znaczka negacji, moze mu trzeba pull
down zrobic ? RDY tez by warto sprawdzic.

Opieram się na informacjach z tej strony:
http://wilsonminesco.com/6502primer/RSTreqs.html
http://wilsonminesco.com/6502primer/MysteryPins.html
Jest tam wyraźnie mowa o pull-upach. Jedynie w przypadku pinu SO dość
enigmatycznie napisano o "podłączeniu do 5V", ale zakładam, że chodziło
właśnie o rezystor, a nie bezpośrednie połączenie.


Quote:
Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.

Ok, tak zrobię w następnej kolejności. Po prostu byłem zdziwiony brakiem
jakiejkolwiek aktywności na magistrali. W przypadku 8080 działo się tam
dość sporo, pomimo braku jakichkolwiek elementów poza procesorem (z
przyległościami typowymi dla systemu na 8080). Tutaj tymczasem panuje cisza.

BTW w przypadku MOS6502 muszę stosować jakieś bufory szyny adresowej i
dwukierunkowy bufor szyny danych? Czy procesor poradzi sobie obciążony
pamięciami, dekoderem adresów i paroma peryferiami?

cezar
Guest

Wed May 30, 2018 11:29 am   



On 30/05/18 06:48, Atlantis wrote:
Quote:
On 30.05.2018 05:08, J.F. wrote:

Patrze na pinout - Reset nie ma znaczka negacji, moze mu trzeba pull
down zrobic ? RDY tez by warto sprawdzic.

Opieram się na informacjach z tej strony:
http://wilsonminesco.com/6502primer/RSTreqs.html
http://wilsonminesco.com/6502primer/MysteryPins.html
Jest tam wyraźnie mowa o pull-upach. Jedynie w przypadku pinu SO dość
enigmatycznie napisano o "podłączeniu do 5V", ale zakładam, że chodziło
właśnie o rezystor, a nie bezpośrednie połączenie.


Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.

Ok, tak zrobię w następnej kolejności. Po prostu byłem zdziwiony brakiem
jakiejkolwiek aktywności na magistrali. W przypadku 8080 działo się tam
dość sporo, pomimo braku jakichkolwiek elementów poza procesorem (z
przyległościami typowymi dla systemu na 8080). Tutaj tymczasem panuje cisza.

BTW w przypadku MOS6502 muszę stosować jakieś bufory szyny adresowej i
dwukierunkowy bufor szyny danych? Czy procesor poradzi sobie obciążony
pamięciami, dekoderem adresów i paroma peryferiami?


tutaj masz minimalistyczny komputer na 6502
http://searle.hostei.com/grant/6502/Simple6502.html

c.

J.F.
Guest

Wed May 30, 2018 7:03 pm   



Dnia Tue, 29 May 2018 20:47:50 -0700 (PDT), sczygiel@gmail.com
napisał(a):
Quote:
W dniu wtorek, 29 maja 2018 22:08:52 UTC-5 użytkownik J.F. napisał:
Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.

http://www.obelisk.me.uk/6502/reference.html#NOP
6502 to dosyc prosty cpu. tam raczej nie ma nic fikusnego.

Tylko sporo dziur w liscie instrukcji, a dzialaly ... ciekawie.

Quote:
chyba prosciej bedzie zaemulowac mu rom/ram przelacznikami i
taktowac recznie aby sie pobawic.

Dobrze znalazles NOP to EA.
Ale moze byc tez inny, np $DD - tylko 2 bity do wyzerowania, a rozkaz
CMP absolute,X
bedzie halasowal po magistrali.


Niestety - $00 to BRK - ale tez powinien halasowac, a $FF
niezdefiniowany. Ciekawy
http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes

INS *** (ISC)
This opcode INCs the contents of a memory location and then SBCs the
result from the A register.

Ale ... na jakims klonie moze nie dzialac.

J.

HF5BS
Guest

Wed May 30, 2018 8:07 pm   



Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:1ccnbqo35zufx$.1g5wrvhgaihf8$.dlg@40tude.net...
Quote:
Niestety - $00 to BRK - ale tez powinien halasowac, a $FF
niezdefiniowany. Ciekawy
http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes

INS *** (ISC)
This opcode INCs the contents of a memory location and then SBCs the
result from the A register.

Ale ... na jakims klonie moze nie dzialac.

Kolega z radia, rozmawiał kiedyś ze mną na ten temat właśnie, chcieli robić
właśnie, chyba jakiś symulator/emulator 6502/6510, różnią się obecnością w
tym drugim trzech nóg, pozwalających, poprzez bankowanie, zaadresować 512 kB
RAM. Zastanawiał się, czy zrobić to na czystych instrukcjach, czy przytulić
też te "niepisane". Doradziłem mu tę drugą opcję. Co dalej było, nie wiem.
Klon - najprostszy sposób właśnie, klona nawet uziemić, np. napisze cos w
stylu "processor JAM" (jeśli emulator), albo stanie na twardo jak dobry
człon przy dymaniu (jeśli fizyczny moduł). Albo program się nie wykona i
dobrze, jeśli programista to przewidzi. Powinienem mieć w swych zasobach
stary program do C64, demo muzyczne, które, jak się przy kopiowaniu źle
bajty przepiszą, (gdybam), robi szybki format dyskietki, jeśli ta jest w
napędzie, niszcząc dostęp do plików, zamazywany jest przy tym pierwszy
sektor katalogu.

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

HF5BS
Guest

Wed May 30, 2018 8:11 pm   



Użytkownik <sczygiel@gmail.com> napisał w wiadomości
news:c79b7415-a701-4500-83dd-a5f0f760f16c@googlegroups.com...
Quote:
Ale ... na jakims klonie moze nie dzialac.

O wlasnie, z jednej strony klony moga miec inna liste rozkazow
a z drugiej te rozkazy czasem calkiem ciekawe byly i widac jak
bardzo w pospiechu ten cpu byl wypychany na rynek.

I znów - przypuszczam, że odmiana z C64 i z C128(D), może mieć to różne, bo
dokładnie ten dam program, po uruchomieniu na C64 i C128 w trybie C64,
zachowuje się nieco inaczej. Samo z siebie się nie wzięło, choć może to
gdzieś w ROMie siedzi, a nie w procku?

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

Guest

Wed May 30, 2018 9:17 pm   



W dniu środa, 30 maja 2018 14:03:17 UTC-5 użytkownik J.F. napisał:
Quote:
Dnia Tue, 29 May 2018 20:47:50 -0700 (PDT), sczygiel@gmail.com
napisał(a):
W dniu wtorek, 29 maja 2018 22:08:52 UTC-5 użytkownik J.F. napisał:
Mial niezdefiniowane instrukcje, niektore chyba go wieszaly (na
szczescie bez HCF). Warto by opornikami na linii danych wymusic jakas
bezpieczna.

http://www.obelisk.me.uk/6502/reference.html#NOP
6502 to dosyc prosty cpu. tam raczej nie ma nic fikusnego.

Tylko sporo dziur w liscie instrukcji, a dzialaly ... ciekawie.


Jest na jutubie fajny film na temat jak badano ten procesor. I tam jest wyjasnione nie tylko jak dzialal ale tez dlaczego te niektore niepublikowane rozkazy dzialaly jak dzialaly i dlaczego mozna bylo im ufac ze zawsze beda dzialac tak samo.

Bardzo pouczajacy material!
W wieku 38 lat w koncu znalazlem wyjasnienie dlaczego procesor funkcjonuje.
Wczesniejsze materialy mowily o komponentach nie wyjasniajac co powoduje ze te komponenty ze soba wspolpracuja wtedy kiedy trzeba a jak nie trzeba to nie przeszkadzaja.

Bardzo pouczajace. Slowo klucz: dekoder rozkazow.

Quote:
chyba prosciej bedzie zaemulowac mu rom/ram przelacznikami i
taktowac recznie aby sie pobawic.

Dobrze znalazles NOP to EA.
Ale moze byc tez inny, np $DD - tylko 2 bity do wyzerowania, a rozkaz
CMP absolute,X
bedzie halasowal po magistrali.


A to juz zalezy od tego co chcemy uzyskac :)

Quote:

Niestety - $00 to BRK - ale tez powinien halasowac, a $FF
niezdefiniowany. Ciekawy
http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes

INS *** (ISC)
This opcode INCs the contents of a memory location and then SBCs the
result from the A register.

Ale ... na jakims klonie moze nie dzialac.



O wlasnie, z jednej strony klony moga miec inna liste rozkazow a z drugiej te rozkazy czasem calkiem ciekawe byly i widac jak bardzo w pospiechu ten cpu byl wypychany na rynek.

Bo mozna bylo go sporo przyspieszyc wiedzac jakie najpopularniejsze operacje sie wykonuje w praktyce.

Np. Ladowanie tej samej wartosci do kazdego rejestru (A, X, Y) lub ich zerowanie itp...

Z drugiej strony polecam serie Bena Eatera gdzie buduje cpu z ttl-i.
Bardzo pouczajace!

Guest

Wed May 30, 2018 10:30 pm   



W dniu środa, 30 maja 2018 15:11:21 UTC-5 użytkownik HF5BS napisał:
Quote:
Użytkownik <sczygiel@gmail.com> napisał w wiadomości
news:c79b7415-a701-4500-83dd-a5f0f760f16c@googlegroups.com...
Ale ... na jakims klonie moze nie dzialac.

O wlasnie, z jednej strony klony moga miec inna liste rozkazow
a z drugiej te rozkazy czasem calkiem ciekawe byly i widac jak
bardzo w pospiechu ten cpu byl wypychany na rynek.

I znów - przypuszczam, że odmiana z C64 i z C128(D), może mieć to różne, bo
dokładnie ten dam program, po uruchomieniu na C64 i C128 w trybie C64,
zachowuje się nieco inaczej. Samo z siebie się nie wzięło, choć może to
gdzieś w ROMie siedzi, a nie w procku?


A to juz trudno powiedziec. Trzeba by zdeasemblowac i zobaczyc co sie dzieje inaczej i wtedy sprawdzic czy to opcode czy wywolanie kernala.


HF5BS
Guest

Thu May 31, 2018 1:39 am   



Użytkownik <sczygiel@gmail.com> napisał w wiadomości
news:bb565c69-772e-4c3b-93b1-a37e93dd09a6@googlegroups.com...
Quote:
I znów - przypuszczam, że odmiana z C64 i z C128(D), może mieć to różne,
bo
dokładnie ten dam program, po uruchomieniu na C64 i C128 w trybie C64,
zachowuje się nieco inaczej. Samo z siebie się nie wzięło, choć może to
gdzieś w ROMie siedzi, a nie w procku?


A to juz trudno powiedziec. Trzeba by zdeasemblowac i zobaczyc
co sie dzieje inaczej i wtedy sprawdzic czy to opcode czy wywolanie
kernala.

Może spróbuję pod emulacją, może w emulowanych kompach też się z taką
różnicą zachowa?
Na razie Gugiel nic nie wskazuje, poza moim wpisem na newsach Smile
Ale sobie zobaczcie, przy okazji trafiłem na jakichs *.*, bo nie som
nowocześni i po fejzbukach i tfiterach nie łażom
(nie poprawiać, to powiedzmy, że sarkazm)
http://www.benchmark.pl/aktualnosci/ten-commodore-64-wciaz-dziala-to-polski-komputer-firmowy.html
No jak można, nie pchać się do chmury, nie mieć co najmniej
czterordzeniowego @ 3.4 GHz na pokładzie z minimum 4 Giga RAM, oraz W10 na
tapecie ? Razz
:)

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

PS Mogli by go raz na jakiś czas odkurzyć, żeby choć literki było widać... A
mimo to działa Smile

J.F.
Guest

Thu May 31, 2018 5:52 am   



Dnia Wed, 30 May 2018 12:17:41 -0700 (PDT), sczygiel@gmail.com
napisał(a):
Quote:
W dniu środa, 30 maja 2018 14:03:17 UTC-5 użytkownik J.F. napisał:
chyba prosciej bedzie zaemulowac mu rom/ram przelacznikami i
taktowac recznie aby sie pobawic.

Dobrze znalazles NOP to EA.
Ale moze byc tez inny, np $DD - tylko 2 bity do wyzerowania, a rozkaz
CMP absolute,X
bedzie halasowal po magistrali.

A to juz zalezy od tego co chcemy uzyskac Smile

Chcemy uzyskac objaw dzialania uP :-)

Wyskakujace kolejne adresy na magistrali beda dobrym objawem,
bardziej skomplikowane sekwencje tez.

Tak swoja droga, to sie zastanawiam co sie dzieje.
Zegar jest, zakladajac, ze pullupy sa odpowiednie, to powinien
dzialac. Czyta ... nalezy podejrzewac ze $FF, rozkaz nielegalny, ale
zalozmy, ze wykonywalny.
Co jeszcze moglo procka zatrzymac ?
Na poczatku czytal adres startu z ROM, zakladajac ze to $FFFF ...
chyba mu nie przeszkadza ze to ostatni bajt i spokojnie przeskoczy na
0000?

Mial ten procek rozkaz Halt ?
A moze mu trzeba podac impuls na reset ?

Tak sobie googlam
-6502C mial linie HALT,
-i mial instrukcje KIL
http://forum.6502.org/viewtopic.php?t=1406

J.

HF5BS
Guest

Thu May 31, 2018 10:42 am   



Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:fdye2gn1h0i0.jgm70almiplo.dlg@40tude.net...
Quote:
Mial ten procek rozkaz Halt ?
A moze mu trzeba podac impuls na reset ?

To nie warunkuje jednoznacznie powodzenia - zarówno pod Atari, jak i
Commodore, zapodanie sygnału reset, może jak najbardziej spowodować
wykonanie programu, uprzednio zdefiniowanego. Cóż za problem pod odpowiednim
wektorem umieścic procedurkę natychmiast zawieszającą procka? :)

Co do HALT - w każdym razie można procka odpiąć od magistrali - C128(D) jest
kompem dwuprocesorowym (przy okazji dwuekranowym). Celem odpalenia np. CP/M,
spod 8500 (odmiana 6502) odpala się program ładujący (*), a potem startuje
Z80 i działa CP/M. Jako, że oba wiszą na tych samych liniach (nie wiem, jak
z bankowaniem - 6510 i wyższe sprzętowo obsłużą do 512 k RAM (6502 musi
posiłkować sie zewnętrznym rejestrem)), to trzeba je jakoś odizolować.
Zastanawiam się, czy to nie w tym celu jest ta linia, musiałbym na rozpiskę
spojrzeć, bardzo dawno tego nie robiłem...

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

HF5BS
Guest

Thu May 31, 2018 10:58 am   



Użytkownik "HF5BS" <hf5bs@t.pl> napisał w wiadomości
news:peojhf$ub9$1@node1.news.atman.pl...
Quote:
spod 8500 (odmiana 6502) odpala się program ładujący (*), a potem startuje

Gwiazdka...

Quote:
Z80 i działa CP/M. Jako, że oba wiszą na tych samych liniach (nie wiem,
jak z bankowaniem - 6510 i wyższe sprzętowo obsłużą do 512 k RAM (6502
musi posiłkować sie zewnętrznym rejestrem)), to trzeba je jakoś
odizolować. Zastanawiam się, czy to nie w tym celu jest ta linia,
musiałbym na rozpiskę spojrzeć, bardzo dawno tego nie robiłem...

Miałem napisać, żeby przerwać autostart z dyskietki, i po uruchomieniu kompa
wydać komendę BOOT, wtedy zajmie to znacznie mniej czasu.
A jako, że przełączenie procków raczej jest programowe, bo to chyba program
zapodaje odpowiednią wartość do odpowiedniego rejestru, to pewnie i jakimś
POKE dało by się to zrobić ręcznie... Ciekaw jestem, czy i jakie programy,
dało by się przepisać z 6502 na Z80, aby wykorzystywać nadaj jego pozostałe
układy, jak oba chipy obrazowe, oraz chip dźwiękowy i magnetofon, bo
peryferia wiadomo, chodzą.

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

Irek.N.
Guest

Thu May 31, 2018 11:26 am   



Quote:
I znów - przypuszczam, że odmiana z C64 i z C128(D), może mieć to różne,
bo dokładnie ten dam program, po uruchomieniu na C64 i C128 w trybie
C64, zachowuje się nieco inaczej. Samo z siebie się nie wzięło, choć
może to gdzieś w ROMie siedzi, a nie w procku?

Miałem długo C128 i nie zaobserwowałem żadnych różnic. Pisałem w asm-ie
i to całkiem dużo, nawet zrobiłem sobie kontroler na 6502, pewnie z
jakimś błędem, bo nie wystartował od razu, a chwilę później dostałem
8048 i temat umarł. Ależ to dawno było... Sad
Jak jest chętny, to klisze i obsadzoną płytkę gdzieś mam.

Miłego.
Irek.N.

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

elektroda NewsGroups Forum Index - Elektronika Polska - Eksperymenty ze starymi procesorami - MOS6502

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map