eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaEksperymenty ze starymi procesorami - MOS6502 › Re: Eksperymenty ze starymi procesorami - MOS6502
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: