1

Temat: Antic - odczyt pamięci dla szerokiego ekranu

Po ustawieniu szerokiego ekranu, jedna linia w trybach $0D, $0E, $0F zajmuje 48 bajtów pamięci ekranu.
Ale Antic odczytuje tylko 47 bajtów z pamięci ekranu.
Tak wynika z materiałów, które posiadam, a przed chwilą potwierdziłem to eksperymentalnie.

To co się dzieje z tym 48-ym bajtem? :)
I po co on jest w pamięci ekranu, skoro i tak go nie będzie widać?

Ostatnio edytowany przez nosty (2014-11-23 00:44:51)

2

Odp: Antic - odczyt pamięci dla szerokiego ekranu

Wyobraź sobie ile to jest 47+47 (+47..) w systemie dwójkowym.
Teraz wyobraź sobie to samo dla 48+48 (+48..) :)
To taka moja teoria. 48 jest okrągłą liczbą.
A odpowiadając na twoje pytanie, NIE WIEM. Ale podejrzewam że jest poprostu ominięty w celach rachunkowych.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

3

Odp: Antic - odczyt pamięci dla szerokiego ekranu

Hej!

Nosty zajrzyj do tego dokumentu: Altirra Hardware Reference Manual

strona 59:

http://dl.dropboxusercontent.com/u/44199/an_dma.png

z tego wynika jako 48-my odczyt masz tzw. "virtual DMA", potem wracasz na stronę 52 i masz opis "Virtual DMA".

Virtual DMA cycles

Playfield DMA cycles that would occur on cycle 106 or later are blocked by the hardware and do not occupy the
bus or stop the 6502. However, ANTIC still reads the data bus and stores or interprets the data on those cycles.
This usually results in 6502 bus activity being loaded as playfield data. In rare cases, it is possible for a refresh
cycle to overlap with a virtual DMA cycle, resulting in floating bus data being used.

Teraz chyba wszystko powinno być  już jasne :)  Generalnie w sekcji 4.13 (DMA Timing) powinno być wszystko co będzie Cię interesować :)

Ostatnio edytowany przez seban (2014-11-23 12:40:50)

4

Odp: Antic - odczyt pamięci dla szerokiego ekranu

Przy obrazie szerokim lub normalnym z płynnym przesuwem poziomym linia zajmuje 48 bajtów w pamięci. To nie znaczy, że te 48 bajtów jest pobierane lub wyświetlane.

Pobierane jest maksymalnie 47 bajtów, przy większych wartościach HSCROL jeszcze mniej. Widać to na obrazku zamieszczonym przez Sebana - żółte prostokąty to bajty pamięci, które nie są pobierane. Jak widać opłaca się ustawiać wysokie wartości HSCROL, wtedy jest więcej cykli dla 6502.

Na obrazie szerokim ANTIC wyświetla ZTCP 44,5 znaku GRAPHICS 0 - w porównaniu z obrazem normalnym jest to jeden znak więcej z lewej strony i 3,5 znaku z prawej. Natomiast GTIA generuje więcej - np. możesz wyświetlić duszki na obszarze, w którym ANTIC zawsze generuje ramkę.

Ostatnio edytowany przez Fox (2014-11-24 09:58:03)

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

5

Odp: Antic - odczyt pamięci dla szerokiego ekranu

Wielkie dzięki.
Po prostu wcześniej zafixowałem sobie procedurę na wartości parzyste i to "47", które mi wyszło, wprawiło mnie w lekkie osłupienie.
Zacząłem drążyć, ale dalej niedowierzałem źródłom węsząc pomyłkę ;)
Teraz wszystko jasne.