1 Ostatnio edytowany przez Nahatzin (2007-01-16 20:31:37)

Na potrzeby mojego programu zrobiłem procedurę która zmienia tryb graficzny z 7 na 0 w języku maszynowym.
Działa na zasadzie:
Ustaliłem początek adresu programu ANTIC's Zmieniłem 30 piewszych bajtów wartość na 2 bez pierwszych 6. W następnych 80 bajtach wstawiłem wartość 0. Zmieniłem adres początkowy pamięci ekranu.

W chwili wykonywania programu obraz zaczyna migać. Kiedy zaś powraca do Basic'a to wszystko wraca do normy. Z góry dziękuję za pomoc.

2 Ostatnio edytowany przez laoo/ng (2007-01-16 20:58:15)

Metoda dość osobliwa :)

Powody migania przychodzą mi do głowy dwa:
1. gdzieś tam jest druga DLista, która jest aktywna co drugą ramkę
2. wpisałeś zero także do instrukcji synchronizacji z ramką (JVB)

Powrót do BASICa odnawia DLkę więc zaprzestanie migania nie jest niczym dziwnym.

na więcej nie mam pomysłu...

3

ZTCP, to 30 linii w GR. 0 nie mieści się na ekranie i zrywana jest synchronizacja. Nawet jeśli jednak tyle się zmieści, to następne 80 pustych linii dopełni dzieła zniszczenia. ;)

Nie lepiej grzecznie włączyć GR.0 przez JCIOMAIN, albo spreparować własne Display Listę i pamięć ekranu, a potem podać adres pierwszej z nich przed adres 560?

Zawsze mam rację, tylko nikt mnie nie słucha.

4

No nie wiedziałem nic o JCIOMAIN a z preparowaniem to nie przyszło mi do głowy ale i tak nigdy tego nie robiłem. A wracając do mojej procedury to jak zrobiłem te linijki w tr.0 (dokładniej 24 o ile pamiętam) to muszę tuż po tym napisać intrukcję schynchronizacji? Sory za lamerskie pytania.

5

DL musi kończyć się JVB, aby obraz nie tracił synchronizacji. Od adresu docelowego tego skoku ANTIC będzie przetwarzał DL w następnej RAMce (o ile nie zmieni się odpowiednich rejestrów w przerwaniu VBL). Więcej info znajdziesz chociażby w atariki

6

Oki dzięx za pomoc mimo lamerskich pytań. Powinienem se teraz poradzić.