-
Data: 2024-07-09 10:42:22
Temat: Re: Portowanie CP/M
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 9.07.2024 09:47, Jacek Konieczny wrote:
> Mnie to brzmi jakby jakieś funkcje twojego BIOSu kłóciły się z
> przerwaniami, które ten sam BIOS obsługuje - gdzieś brak synchronizacji
> w dostępie do wspólnych danych.
Tyle tylko, że tam tak naprawdę nie ma zbyt wielu rzeczy wspólnych.
Obsługa przerwań (realizowana za pomocą 8259) jest inicjowana przy
rozruchu sprzętu, jeszcze przed odpaleniem bootloadera. Potem w
kluczowych momentach, przy starcie CP/M co najwyżej wyłączam przerwania
globalnie.
Procedury obsługujące przerwania siedzą w EPROM-ie, który jest na stałe
dostępny w przestrzeni adresowej. Na chwilę obecną są to:
1. UART RX - obecnie niezaimplementowane - po prostu wraca
2. UART TX - obecnie niezaimplementowane - po prostu wraca
3. Klawiatura - pobiera jeden bajt z rejestru klawiatury i zapisuje jego
wartość w zmiennej. Potem wraca. W tej chwili to jedyne dane pobierane w
przerwaniu, które są także używane w BIOS-ie.
4. TIMER 8253 - Inkrementuje szenstastobitową zmienną "systick" i
przeładowuje przerwanie pisząc do rejestru układu. Potem wraca. Na
chwilę obecną ta zmienna nie jest używana w BIOS-ie.
5. RTC - czyści flagę przerwania w układzie przerwania, potem
inkrementuje szesnastobitową zmienną "rtctick" (zliczającą sekundy).
Potem wraca. Na chwilę obecną zmienna ta nie jest używana w BIOS-ie.
6. Przerwanie układu graficznego (TMS9918). Na chwilę obecną nieużywane
- po prostu wraca.
7. Wektory dwóch nieużywanych przerwań po prostu wracają.
> Druga sprawa - czy przerwanie w nieodpowiednim momencie nie psuje
> krytycznego timingu w operacjach I/O? Może akurat wstawia jakąś
> milisekundę opóźnienia gdzie nie powinno? I np. gubisz jeden sektor, bo
> w buforze już kolejny wylądował.
Teoretycznie to mogłoby powodować problemy w przypadku fizycznego dysku
z obracającym się tależem. Ale czy przypadkiem karta CF nie powinna być
odporna na takie zachowania? Ona po prostu wystawia flagi i dane na
magistralę.
Poza tym w chwili obecnej (eksperymentalnie) wyłączyłem globalnie
przerwania w procedurze odczytu z dysku. To powinno zupełnie rozwiązać
problemy o takiej genezie.
Następne wpisy z tego wątku
- 09.07.24 11:21 J.F
- 09.07.24 12:26 Atlantis
- 09.07.24 22:57 Atlantis
- 10.07.24 07:28 J.F
- 10.07.24 09:03 Atlantis
- 11.07.24 09:31 J.F
- 11.07.24 09:59 J.F
- 12.07.24 19:14 Atlantis
- 12.07.24 20:45 J.F
- 13.07.24 07:59 Atlantis
Najnowsze wątki z tej grupy
- "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają