Komputerek CP/M na Z80 - problem z uruchomieniem

Złożyłem jakiś czas temu prosty komputer na Z80, wg tego projektu:

formatting link
Konstrukcja jest zaprojektowana w ten sposób, że można jej używać w roli jednopłytkowego komputera retro, obsługiwanego przez terminal. Można tez traktować go jako część systemu na magistrali kompatybilnej z RC2014. Docelowo planowałem dodać kilka kart rozszerzeń, testy zacząłem jednak od konfiguracji SBC.

Sytuacja na chwilę obecna wygląda następująco"

1) Płytka złożona w 100%, z użyciem układów z serii Z80 w wersji CMOS na 10 MHz. 2) Układy logiczne z rodziny 74xx w wersji HCT. 3) Układ taktowany generatorem kwarcowym 10 MHz, UART-y taktowane generatorem kwarcowym 1.8432 MHz. 4) Flash zaprogramowany oprogramowaniem RomWBW-v3.0.1, pobranym z GitHuba i skompilowanym. Konkretnie wykorzystany został plik EZZ80_std.rom, a więc wersja przygotowana specjalnie z myślą o tym komputerku. 5) Układ logiczny ATF16V8B zaprogramowany wsadem easy_z80_wdog.jed, próbowałem też easy_z80_no_wdog.jed 6) Niestety nie udało mi się kupić układu MAX693. Zastąpiłem go MAX691ACPE, który miałem w swoich zapasach. Lista elementów wymienia MAX691 jako "possible alternative". 7) Na szynie systemowej występuje prawidłowy sygnał UART_CLK. Jakis sygnał CPU-CLK także występuje, jednak nie jestem w stanie określić czy jest prawidłowy, bo 10 MHz to już za dużo dla mojego analziatora (tani, chiński na USB) - pokazuje coś wahającego się pomiędzy 8-12 MHz. 8) Jest aktywność na liniach A0-A15, D0-D7, RD, WR, MREQ i IORQ. 9) Linia RESET reaguje na wciskanie przycisku. Stan tej linii ma tez wpływ na zachowanie reszty systemu (m.in. stan linii adresowych). 10) Na liniach RX1/RX2 widać sygnały wysłane przez komputer połączony z tym SBC. 11) Na żadnej linii z linii TX1/TX2 nie ma aktywności. A po resecie powinna się tam pojawiać informacja powitalna/menu wyboru trybu pracy.

Ktoś ma jakiś pomysł co może być nie tak i jak to dalej debugować? Moją pierwszą myślą byłoby uszkodzenie Z84C4010, ale scalak pochodzi z zaufanego źródła (DigiKey).

Reply to
Atlantis
Loading thread data ...

Wsadź *dużo* mniejszy kwarc. Cięzko będzie coś diagnozować nie wiedziąc gdzie w programie kręci się cpu, warto by określić choć z grubsza, w jakiej okolicy wykonuje się kod.

Reply to
heby

Atlantis wrote on 23.01.2022 14:31:

Zmniejsz częstotliwość i koniecznie zorganizuj podgląd linii adresowych i danych - żeby wiedzieć gdzie program utyka. Tu masz fajny przykład wykorzystania arduino do podglądu szyny procka:

formatting link

Reply to
Zbych

Zabawa zabawą - ale po co właściwie odtwarzać CP/M? W czasach 8080/Z80 to oczywiście był osiągnięcie, ale teraz nawet nie działa się na dyskietkach tylko na krzemie. Są dostępne jakieś ciekawe programy? Bo jak pisać samemu na komputer, do którego i tak podłączasz terminal, to lepiej wziąć ATmegę czy STM32, a nawet 8051.

Reply to
Dawid Rutkowski

Zapytaj Microsoft ;)

Klimaty retro są czasami trudnie do zrozumienia. Wsadzić można i Pi, ale co z tego?

Reply to
heby

Ci złodzieje dostali za to kasę od głupiego ibm. I chodziło o odtworzenie systemu pracującego pid CP/M, tym prawdziwym od mistrza Kildalla. I zapewne nie chodzi o to, by sobie porobić PIP, tylko uruchomić jakiś program wymagający CP/M i o niedostępnym źródle.

Dlatego pytam, po co? Ja np. chciałbym PC-ta do pogrania w Tie Fighter oraz Magic Carpet. Z joystickiem moim! Tie Fighter wymaga myszki - a ja nie mam myszki działającej z mouse.com. Ma ktoś? PS/2 obsługiwał czy musi być szeregowa (trzeba będzie na ATmedze zrobić konwerter...)?

Reply to
Dawid Rutkowski

Ponieważ to hobby. Tego nie ogarnia się w kategoriach logiki.

Dzisiaj analizowałem dlaczego mój dump carta z Atari nie działa w emulatorze. Też tego nie mogę uzasadnić z poziomu pytania "po co?", a suweren uznał by to za jakiś problem psychiatryczny. Takie hobby.

Reply to
heby

Nie chodzi o logikę, czy o jakiekolwiek ocenianie, tylko o to, jak daleko ktoś ma zamiar hobbiować - czy chce porobić PIP czy jednak coś uruchomić z minimalną wartością dodaną - czy tylko stracić czas.

I czemu nie działał?

Reply to
Dawid Rutkowski

Bo dumper cartów (na Atari) dokłada własne śmieci do dumpu.

Reply to
heby

Tracenie czasu, jest w gruncie rzeczy sednem hobby.

Reply to
heby

A hobby może (choć nie musi!) być sposobem na nudę, czyli "zabijaniem" czasu.

PS. Kategorycznie zaprzeczam twierdzeniu, które kiedyś tu padło: "Nikt nie ma zbyt wiele wolnego czasu". W pewnych sytuacjach życiowych występuje nadmiar wolnego czasu i brak chęci do życia. Wtedy "tracenie czasu" na hobby (także, gdy nie tworzy ono niczego nowego) pozwala odgonić głupie myśli i żyć dalej, nawet gdy to życie wydaję się tylko bezsensowną egzystencją i powolnym umieraniem.

Reply to
stary grzyb

No dobra, pisałem przecież, że bez oceniania. Tylko proste pytanie - czy odtwarzanie systemu na którym zadziała CP/M - bo musi to być 8080-compatible (emulator na innym uC się nie liczy, to to samo co emulator na PC) - ma na celu cokolwiek więcej niż PIP? W sumie mogę zrozumieć chęć dotknięcia CP/M, jak człowiek nie miał okazji w młodości, bo np. był troszkę za młody (ja ze spectrum przeskoczyłem w 7. klasie na 386 - ale jeszcze z DOS i windows 3.1 - ale już nawet młodsi rok ode mnie bywali tacy, i to na EiTI PW, co komputera innego niż z min. windows 95 nie używali w życiu) - no ale tyle wolnego czasu to chyba dopiero na emeryturze będę miał.

Reply to
Dawid Rutkowski

Nie pierwsza to moja taka rada - spowolnij kwarc, i przeanalizuj co sie dzieje.

Co sugeruje, ze byc moze duzo działa.

Jak nie chcesz sie zagrzebac w analizatorze, to wpisalbym najpierw jakis prosty program testowy eprom. Fajnie by tez bylo podmienic eprom na emulator - przyspieszy testowanie.

A zworki do wyboru zegara UART wstawiles? zegary na wyjsciach CTC dobre? Predkosc UART prawidlowa ?

Nie wiem skad to podejscie, ze kosc uszkodzona. IMO - kosci uszkadzaja sie na koncu. Najpierw trzeba szukac innych powodow. A tu masz caly nieznany program, to powodow jest duzo mozliwych.

Jak tam bankowanie dziala? Zobacz co na wyjsciach U10 i U11

J.

Reply to
J.F

Tak swoja droga - byla masa "profesjonalnego" oprogramowania na CP/M ... tylko jak to teraz zdobyc? Chyba gdzies zaginelo w pomroce dziejow.

No i po co zdobywac - pobawic sie kompilatorem Cobola czy Dbase ?

J.

Reply to
J.F

W Internecie można bez problemu znaleźć oprogramowanie na wczesne systemy oparte na MC6800 (sam niektóre z tych programów uruchomiłem na samodzielnie złożonym komputerku na MC6802). Bez problemu można też znaleźć soft chociażby na Apple-I. Tak więc znalezienie oprogramowania pod CP/M nie powinno być problemem.

Z tego co widzę wśród miłośników retro system CP/M jest popularny między innymi dlatego, że komputer pod niego można dość łatwo złożyć ze standardowych i (jeszcze) relatywnie łatwo dostępnych elementów. Nie ma tam żadnych układów scalonych, które były projektowane na specjalne zamówienie producenta, a dziś trzeba by je odtworzyć w FPGA albo wyrzeźbić z TTL-i.

Do tego współczesne komputery pod CP/M można dość łatwo budować w sposób modułowy, bo tak były projektowane ich historyczne pierwowzory. Można zacząć od prostej karty z procesorem i pamięcią i potem dodawać kolejne moduły z I/O. Z tą różnicą, że nie trzeba już odtwarzać kompletnej magistrali S-100, bo z niektórych napięć i sygnałów można dziś zrezygnować. Stąd uproszczone implementacje, właśnie w rodzaju standardu RC2014.

Reply to
Atlantis

Tylko to komercyjne programy byly.

No dobra - moze hobbysci zdazyli zachowac, a producenta juz nie ma ..

Latwo, ale po co? :-)

J.

Reply to
J.F

Z tych samych przyczyn, co ludzie tracący życie, moczący kije ze sznurkiem w celu złowienia jedzenia. Uzasadnić się tego nie da, logicznie. Ale przeciez nie o to chodzi.

Reply to
heby

Hmm... Udało mi się skorzystać z nieco lepszego oscyloskopu cyfrowego. Potwierdza się większość obserwacji wykonanych analizatorem logicznym, jednak miałem też okazję sprawdzić sygnał zegarowy. Częstotliwość w porządku - minimalnie poniżej 10 MHz. Natomiast to co mi się w nim nie podoba to jego kształt - na pewno nie jest to prawidłowy przebieg prostokątny. Zbocza są bardzo nachylone - bliżej temu do trójkąta albo sinusoidy. Czy to może być przyczyną? Później wrzucę zdjęcie.

Zworek nie trzeba ustawiać. Płytka zawiera domyślne połączenia, puszczające sygnał UART_CLK, bezpośrednio generatora kwarcowego. Gdyby chcieć taktować UARTy za pośrednictwem CTC, trzeba by najpierw przeciąć te ścieżki i wstawić zworki.

Jest aktywność na linii CE układu Z84C4010, więc program próbuje się z nim dogadać.

Zauważyłem też, że układ czasem wpada w pętlę resetu, więc tak jakby watchdog się aktywował. Jednak nie dzieje się to zawsze - nie zaobserwowałem tego od razu i nie rzuciło mi się to też w oczy wcześniej, podczas testów analizatorem logicznym).

Reply to
Atlantis

Moze, ale moze tez byc to skutek kiepskiego oscyloskopu lub kabla.

J.

Reply to
J.F

COBOLa trochę wątpię, prędzej pascala. Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI wylatywało na błędzie dzielenia przez 0 ;>

Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając wywołań systemu. Pod Linuxem też piszą porządnie. A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale niekompatybilnych z ibm pc. I jakby soft był dobrze pisany, to byłoby jak z CP/M - działałby i na tamtych. A tu nie - musiał był klon (compaq wydał na napisanie kopii BIOSu milion - ówczesnych - dolców - to jest jakieś cudo, czy ibm tyle wydał na napisanie oryginału?), inaczej nie szło.

Reply to
Dawid Rutkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.