Temat: 1,77 MHz przy wlaczonym ekranie...

Dyskutujac na ircu o ukladach graficznych Atari przypomniał mi sie pewien pomysl sprzed lat - dyskutowalismy kiedys z Thomasem/Excellent na temat pamieci RAM o podwojnym dostepie, tzn. takiej gdzie sa 2 magistrale danych i 2 magistrale adresowe - wiem, ze cos takiego istnieje, ale jak i z czym sie to je nie mam pojecia - moze ktos z was zna temat ?

A co ma to wspolnego z Atari ? Otoz to, ze gdyby taka pamiec zainstalowac w Atari, to wtedy moglibysmy wyeliminowac haltowanie CPU przez Antic-a, gdy ten pobiera dane obrazu do wyswietlania, a co za tym idzie uzyskac prawie pelna predkosc Atari przy wlaczonym ekranie - pisze prawie, bo nie wiem czy w gre wchodza pamieci statyczne czy tez dynamiczne, te ostatnie bowiem wymagaja odswiezania, no ale i tak daloby sie zauwazyc zysk predkosci, gdybysmy zamiast 65 cykli na linie otrzymali 105 niezaleznie od szerokosci ekranu, trybow graficznych, obecnosci duszkow itp. zyskalibysmy wtedy przyspieszenie rzedu 60% przy programach, ktore pracuja z wlaczonym ekranem, a w wypadku pamieci statycznych eliminujac odswiezanie (i praktycznie eliminujac sygnal HALT) Atari dostaloby "kopa" na poziomie 75% !!!
Oczywiscie przy tym rozszerzeniu moznabyloby zastosowac przelacznik, ktory by przywracal "stary" tryb pracy (np. w celu zgodnosci z programami, gdzie ma miejsce cyklowanie).

Mimo, ze dawno nie bawilem sie elektronika, to jestem gotow podjac ten temat i opracowac takie rozszerzenie, tylko warunkiem sa jakies sensowne informacje na temat tych pamieci, oczywiscie zabieram sie zaraz za googlowanie, ale jezeli ktos jest w stanie wspomoc mnie jakimis informacjami, to bylbym wdzieczny.

Chyba troche przesadzilem z tymi procentami... zapomnialem, ze nie wszystkie 312 linie sa wyswietlane ;) Te niewyswietlane maja 105 taktow ;) Przy standardowym wyswietlaniu 192 linie * 40 bajtow na linie te liczby beda wynosic odpowiednio nie 60% i 75% lecz 30% i 40% - sadze, ze i tak warto ;)

2

Odp: 1,77 MHz przy wlaczonym ekranie...

niemam pojecia o jakich pamieciach piszesz ale mam juz nazwe tej dopaly" "projekt f7" ;-)

to bylby przelom

http://atari.pl/hsc/ad.php?i=1.

3

Odp: 1,77 MHz przy wlaczonym ekranie...

nareszcie ktos to napisal wprost, 65 cykli w linii, a ja meczylem sie i szukalem tych 105, az w koncu wyszlo to co juz tutaj napisal macgyver

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

4

Odp: 1,77 MHz przy wlaczonym ekranie...

hmm, tak niesmialo wspomne, ze wedlug autora mapy pamieci v.2.0 wydanej przez ??? :-) to jest 61 cykli powiedzmy ze sie machnal o kilka cykli, ale skad wzielo sie to 105 ?

http://atari.pl/hsc/ad.php?i=1.

5

Odp: 1,77 MHz przy wlaczonym ekranie...

Na kazda linie przypada teoretycznie 114 cykli zegara... 105 to jest ilosc cykli na linie, ktora zostaje po odjeciu 9 cykli, podczas ktorych CPU jest HALT-owany przez ANTIC-a w celu odswiezenia RAM-u.

6

Odp: 1,77 MHz przy wlaczonym ekranie...

jako ze prowadze ostatnio boje, aby program g2f obslugiwal zmiany w rastrze, tablicuje wszystkie zmiany cykl -> zmiana koloru i taki programik
wyplodzilem, nie ukrywam ze podpatrywalem GED-a :)


;- startujemy 4 linie przed pierwsza linia ekranu

loop lda $d40b    ;docyklowanie linii
cmp #2
bne loop
:4 sta $d40a
:4 inc 0                    ; do poczatku pierwszej linii

;-- line 1        ;zaczynamy zmieniac

lda 0
lda #$ce
ldx #$24
ldy #$d4
sta $d01e        ;tutaj bedzie jedyna zmiana pozostalych rejestrow
stx $d016
sty $d017
lda #$0a
sta $d018
lda #$f8
ldx #$06
ldy #$16
sta $d016
stx $d017
sty $d018
lda #$38
sta $d016
lda #$46
sta $d017
lda 0        //9*2+9*4+6=60

; sta $d40a                ;to bedzie w przyszlosci, zmieni sie docyklowanie
; :4 inc 0

;-- line 2

lda 0                         ;itd...
lda #$ce
ldx #$24
ldy #$d4
sta $d01e
stx $d016
sty $d017
lda #$0a
sta $d018
lda #$f8
ldx #$06
ldy #$16
sta $d016
stx $d017
sty $d018
lda #$38
sta $d016
lda #$46
sta $d017
lda 0
...
...
...
jmp loop

ta procka powoduje 8 zmian w linii, w kazdej linii ta sama zmiana, czyli docyklowanie dziala, kazda linia to 60 cykli, moze dlatego ze zmiana kolorow w linii zaczyna sie chwile przed nowa linia, czyli na koncu poprzedniej

jednak w stosunku do GED-a sa to troche inne miejsca

lda #$..
ldx #$..
ldy #$..
sta $d016
stx $d017
sty $d018

w/w uklad rozkazow jest po to aby zmiana rejestru dala sie zauwazyc,  jesli by zmieniac

lda #$..
sta $d016
lda #$..
sta $d017

niektory zmiany nie zadzialalyby
l

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

7

Odp: 1,77 MHz przy wlaczonym ekranie...

Tebe: 60 cykli na linie... ja tego nie neguje ;)
pytanko: a masz moze wlaczone sprity w tym samym czasie ? :PPP

Maly hint: wlaczone DMA dla pociskow wymaga pobrania jednego bajtu (dane dla czterech pociskow, to jeden bajt) na linie. Wlaczone DMA dla graczy wymaga pobrania czterech bajtow na linie. Skoro DMA realizuje ANTIC, to znaczy, ze CPU dostaje HALT-y...  i jakie wnioski sie nasuwaja ? ;P

8

Odp: 1,77 MHz przy wlaczonym ekranie...

oczywiscie, pociski, duchy, wszystko wlaczone, grafika na znakach, bo ta procka ma dzialac z Graph2Font

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

9

Odp: 1,77 MHz przy wlaczonym ekranie...

Mimo, ze dawno nie bawilem sie elektronika, to jestem gotow podjac ten temat i opracowac takie rozszerzenie, tylko warunkiem sa jakies sensowne informacje na temat tych pamieci, oczywiscie zabieram sie zaraz za googlowanie, ale jezeli ktos jest w stanie wspomoc mnie jakimis informacjami, to bylbym wdzieczny.

W książce ?Mikroprocesor 6502 i jego rodzina? - Henryk Kruszyński, Krzysztof Kulpa od strony 66 opisane jest rozwiązanie z dostępem w przeciwfazie. Książkę można ściągnąć z http://www.cconline.com.pl/

Balois

10

Odp: 1,77 MHz przy wlaczonym ekranie...

balois: ale to dotyczy samego odswiezania pamieci, ktore samo z siebie nie pożera aż tak dużo czasu CPU - lwia czesc pochlania czytanie danych obrazu i to w pierwszej kolejnosci jest czynnikiem godnym eliminacji.

11

Odp: 1,77 MHz przy wlaczonym ekranie...

a jak sprawa wyglada w zwyklej 130XE? jesli w danym momencie Antic pracuje w pamieci podstawowej a CPU w pamieci rozszezonej to czy procesor jest zatrzymywany przez Antica?

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

12

Odp: 1,77 MHz przy wlaczonym ekranie...

Tak, obydwa procesory korzystaja z tego samej samej przestrzeni adresowej 64 kB (16 bit) i sa podlaczone do tej samej magistrali, wiec w danym momencie moze tylko jeden z nich sie odwolywac. A RAM powyzej 64 kB RAM (130XE i wyzej) jest podmieniany w obrebie tych 64kB, wiec to sie niczym nie rozni pod tym wzgledem. Aby uniezaleznic CPU od ANTIC-a nalezy oddzielic ich magistrale.

13

Odp: 1,77 MHz przy wlaczonym ekranie...

dual port ram
niestety klopotliwe..
byc moze jakies kostki video ram sie nadadza - ogolnie takie jest przeznaczenie tego typu pamieci - framebuffer

przechodze na tumiwisizm

14

Odp: 1,77 MHz przy wlaczonym ekranie...

Candle: jakies szczegóły techniczne ? symbole ? producenci ? czy np. kosci SOYO to maja ?

15

Odp: 1,77 MHz przy wlaczonym ekranie...

sorki
troche mnie wcielo
wyglada to tak - jedynym sposobem zeby antic nie haltowal procesora jest puszczenie go na przeciwfazie i zastosowanie pamieci statycznej o 2x szybszym czasie dostepu (100ns powinno byc juz sporo na wyrost, 300ns starczy :D)
dual port ram jest trudna do zdobycia - jako ze usilowalem zaprojektowac nowy sterownik graficzny to troche sie naszukalem informacji o takich kosciach.. bez skutku

przechodze na tumiwisizm

16

Odp: 1,77 MHz przy wlaczonym ekranie...

w przeciwfazie czyta czesc danych uklad VIC w c64 - to dobre rozwiazanie, zwlaszcza, ze tam oprocz danych znakow i fontow musi jeszcze czytac pamiec kolorow (buuu - nie ma tego w atari) i duzo danych spriteow (lepszych niz w atari). W atarynce to raczej odpada, bo trzeba by przeprojektowac uklad generacji RAS / CAS (freddy) lub zamienic pamiec na statyczna. Poza tym puszczenie odczytu danych przez Antic w przeciwfazie odwrociloby takze faze komunikacji z rejestrami tegoz (a moze sie myle?), a to duuuzy klopot - rzecz ogolnie niewarta zachodu. Tym bardziej, ze GTIA tez jest zwiazany z ANTICEM i to tak naprawde on czyta dane duszkow.  Nalezaloby rozwazyc jedynie uklad graficzny z wlasna niezalezna od 6502 pamiecia lub faktycznie DUAL PORT SRAM

pomidor

17

Odp: 1,77 MHz przy wlaczonym ekranie...

Electron: moze ty masz jakies materialy na temat DUAL PORT SRAM ? Jakas opisy konkretnych ukladow, przykladowe schematy etc ?

18

Odp: 1,77 MHz przy wlaczonym ekranie...

tja :] nie bede cytowal samego siebie :D
tosz pisze ze statyczna, komunikacja z antikiem zostala by na fi2, gtia to samo, gtia nie czyta zadnych danych, wszystko robi antic i wysyla po 3bitowej magistrali do gtia
takie rozwiazanie ma jedna tycia wade - mianowicie numen nie bedzie chodzil...  ani nic co jest docyklowane
co wiecej zeby antic nie zatrzymywal procesora trzeba by mu bylo noge halt odlaczyc, a w tym wypadku to jak widzicie zatrzymanie procesora do czasu rozpoczecia rysowania nastepnej linii? kolejny przelacznik? sliiczne

przechodze na tumiwisizm

19

Odp: 1,77 MHz przy wlaczonym ekranie...

Candle: a co stoi na przeszkodzie zeby byl przelacznik wybierajacy jeden z dwoch trybow pracy: NATIVE i TURBO - gdzie w pierwszym przypadku beda respektowana wszelkie opoznienia (odswiezanie pamieci, pobieranie obrazu) w celu zachowania zgodnosci - jezeli bedzie juz gotowy projekt, to wrzucenie takiego przelacznika nie bedzie wielkim problemem, nie ?

20

Odp: 1,77 MHz przy wlaczonym ekranie...

chodzi tylko o moje poczucie estetyki :D
poza tym przeszkod nie ma
zamiast 150 przelacznikow z tylu obudowy wole jeden szeregowy eeprom

przechodze na tumiwisizm

21

Odp: 1,77 MHz przy wlaczonym ekranie...

To moze warto pomyslec o czyms w rodzaju PC-towego Setup-u i tam programowo ustawiac wszystko: Stereo, owe Turbo, konfiguracje bankow RAM etc ? ;) Wtedy tylko przy starcie naciskamy Del jak na grzybie i mamy pelna mozliwosc konfigurowania ;)

22

Odp: 1,77 MHz przy wlaczonym ekranie...

nie del :] pomysl jeszcze :D
jakie klawisze maja swoje wlasne linie na klawiaturze i nie sa multiplexowane z zadnymi innymi?

przechodze na tumiwisizm

23

Odp: 1,77 MHz przy wlaczonym ekranie...

Ej - a nie lepiej spróbować jakąś zardzewiałą "fałgę" podłączyć? - tylko ISĘ skołować i jazda! - ja bym chętnie coś takiego wypróbował... :)

I Ty zostaniesz big endianem...

24

Odp: 1,77 MHz przy wlaczonym ekranie...

Candle: a co to ma za znaczenie - i tak trzebaby bylo pomyslec o przerobkach w systemie, np. wyp* SELF TEST i w to miejsce wrzucic "Setup-a", a wtedy juz programowo mozna przypisac klawisz - skupiam sie teraz wokol realizacji od strony programowej, nie sprzetowej.

25

Odp: 1,77 MHz przy wlaczonym ekranie...

ja rownierz, i wole zrobic to tak, by bylo transparentne dla systemu.. tak jak freezer

przechodze na tumiwisizm