Cześć, Robię sobie w gierce zapis stanu na dyskietce. Pojawił mi się problem taki, że przy próbie otwarcia pliku robię "jsr CIOV", które już nigdy nie wraca...
Procedurki mam sprawdzone, więc to raczej nie ich problem.
Natomiast ten zapis wywoływany jest w arbitralnym momencie, tzn. na ekranie jest grafika z DLI, leci sobie muzyczka z RMT, VBI ma swoją procedurę obsługi. Podejrzewam, że na tym polu występuje jakaś zła interferencja, ale pierwsze eksperymenty (tzw. na pałę) nie przyniosły sukcesu.
Dlatego zapytuję, jak przygotować Atari OS do zapisu na dyskietce, które przerwania wyłączyć, a które włączyć, na co tam jeszcze zwrócić uwagę, itp., itd.
VBLKI (czyli natychmiastowe VBLK) obsługuje zegar od timeoutu SIO więc nie wolno go wyłączać - pewnie dlatego procedura CIO nie wraca. Przerwania powinny być odblokowane i CPU nie może mieć ustawionego I. Własne procedury VBLK ustaw sobie przez SETVBLV ($E45C) na opóźnionym VBLKD (7) i na końcu skocz (JMP) do procedury, która była wcześniej - tam będzie procedura OS-a która przepisuje cienie do rejestrów hardwarowych.