-
Data: 2024-07-08 19:26:53
Temat: Portowanie CP/M
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Nadal walczę z projektem przeportowania CP/M 2.2 na mój komputerek
oparty o polski mikroprocesor MCY7880.
W ciągu ostatnich kilku tygodni udało mi się osiągnąć kilka mniejszych i
większych sukcesów:
- Dodałem bufor na liniach D0..D7 karty CF, co najwyraźniej zniwelowało
(a przynajmniej ograniczyło) problemy z komunikacja pomiędzy procesorem
i kartami. teraz system stał się kompatybilny z dużo większą liczbą kart.
- Udało mi się dodać logi zrzucane po RS232. Dzięki temu mogłem
sprawdzić, że parametry związane z operacjami dyskowymi (disk, track,
sector, dma) są ustawiane poprawnie.
- Poprawnie jest też liczony adres 128 bajtowego sektora (0..3) wewnątrz
512 bajtowego bloku odczytanego z karty.
- Zawartość odczytywana z karty jest konsystentna z jej obrazem,
wygenerowanym na komputerze (przynajmniej była w przypadku wszystkich
wyrywkowych testów)
- Sektory są poprawnie kopiowane do miejsca docelowego (wskazywanego
przez parametr ustawiany w procedurze SETDMA) z bufora karty CF.
- Po rozruchu systemu dosteję prompta i jestem w stanie wykonywać komendy.
Niestety, system wciąż nie działa stabilnie. Najważniejsze problemy
wyglądają następująco:
- Wykonanie komendy DIR daje niekonsystentne zachowanie. Czasem (rzadko)
wyprintuje ona zawartość dysku. Zwykle jednak printowany jest tylko
jeden plik (ASM.COM) albo następuje zawieszenie systemu.
- Polecenie TYPE z parametrem w postaci pliku tekstowego (np. ASM)
printuje tylko średnik, zamiast jego zawartości.
- Mogę załadować niektóre mniejsze programy, jednak nie działają one do
końca poprawnie (o ile działają w ogóle). Np. taki DDT czasem wywala się
przy starcie (wyświetlając w pętli tekst powitalny) albo tylko raz na
kilka(naście) wydanych poleceń "D" printuje kolejnego hexdumpa.
To co zrobiłem do tej pory:
- Upewniłem się czy stos jest wszędzie prawidłowo podmieniany i
przywracany oraz czy wszystkie PUSH-owane wartości rejestrów są
poprawnie z niego zdejmowane. Faktycznie po drodze znalazłem kilka
błędów, ale wydaje mi się, że wszystkie one zostały usunięte.
- Upewniłem się czy wartości rejestrów są przed użyciem zachowywane na
stosie i przywracane po użyciu. Tu też znalazłem kilka problematycznych
fragmentów, ale wydaje mi się, że wszystkie udało mi się wyeliminować.
- Dodałem print sprawdzający wwartość SP. Nie wygląda na to, żeby gdzieś
był problem z nadpisywaniem czegoś przez stos.
Dodatkowo nie sądzę, żeby problem był sprzętowy - komputerek był w
stanie stabilnie obsługiwać TinyBasic-a.
Ktoś ma pomysł jak to dalej debugować?
Następne wpisy z tego wątku
- 08.07.24 20:05 J.F
- 08.07.24 20:53 heby
- 08.07.24 22:20 Atlantis
- 09.07.24 09:42 Marek
- 09.07.24 09:15 Atlantis
- 09.07.24 09:47 Jacek Konieczny
- 09.07.24 10:25 Atlantis
- 09.07.24 10:42 Atlantis
- 09.07.24 11:21 J.F
- 09.07.24 12:26 Atlantis
- 09.07.24 22:57 Atlantis
- 10.07.24 07:28 J.F
- 10.07.24 09:03 Atlantis
- 11.07.24 09:31 J.F
- 11.07.24 09:59 J.F
Najnowsze wątki z tej grupy
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
Najnowsze wątki
- 2025-03-12 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-12 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-12 Warszawa => Programista C <=
- 2025-03-12 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-03-12 64 proc. kierowców zrobi dodatkowo maks. 500 m, aby przy okazji zatankować pojazd
- 2025-03-12 Warszawa => Generative AI Engineer <=
- 2025-03-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-03-12 Warszawa => Gen AI Engineer <=
- 2025-03-12 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-12 Gdańsk => PHP Developer <=
- 2025-03-12 China-Kraków => Production Coordinator / Representant Product Dev <=
- 2025-03-12 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-03-12 China-Kraków => Key Account Manager IT <=
- 2025-03-12 Warszawa => Java Developer <=
- 2025-03-12 Warszawa => Junior Digital Product Manager <=