1

Temat: graphics 11 i dziwny objaw dla INC $D01A

w tym trybie mamy 16 kolorów o tej samej jasności (GTIACTL=$C0) ustalanej na podstawie $d01a (712)

tylko kto mi wytłumaczy co się dzieje z kolorami gdy damy INC $D01A, niezależnie od zawartości rejestru $D01A część kolorów znika

w załączniku przykład obrazka, wersja pierwsza $D01A=2 i druga wersja dla której kolor $D01A ustawiony jest przez INC

Ostatnio edytowany przez tebe (2014-03-31 16:59:48)

Post's attachments

gr11_d01a.zip 52.39 kb, liczba pobrań: 21 (od 2014-03-31) 

Tylko zalogowani mogą pobierać załączniki.
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

2

Odp: graphics 11 i dziwny objaw dla INC $D01A

A $D01A da się w ogóle czytać? Chyba to jest write-only. Wtedy sytuacja jest jasna - INC $xxxx fizycznie odczytuje zawartość komórki zwiększa ją i zapisuje. Problem polega na tym, że przynajmniej na Altirze odczyt zawsze daje $0F niezależnie od tego co tam było wpisane. Więc efektem INC $D01A będzie wpisanie tam $10. Co obserwujemy (ciemnobrązowy). Jeśli chcesz operować INCiem to musisz użyć cienia.

Ostatnio edytowany przez wieczor (2014-03-31 18:57:24)

The problem is not the problem; the problem is your attitude about the problem

3

Odp: graphics 11 i dziwny objaw dla INC $D01A

wieczor napisał/a:

Więc efektem INC $D01A będzie wpisanie tam $10.

Zgadza się. W związku z czym mamy do dyspozycji 8 kolorów:
Piksel 0, 1 = kolor $10
Piksel 2, 3 = kolor $30
Piksel 4, 5 = kolor $50
Piksel 6, 7 = kolor $70
Piksel 8, 9 = kolor $90
Piksel $a, $b = kolor $b0
Piksel $c, $d = kolor $d0
Piksel $e, $f = kolor $f0

https://www.youtube.com/watch?v=jofNR_WkoCE

4

Odp: graphics 11 i dziwny objaw dla INC $D01A

offtopic mode: ja często używałem jako "decrunch effect", lub sygnalizowania różnych sytuacji w swoim kodzie testowym, właśnie inc $d01a lub lsr $d01a. Tak samo przy wykorzystaniu faktu iż operacje typu INC, DEC są operacjami Read-Modify-Write, gdy chciałem zablokować przerwania NMI stosowałem INC $d40e, aa gdy chciałem odblokować NMI to po prostu DEC $d40e :)

Ostatnio edytowany przez seban (2014-04-02 10:46:26)

5

Odp: graphics 11 i dziwny objaw dla INC $D01A

Dla kompletu: LSR $d40e włącza samo VBLKI.

https://www.youtube.com/watch?v=jofNR_WkoCE

6

Odp: graphics 11 i dziwny objaw dla INC $D01A

@Fox: fakt! :) ale jakoś nigdy tego nie zastosowałem :)

... i należy jeszcze dodać że przez błąd/uproszczenie state-machine w rdzeniu 6502, INC czy DEC tak naprawdę robią niepotrzebny jeden dodatkowy zapis do RAM, (Read->Write->Modify->Write), widać to przy LSR $D01A czy INC $D01A, żadna inna instrukcja nie zapewni tam takie ładnego jasnego "ciapa" szerokości dwóch cykli koloru :)

7

Odp: graphics 11 i dziwny objaw dla INC $D01A

Dwóch ... lub czterech cykli koloru. Odświeżanie trochę psuje efekt. Co ciekawe nie zadziała to na 65816, bo tam nie ma dwóch cykli zapisu tylko dwa odczytu przy takich instrukcjach, piszę to z pamięci, Pin pewnie by mógł potwierdzić.

pomidor

8

Odp: graphics 11 i dziwny objaw dla INC $D01A

no masz rację co do odświeżania, zapomniałem o tym :) A co do '816 to nie miałem bladego pojęcia o innym zachowaniu '816 przy INC/DEC.