-
Data: 2018-06-02 08:35:30
Temat: Re: Eksperymenty ze starymi procesorami - MOS6502
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 01.06.2018 o 09:08, Atlantis pisze:
> On 01.06.2018 08:43, cezar wrote:
>
>> Jezeli chcesz zostac przy MOS technology to praktycznie najlepiej wziac
>> schemat VIC 20 lub C64
>
> Nie planuję budować repliki konkretnego urządzenia z epoki. To ma być
> projekt o walorach edukacyjnych, budowany dla frajdy. Chciałbym więc
> samodzielnie zaprojektować dekoder adresów i peryferia, a potem
> przystosować jakiegoś BASIC-a do pracy z tym sprzętem. Tak samo, jak
> zrobiłem w przypadku mojego projektu z wykorzystaniem MCY7880.
>
> Tak BTW czy w przypadku systemu 6502 istnieje jakiś argument za
> umieszczaniem EPROM-u w górnej części przestrzeni adresowej? W przypadku
> komputerów opartych na 8080/8085/Z80 ma to sens o tyle, że CP/M wymaga
> RAM-u zaczynającego się od adresu 0x0000. Wiąże się to jednak z pewna
> komplikacją - dodatkowa logika musi zapewnić start procesora od
> właściwego adresu.
>
> Dla 6502 nie było CP/M, jednak czy istnieje jeszcze jakiś inny argument
> za takim rozwiązaniem? Nie zamknę sobie jakiejś drogi umieszczając EPROM
> na początku przestrzeni adresowej?
>
Nie tyle argument co konieczność. Na adresach 0000-00FF jest tzw. strona
zerowa pełniąca rolę czegoś w rodzaju 256 rejestrów. Czyli w tym
obszarze musi być RAM. Rozkazy operujące na tej stronie mają krótsze
mnemoniki i działają szybciej. Teoretycznie można by z nich zrezygnować
w programie, ale "utrata" adresowania indirect (adres bazowy w dwóch
sąsiednich komórkach na stronie zerowej) może być bolesna. Następny
obszar bez którego raczej się nie obejdziesz to stos pod adresami
0100-01FF. Następny problem, to wektory na końcu przestrzeni adresowej:
NMI $FFFA/$FFFB
RESET $FFFC/$FFFD
IRQ/BRK $FFFE/$FFFF
Jeśli w tym obszarze umieścisz RAM, to na jaki adres będą wskazywać
wektory po włączeniu zasilania?
Najprostsze systemy z 6502 budowałem z kostką EPROM 2716 i statycznym
RAM-em 6116. Dekoder adresu, to jeden inwerter. Sygnał /CS pamięci RAM
był podłączony bezpośrednio do A15, a /CS EPROMu przez inwerter do A15
Dawało to efekt wielokrotnego powtarzania tego samego 2 kilobajtowego
obszaru w przestrzeni adresowej procesora, ale to w niczym nie przeszkadza.
Oczywiście z takim systemem bez układów I/O ciężko będzie pogadać ;-)
Więc trzeba będzie jakiś dekoder chociaż dwóch najstarszych linii
adresowych (np połówka 74LS155) aby stworzyć cztery obszary adresowe.
CS0 0000-3FFF dla pamięci RAM
CS1 4000-7FFF dla układu I/O
CS2 8000-BFFF dla układu I/O
CS3 C000-FFFF dla pamięci EPROM
Z powodu kiepskiej dostępności układów peryferyjnych 65xx w tamtym
czasie, pożeniłem z 6502 dość popularne układy ze stajni Intela.
port równoległy i8255 i timer i8253. Trzeba sztucznie wytworzyć sygnały
IOW oraz IOR przez bramkowanie sygnału R/W z wyjściem zegarowym FI2.
Tą samą metodą możesz dołączać proste peryferia w postaci przerzutników
D (lub latch) oraz buforów trójstanowych.
--
Pozdrawiam
Grzegorz
Następne wpisy z tego wątku
- 02.06.18 10:26 jacek pozniak
- 02.06.18 10:33 jacek pozniak
- 02.06.18 12:00 Atlantis
- 02.06.18 12:15 J.F.
- 02.06.18 17:43 Atlantis
- 02.06.18 18:53 Grzegorz Kurczyk
- 02.06.18 19:45 Sebastian Biały
- 02.06.18 21:03 Andrzej
- 02.06.18 21:50 Grzegorz Kurczyk
- 02.06.18 22:20 J.F.
- 03.06.18 00:11 Atlantis
- 03.06.18 01:12 s...@g...com
- 03.06.18 09:08 Atlantis
- 03.06.18 09:57 Sebastian Biały
- 03.06.18 19:51 Michał Baszyński
Najnowsze wątki z tej grupy
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
Najnowsze wątki
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=
- 2025-02-10 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2025-02-10 Dlaczego takie preferencje banków?
- 2025-02-10 Białystok => iOS Developer (Swift) <=
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=
- 2025-02-10 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-02-10 Gliwice => Ekspert IT (obszar systemów sieciowych) <=