-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.157.25.67.74!n
ot-for-mail
From: "J.F" <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Procesor NMOS i karta CF
Date: Wed, 22 May 2024 18:21:21 +0200
Organization: news.chmurka.net
Message-ID: <z249a4uiz54f$.6ngpqdzppbwr$.dlg@40tude.net>
References: <v2ka94$2ncku$1@news.icm.edu.pl>
NNTP-Posting-Host: 157.25.67.74
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Injection-Info: news.chmurka.net; posting-account="jfoxwr";
posting-host="157.25.67.74"; logging-data="22456";
mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: 40tude_Dialog/2.0.15.1
Cancel-Lock: sha1:WcCD7fZ2rWXWJh1FwNzV1LHmAn0=
sha256:frnSaXvQ//ZrTYZuQF871ZOXFq3rGaV3naOwKKKKyvU=
sha1:MvnC8FaKNpvPY+LKS4MMLyLvZ5o=
sha256:7rt2/4v8JpWS094fMfLxZ9Pyn6MCldlKI4jBeiTzu1M=
Xref: news-archive.icm.edu.pl pl.misc.elektronika:791927
[ ukryj nagłówki ]On Wed, 22 May 2024 10:27:16 +0200, Atlantis wrote:
> Parę lat temu zacząłem budować prosty komputerek na polskim
> mikroprocesorze MCY7880. Zaczęło się od migania diodą i przesyłania
> znaków przez UART, ale na chwilę obecną mam już właściwie kompletny
> system z klawiaturą i monitorem, zdolny do uruchamiania Tiny Basica z
> pamięci EPROM. Docelowo jednak moim celem od początku było uruchomienie
> na tym CP/M 2.2 i ładowanie programów z dysku (w tej roli podpięta
> bezpośrednio do magistrali karta CF, pracująca w trybie 8bit).
Hm, o ile pamiętam, to CP/M miał sektory 128 Bajtów, a karta 512.
> Podczas pandemii prace nad projektem nieco spowolniły, ale ostatnio
> powróciłem do niego. Na chwilę obecną mam już działający bootloader,
> który pozwala na załadowanie programu do pamięci RAM. Działa to mniej
> więcej w następujący sposób:
>
> 1. Program podejmuje próbę zainicjowania karty CF, pobiera strukturę z
> informacjami i wyświetla na ekranie jej nazwę.
> 2. Program odczytuje pierwszy sektor karty CF i sprawdza, czy określone
> bajty mają wartości, których można się spodziewać po MBR w stylu MS-DOS.
> 3. Program odczytuje i wyświetla na ekranie tablicę partycji (adresy i
> rozmiary poszczególnych partycji).
> 4. Program wyświetla menu, pozwalając użytkownikowi wybrać bootowanie z
> karty albo uruchomienie Tiny Basica z EPROM-u.
> 5. Jeśli użytkownik wybierze bootowanie z CF, program sprawdza czy
> pierwsza partycja ma odpowiedni rozmiar. Jeśli tak, pobiera jej adres i
> ładuje pierwszych 16kB do RAM-u (zaczynając od adresu 0x0000).
> 6. Program wykonuje skok bezwarunkowy pod adres 0x0000.
> 7. Jeśli karta CF nie zostanie poprawnie zainicjowana lub nie powiedzie
> się któryś z wspomnianych testów, uruchamiany jest od razu TinyBasic.
>
> Takie podejście pozwala mi dość łatwo wgrywać na kartę testowe programy
> - wystarczy wrzucić plik bin za pomocą dd:
>
> dd if=source.bin of=/dev/sdx1 bs=512
Na linuxie to robisz?
Hm, nie jestem pewien, czy tak można, w pierwszym sektorze partycji
powinny być określone dane w DOS/Windows. Jeli ich nie ma ... ciekawe,
co zwariuje.
> Podczas wstępnych testów miałem problem z niektórymi modelami karty CF.
> O ile struktura z nazwą odczytywała się zawsze poprawnie, to karta użyta
> początkowo (wszystkie egzemplarze tego samego modelu, bodajże SanDisk
> 32MB) dawała dziwne rezultaty podczas próby odczytu MBR-a/tablicy
> partycji. Co kilka prób pojawiały się przekłamania wartości i jakieś
> dziwne przesunięcie o kilka bajtów w buforze. Kolejna karta (jakaś
> przemysłowa WD 256MB) działa już o wiele lepiej i to właśnie jej używam
> obecnie podczas testów.
Do sprawdzenia - nie powinno być takich cudów.
A jesli są, to gdzieś jest błąd :-)
> O ile MBR jak dotąd ładuje się zawsze poprawnie, to jednak ze dwa razy
> rzucił mi się w oczy dziwny błąd. Jak wspominałem, program testowy to
> krótka pętla printująca z opóźnieniem wartość hex jednego bajtu
> (konkretnie 0xFA). Wykonywany kod wykorzystuje gotowe procedury,
> zapisane w pamięci EPROM, tak wiec składa się on zaledwie z kilku
> wywołań CALL, poprzedzonych ładowaniem wartości do rejestrów. Testując
> program od kilku dni już dwa razy zauważyłem sytuację, kiedy wykonywał
> się on znacznie szybciej - zupełnie jakby przekłamana została wartość
> odpowiadająca za czas trwania pętli opóźniającej. Trochę mnie to dziwi,
> bo byłoby to dość specyficzne przekłamanie, które pojawiło się dwa razy.
>
> Trochę mnie to jednak niepokoi, bo jeśli problemy pojawiają się przy
> ładowaniu tak krótkiego programu, to tym bardziej mogą pojawić się przy
> próbie załadowania całego CP/M (gdy już przygotuję niskopoziomowe
> procedury I/O).
>
> Zacząłem trochę czytać i analizować inne podobne projekty retro i widzę,
> że w wielu z ich przed kartą CF stosowane są bufory 74HC245. Ludzie
> wspominają też o problemach i konieczności dobierania kompatybilnej
> karty w przypadku, gdy tego bufora nie ma. W dodatku ja w tej chwili
> pracują na prototypie zbudowanym na płytce uniwersalnej (przy pomocy
> dużej ilości kynaru), gdzie karta jest umieszczona na osobnym module,
> podpiętym za pomocą taśmy (jednocześnie powstaje nowsza wersja na
> trawionym PCB).
>
> Myślicie, że jest szansa na dobranie karty, która będzie poprawnie
> pracowała ze starym procesorem NMOS (tym bardziej, że raz dobrana karta
> zostanie tam na stałe i nie będzie podmieniana) czy jednak nieuniknione
> będzie zmodyfikowanie projektu i dodanie 74HC245?
Hm, a duży problem dodać?
Bo jeśli to ma rozwiązać problemy ... to dodać od razu :-)
J.
Następne wpisy z tego wątku
- 22.05.24 18:40 J.F
- 22.05.24 18:56 Atlantis
- 22.05.24 19:10 Atlantis
- 22.05.24 19:14 Atlantis
- 22.05.24 22:08 Atlantis
- 23.05.24 10:09 Atlantis
- 23.05.24 10:54 J.F
- 23.05.24 11:09 Atlantis
- 23.05.24 13:52 J.F
- 23.05.24 15:18 Atlantis
- 23.05.24 17:47 J.F
- 23.05.24 18:15 J.F
- 23.05.24 20:33 Atlantis
- 23.05.24 21:51 J.F
- 24.05.24 19:02 Atlantis
Najnowsze wątki z tej grupy
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
- Chińska Telefonia 6G - Chcą Nas Sterować Elektrycznie - Jak Kukiełki w Teatrze Lalek!!!
- RS-485 ale automatycznie dwukierunkowy
- Leżakujące SSD gubią po roku dane
- kolorowy e-paper
- Sterownik kotła CO praca PWM
- Jakie baterie A23 i LR44?
- OLED SSD1306 - degradacja?
- Który symulator AVR jest ,,prawilny"?
Najnowsze wątki
- 2025-12-11 To już efekt Żurka czy coś jeszcze GORSZEGO?
- 2025-12-11 Policjanci w mieście Łodzi zmierzą ci prędkość z błędem mniejszym niż producent w laboratorium :-)
- 2025-12-11 Warszawa => Senior Java Developer <=
- 2025-12-11 Kolejny prezent
- 2025-12-10 hameryka
- 2025-12-10 Tak im zależy na wlasnym kraju. :-(
- 2025-12-10 Czy "hipoteka przymusowa" podpada (powinna podpadać) pod ochronę immunitetem poselskim? [Ziobro]
- 2025-12-10 Żurek po raz kolejny wykazał jaki poziom reprezentuje
- 2025-12-10 Gdańsk => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppor
- 2025-12-10 Rzeszów => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-12-10 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-12-10 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-12-10 Przekroczenie uprawnien
- 2025-12-10 China => Production Coordinator / Representant Product Dev <=
- 2025-12-10 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=




2035 rok coraz mniej realny? Europa traci tempo w wyścigu o elektromobilność