-
Data: 2024-05-22 17:57:57
Temat: Re: Procesor NMOS i karta CF
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Zrobiłem kilka dodatkowych testów i wyniki są... Zaskakujące...
Po pierwsze dodałem do kodu hexdump pierwszych 32 bajtów pamięci po
załadowaniu kodu z karty CF. Cały programik ma zaledwie 20 bajtów, więc
jest to wystarczająca liczba.
Zawartość binarnego pliku wygląda następująco: 21 FF 7F F9 C3 07 00 0E
20 CD 27 C5 3E FA CD B3 C5 C3 07 00
Zawartość pamięci, gdy program printuje znaki szybko: 21 FF 7F F9 C3 07
00 0E 20 CD 27 C5 3E FA CD B3 C5 C3 07 00 37 30 30 30 45 32 30 43 44 31
45 43
Zawartość pamięci, gdy program printuje znaki wolno: 21 7F F9 C3 07 00
0E 20 CD 27 C5 3E FA CD B3 C5 C3 07 00 37 30 30 30 45 32 30 43 44 31 45
43 35
Już na pierwszy rzut oka widać, gdzie leży sedno problemu - pomijany
jest drugi bajt o wartości 0xFF. Wbrew mojemu oryginalnemu założeniu, to
szybkie printowanie jest poprawnym wynikiem. Wolniejsze działanie
(chociaż występuje znacznie) częściej stanowi efekt działania błędu.
Wbrew moim podejrzeniom, błąd nie miesza w pętli opóźniającej, ale
sabotuje początkowe ustawienie wartości stosu:
0000 ORG 0000H
0000 21 ff 7f START: LXI H,STACK
0003 f9 SPHL
0004 c3 07 00 JMP LOOP
Wygląda więc na to, że w wyniku błedu do pary rejestrów HL trafia
wartość 0x7ff9, ale rozkaz SPHL nie jest wykonywany (bo kod interpretuje
jego wartość jako parametr instrukcji LXI). Wskaźnik stosu pozostaje
więc taki, jakim ustawił go bootloader. Dlaczego powoduje to wolniejsze
działanie programu? Nie mam pojęcia. Dlaczego ładowanie danych z karty
odbywa się z tak zadziwiająco powtarzalnym błędem? Też nie wiem...
Poeksperymentuję jeszcze z kilkoma kartami. Jeśli jednak nie uda mi się
znaleźć takiej, która będzie działała w 100% poprawnie, to trudno będzie
myśleć o eksperymentach z CP/M. Pomyślałbym, że to faktycznie wina
poziomów napięć i braku bufora. Tylko ta powtarzalność... Problem z
niedopasowaniem poziomów napięć mógłby powodować losowe przekłamania
bitów, ale nie konsystentne pomijanie całego bajtu...
Następne wpisy z tego wątku
- 22.05.24 18:21 J.F
- 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
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 <=