-
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
- Jakie baterie A23 i LR44?
- OLED SSD1306 - degradacja?
- Który symulator AVR jest ,,prawilny"?
- Disk on Module, czym to odczytać?
- Pasta ochronna? Lutownicza?
- zagadka pneumatyczna
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
Najnowsze wątki
- 2025-11-21 musimy kupować 25% elektryków czyli MILION samochodów co roku. Jak nie to będzie KARA ;[)
- 2025-11-21 Warszawa => Architekt rozwiązań (Workday) - Legal Systems <=
- 2025-11-21 Białystok => Spedytor Międzynarodowy (handel ładunkami/prowadzenie
- 2025-11-21 Jakie baterie A23 i LR44?
- 2025-11-21 jesienne paragony grozy
- 2025-11-21 Affinity Studio za darmo
- 2025-11-20 OLED SSD1306 - degradacja?
- 2025-11-20 Rzeszów => International Freight Forwarder <=
- 2025-11-20 Warszawa => Senior IT Recruitment Consultant <=
- 2025-11-20 Warszawa => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Serv
- 2025-11-20 Warszawa => Programista Dynamics 365 Commerce/POS <=
- 2025-11-20 Warszawa => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-11-20 Kraków => Production Coordinator / Representant Product Dev <=
- 2025-11-20 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-11-20 Warszawa => Microsoft Dynamics 365 Finance Consultant <=




Ile kosztują tanie mieszkania w polskich metropoliach?