atarionline.pl DLI, CHARSET i zmiana kolorów - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009
     
    Witam

    Jako że mało się znam na maszynówce, pytanie do bardziej doświadczonych kolegów:

    czy da się zrobić tak, by w DLI zbudowanym na trybach znakowych zmieniać jednocześnie co linię skaningową wartość wybranego koloru, a co linię znakową zestaw znaków ?

    Bo jak korzystam z procedurek z Bajtka/innych lubczasopism/, to albo mam jedno, albo mam drugie, albo wiesza mi się basic.

    I jaki zestaw (emulator, soft) polecacie dla kogoś ze znajomością basica, który chciałby się przesiąść na turbejza ?
    • 2:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009 zmieniony
     
    Acha, machanie kolorami wykonuję poprzez tabelę 2x192bajty i wlepianie po 2 wartości co linię do COLPF1S i COLPF2S.
    • 3: CommentAuthorxxl
    • CommentTime31 Dec 2009
     
    da sie tak zrobic, tylko ze bedziesz w przerwaniu przez 8 linii - nie wiem czy to jest ekonomiczne:
    zmieniasz zestaw i kolor, czekasz 1 linie np. sta wsync, zmieniasz kolor itd. po czym wychodzisz z przerwania.
    jesli to bedzie na calym ekranie to nie oplaca sie odpalac przerwania co linie znakowa tylko dac znacznik dli na poczatku listy displayowej i przejac kontrole nad rysowanym ekranem przerwaniem do konca dlisty. gdybys sie wysilil to moze w takim przerwaniu oprocz zmiany koloro zaszyc jakis program np obsluge wielu duszkow jakies fx na obrazie, dzwieku...
    • 4: CommentAuthorxxl
    • CommentTime31 Dec 2009
     
    COLPF1S i COLPF2S to o ile dobrze kojarze rejestry cienie, podczas dli musisz zmieniac kolory w rej.sprzetowych a nie ich cieniach.
    • 5:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009 zmieniony
     
    No właśnie chciałbym dołożyć taką obsługę jak tu ->link<- gdybałem, ale pierw wolałbym się nauczyć robić kolorowe plansze w hiresie i do tego kontrolowane spod turbobeja :-)

    //EDIT: 709, 710 - no właśnie, wg oznaczeń atriki to są rejestry colpfXs, a colpfX są na D0.
    • 6: CommentAuthorxxl
    • CommentTime31 Dec 2009
     
    ale w czym problem bo sie zgubilem? jesli chcesz zrobic jak pisalem wczesniej to nawet nie musisz wlaczac obslugi PMG przez antica, rejestry graf mozesz ladowac rowniez na przerwaniu bedziasz mial tak jakby rejestr sprzetowy pozycji pionowej sprita (nie bedzie trzeba tez kasowac starych pozycji duszka), dodatkowo mozesz sobie np ustalic rozdzielczosc pionowa nie tylko 1 i 2 ale np.8 przy czym kazdy taki pixel moze miec np tecze kolorow nalozona ;-) nie mowiac o oszczednosci 2kb na pamiec duszkow ktorej tu nie trzeba. fajnie to brznmi ale niestety pozere caly czas procesora od pierwszej do ostatniej lini grafiki.
    • 7:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009 zmieniony
     
    x
    • 8:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009
     
    XXL a znalazł byś czas na udzielenie małych korepetycji ?
    • 9: CommentAuthorxxl
    • CommentTime31 Dec 2009
     
    nie znam sie na turbobasicu
    • 10:
       
      CommentAuthorMaW
    • CommentTime31 Dec 2009
     
    ale się znasz na asm, a ja się w turbobeju będę podpierał asm do zrobienia wszystkiego, z czym sobie turbobej nie poradzi :-)

    Chodzi mi konkretnie tylko o wskazówki przy tworzeniu dwukolorowych duszków przy okazji zmiany kolorów linii i charsetu.
    • 11: CommentAuthorxxl
    • CommentTime31 Dec 2009
     
    to pisz tu o co chodzi, jak czegos nie bede wiedzial napewno ktos pomoze...
    • 12:
       
      CommentAuthorMaW
    • CommentTime1 Feb 2010
     
    Popraw(cie) mnie, jeśli źle zrozumiałem: lepiej unikać zmian w DLI w pierwszych trzech liniach i "machania duszkami" w linii gdy raster jest na lewej połowie ekranu ?
    • 13:
       
      CommentAuthorMaW
    • CommentTime4 Feb 2010
     
    no to "truję" dalej: który tryb jest szybszy (jest w nim więcej czasu na dokolorowywanie duszkami/zmianę koloru w linii|w znaku): GR.12, czy 15 ?
    • 14: CommentAuthorxxl
    • CommentTime4 Feb 2010
     
    w 12 na dzien dobry masz jeden kolor wiecej
    • 15: CommentAuthorgorgh
    • CommentTime4 Feb 2010 zmieniony
     
    tryb znakowy jest trochę szybszy jeżeli chodzi o pobieranie danych obrazu(mniej cykli zabiera antic) ale za to wszystkie dane pobierane są w 1 i 2 linii,więc są chyba utrudnienia jeżeli chodzi o zmianę rastra w tym czasie(ale mogę się mylić). Tryb graficzny pobiera odpowiednio 32-40-47 cykli w zależności od szerokości ekranu na linię. Więcej w: "dlaczego Antic jest miły dla 6502", Syzygy #5.
    edit:w trybie 12 nie ma zmiany rastra tylko w 1 linii, ale odpada szeroki ekran.
    • 16: CommentAuthortebe
    • CommentTime4 Feb 2010
     
    w trybie znakowym ANTIC dekoduje znaki w pierwszej linii wiersza, to jest tzw. "bad line" (nazewnictwo z C64), w takiej linii uda się zmienić do 4 rejestrów przed ramką obrazu a potem już nic

    w trybie DLI+ (wiersze wysokości 4 linii) "bad lines" jest 2x więcej bo co 4 linie, a nie co 8 jak w trybie zwykłym DLI
    • 17:
       
      CommentAuthorMaW
    • CommentTime4 Feb 2010
     
    Dzięki Wam, a czy jest możliwa zmiana wartości rejestru kolorów co znak ? Jak poprawnie przełączać zestawy znaków by móc skorzystać z obrazu zbudowanego na 4ch zestawach ? Rozumiem, że wtedy organizacja pamięci jest tak pokopana, że nic nie daje działanie za pomocą prostego move bloku pamięci z or-em (nakładanie sprita softwarowego na obraz) ?
    • 18:
       
      CommentAuthorjhusak
    • CommentTime5 Feb 2010 zmieniony
     
    co znak to nie bardzo, ale co 2 już tak.
    1 linia trwa nieco ponad 100 cykli procesora, jeśli nie kradnie ich antic. więc generalnie zapamiętanie wartości na przemian sta stx sty daje możliwosc zmiany 1 koloru raz na 2 znaki ( st[axy] <pamięć> zajmuje 4 cykle), a dokładniej raz na 8 punktow w rozdzielczosci 160 punktow w poziomie. Niestety, z powodu kradzieży kolory na pierwszej linii będą przesunięte.

    2. Dobrze rozumiesz ;) Taki obrazek sie da wyświetlić, ale coś z nim robić, to już bardzo trudne (np. scroll poziomy :)
    • 19:
       
      CommentAuthorMaW
    • CommentTime5 Feb 2010
     
    o, interesujące szczegóły!

    ad.2 a czy nie da się czasem zmusić antic-a lub GTIA, żeby zaczął kreślić linię z przesunięciem do kilku cykli ? jak to jest realizowane w tym demie z maską faraona ?

    i mały offtop, jak już mam Jakuba: -> ->link<- ? :-)
    • 20: CommentAuthorirwin
    • CommentTime9 Feb 2010
     
    Nie bardzo rozumiem, w G2F w 32byte GED- czyli najszybszym trybie z rastrami co prawda można zmieniać kolor ale napewno nie co 8 pixli 2x1 - zresztą wedle wskazań jest tam 68 cykli do wykorzystania.
    Czy więc naprawdę dałoby się co 8 pixli i do tego niezależnie od pozycji rstra w linii? Przecież wedle co kiedyś Tebe mi tłumaczył to im bardziej w lewo tym wolniej.
    Chyba że coś znowu pokręciłem i gadam od rzeczy.
    • 21: CommentAuthorgorgh
    • CommentTime9 Feb 2010 zmieniony
     
    @irwin: kiedyś zrobiłem mały programik do edycji rastra, który obrazuje ograniczenia (lub jak kto woli możliwości) trybu dla najszerszego ekranu. To tylko tak dla przykładu, bo pewnie da się to zrobić lepiej.
    sterowanie:
    a,s,d,w-sterowanie strzałką.
    q,e-przesunięcie.
    <,>-zmiana koloru.
    +,-=zwiększenie,zmiejszenie rozmiaru w pionie.
    spacja=nowa linia zmian.
    • 22: CommentAuthorirwin
    • CommentTime9 Feb 2010
     
    Dzięki za programik, czyli z tego wynika że raczej te zmiany co 8 pixli to raczej nie są możliwe.
    • 23: CommentAuthorgorgh
    • CommentTime9 Feb 2010
     
    można jedynie spróbować zwiększyć ilość zmian za pomocą duszków w trybie hi-res.
    • 24:
       
      CommentAuthorMaW
    • CommentTime12 Feb 2010
     
    Kolejne pytanie: zmienny charset - jak często mogę zmieniać zestaw znaków - i - czy wtedy zostanie mi jeszcze coś czasu na mieszanie w linii ?
    • 25: CommentAuthorVidol
    • CommentTime13 Feb 2010
     
    zestaw znakow mozesz zmieniac co wiersz (8 linii). Zmiana zestawu to tak jak zmiana koloru (lda #.., sta..) wiec jeszcze zostaje troche czasu na zmiane kolorow.
    • 26: CommentAuthorirwin
    • CommentTime15 Feb 2010
     

    Jhusak:

    linia trwa nieco ponad 100 cykli procesora, jeśli nie kradnie ich antic. więc generalnie zapamiętanie wartości na przemian sta stx sty daje możliwosc zmiany 1 koloru raz na 2 znaki ( st[axy] <pamięć> zajmuje 4 cykle), a dokładniej raz na 8 punktow w rozdzielczosci 160 punktow w poziomie.


    Ale samo sta,x,y nie wystarczy, trzeba też użyć lda# aby wskazać nowy kolor a to zajmuje dodatkowe 2 cykle.