forum speccy.pl
ZX Spectrum => PROGRAMOWANIE => Wątek zaczęty przez: skrzyp w 2016.09.26, 06:54:34
-
Cześć,
Szybkie pytanie i równie szybka odpowiedź (choć pewnie tylko w teorii).
Jakie mamy źródła przerwań w ZX Spectrum 128k, a także "ruskich klonach" jak ATM Turbo 2, Pentagon 1024, ZXEvo, poza v-blankiem?
Oraz, czy istnieją timery? Najfajniej byłoby podać na jakiś port wartość, która się dekrementuje i wywołuje IRQ po osiągnięciu 0, by nie obciążać procesora. Podobne bajery są w atarowskim POKEYu, ale tu chyba nie jest to tak oczywiste.
Zastanawiam się, bo być może będzie opcja na OS z preemptive multitasking dla maszyn ze 128k+ RAM, ale nic nie jest w 100% pewne.
-
W oryginalnym ZX Spectrum jest jedno źródło przerwań, na początku ramki. (Dodatkowo przerwanie może "skakać" pod wybrany adres, aczkolwiek nie zupełnie dowolny.)
-
No dobrze, to mnie nie rajcuje.
Potrzebuję jakiegoś innego odniesienia czasu które generuje przerwanie w określonym czasie lub co ustaloną liczbę cykli.
Wiem że ZXEvo ma zegarek, a niektóre klony posiadasją Z80 CTC. Niestety nie znam szczegółów, dlatego chciałbym by ktoś bardziej obeznany się wypowiedział.
-
W przypadku ZX Spectrum to chyba wszystko zostało już powiedziane ;-)
Co do klonów, to ich programowanie i ficzery są kompeletnie niezwiązane z ZXem. Więcej informacji o ZX Evolution z TS-Confem zawarłem w odpowiednim wątku w odpowiednim dziale (http://speccy.pl/forum/index.php/topic,2686.0.html)
-
Są, bo są to klony kompatybilne, przynajmniej te o których mówię.
Co do TSConfa to już się dowiedziałem, że ma timery, przerwanie na DMA, hblanki, vblanki, cuda wianki. A jak coś to mogą wprowadzić poprawki dla mnie.
Inna rzecz, że dostałem od Alone Codera procedury schedulera wielozadaniowości z wywłaszczeniem… właśnie na VBlank. Czego to Rosjanie nie wymyślą :)
Aktualnie siedzę w robocie to nie przestudiuję kodu, ale w domu muszę się za to zabrać, bo jest pełen dziwnych dziwności i komentarzy po wschodniemu :>
-
No dobrze, to mnie nie rajcuje.
Potrzebuję jakiegoś innego odniesienia czasu które generuje przerwanie w określonym czasie lub co ustaloną liczbę cykli.
Wiem że ZXEvo ma zegarek, a niektóre klony posiadasją Z80 CTC. Niestety nie znam szczegółów, dlatego chciałbym by ktoś bardziej obeznany się wypowiedział.
Jak chcesz zrobić wielowątkowy system operacyjny dla Spectrum, to zaprojektuj interfejs z pamięcią ROM oraz kością CTC :)
Ta ostatnia może przy okazji służyć jako bardzo prosty interfejs myszy. W podobny sposób zbudowany jest oryginalny interfejs AMX Mouse.
-
Okazuje się, że towarzysze radzieccy mają nawet dwa Timery w EVO jak i Pentagonie/ATM, rozwiązane dość fajnie. I to z maską.
Wyjaśnienie im czego potrzebowałem zajęło mi ponad 24 godziny, ale w końcu zrozumieli, dostałem nawet źródłami po głowie.