eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPortowanie CP/MPortowanie CP/M
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED.cdo179.neoplus.adsl.tpnet.pl!no
    t-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Portowanie CP/M
    Date: Mon, 8 Jul 2024 19:26:53 +0200
    Organization: ICM, Uniwersytet Warszawski
    Message-ID: <v6h7gt$11nrq$1@news.icm.edu.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Mon, 8 Jul 2024 17:26:54 -0000 (UTC)
    Injection-Info: news.icm.edu.pl;
    posting-host="cdo179.neoplus.adsl.tpnet.pl:83.30.164.179";
    logging-data="1105786"; mail-complaints-to="u...@n...icm.edu.pl"
    User-Agent: Mozilla Thunderbird
    Content-Language: en-US, pl-PL
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:792724
    [ ukryj 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ć?

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: