forum speccy.pl

ZX Spectrum => PROGRAMOWANIE => Wątek zaczęty przez: skrzyp w 2016.09.26, 06:54:34

Tytuł: Timery i przerwania
Wiadomość wysłana 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.
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: ZX Freeq w 2016.09.26, 08:02:03
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.)
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: skrzyp w 2016.09.26, 09:36:14
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ł.
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: Tygrys w 2016.09.26, 12:01:22
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)
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: skrzyp w 2016.09.26, 13:52:56
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 :>
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: trojacek w 2016.09.28, 03:04:05
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.
Tytuł: Odp: Timery i przerwania
Wiadomość wysłana przez: skrzyp w 2016.09.28, 05:53:37
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.