1,351

(709 odpowiedzi, napisanych Fabryka - 8bit)

Myślę, że o emulację tego rozszerzenia (dokładniej jej brak) możemy być spokojni, gdyż pełna emulacja umożliwiająca programową modyfikację działania wewnętrznego układu (gdzie można np. przeprogramować blitter w koprocesor) jest delikatnie mówiąc praktycznie niemożliwa. A przynajmniej wątpie żeby znalazł się ktoś na tyle zdeterminowany, żeby doczepić to do atari800, skoro nie pojawiła się nawet jeszcze tak upragniona emulacja 65c816 (nie licząc ultraXE, który doprowadza mnie swoją topornością do pasji :) )

1,352

(709 odpowiedzi, napisanych Fabryka - 8bit)

zgodnosc w dol to troche duzo powiedziane. Odpowiednim slowem jest przezroczystosc: atari z gfxboard bedzie dla starych programow dzialac identycznie. Tak samo jak np dopalka Pasia.

1,353

(709 odpowiedzi, napisanych Fabryka - 8bit)

heaven: as far as i know output isn't mixed. New chipset completely replaces normal GTIA --- there is a separate RGB output.




Czyli nie ma problemow z dwoma monitorami. Na monitorze podlaczonym do starego wyjscia bedzie jedno, a na nowe wyjscie cały ekran bedzie zakryty dwoma sprajtami 160x200 obok siebie ktore cos tam beda wyswietlaly. I co innego moze byc na jednym co innego na drugim. brzmi fajnie :)

A gfx-board super... Czekam z niecierpliwoscia na dokladniejsza dokumentacjie (rozpiska rejestrow, tryby pracy itp)

Mysle ze troche chetnego luda nawet po 200 PLN od glowy by sie na to znalazlo, moze oplacalo by sie zlecic jakiejs firmie zrobienie plytki.

Co do Sc0rpi0 to tylko czekalem, ktory pierwszy napisze, ze "to juz nie jest przeciez atari!" :)
Prawde mowiac scena nie siedzi juz na prawdziwym atari od 10 lat, chociazby ze wzgledu na 2 pokeye i duzo ramu :)

1,354

(7 odpowiedzi, napisanych Emulacja - 8bit)

to nie moja wina ze masz ciemny monitor :>
u mnie jest ok :]

A poza tym tylko u mnie w Palette Options jest ramka Adjustment ?

1,355

(15 odpowiedzi, napisanych Fabryka - 8bit)

Np wlasnie. Juz dawno temu rozbilem sie o brak porzadnego programu dzialajacego z CLI potrafiacego manipulowac ATRami. Plugin to TC jest super, ale jak pisze sie powiedzmy demo na atari i przy kazdej kompilacji chce sie umiescic wynik a ATRze bo bez programu, ktorego mozna umiescic we wsadzie ani rusz.

1,356

(7 odpowiedzi, napisanych Emulacja - 8bit)

Mialem w miedzy czasie pad HDD i juz sie balem ze stracilem, ale naszczescie zrobilem swojego czasu backup katalogu atari :D

Paletke zrobilem odpalajac na prawdziwym atari ten programik, zrzucajac ten obrazek na mojej (mam nadzieje dobrze skalibrowanej) karcie TV, mocno blurujac i wyciagajac kolorki ze srodka kazdego kwadracika :)

Paletka jest tu

Polecam odpalic sobie programik na emulatorze z roznymi paletkami i porownac wyniki. Moze jak ktos ma prawdziwe atari podlaczone do jakiegos dobrego monitora to niech podzieli sie swoimi spostrzezeniami.

Poprosze o komentarze :) Mazy mi sie aby znalazla sie w standardowym pakiecie atari800win :cool:

1,357

(9 odpowiedzi, napisanych Programowanie - 8 bit)

mikey: czyzby miala byc rybka na forevera?

1,358

(35 odpowiedzi, napisanych Zloty)

hotele... akademiki.... dziadki z reumatyzmem sie znalezli co do sanatorium jezdza ;)
Materac, spiwor i jazda spac pod glosnikiem!!
Ja tak bede. Wole sluchac mpt/sid/ym podczas zasypiania niz przespac pol zlotu w jakims hotelu :D

1,359

(50 odpowiedzi, napisanych Bałagan)

moze
"Marek was asking who will be interested and who knows something about this because he will be interested."

Te ostatnie interested jest trochge niezreczne i w sumie nie potrzebne, ale chyba pomaga w zrozumieniu sensu zdania.

1,360

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Wiedzialem, ze jak tytko Fox sie wypowie to wszystkich pozamiata... ;)

A moja metda tez ma 34 bajty. Brzydki przypadek :P

1,361

(11 odpowiedzi, napisanych Sprzęt - 8bit)

Pin! Bedziesz we Wroclawiu!? Ej! To super! Zrobimy maly sztabinx :P

1,362

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Dobrze rozumiem ze chodzi o zadanie zadawane kandydatom do pracy informatyka? Czy chodzilo o napisanie takiej gierki? Ciekawy sposob szukania programistow :P

A gierka super!

1,363

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Cyklujac najbardziej zagniezczone petle mamy

loopp   lda (ptr3),y    ;5
        sta (ptr2),y    ;6
        inc ptr3        ;5
        inc ptr2        ;5
        dex             ;2
        bne loopp       ;3

26 cykli

oraz

rle     sta (ptr2),y      ;6
        inc ptr2          ;5
        dex               ;2
        bne rle           ;3

16 cykli.

Dodatkowo zauwazylem, ze w mojej procce jest blad bo zapomnialem, ze iny tez ustawia bit N. Rozwiazaniem jest dodanie np lsr @ czyli

L   lda $ffff,y             ;4
    lsr @                   ;2
    sta bufor_docelowy,y    ;5
    iny                     ;2
    bcc L                   ;3

i mam 16 cykli zamiast 14 i moje obliczenia sredniego czasu zwiekszaja sie do  27 cykli (najmniej 18 cykli najwiecej 29) oczywisice pamietajac zeby dane byly przesuniete w lewo i konczacy znak miał ustawiony najmlodszy bit.

Reasumujac petlę ofsetującą masz bardzo dluga, a RLE jest identyczna. Nie wiem jak ulozy sie srednia, bo jest inna reprezentacja danych, ale chyba na moją korzysc :P


PS.: wydaje mi sie, ze

        asl @
        ror @

jest równoważne

        clc

wiem ze chciales skoczyc jesli najstarszy bit byl ustawiony ale tak sie nie da. (no i dodatkowo skaczac do rle jest ustawiony bit N i bedzie się krecilo troche dluzej :) ) Ale da sie samym lsr @ jesli bedzie sie inadzej pamietalo ten bajt w buforze.

1,364

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Algorytm konkretnie pod zastosowanie, czyli rzeczywiscie w praktyce program i maszyna wirtualna ktora go wykonuje :)
Pobierannie po dwa bajty jest bardzo wygodne i faktycznie chyba juz nie ma co kombinowac dalej, bo kodujac na bitach moznaby uszczknac tylko z 2-3 bajty ale IMHO za duzym kosztem.

nie wiem tylko jak obliczana jest ta ilosc literek 'b' do pominiecia i od ktorego momentu pomijamy, ale wierzę, ze to jest zakodowane jakos w P :) Jezeli te kodowanie w P jest dobre, to powinno dzialac :P

1,365

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Niestety nie rozumiem tego algorytmu:

a) dlaczego 2. bajt ma 9 bitow?
b) T - zupelnie nie wiem co sie dzieje? zmiana na draw jestli byl plot? w jakim kontekscie?
c) czym jest W?

jedyny pomysl jaki mam, to skoro sa 3 mozliwe wartosci, to zamiast na stale przypisac im 2 bitow az prosi sie kod przedrostkowy, czyli dla najczestrzej wartosci 1 dla drugiej 01 dla trzeciej 00. i oszczedzaby jeden bit przy najczestrzej wartosci. wada: mamy rozna dlugosc rozkazu, ale jesli drugi bajt jest 9-cio bitowy to i tak trzeba pobierac po bitach :P

1,366

(45 odpowiedzi, napisanych Programowanie - 8 bit)

nie takie rzeczy na atari juz sie kodowalo (rozpisane setki kilobajtow kodu itp.... :P )

1,367

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Tak jak w moim opisie. po 4 bity. grupujemy po dwa zeby miec bajt. tablicujemy.

d_00000000   dta c'DDX'
d_00000001   dta c'DDDX'
d_00000010   dta d'DCX'
...
d_11111101   dta d'AAAAAAAAAAAAAAX'
d_11111110   dta d'AAAAAAAAAAAAAAAX'
d_11111111   dta d'AAAAAAAAAAAAAAAAX'

* gdzie X to znak o kodzie > $7f
* w sumie tablica na 900 bajtow
* srednio kazd tablica ma 3.5 bajta (900/256)

tableL dta l(d_00000000),l(d_00000001),l(d_00000010), ... ,l(d_11111101),l(d_11111110),l(d_11111111)
tableH dta h(d_00000000),h(d_00000001),h(d_00000010), ... ,h(d_11111101),h(d_11111110),h(d_11111111)

*tablica ma 512 bajtow

dekompresuj                 ;cykle
    lda #0                  ;2
    tax                     ;2
    sta strona_zero         ;3
loop
    ldy bufor_wejsciowy,x   ;4
    lda tableL,y            ;4 z kawalkiem
    sec                     ;2
    sbc strona_zero         ;3
    sta L+1                 ;4
    lda tableH,y            ;4 z kawalkiem
    sbc #0                  ;2
    sta L+2                 ;4
    ldy strona_zero         ;3
L   lda $ffff,y             ;4
    sta bufor_docelowy,y    ;5
    iny                     ;2
    bpl L                   ;3 bez kawaleczka
    sty strona_zero         ;3
    inx                     ;2
    cpx #dlugosc            ;2
    bpl loop                ;3 (bez kawaleczka dla ostatniego testu)
    rts                     ;2

srednio na wynikowy bajt mamy (40+14*3.5)/3.5 = 25 cykli (najmniej 16 cykli najwiecej 27, a zreszta srednia na zdekompresowany blok zalezy scisle od bloku)

Wiem, ze algorytm jest abstrakcyjny i nieoplacalny (bo wymaga 1.5 kB tablic) ale jest szybki :P

jellonek. Podnosisz rękawice? :cool:

(Mam nadzieje, ze nie pomylilem sie w obliczeniach)

1,368

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Ale i tak moj dekompresor byl najszybszy :cool:

1,369

(45 odpowiedzi, napisanych Programowanie - 8 bit)

No. Metoda slownikowa nadaje sie tu wysmienicie :)

1,370

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Sc0rpi0 :) Tak czytam co Ty tu napisales i czytam i czytam i mysle, ze chyba nie zrozumiales, co xxl mial na mysli ;). Otoz u xxl-a wynikdekompresji bedzie zajmowal ok 200 bajtow --- 200 zdekompresowanych symboli z ktorych kazdy bedzie bajtem 1,2,3 albo 4 (lub jakimis innymi ale bedzie ich 4), a danych wyjsciowych bedzie w sumie 3k czyli bedzie jakies 15 partii po 200 bajtow (symboli) ktore trzeba bedzie skompresowac. Wiec huffman i RLE sa tu jak najbardziej na miejscu.

No chyba ze to ja zle zrozumialem. Niech ktos mnie wtedy poprawi.

1,371

(13 odpowiedzi, napisanych Miejsca w sieci)

Wiedzialem ze motorolka wyprodukowala procki 6800-6809, ten 6830 to musi byc jakis maderfaker ;)

1,372

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Pierwsza sprawa chyba cos procenty sie popiepszyly, bo 70+15+10+6=101, a chyba powinno wyjsc 100 :) zalozylem wiec, ze jest 70+15+10+5.
Dalej: Budujemy drzewo huffmana i wychodzi nam cos takiego:

    100
   /  |
  /  30
 /   / \
 |  |  15
 |  |  | \
70 15 10 5

Oznaczmy kodowane znaki przez A(70%), B(15%), C(10%), D(5%). Przyporzadkowanie ciagow prefiksowych moze byc nastepujace:

A: 1
B: 01
C: 001
D: 000

Dalej mozemy zostosowac RLE wypelniajac do pelnych nibli, gdzie wypelnienie to ilosc powtorzen danego znaku. Jako ze kombinacji jest tylko szesnascie, to wszystkie je tu wypisze:

1000 : A
1001 : AA
1010 : AAA
1011 : AAAA
1100 : AAAAA
1101 : AAAAAA
1110 : AAAAAAA
1111 : AAAAAAAA
0100 : B
0101 : BB
0110 : BBB
0111 : BBBB
0010 : C
0011 : CC
0000 : D
0001 : DD

Kompresja banalna. (szukamy podanego tu wzorca i zastepujemy go odpowiednim kodem). Dekompresja banalna (Mozemy nawet stablicowac i to po dwa kody na raz bo ładnie mieszcza sie w bajcie: wystarczy pamietac 256 adresow rozkompresowanych ciagow terminowanych jakims 5. znakiem). Stopien kompresji bliski optymalnemu. (Huffman jest optymalny. sa nawet dowody. O RLE trudno mi tak z palca cos powiedziec). Jezeli komus sie chce optymalizowac, mozna sprobowac innego wypelnienia RLE np 3,5,6,7,8 bitow. Mozna napisac program, ktory kompresuje na dana dlugosc przykladowe/reprezentatywne dane i sprawdzic, ktora metoda daje najlepsza kompresje, z tym, ze procedury nie beda juz tak trywialne.

Recznie sie pobawilem kompresujac kodami 3,4 i 5 bitowymi oraz czystym huffmanem (czyli same kody prefiksowe bez RLE) Twoje przyklady i wyszly mi skompresowane dane o dlugosci (w bajtach):

bity   przyklad1 przyklad2

huff    32           28
3       27           30
4       22           34
5       19           38

Pierwszy przyklad zawieral duzo powtorzen, a wiec idealnie dla RLE i czym wiecej bitow tym byl bardziej zadowolony. Drugi przyklad mial mniej powtorzen i RLE na niewiele sie zdalo i najefektywniejszy okazal sie sam huffman.

Jak widac metoda jest bardzo uzaleazniona od konkretnego przykladu (chociaz 4 bity to taka chyba srednia i chyba najlepszy wybor), wiec przy odrobinie fanatyzmu kompresowac mozna wszystkimi i wybierac dla kazdego przykladu osobno metode najlepsza. Kod troche puchnie, ale stopien kompresji bedzie dobry.

1,373

(6 odpowiedzi, napisanych Programowanie - 8 bit)

"Rotacje ksiazkowe" o ktorych wspominales sa latwiejsze do wyobrazenia. Sa to trzy rotacje na plaszczyznie. Tu wykorzystano rotacje trojwymiarowe. Zeby to zrozumiec trzeba orientowac sie troche w algebrze liniowej dokladniej w operacjach na macierzach. Roznica pomiedzy  wzorami "ksiazkowymi", a tymi polega na tym, ze w "ksiazkach" po cichutku wykorzystano mnozenie wektora dwuwymiarowego, a wiec zrzutowanego punktu na kazda z plaszczyzn przez macierz 2x2. Sa trzy osie a wiec robi sie to trzy razy. Tu zaś mnozy sie odrazu caly wektor xyz przez maciez 3x3. Macierze obrotow sa takie fajne, ze mozna je wymnozyc i wyjdzie jedna maciez przez ktora wystarczy przemnozyc nasz wektor. Jest jeszcze pojecie macierzy 4x4 i wektora xyzw wowczas otrzymujemy jeszcze przesuniecie i te metode wykorzystuje sie najczesciej. Najfajniejsze sa kwaterniony, bo pozwalaja na rotacje w kazdej osi "niezaleznie" od orientacji obiektu, ale tu wychodzimy juz zdecydowanie poza elementarena wiedze z algebry liniowej.

Teraz przyszpanuje moja znajomoscia LaTeXa i zaprezentuje cos, co moze pomoze (mam nadzieje, ze nie piepsznalem sie w zadnym miejscu):

http://icomp-systems.com/rotacje.png

(teraz zauwazylem, ze wspolrzedne macierzy numeruje sie odwrotnie, ale nie chce mi sie jeszcze raz tego pisac)

PS: dziwnym trafem moje wzory sa troche inne od tamtych i nie wiem kto ma zle, ale to latwo mozna przeliczyc sobie samemu i zweryfikowac

1,374

(12 odpowiedzi, napisanych Bałagan)

Eno chopaki - troche wyobrazni... ;)
Ja tam za taka muzyka nie przepadam, nie znam i nie bede ocenial utworu jako calosci, ale IMHO te dysonanse w kulminacyjnym motywie byly calkiem intrygujace - kolega grzypsona wykazal sie niebanalna inwencja przerabiajac tak ekstrawagancko motyw z KM (nie wiem tylko czy to bylo celowe, czy mialo byc calkiem inaczej, a tylko wyszlo ekstrawagancko :P).

1,375

(31 odpowiedzi, napisanych Bałagan)

ups, a ja przeserczowalem tylko atariarea (sorry vasco :P)