-
Data: 2024-05-22 18:21:21
Temat: Re: Procesor NMOS i karta CF
Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
Najnowsze wątki
- 2025-03-04 Prunt drogi!
- 2025-03-04 Warszawa => Frontend Developer (Angular13+) <=
- 2025-03-04 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-04 Warszawa => Senior ASP.NET Developer <=
- 2025-03-04 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-03-04 Teraz kolej na studentów
- 2025-03-03 Re: Czy to była Polska Dywizja Waffen SS? [SS Galicja]
- 2025-03-03 Narkotyki na Uniwersytecie
- 2025-03-04 Zwrot towaru i kasy od sprzedawcy a zmiana plastiku
- 2025-03-03 Szaleństwo w BOS-iu - 8,1% :D
- 2025-03-03 a Ty jak się zachowasz w godzinie próby?
- 2025-03-03 nie naprawiam więcej telewizorów
- 2025-03-03 Białystok => Gen AI Engineer <=
- 2025-03-03 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-03 Olsztyn => Sales Specialist <=