1,301

(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,302

(45 odpowiedzi, napisanych Programowanie - 8 bit)

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

1,303

(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,304

(45 odpowiedzi, napisanych Programowanie - 8 bit)

Ale i tak moj dekompresor byl najszybszy :cool:

1,305

(45 odpowiedzi, napisanych Programowanie - 8 bit)

No. Metoda slownikowa nadaje sie tu wysmienicie :)

1,306

(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,307

(13 odpowiedzi, napisanych Miejsca w sieci)

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

1,308

(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,309

(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,310

(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,311

(31 odpowiedzi, napisanych Bałagan)

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

1,312

(31 odpowiedzi, napisanych Bałagan)

Roland znalazl i mi podeslal, ja postuje:

http://www.engadget.com/entry/1234000310067951/

1,313

(31 odpowiedzi, napisanych Bałagan)

[OT]

jellonek napisał/a:

moze czas zainteresowac sie orakielem?

prawde mowiac nie oparlbym zadnego wiekszego przedsiewziecia na ograniczeniu do 4GB na baze. Niby duzo, ale jak bedzie nadurodzaj? ;) Wg mnie to podpucha zeby potem klient nie mial wyjscia i musial kupic pelnego oracla.

[/OT]

1,314

(20 odpowiedzi, napisanych Zloty)

Z ktorej Warszawy wsiada ekipa warszawska? Musze wiedziec gdzie wysiasc. I co tam mozna robic od 14:30 do 17:30?

1,315

(11 odpowiedzi, napisanych Sprawy atari.area)

Oczywiscie sobie troluje jak to informatycy zwykli robic czytajac zdania doslownie i doslownie rzecz biorac nie znam zadnego przeciwskazania (niech ktos przytoczy mi stosowny akapit z jakiegos kompedium gramatyki j.polskiego), zeby odczytywac te zdanie na pokretny sposob, jak odczytal to Sikor. Poprostu obecnosc przydawki przyimkowej ("w Tematach") na koncu zdania wielokrotnie zlozonego moze sugerowac odnoszenie sie tej przydawki tylko do czlonu zdania bezposrednio ja poprzedzajacego. Jak można napisać wyraźniej? Wystarczy przesunac glowna winowajczynie przed oba wyliczenia, a wiec do postaci "W Tematach NIE UZYWAMY BBCode ani obrazliwych slow" (gdy zaprzeczamy lepiej uzyc "ani" zamiast "oraz" patrz angielske "nor" ;)) i nie bedzie zadnych watpliwosci.

1,316

(11 odpowiedzi, napisanych Sprawy atari.area)

<troll mode>
hehe zalezy gdzie postawimy nawias, w tej kwestii jezyk polski jest niejednoznaczny, bo rownie dobrze zdanie mozemy rozebrac tak:

Poza tym NIE UZYWAMY
-  BBCode
-  obrazliwych slow w Tematach

albo tak

Poza tym NIE UZYWAMY w tematach BBCode oraz obrazliwych slow.

I kubla wody na Sikora bym nie wylewal, bo poprawna interpretacja wymaga doczytania czegos miedzy wierszami
</troll mode>

1,317

(5 odpowiedzi, napisanych Różne)

Ja bym z checia partycypowal, ale jako uczestnik, byc sponsorem nie jestem w stanie. Gdzie wszyscy kolekcjonerzy atarek? A moze nagrody nie musza byc stricte atarowskie?

1,318

(29 odpowiedzi, napisanych Bałagan)

Jesli z tym pianinem to do mnie (bo chyba ja najwiecej "trenowalem" na tymze), to przepraszam. Nie bylem swiadom (a powinienem), ze to moze przeszkadzac komus we snie. W takich sytuacjach nalezy sie upomniec, ze "ludzie probuja spac" :P
Poszkodowanym w formie odszkodowania wydam browara przy najblizszym spotkaniu

1,319

(36 odpowiedzi, napisanych Programowanie - 8 bit)

No tak! TeBe chcial, zeby ktos mu zoptymalizowal kod, sprowokowal wszystkich, ze krocej sie nie da i natychmiast dostal kod o polowe krotszy... kurcze jak bede cos potrzebowal tez bede musial podrzucic  jakis kod a madre chlopaki z aa mi go rozpykaja :D

1,320

(54 odpowiedzi, napisanych Software, Gry - 8bit)

Troche mnie nie bylo i dopisze sie teraz...

Ja rowniez ca65 uwazam za najmocniejszy darmowy asembler 6502/65816, a jego imponujaca mozliwosc konfigurowalnosci generowania kodu wynikowego sprawia, ze bez problemu (no moze z malym problemem polegajacym na stworzeniu konfiguracji) jestesmy w stanie wygenerowac kod dla sparty. Poza tym, sa zrodelka, mozna sobie pogrzebac i cos pozmieniac dla wlasnego widzimisie (ja zagladalem i kod jest bardzo ladny).

Co do super edytorow to microsoftowe visual studio 7 (a teraz juz niedlugo 8, beta juz jest) zapewnia prawie wszystkie wygody wypisane przez Lizarda i wiele wiecej innych. Dodatkowo tez jest konfigurowalne i przy pewnym nakladzie pracy (polegajacym na przedarciu sie przez gigabajty dokumentacji) mozemy napisac sobie plugin wspolpracujacy z krossasemblerami dla atari. Nie zebym sympatyzowal z ludzmi od billa ale obiektywnie patrzac kolesie potrafia napisac dobre oprogramowanie.

Co do stylu pracy, a wiec pierwotnego tematu ja uzywam editplusa (ze wzgledu na wieloletnie przyzwyczajenie) + MADS + jakis emul na zmiane z sio2pc z oryginalnym atari + to co sobie napisze sam. Przymierzam sie tez do ca65 ale jeszcze nie teraz... A dlaczego tak? Bo jestem juz zboczonym informolem-programista i zwykle narzedzia mi nie wystarczaja i jezeli mam robic cos dla przyjemnosci (a programowanie dla atari z zalozenia takie ma byc), to staram sie aby bylo to jak najwieksza przygoda. Dla mnie przygoda nie jest napisanie zrodelka w asm (nawet z super makrami uzywajac niesamowitych skrotow klawiszowych), wygenerowanie z niego COMa (albo modnego ostatnimi laty XEXa) i odpalenie na atari, tylko napisanie programu, ktory zrobi za mnie tak duzo jak to tylko mozliwe. Moim marzeniem jest stworzenie systemu toolsow za pomoca ktorych ja, piszac powiedzmy demo, bede koncentrowal sie tylko na kwintesencji kodu dema, a marginalia jak zarzadzanie pamiecia zrobi za mnie automat. Nie wydaje mi sie, abym byl w stanie zrobic to na atari, dlatego programuje na pc i wydaje mi sie, ze poprzeczka w naszej demoscenie jest juz tak wysoko, ze pisanie dema tylko na atari nie uzywajac zadnych zewnetrznych wspomagaczy jak wspomniane toolsy na pc jest conajmniej szalone.

1,321

(26 odpowiedzi, napisanych Scena - 8bit)

Zmieniajac niezreczny temat...

Ja bardzo chcialbym byc teraz aktywny ale za cholere mi nie wychodzi (robie mgr i jak pisze cos innego niz do mgr to mam wyrzuty sumienie ze sie opierdalam   :(  )

1,322

(29 odpowiedzi, napisanych Bałagan)

Co do lezenia w pozycji embrionalnej to zle sie wyrazilem. W oryginale, z ktorego bralem wskazowki brzmialo to "If hopelessly isolated from shelter during close-in lightning, adopt a low crouching position with feet together and hands on ears (Crouching).".

1,323

(29 odpowiedzi, napisanych Bałagan)

Na tej stronie mozemy poczytac o statystykach umieralnosci od uderzen pioruna w przeliczeniu na ilosc mieszkancow (przypuszczam, ze w ciagu roku)... Dodatkowo tylko 10-25% uderzen konczy sie fatalnie, a 84% trafionych to mezczyzni. Jezeli juz przytrafi nam sie byc w otwartym polu podczas burzy nalezy zwinac sie w klebek i zajac najnizsza mozliwa pozycje 8) Ciekawe  (i zabawne) fakty mozna znalezc tu  ;)

1,324

(25 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

dobry wzor jest TU

Tylko oczywiscie maloatarowcy potrzebuja czerwonego loga na szarym tle :P

A logo + ksywka = pricjozo!

1,325

(47 odpowiedzi, napisanych Bałagan)

Losowych jaskrawych punkcikow, o ktorych mowisz, doswiadczylem (jak pogmeram w pamieci) w zyciu tylko kilka razy i mysle, ze te raz na kilka lat, to akceptowalny poziom przeklaman na laczach. Poza tym wydaje mi sie, ze nic powazniejszego mojemu wzrokowi nie dolega, okularow wciaz nie nosze (ale chyba od tej zabawy z komputerami kiedys zaczne  :( ).