eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaEksperymenty ze starymi procesorami - MOS6502 › Re: Eksperymenty ze starymi procesorami - MOS6502
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!news.mixmin.net!border2.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed
    .neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.
    neostrada.pl.POSTED!not-for-mail
    Subject: Re: Eksperymenty ze starymi procesorami - MOS6502
    Newsgroups: pl.misc.elektronika
    References: <5b0de421$0$679$65785112@news.neostrada.pl>
    <1oxy4sr8fj9eg$.19avyxwt0zuxv.dlg@40tude.net>
    <5b0e3b4a$0$619$65785112@news.neostrada.pl>
    <pepgq4$rdf$1@node1.news.atman.pl>
    <5b10e195$0$691$65785112@news.neostrada.pl>
    <peqptm$pds$1$cezar91@news.chmurka.net>
    <5b10f0e2$0$31371$65785112@news.neostrada.pl>
    From: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
    Date: Sat, 2 Jun 2018 08:35:30 +0200
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
    Thunderbird/52.8.0
    MIME-Version: 1.0
    In-Reply-To: <5b10f0e2$0$31371$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=iso-8859-2; format=flowed
    Content-Language: pl-PL
    Content-Transfer-Encoding: 8bit
    Lines: 64
    Message-ID: <5b123ab2$0$618$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 37.8.223.76
    X-Trace: 1527921330 unt-rea-a-02.news.neostrada.pl 618 37.8.223.76:32842
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:732658
    [ ukryj 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: