Intel 8080 kit

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Intel 8080 kit

Postautor: gaweł » poniedziałek 16 lut 2026, 01:31

I8080kit_illu00.jpg


Intel 8080 kit

Ostatnio naszła mnie ochota na konstrukcję bazująca na pierwszym mikroprocesorze, który zrobił sporą rewolucję w elektronice, mianowicie Intel 8080. Nie cieszył się on u mnie dużą popularnością z racji dosyć istotnych przywar: zasilanie trzema napięciami. Z drugiej strony w szufladzie walają mi się dwa zestawy tego cuda (sam procek 8080, generator sygnału zegarowego 8224 oraz kontroler systemu 8228). Zamiast zasilić stertę śmieci to może coś z niego zrobić.
I tak się zaczęło. Moja koncepcja jest taka, żeby dać możliwość eksperymentowania w oparciu o ten zestaw. Dosyć istotnym założeniem jest by konstrukcja w miarę możliwości była na poziomie jego czasów świetności. Oczywiście nie może to dotyczyć pamięci, bo jakoś nie mam ochoty poświęcić hektara laminatu na zbudowanie pamięci bazując na 2114 czy choćby na 6116 oraz EPROM 2716, poza tym aż takiego worka układów nie mam, więc stanęło na wykorzystaniu bardziej współczesnych układów. Niezbędnym wyposażeniem jest UART. Jakoś za 8251 nie przepadałem, więc alternatywą stał się układ 8250. Finalnie zdecydowałem się 16C450, bo z 8250 to zostało mi 3 układy z odzysku (więc nie ma gwarancji, że są sprawne). W dodatku owych 16C450 w szufladzie wala się ponad 50 sztuk, więc na początek idzie trochę ulepszona wersja 8250. Ponieważ oba układy (8250 oraz 16C450) są wystarczająco kompatybilne, później będzie można sprawdzić jakość owych 8250. W skład zestawu wchodzi jeszcze moduł LCD (zastosuję 4-wierszowy) i jakaś klawiaturka. By mieć poczucie upływu czasu w kicie jest 8253, jest potrzebny, to w planie jest poganianie klawiatury w przerwaniach od czasu. Do obsługi przerwań zastosowałem wręcz starożytne rozwiązania oparte na 8214. Dla użytkownika dodałem port 8255, dla którego nie przewiduję wykorzystania w sensie systemowym.
Oprócz założeń sprzętowych chodzi mi po głowie by w EPROM zawrzeć jakieś proste API dla programów użytkownika. Bazowałoby to przykładowo na instrukcji RST 7, gdzie w rejestrach procka podane byłyby odpowiednie parametry a RTS 7 byłoby takim ekstrakodem do systemu. Kwestia zestawu funkcji nie jest jeszcze zamknięte, ale w pewnością będzie tam odczyt klawiatury oraz pisanie po LCD-ku.
Wymyśliłem jeszcze mechanizm, by istniała możliwość puszczać program użytkownika krokowo. W kwestii softu jest sporo do zrobienia.

Schemat

Schemat blokowy to:
I8080kit_illu01.png

W obrębie jednostki centralnej jest podstawowy standardowy wariant (3 układy: 8080, 8224 i 8228). Tu nie za bardzo jest pole manewru, bo te układy muszą być połączone jak Intel sobie zażyczył. Co prawda kilka szczegółów można sobie zignorować. I tak całość nie ma możliwości dodawania waitstatów (pamięci są dosyć współczesne i się wyrobią), porty też. Drugie to nie przewiduję wykorzystania DMA, więc logika HOLD jest banalnie prosta (uziemiona).
Do obsługi przerwań jest zalecana przez Intel konstrukcja z użyciem 8214 jako kontrolera przerwań oraz 8212 jako „składacz” rozkazu do obsługi przerwania. W tej konstrukcji wykorzystywane są warianty instrukcji RST n. Część numerków jest wyjęta, bo przykładowo RST 7 jest przeznaczone na ekstrakody, więc nie da się takiego wygenerować sprzętowo. Inne „zaślepione” są przewidywane do „niecnych” celów, ale to później. Udostępnione są dwa przerwania użytkownikowi (INT 1 oraz INT 2 → aktywne zgłoszenie zerem). Również jest przyblokowane RST 0, bo ono jest tożsame z resetem. Dodatkowo jest przerywadło od czasu (8253) i generator chip selectów do portów. Część jest produkowana klasycznie (ze stanem aktywnym zerem) ale niektóre wymagają jedynki: taki jest LCD i rejestry 47HCT574, które mają wpis zboczem narastającym, więc niektóre przechodzą przez negator.
I8080kit_illu02.png

Kolejna część to pamięci. Wykorzystana jest cała przestrzeń adresowa procka. Sam EPROM jest lokowany w pierwszych 16 kilo pamięci. Dalej jest RAM (dwa układy po 32 kB), z czego jeden jest wykorzystany w połowie. Koncepcyjnie to będzie, że system (EPROM) będzie korzystał z RAM z przedziału 16k .. 32k. Zaczynając od 32 k do końca będzie przestrzeń dla użytkownika (to oznacza, że użytkowy program musi mieć ORG 32k, bo zakładam, że programy będą pisane w ASM (kompilera C na tego procka to chyba nie ma).
I8080kit_illu03.png

Dalej są peryferale „optyczne”: moduł LCD wpięty jako port o dwóch komórkach (dane/sterowanie). Możliwy jest zapis jak i odczyt, więc nie powinno być większych problemów z jego obsługą (nie trzeba będzie odmierzać dziwnych interwałów czasu by LCD-ek nadążał się z robotą). Jest również rejestr 8-bitowy do sterowania LED-ami.
I8080kit_illu04.png

Kolejne elementy to port 8255 (dla użytkownika) oraz szeregowy 16C450 do ładowania kodu. Ten ma w sobie generator prędkości transmisji, więc parametry transmisji szeregowej do komputera (z kompilatorem asm) jest kwestią otwartą.
I8080kit_illu05.png

Kolejnym niezbędnym elementem jest obsługa klawiatury w układzie matrycowym. Jest tu rejestr do zapisu numeru rzędu i łącznik 3-stanowy do odczytu kolumn. Całość pogina w obsłudze przerwań.
I8080kit_illu06.png

Zasilanie systemu to zasilacz dający +12V wpinany do powerjack’a. Jest tu popularny stabilizator impulsowy, który z czegokolwiek robi +5V. Z tych +5V kolejny stabilizator impulsowy robi +12V (nie musi być przesadnie mocny). Jak wiadomo, procek wymaga jeszcze -5V. To napięcie uzyskane jest z układu ICL660. Wydajność prądowa nie musi być jakaś kosmiczna, zasila jedynie samego procka, który nie bierze dużo prądu (więc jest anemik ICL660).
W czasie montażu mogą się zdarzyć jakieś errory z lutami, więc wyjście każdego stabilizatora ma odcięcie jumperkiem (lub inną zworką) od całej reszty. Ponoć brak -5V procek bardzo źle znosi. Można co prawda nie włożyć układów w podstawki by uruchomić wszystkie stabilizatory napięcia, ale jak będą wlutowane to może stworzyć się problem. Tak, więc robimy zworki jak wszystkie napiątka są dobre.
I8080kit_illu07.png

No i została matryca klawiaturowa. Uznałem, że 24 klawiszy powinno wystarczyć (są zorganizowane jako 4 x 6). Określiłem sobie również wstępne określenie funkcji tych klawiszy: 16 do cyfr szesnastkowych oraz 8 do poleceń (wydaje mi się, że da się z kontekstu wywnioskować czy to jest przycisk funkcyjny czy przykładowo Enter, gdyż kilka ma podwójne znaczenie).
I8080kit_illu08.png


PCB

Takiej konstrukcji raczej nie da się zrobić na pająka lub zdrutować uniwersałkę, więc zaprojektowałem PCB. Wszystkie elementy są na stronie TOP
I8080kit_illu09.png

z wyjątkiem jednego złącza do klawiatury (od spodu płytki matrycy klawiatury).
I8080kit_illu10.png

Przyszła płytka PCB no i poszła w ruch lutownica.
I8080kit_illu11.jpg

Nawet nie zrobiłem wielu błędów, miałem tylko trochę problemów z -5V (robiło mi się -2,2 V), ale po wymianie kondów jest wszystko OK. Sam procek jest nawet dosyć piecykowaty, no ale nie ma się czemu dziwić.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

tapy
User
User
Posty: 134
Rejestracja: niedziela 14 kwie 2019, 17:09
Kontaktowanie:

Re: Intel 8080 kit

Postautor: tapy » poniedziałek 16 lut 2026, 09:47

"Fajna zabawka", ja nigdy nie miałem dość odwagi by cofać się dalej niż do 8085, więc szacunek za to 8080.
Rzeczywiście, o programowaniu w C dla tego procesora można zapomnieć, ale jest sporo dobrego software obsługującego 8080 (np. PL/M, PL1,...). Co prawda pewną przeszkodą może być przyjęte mapowanie pamięci, ale dla chcącego... :D. W sumie, mając te 64kB RAM można by pomyśleć o przełączniku wyłączającym ROM i instalacji CP/M 2.2 lub bliższym z tej epoki ISIS.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » poniedziałek 16 lut 2026, 11:50

tapy pisze:Co prawda pewną przeszkodą może być przyjęte mapowanie pamięci, ale dla chcącego... :D.


Długo myślałem nad tym. Kiedyś robiłem podobne rzeczy na Z80, gdzie EPROM przepisywał się do ostatnich 16k pamięci i później był odłączany pozostawiając już jedynie RAM w obrębie całej przestrzeni adresowej. W tym przypadku obsługa przerwań trafiłaby nawet tych systemowych w obszar programu użytkowego i to byłaby kicha. Więc jest jak jest...

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » wtorek 17 lut 2026, 15:40

Nadeszła ta chwila, włączam prąd


Każda wiedza teoretyczna jest mało warta, więc czas włączyć prąd. Napięcia zasilając są wporzo, więc pełna obsada układów i POWER ON.
W pierwszej kolejności sprawdziłem działanie generatora taktującego. Jak procek nie jest właściwie napędzany, to sam z siebie nic nie zrobi, nie to jest leniwy. Przy braku inspiracji do działania buja sobie w obłokach.
W pierwszej kolejności to FI2TTL i tu się okazuje, że jest git.
i8080kit_ilu101.png

W układzie jest wlutowany kwarc 20 MHz (choć na schemacie przewidywałem 18 MHz). Wiadomo, że 8224 dzieli częstotliwość przez 9, więc z owych 20 MHz wg kalkulatora powinno wyjść 2.22 MHZ i tyle zaraportował oscylek. I amplituda jest dobra: dwie kratki, czyli coś koło 4 V. Następny pomiar to samo FI2.
i8080kit_ilu102.png

Kształt jest taki sam, co nie powinno dziwić, tylko amplituda jest znacząco inna. Ponad 2 działki przy 5 V na działkę daje 12 V, co jest właściwe. Kolejny sygnał zegarowy, to FI1.
Znacząco inne wypełnienie z amplitudą 12 V. Jest dobrze.
i8080kit_ilu103.png

Włożyłem w podstawkę czysty EPROM (czysty zawiera same FF hex), co oznacza, że procek wykonuje instrukcję RST 7. Powinny wystąpić odczyty pamięci (bo pobranie rozkazu) i zapisy do pamięci (bo RST odkłada na stos adres powrotu) oraz nie powinno być żadnych akcji z portami. No i wyszła dziwność. Kontroler 8228 pokazuje cuda: oscylek pokazuje na wszystkich pinach żądania dostępu do pamięci i portów zero. No to prawie geniusz: pisze i czyta jednocześnie po wszystkich możliwych zasobach. Z drugiej strony sam procek rzetelnie wystawia różne adresy i na szynie danych też są jakieś przebiegi. I tak głowiąc się nad zjawiskiem... może on jest w stanie HOLD, ale wtedy nie powinien generować adresów na szynie adresowej. I tak przyszła mi do głowy niespodziewana myśl: a może on nie jest w stanie dogadać się z kontrolerem 8228.
Wertowanie literatury i wyszło szydło z worka. Własne wizje nie koniecznie pokrywają się z wizją twórców. Ustalić na sztywno żądanie HOLD na zero, oznacza, że procek nie wejdzie w trzeci stan, co przy okazji poprzez HLDA sam 8228 będzie wiedział, że nie ma trzeciego stanu.
i8080kit_ilu104.png

Jest jeszcze jeden pin w 8228: BUSEN. W pierwszej wersji (powyżej: pin był w powietrzu, bo w bibliotece kicadowej był wpisany jako wyjście) nie potrzebowałem wykorzystywać tego sygnału. Rzeczywistość szybko prostuje ścieżki. Ten pin jest wejściem i oznacza, że układ 8228 aktywnie będzie sterował szynami. Prosta poprawka: podać GND na ten pin znacząco rozwiązała problem. No i wyjaśniło się dlaczego wszędzie było zero: jak wyjścia do sterowania pamięcią i portami są z trzecim stanie, przyłączone układy i bramki są typu HC i HCT, to nie ma komu wnieść „swoich 3 groszy” na te linie. Gdyby były zastosowane układy typu LS, to byłaby zagwozdkna na dłużej. Właściwe rozwiązanie to (wszystkie wcześniejsze schematy i PCB są już po korekcie):
i8080kit_ilu105.png

Poprawka:
i8080kit_ilu106.jpg

i jest dobrze: sygnał MEMR (8228, pin 24)
i8080kit_ilu107.png

oraz sygnał MEMW (8228, pin 26).
i8080kit_ilu108.png

Na pozostałych: IOR oraz IOW jest spokój (stały wysoki poziom). Teraz jest jak być powinno.
Obejrzałem sobie jeszcze sygnały zegarowe w 16C450. Częstotliwość 1.84 MHz jest zgodna z oczekiwaniem.
i8080kit_ilu109.png

Teraz można poczynić jakieś postępy softowe.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
phill2k
User
User
Posty: 294
Rejestracja: niedziela 18 paź 2015, 00:12

Re: Intel 8080 kit

Postautor: phill2k » środa 18 lut 2026, 20:30

Jak zawsze super inżynierska robota, gratulacje.
PCB zlecasz w Chinach, czy w kraju, niebawem będę zlecał wykonanie płytki, ale jako prototyp potrzebuję tylko jednej sztuki do testów, a nie min. 5 i szukam jakiejś "płytkarni" która za rozsądne pieniądze mi to wykona.

Awatar użytkownika
j23
Expert
Expert
Posty: 538
Rejestracja: czwartek 08 paź 2015, 18:40

Re: Intel 8080 kit

Postautor: j23 » czwartek 19 lut 2026, 15:00

Mnie najbardziej urzekła ta dokładność zaprojektowania PCB. Teraz widzę jak np. ładnie i dobrze zaprojektować matrycę. Niby gdzieś tam człowiek o tym czytał, uczył się, ale nie ma to jak zobaczyć dobry przykład na własne oczy (tzn. w/w zdjęcia).
Serio, respekt za podjęcie się tak karkołomnego zadania i pomyślne uruchomienie!
Pozdrawiam! J23
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » czwartek 19 lut 2026, 20:41

phill2k pisze:PCB zlecasz w Chinach, czy w kraju,


W pewnym sensie jest to kwestia potrzeb. Potrzebowałem jednej sztuki, więc ten jest krajowy. W chinach minimalne zamówienie wynosi 5 szt. W szufladzie mam jeszcze jeden zestaw prockowy 8080+8224+8228, więc sam rozumiesz. Co miałbym zrobić z pozostałych PCB.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » czwartek 19 lut 2026, 20:46

j23 pisze:Mnie najbardziej urzekła ta dokładność zaprojektowania PCB. Teraz widzę jak np. ładnie i dobrze zaprojektować matrycę. Niby gdzieś tam człowiek o tym czytał, uczył się, ale nie ma to jak zobaczyć dobry przykład na własne oczy (tzn. w/w zdjęcia).
Serio, respekt za podjęcie się tak karkołomnego zadania i pomyślne uruchomienie!
Pozdrawiam! J23

To przychodzi z wiekiem i liczbą popełnionych konstrukcji :D
Nie ma tak, że wszystko wychodzi bez błędów, ale każdy popełniony jest jakąś lekcją na przyszłość.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » niedziela 22 lut 2026, 20:57

Problemy dają się naprawić

Jeden z elementów systemu zabłądził i trafił nie tam gdzie jego miejsce. Było:
I8080kit_illu201.png

W tych uwarunkowaniach żadną miarą nie można się porozumieć. Po wykryciu zjawiska wrócił tam, gdzie jego miejsce.
I8080kit_illu202.png

Niestety to wygenerowało trochę problemów, jednak skalpel i kynar są skutecznym środkiem naprawczym.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » wtorek 24 lut 2026, 22:25

Najpierw powoli jak żółw ociężale,
Ruszyła maszyna po szynach ospale,


i8080kit_ilu300.jpg

Nie bez kłopotów, ale ruszyła maszyna. Zasilanie włączone na dłużej potrafiło całkiem mocno nagrzać mi cewkę indukcyjną w stabilizatorze +5V. Okazało się, że całość bierze troszkę ponad pół ampera prądu. Bidulka ceweczka jest na jakieś 250 .. 300 mA. Nie pomyślałem, że procek może być aż tak piecykowaty, własne wyobrażenia mogą okazać się nietrafione. W dotyku układ 8080 jest ciepły, ale nie gorący, podobnie z kontrolerem systemu. 3/4 prądu to bierze sam 8080 + 8224 + 8228 (około 480 mA), reszta to już niewiele: porty 8255 to CMOS, 16450 to CMOS i TTL z rodziny HCT. Kontroler przerwań z pewnością jest bipolarny. Na razie rozłączyłem zworkę od zasilania na +5V i podałem za zworkę właściwe napiątko z mocnego zasilacza. Reszta napięć jest produkowana z tych +5V. Coś później trzeba będzie wymyślić na tą okoliczność.
Napisałem prosty program:

Kod: Zaznacz cały

KBDRowOutput            .equ    080h
KBDColumnInput          .equ    088h
SerialPort8250          .equ    090h
ParallelPort8255        .equ    098h
Timer8253               .equ   0A0h
LEDRegister             .equ    0A8h
LCDDisplay              .equ    0B0h
Controller8214          .equ    0B8h
        mvi     a , 0
main_1
        push    psw
        out     LEDRegister
        lxi     b , 01000h
main_2
        dcx     b
        mov     a , b
        ora     c
        jnz     main_2
        pop     psw
        inr     a
        jmp     main_1

Im prostszy tym lepiej, by niepotrzebnie nie walczyć z wiatrakami. Program nawet zadziałał. Ponieważ operował pamięcią oraz portami, można uznać, że jest OK.
Działa tak:
I8080kit1.MOV
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » środa 25 lut 2026, 15:18

Test szarych komórek

Napisałem program testu pamięci RAM, całych 48k z przestrzeni od 16k do 64k (tam gdzie jest RAM). Oczywistym jest w tej sytuacji występuje brak zapisów do RAM danych istotnych z punktu widzenia algorytmu. Wejście do funkcji testowania jest poprzez skok jak również wyjście jest przez skok. Przy wykryciu problemu z RAM program w pętli robi demko na LED’ach. By było to widoczne, to konieczne jest odpowiednie opóźnienie. Ze względu, że występuje w dwóch miejscach, to ma symulowane call jako instrukcja jmp z symulowanym ret jako instrukcja pchl. Sam test to w pierwszej fazie zapis do każdej komórki RAM odpowiednio wygenerowanej liczby i następnie w drugiej fazie sprawdzenie, czy w komórce jest to co tam powinno być.

Kod: Zaznacz cały

DelayNoReturn                              ;procedure DelayNoReturn ( Interwal[BC] : word ;
                                           ;                          Return[HL] : word ) ;
                                           ;begin (* DelayNoReturn *)
DelNoR_0                                   ;
        dcx     b                          ;
        mov     a , b                      ;
        ora     c                          ;
        jnz     DelNoR_0                   ;
        pchl                               ;end (* DelayNoReturn *) ;
;*******************************************
RAMTestStartValue       .equ    1          ;
RAMTestStopValue        .equ    14         ;
RAMTestPhase            .equ    0DBh       ;
RamTest                                    ;procedure RamTest ;
                                           ;begin (* RamTest *)
        lxi     sp , Stack_top             ;
        mvi     a , RAMTestPhase           ; LEDRegister := RAMTestPhase ;
        out     LEDRegister                ;
        lxi     h , 8000h                  ;
        mvi     c , RAMTestStartValue      ;
RamTst_2                                   ;
        mov     b , c                      ;
        mov     a , b                      ;
        rlc                                ;
        rlc                                ;
        rlc                                ;
        rlc                                ;
        ani     0F0h                       ;
        ora     b                          ;
        mov     m , a                      ;
        inr     c                          ;
        mov     a , c                      ;
        cpi     RAMTestStopValue           ;
        jnz     RamTst_1                   ;
        mvi     c , RAMTestStartValue      ;
RamTst_1                                   ;
        inx     h                          ;
        mov     a , h                      ;
        ora     l                          ;
        jnz     RamTst_2                   ;
        mvi     a , RAMTestPhase ^ 0FFh    ; LEDRegister := RAMTestPhase ^ 0FFh ;
        out     LEDRegister                ;
        lxi     h , 8000h                  ;
        mvi     c , RAMTestStartValue      ;
RamTst_5                                   ;
        mov     b , c                      ;
        mov     a , b                      ;
        rlc                                ;
        rlc                                ;
        rlc                                ;
        rlc                                ;
        ani     0F0h                       ;
        ora     b                          ;
        cmp     m                          ;
        jnz     RamTst_3                   ;
        inr     c                          ;
        mov     a , c                      ;
        cpi     RAMTestStopValue           ;
        jnz     RamTst_4                   ;
        mvi     c , RAMTestStartValue      ;
RamTst_4                                   ;
        inx     h                          ;
        mov     a , h                      ;
        ora     l                          ;
        jnz     RamTst_5                   ;
        mvi     a , 0                      ; LEDRegister := 0 ;
        out     LEDRegister                ;
        jmp     Main                       ; Main ;
RamTst_3                                   ;
        mvi     a , 0AAh                   ; LEDRegister := 0AAh ;
        out     LEDRegister                ;
        lxi     b , 2000h                  ;
        lxi     h , RamTst_6               ;
        jmp     DelayNoReturn              ; DelayNoReturn ( 2000h , RamTst_6 ) ;
RamTst_6                                   ;
        mvi     a , 055h                   ; LEDRegister := 55h ;
        out     LEDRegister                ;
        lxi     b , 2000h                  ;
        lxi     h , RamTst_7               ;
        jmp     DelayNoReturn              ; DelayNoReturn ( 2000h , RamTst_7 ) ;
RamTst_7                                   ;
        jmp     RamTst_3                   ;end (* RamTest *) ;

Procek stanął na wysokości zadania i przeszedł test pamięci. Sztucznie wygenerowany błąd pamięci jako wpisanie gdziekolwiek w RAM liczby, która nie trafi się z algorytmu generowania danych do RAM wykonana pomiędzy końcem pierwszej fazy i początkiem drugiej fazy został rozpoznany i LED’owe demko zadziałało.
Kit I8080 jest sprzętowo zweryfikowany i można teraz zająć się stworzeniem całej reszty.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
j23
Expert
Expert
Posty: 538
Rejestracja: czwartek 08 paź 2015, 18:40

Re: Intel 8080 kit

Postautor: j23 » środa 25 lut 2026, 23:07

Bardzo fajnie się to prezentuje. Osobiście czekam na jakiś program wykorzystujący jakiś kontroler zewnętrznego wyświetlacza (czyli taki kontroler / karta graficzna), bo tu może być ciekawie, tylko nie jestem aż tak w temacie czy to da się. ;)
Programy w asemblerze to miód dla mojego oka. :)

Trzymam kciuki i kibicuję dalszych postępów! :like:

Pozdrawiam! J23
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1332
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Intel 8080 kit

Postautor: gaweł » czwartek 26 lut 2026, 10:44

No to wymaga jeszcze trochę pracy i czasu.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse


Wróć do „Retro”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość