Tajemnice ATARI

DigiCMC


    Tak naprawdę, to program Chaos Music Composer prócz niewątpliwych zalet posiada tyleż samo wad. Jedną z najpoważniejszych jest niezbyt dobra syntetyczna perkusja proponowana przez autora. Nie jest jednak tak bardzo źle, żeby nie mogło być lepiej. Zawsze można próbować stworzyć własne brzmienie. Nie będę Was zmuszał do wielogodzinnego ślęczenia nad klawiaturą, proponuję zdefiniowanie takiego instrumentu:

1. Weźmy brzmienie ATARI i umieśćmy w nim takie akcenty:
abbabaaaaaaaaaa (a - akcent, b - brak akcentu).

2. Wpiszmy od góry cztery magiczne liczby w słupku:
f0 a1 03 00.

    Brzmi nieźle, prawda? Wydaje mi się jednak, że to już wszystko, co można zrobić na ATARI XL/XE metodą sztucznego modelowania dźwięku. Istnieje jednak sposób, o którym świat już dawno wie i który obecnie masowo wykorzystywany jest na każdym kroku. Chodzi o sampling, czyli zapis i odtwarzanie dźwięku w sposób cyfrowy (przypominam, że swego czasu na łamach TA przedstawiony był schemat samplera dla ATARI). Jak wszystko inne, i ta metoda nie jest pozbawiona wad. Największą z nich jest niesamowita pamięciochłonność. Jednak wszyscy wiedzą, że istnieje wiele programów, które wykorzystują sample i wprowadzają w zadumę słuchających - jak takie małe może tak grać? Dobrym przykładem jest tu gra Vicky.

    Zdając się na siebie samego i na program CMC opracowałem metodę, która pozwala na stworzenie naprawdę niesamowitych efektów (posłuchajcie, jak gra demo z końca artykułu).

    Wszyscy, którzy zetknęli się z programem CMC wiedzą, że umożliwia on wykorzystanie trzech ścieżek. Pierwsza wykorzystuje dwa generatory dźwięku. I tutaj tkwi sedno sprawy. Kiedy łączymy sprzętowo dwa generatory, wartości częstotliwości wpisujemy do obu rejestrów AUDF, wykorzystując jednocześnie tylko jeden rejestr AUDC. Co by było, gdyby na drugim odgrywać próbki? Zacznijmy od kilku uwag:

1. Piszemy muzykę na CMC, przez cały czas używając na pierwszej ścieżce brzmienia SuperBass. Wiąże się to ze specyficznym zapisem wartości do rejestrów dźwięku przez CMC.

2. Zmieniamy w module odgrywającym rozkazy, które wpisują wartości bezpośrednio do rejestrów sprzętowych tak, aby wpisywały je do pamięci w inne miejsce. Później przepisujemy te wartości, dokładając próbki.

3. Piszemy odpowiednią procedurę, na przykład taką:
     opt %100101     na urządzenie zew.

*--- memory location 
play     equ $ffff   adresy muzyki
musadr   equ $ffff   i modułu
start    equ $a000 
bufor    equ $0600

*--- zero page 
dosvec   equ $0a (2) 
irqen_   equ $10 
timer    equ $14     
apat     equ $f0 (2)
adrsmp   equ $f2 (2)

*--- procedures 
plarti   equ $c030 
setvbl   equ $e45c 
sysvbl   equ $e45f

*--- registers 
audfl    equ $d200 
audcl    equ $d201 
audctl   equ $d208 
vcount   equ $d40b 
irqen    equ $d20e
consol   equ $d01f

runad    equ $02e0 
vimirq   equ $0216

*--- const. 
lenpat   equ $10     długość patternu
*   dla perkusji

*--- demonstration 

     org start

     lda vimirq      pamiętamy stare
     ldx vimirq+$01  wartości
     sta oldvim
     stx oldvim+$01
     lda irqen_
     sta oldirq
    
     lda musadr+$13  aktualizowanie
     sta tempo       tempa
    
     ldx <musadr     inicjalizacja
     ldy >musadr     muzyki
     lda #$70
     jsr play+$03
     lda #$00
     tax
     jsr play+$03

     jsr clear

     lda #$00   inicjalizacja
     sta czyper      perkusji
     sta ltmp
     sta wskain
     sta wska

     lda #$06        ustawienie
     ldx >vblk       wektora
     ldy <vblk       przerwań
     jsr setvbl

loop equ *

     lda consol      czy START ?
     cmp #$06
     bne loop
     
     lda #$06
     ldx >sysvbl
     ldy <sysvbl
     jsr setvbl

     lda #$40        stop muzyka
     jsr play+3
     sei             oddaj stare
     lda oldvim      wektory  
     ldx oldvim+$01
     sta vimirq
     stx vimirq+$01
     lda oldirq
     sta irqen
     sta irqen_
     cli
     jsr clear

     lda timer
     cmp timer
     beq *-2         powrót do 
     jmp (dosvec)    systemu

vblk equ *
     jsr play+6      odgrywamy melodię
     jsr percus
     jsr copy
     jmp sysvbl

clear equ *
     lda #$00        zerowanie
     ldx #$08        rejestrów i
     sta bufor,x     buforu
     sta audfl,x
     dex
     bpl *-7
     rts

copy equ *           kopiowanie do 
     ldx #$01        rejestrów (tylko 
     lda bufor,x     część wartości)
     sta audfl,x
     lda bufor+$02,x
     sta audfl+$02,x
     lda bufor+$06,x
     sta audfl+$06,x
     dex
     bpl copy+2 
     lda bufor+$04 
     sta audfl+$04 
     lda bufor+8
     sta audctl
     rts

percus equ *         właściwa procedur
     lda ltmp        odgrywająca
     bne per4        sample
     ldy wska
     lda track,y
     bne per3
     lda #$00
     sta wska
     sta czyper
     jmp percus
per3 equ *
     tay
     dey
     lda <patd1
     sta apat
     lda >patd1
     sta apat+$01
per1 equ *
     cpy #$00
     beq per2
     clc
     lda apat
     adc #lenpat
     sta apat
     lda apat+1
     adc #$00
     sta apat+1
     dey
     jmp per1
per2 equ *
     ldy wskain
     lda (apat),y
     cmp #$00
     beq per4
     tay
     dey
     lda poczm,y
     sta adrsmp
     lda poczs,y
     sta adrsmp+1
     lda kons,y
     sta skon
     jsr setirq
per4 equ *
     inc ltmp
     lda ltmp
     cmp tempo
     bne endper
     lda #$00
     sta ltmp
     inc wskain
     lda wskain
     cmp #lenpat
     bne endper
     lda #$00
     sta wskain
     inc wska
endper equ *
     rts

setirq equ * 
     lda <irq 
     ldy >irq 
     sta vimirq
     sty vimirq+$01
     lda vcount
     cmp vcount
     beq *-3
     lda #$01
     sta irqen
     sta czyper
     rts

irq  equ *
     pha
     tya
     pha
     lda vcount
     cmp vcount
     beq *-3
     lda #$01
     sta irqen
adr  jmp irq1

irq2 equ *
     ldy #$00
     lda (adrsmp),y
     lsr @
     lsr @
     lsr @
     lsr @
     ora #$10
     sta audcl+$04
     lda <irq1
     ldy >irq1
     sta adr+$01
     sty adr+$02
     pla
     tay
     pla
     rti

irq1 equ *
     ldy #$00
     lda (adrsmp),y
     ora #$10
     sta audcl+$04
     inc adrsmp
     bne ir1_
     inc adrsmp+$01
     lda adrsmp+$01
     cmp skon
     beq endirq
ir1_ equ *
     lda <irq2
     ldy >irq2
     sta adr+$01
     sty adr+$02
     pla
     tay
     pla
     rti

endirq equ *
     lda plarti
     sta vimirq
     sty vimirq+$01
     lda #$00
     sta czyper
     sta irqen
     pla
     tay
     pla    
     rti

patd1 equ *
     dta d'                '
     dta d'! # !"  ##  ! " '
     dta d'                '

track equ *
     dta b'##!"!"!"'
     dta b'""""""""',b($00)

poczm    dta b($00),b($00),b($00)
poczs    dta b($60),b($63),b($70)
kons     dta b($63),d($66),b($80)

czyper   org *+1
skon     org *+1
ltmp     org *+1
wskain   org *+1
wska     org *+1
tempo    org *+1

oldvim   org *+2
oldirq   org *+1

     org runad

     dta a(start)

     end of prog.
    Nalezy się tu parę słów wyjaśnienia, ale najpierw chcę opisać, w jaki sposób zmienić moduł odgrywający i dostosować go do naszych potrzeb. Sprawa jest prosta i sprowadza się do wykorzystania przy pomocy Patchera następującej łaty:
1000 REM Poprawka do Modułu CMC 
1010 DATA 1541,210,6 
1020 DATA 1562,210,6 
1030 DATA 1575,210,6
    Spowoduje ona to, że moduł będzie wpisywał wartości na szóstą stronę pamięci, a nie do generatorów dźwięku. Dopiero nasz program przepisze je do odpowiednich rejestrów.

    Definiowanie własnych patternów rozpoczyna się od etykiety PATD1, natomiast ich długość określa zmienna LENPAT (wartość $10). Chciałbym tu zaznaczyć, że długość ta nie jest wybrana przypadkowo, równa się jednej czwartej długości partemu w CMC. Wyżej, wpisałem wartości w kodach ekranowych, co czyni program bardziej zrozumiałym, więc spacja oznaczać będzie ciszę, wykrzyknik - próbkę numer 1 itd. Z tak zdefiniowanych patternów układamy ścieżkę (patrz etykieta TRACK). Tu również wpisałem wartości w ten sam sposób, np. znak dolara oznacza pattern czwarty, wykrzyknik - pierwszy itd. Całą ścieżkę kończymy zerem, co spowoduje jej odgrywanie od początku.

    Ważne są jeszcze etykiety POCZM, POCZS, KONS:
POCZM - młodszy bajt adresu pierwszej próbki w pamięci.
POCZS - jak wyżej, tylko starszy bajt.
KONS - starszy bajt adresu końca próbki w pamięci.

    Na koniec kilka uwag:
1. Przy pisaniu muzyki należy zwracać uwagę na głośność instrumentów, aby nie zagłuszyć samplingu.
2. Można wykorzystać dowolne sample, próbkowane co dwie synchronizacje poziome.
3. Podczas odgrywania muzyki z samplami należy optymalnie wykorzystać przerwania ANTIC-a, bowiem zniekształcają one digitalizację.

1000 REM *--------------------------*
1002 REM : CMC Demo                 :
1004 REM :  autor: Michal Luberda   :
1006 REM : (c) 1993 Tajemnice ATARI :
1008 REM *--------------------------*
1010 DATA ffff00a0f6a2a9008d2f028d00
1020 DATA d4a900a2a88d30028e3102a200
1030 DATA a040a970200350a900aa200350
1040 DATA a900a2089d00069d00d2ca10f7
1050 DATA a9008df7a28df9a28dfaa28dfb
1060 DATA a28d1da8a9038d0fd2a2a0a081
1070 DATA a906205ce4a9008dc4028dc502
1080 DATA 8dc802a90e8dc602a9baa2a0a0
1090 DATA c08d00028e01028c0ed4a9228d
1100 DATA 2f02a514c514f0fcad1fd0c906
1110 DATA d0f94c74e420065020eba0ad00
1120 DATA 06ae01068d00d28e01d2ad0206
1130 DATA ae03068d02d28e03d2ae04068e
1140 DATA 04d2ae0606ad07068e06d28d07
1150 DATA d2ad08068d08d24c5fe4488a48
1160 DATA a2ff8d0ad4e8ec1da8d0f7a200
1170 DATA bd1ea88d0ad48d16d0e8e016d0
1180 DATA f2ee1da8ad1da8c946d005a900
1190 DATA 8d1da868aa6840adf9a2d052ac
1200 DATA fba2b947a2d00da9008dfba2a9
1210 DATA 008df7a24ceba0a888a9e785f0
1220 DATA a9a185f1c000f01118a5f06910
1230 DATA 85f0a5f1690085f1884c0fa1ac
1240 DATA faa2b1f0c900f015a888b9e8a2
1250 DATA 85f2b9eda285f3b9f2a28df8a2
1260 DATA 2064a1eef9a2adf9a2c906d017
1270 DATA a9008df9a2eefaa2adfaa2c910
1280 DATA d008a9008dfaa2eefba260a97f
1290 DATA 8d1602a9a18d1702ad0bd4cd0b
1300 DATA d4f0fba9018d0ed28df7a26048
1310 DATA 9848ad0bd4cd0bd4f0fba9018d
1320 DATA 0ed24cada1a000b1f24a4a4a4a
1330 DATA 09108d05d2a9ada0a18d90a18c
1340 DATA 91a168a86840a000b1f209108d
1350 DATA 05d2e6f2d009e6f3a5f3cdf8a2
1360 DATA f00ea992a0a18d90a18c91a168
1370 DATA a86840a9308d1602a9c08d1702
1380 DATA a9008df7a28d0ed268a8684005
1390 DATA 00000001000000050000000100
1400 DATA 00000500010005030003030005
1410 DATA 00050301000500010005010003
1420 DATA 05000300050303030500000001
1430 DATA 00000003030000010000000000
1440 DATA 00000000000000000000000000
1450 DATA 00000000000000000001000100
1460 DATA 05010303050505050505050601
1470 DATA 01010101010101010401040104
1480 DATA 01040404040404040404040404
1490 DATA 04040404040202020202020202
1500 DATA 02020202020202020202020202
1510 DATA 02020203030303030303030303
1520 DATA 03030303030303030303030303
1530 DATA 03030303030303030303030303
1540 DATA 03030303030303030303030303
1550 DATA 03030303030303030303030303
1560 DATA 03030303030303030303020202
1570 DATA 02020202020404040404040404
1580 DATA 01010101010101010000000000
1590 DATA 006dff71ff756fff73ff7700a8
1600 DATA 1ca87070707070704234a8f070
1610 DATA 7070475ca80707707070707042
1620 DATA 98a84100a81ea8bfa800020406
1630 DATA 06080a0a0c0c0e0e0c0c0a0a08
1640 DATA 060604020000000034616a656d
1650 DATA 6e696365002134213229010000
1660 DATA 34616a656d6e69636500213421
1670 DATA 32290100000000000034212b00
1680 DATA 002d2f3a250027322123000000
1690 DATA 00000000000030322f2732212d
1700 DATA 1a0000000000002328212f3300
1710 DATA 2d3533292300232f2d302f3325
1720 DATA 32000000000000000033342132
1730 DATA 341a77796a7363696500646f00
1740 DATA 73797374656d75000000000000
1750 DATA 0000e002e10200a0ffff006d00
1760 DATA 6f9ffec979010000001affffff
1770 DATA fd000000000800baf769ddffff
1780 DATA fffffcd4055718787440000000
1790 DATA 007baffffcff9cfaffff521510
1800 DATA 00327a36ab60006a7bfffffdcf
1810 DATA fc43888cb77a7400000000dfff
1820 DATA fffc7ab7a08cedeffb83010243
1830 DATA 8cbcdafc535441306dffcaffcb
1840 DATA 14845548775353854039a69dfe
1850 DATA fdb7fcab57b77895bb07468739
1860 DATA 308788a6bada79b996888db897
1870 DATA a6424a67426568ac59a477b8a7
1880 DATA baa9dabaa8a48c685489444547
1890 DATA 47787bbcbe99a8988ca788c666
1900 DATA 5b9667797479a87777a997a8bc
1910 DATA 99abc8b7986966577b79789a69
1920 DATA 99a868886557696a67cda99899
1930 DATA 686899867666546a7679cba8aa
1940 DATA 9889977797656888a9aa7a9997
1950 DATA 66697a8aa7a885a77768977ab7
1960 DATA 997a769a8899988a988977a988
1970 DATA 8679898788799899978898aa9a
1980 DATA 9987558758797a898887877787
1990 DATA 8897878889989b9a9998888788
2000 DATA 76888888987a89879998a98987
2010 DATA 87778898978888888788898898
2020 DATA 78888889999998989877786988
2030 DATA 88899988888999998888878978
2040 DATA 88897889787888998999887777
2050 DATA 77789989989998988778787788
2060 DATA 88888999998988887787888887
2070 DATA 88778788888878888788788898
2080 DATA 98998898888888888888898888
2090 DATA 99989998888988978888888889
2100 DATA 99898988988888888888888888
2110 DATA 88899889988888888888888888
2120 DATA 98888888888888888888888898
2130 DATA 99898888888888888888888888
2140 DATA 88888888888888888888888888
2150 DATA 888888888888ffffff00750077
2160 DATA 8888888873f7f00f30bf0f0050
2170 DATA 7a0f20985bcbefffffffffefef
2180 DATA efffafff0ffb74200000000000
2190 DATA 00000011234454443220102024
2200 DATA 2479cdfffffffffffffffffffe
2210 DATA dccbbaa99888777899bdceefed
2220 DATA ecc98731000000000000000012
2230 DATA 23455667778889999999865552
2240 DATA 232135569aceffffffffffffff
2250 DATA ffffeddcbbaa99887776666655
2260 DATA 555556666667778989abdabcaa
2270 DATA ba8b45a7367133021100111122
2280 DATA 2334556677888999aaaabbbbbb
2290 DATA bbbbbbbbbbbbaaaaaaaa999989
2300 DATA 887776664554354445667789ab
2310 DATA cdeefffffffffffeedccbbaa99
2320 DATA 88887777666666666666666666
2330 DATA 777789abbcedefeddbba876432
2340 DATA 00000000000001223445567788
2350 DATA 8999aaabaababbabaaa9998887
2360 DATA 777777778999aaabbbcdccdddd
2370 DATA edeededdddcccbbcbbaa99a999
2380 DATA 88877878767666656556556555
2390 DATA 65555555555665776677766777
2400 DATA 77888788899999998999999999
2410 DATA 98aa8a999999999999998999a9
2420 DATA 99988899888888888887777888
2430 DATA 88777777777777788888798788
2440 DATA 8888889999999988a899999999
2450 DATA 99999999999989888888888888
2460 DATA 87888888888888888888888788
2470 DATA 88888888888888888888888888
2480 DATA 88979889788898879888888888
2490 DATA 89898888888888888888888888
2500 DATA 88888888888888888888888888
2510 DATA 88888888888888888888888888
2520 DATA 88888888888888888888888888
2530 DATA 88888888888888888888888888
2540 DATA 88888888888888888888888888
2550 DATA 888888888900ffff0071007388
2560 DATA 888888988888899a867977338d
2570 DATA a57a6ab9cbb859668c8a94a458
2580 DATA 9979eb67889a9a6a877949bab9
2590 DATA 8888887986789a8ab7745689a8
2600 DATA 7ba698603bdec8310fbc979697
2610 DATA 098845cc88cd637a879c8679eb
2620 DATA 86469bb8758968888797669768
2630 DATA 9a98996799789989878a988988
2640 DATA 988788788b9788898977899a9a
2650 DATA 9786788899ca6405d8cea8566a
2660 DATA 9bb99865777798879a5644a88a
2670 DATA aa999888767997686689a9a989
2680 DATA 88778998789767779a99888788
2690 DATA 899887878bc88c745889ba9779
2700 DATA a898987877989a9866689ab987
2710 DATA 88aa9888777888888888998889
2720 DATA 777888988877899a9888877899
2730 DATA 9877878889888a888877888899
2740 DATA 98888888888888889999898998
2750 DATA 87889888888899987889989888
2760 DATA 88988888898888889989988888
2770 DATA 8999a7b7336bbc759a55bc7897
2780 DATA 7a87987a67866a99a669989998
2790 DATA 7986898789789789878979a878
2800 DATA 99878899879987888898789788
2810 DATA 98986798898888889878988897
2820 DATA 99889988888a87888988898889
2830 DATA 88888889888977888888888888
2840 DATA 88887888888888888888888888
2850 DATA 88888888988888888888888888
2860 DATA 88888888888888888888888888
2870 DATA 88888888888888888888888888
2880 DATA 88888888888888888888888888
2890 DATA 88888888888888888888888888
2900 DATA 88888888888888888888888888
2910 DATA 88888888888888888888888888
2920 DATA 88888888888888888888888888
2930 DATA 88888888888888888888888888
2940 DATA 88888888888888888888888888
2950 DATA 8888888888ffff00402446a0e3
2960 DATA ede3a0e4e1f4e1a0e6e9ece5a0
2970 DATA 8e950d200612d7ec15004ca8c4
2980 DATA 3e689538197abcea0000000000
2990 DATA 0042000000ffffffffffffffff
3000 DATA ffffffffffffffffffffffffff
3010 DATA ffffffffffffffffffffffffff
3020 DATA ffffffff434443444343434344
3030 DATA 44444545454545ffffffffffff
3040 DATA ffffffffffffffffffffffffff
3050 DATA ffffffffffffffffffffffffff
3060 DATA ffffffffffffffffffffffffff
3070 DATA ffffff04a100200000f0c70020
3080 DATA 0000f0c370208000ec90f00080
3090 DATA 0008a10c20000000a100200000
3100 DATA 04a10020000004a10c000000c5
3110 DATA a10700480075a10500222075a1
3120 DATA 0400222075a10300222000a900
3130 DATA 000000f8c77020000000000000
3140 DATA 00000000000000000000000000
3150 DATA 00000000000000000000000000
3160 DATA 00000000000000000000000000
3170 DATA 00000000000000000000000000
3180 DATA 00000000000000000000000000
3190 DATA 00000056453423222222025644
3200 DATA 34333322220256443433222222
3210 DATA 02231100000000000067554434
3220 DATA 33232202112233334444440434
3230 DATA 22222211111101222222222222
3240 DATA 22023522110000000000444434
3250 DATA 23221101004444342322110100
3260 DATA 44443423221101005645343333
3270 DATA 33330356443433332222020000
3280 DATA 00000000000000000000000000
3290 DATA 00000000000000000000000000
3300 DATA 00000000000000000000000000
3310 DATA 00000000000000000000000000
3320 DATA 00000000000000000000000000
3330 DATA 00000000000000000000000000
3340 DATA 00000000000000000000000000
3350 DATA 00000001010101010101010101
3360 DATA 080901010b0d0d0d0d0dfefefe
3370 DATA fefefefefefefefefefefefefe
3380 DATA fefefefefefefefefefefefefe
3390 DATA fefefefefefefefefefefefefe
3400 DATA fefefefefefefefefefefefefe
3410 DATA fefefefefefefefefeef000000
3420 DATA 00050505050505000005050c05
3430 DATA 05050505ffffffffffffffffff
3440 DATA ffffffffffffffffffffffffff
3450 DATA ffffffffffffffffffffffffff
3460 DATA ffffffffffffffffffffffffff
3470 DATA ffffffffffffffffffffffffff
3480 DATA ffffffff020304030203060307
3490 DATA 040a0a020302030e0f0203ffff
3500 DATA ffffffffffffffffffffffffff
3510 DATA ffffffffffffffffffffffffff
3520 DATA ffffffffffffffffffffffffff
3530 DATA ffffffffffffffffffffffffff
3540 DATA ffffffffffffffffffffffff00
3550 DATA 5f8e05498c4b804c8e07648a63
3560 DATA 806180ff024781474780474781
3570 DATA 47804780478042814242804242
3580 DATA 81428042804280408140408040
3590 DATA 40814080408040804081404080
3600 DATA 404081408040804080ff024780
3610 DATA 0a530247478047470a53800247
3620 DATA 800a538002478042800a4e0242
3630 DATA 428042420a4e800242800a4e80
3640 DATA 02428040800a4c024040804040
3650 DATA 0a4c800240800a4c8002408040
3660 DATA 80094c024040094c024040094c
3670 DATA 80024080094c4c024080ff045f
3680 DATA 8e5a8a054682478e065352504e
3690 DATA 4c4e525355585a5e5a585553ff
3700 DATA 8700615f5e5c5a585a5e5f6164
3710 DATA 6a6b6a6664615f5e5c5a585a5e
3720 DATA 588e6463615f5e5c5a5e0c5385
3730 DATA ff00538653805380578058805a
3740 DATA 865a805a805c805e805f8a5f82
3750 DATA 0a588158588058800958805882
3760 DATA 5880ff00538661805f805e805c
3770 DATA 805a865a805a805c805e805f8e
3780 DATA 0a58815858805880005f805f80
3790 DATA 61806380ff0d5f865f805f8063
3800 DATA 80648066866680668068806a80
3810 DATA 6b8a6b826b6a68666463615f5e
3820 DATA 5c5a5857555352ff0d5352504e
3830 DATA 4c4b494746444240424446475a
3840 DATA 885a805c805e805f8c5f805881
3850 DATA 64588064806b805f8061806380
3860 DATA ff065380528050804e80538052
3870 DATA 8050804e805380528050804e80
3880 DATA 5380528050804e805380528050
3890 DATA 804e805380528050804e805380
3900 DATA 528050804e805380528050804e
3910 DATA 80ff0142804e4e804e80424280
3920 DATA 4e8042804e4249805555805580
3930 DATA 49498055804980554947805353
3940 DATA 80538047478053804780534747
3950 DATA 80535380538047478053804780
3960 DATA 5347ff07538e4e8e4c82036682
3970 DATA 074c82036682074c8203668207
3980 DATA 4c820366806680ff0142804246
3990 DATA 494e494642804246494e494649
4000 DATA 804944554d504449804944554d
4010 DATA 50444780474e534b534e498049
4020 DATA 44554d50444780474e534b534e
4030 DATA 4780474e534b534eff01428042
4040 DATA 46494e494642804246494e4946
4050 DATA 49804944554d50444980494455
4060 DATA 4d50444780474e534b534e4780
4070 DATA 474e534b534e4780474e534b53
4080 DATA 4e4780474e534b534eff006386
4090 DATA 61825f825e865e805e5f618063
4100 DATA 80648464805f8064805c806480
4110 DATA 58806480558064805380648050
4120 DATA 806480ff870057805755538052
4130 DATA 805380535250804e8053805352
4140 DATA 50804e805380535250804e8053
4150 DATA 80535250804e804c804c4e5080
4160 DATA 52804c804c4e50805280ff

Michał Luberda



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2002