Piszemy DEMOW tym artykule zakończymy pisać pierwszą część demonstracji. Przede wszystkim brakuje nam jeszcze procedury definiującej polskie znaki, obrazka i muzyki oraz kilku dodatkowych procedur. Na początek zajmiemy się definiowaniem polskich znaków. Realizuje to procedura "POLSKIE.ASM": Procedure Equ $9AD0 List_main Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Charset1 Equ $E000 Chbas Equ $02F4 DefZnak Equ $9AA8 Pomoc Equ $0080 Pomoc2 Equ $0082 Zestaw Equ $8C00 Opt List_err+Code_dsk Org Procedure Ldx <Charset1 Ldy >Charset1 Stx Pomoc Sty Pomoc+$01 Ldx <Zestaw Ldy >Zestaw Stx Pomoc2 Sty Pomoc2+$01 Ldx #$03 Ldy #$00 L1 Lda (Pomoc),y Sta (Pomoc2),y Iny Bne L1 Inc Pomoc+$01 Inc Pomoc2+$01 Dex Bpl L1 Lda <Znaki Ldy >Znaki Ldx #$0A Jsr DefZnak Lda >Zestaw Sta Chbas Rts Znaki Dta B($03),B($00),B($55) Dta B($AA),B($FF),B($AA) Dta B($55),B($00),B($00) Dta B($41),B($00),B($00) Dta B($3C),B($06),B($3E) Dta B($66),B($3E),B($03) Dta B($43),B($0C),B($18) Dta B($3C),B($60),B($60) Dta B($60),B($3C),B($00) Dta B($45),B($00),B($00) Dta B($3C),B($66),B($7E) Dta B($60),B($3C),B($06) Dta B($4C),B($00),B($38) Dta B($18),B($1C),B($38) Dta B($18),B($3C),B($00) Dta B($4E),B($0C),B($18) Dta B($7C),B($66),B($66) Dta B($66),B($66),B($00) Dta B($4F),B($0C),B($18) Dta B($3C),B($66),B($66) Dta B($66),B($3C),B($00) Dta B($53),B($0C),B($18) Dta B($3E),B($60),B($3C) Dta B($06),B($7C),B($00) Dta B($58),B($0C),B($18) Dta B($7E),B($0C),B($18) Dta B($30),B($7E),B($00) Dta B($5A),B($18),B($00) Dta B($7E),B($0C),B($18) Dta B($30),B($7E),B($00) End of filePrzedefiniowany zestaw znaków umieszczamy w pamięci od adresu $8C00, czyli od etykiety Zestaw. W pętli L1 przepisywane są znaki ze standardowego zestawu Atari (Charset1 = $E000) do pamięci RAM. Następnie wywoływana jest procedura Defznak, która umieszcza zdefiniowane przez nas znaki w odpowiednich obszarach nowego zestawu znaków. W rejestrze X procesora umieszczamy Ilość znaków do przedefiniowania, natomiast w rejestrach A i Y odpowiednio młodszy i starszy bajt tablicy z danymi. W tablicy danych (etykieta Znaki) każdy znak zawiera się w dziewięciu bajtach. Pierwszy bajt to kod IOCODE znaku, a następne osiem to wygląd znaku. A tak wygląda procedura "DEFZNAK.ASM": Procedure Equ $9AA8 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Pomoc Equ $0080 Pomoc2 Equ $0082 Znak Equ $9A92 Opt List_err+Code_dsk Org Procedure Sta Pomoc2 Sty Pomoc2+$01 L1 Ldy #$00 Lda (Pomoc2),y Jsr Znak Iny L2 Lda (Pomoc2),y Dey Sta (Pomoc),y Iny Iny Cpy #$09 Bne L2 Clc Lda Pomoc2 Adc #$09 Sta Pomoc2 Lda Pomoc2+$01 Adc #$00 Sta Pomoc2+$01 Dex Bne L1 Rts End of fileWarto jeszcze dodać, że Defznak korzysta z zamieszczonej w poprzednim artykule procedury Znak. Przypominamy, że uprzednio procedura ta zawierała standardowy adres zestawu znaków i aby polskie znaki pokazały się na ekranie należy zadbać o to, by etykieta Zestaw w procedurze Znak miała również wartość $8C00. Wraz z polskimi znakami zdefiniowany został znak o kodzie IOCODE równym $03. Z tego właśnie znaku składały się "pojedyncze punkty" liter dużego płynącego napisu. Poniżej zamieszczamy dodatkową procedurę "ZNACZEK.ASM", która poprzez modyfikację tego znaku czyni duży płynący napis bardziej atrakcyjnym. Procedura "ZNACZEK.ASM" wywoływana będzie co 2/50 sekundy. Procedure Equ $9E82 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Zestaw Equ $8C00 Opt List_err+Code_dsk Org Procedure IntProc Lda Zestaw+$18 Pha Ldy #$00 L1 Lda Zestaw+$19,y Sta Zestaw+$18,y Iny Cpy #$07 Bne L1 Pla Sta Zestaw+$1F Rts End of file"RUCH.ASM" to kolejna procedura pierwszej części demonstracji: Procedure Equ $9E98 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Dlist Equ $9800 OHScrol Equ $008A Opt List_err+Code_dsk Org Procedure Jmp Init_Ruch IntProc Ldx Licznik Lda Tab_poz,x Sta OHScrol Inx Lda Tab_poz,x Sta Dlist+$2C Inx Stx Licznik Cpx #$C0 Bne L1 Ldx #$00 Stx Licznik L1 Rts Init_Ruch Ldx #$5E Ldy #$00 L2 Lda Tab_poz+$01,x Sta Tab_poz+$61,y Lda Tab_poz,x Sta Tab_poz+$60,y Iny Iny Dex Dex Bpl L2 Lda #$00 Sta Licznik Rts Licznik Dta B($00) Tab_poz Dta B($0F),B($00) Dta B($0F),B($00) Dta B($0F),B($00) Dta B($0E),B($00) Dta B($0E),B($00) Dta B($0E),B($00) Dta B($0D),B($00) Dta B($0D),B($00) Dta B($0C),B($00) Dta B($0C),B($00) Dta B($0B),B($00) Dta B($0B),B($00) Dta B($0A),B($00) Dta B($0A),B($00) Dta B($09),B($00) Dta B($08),B($00) Dta B($07),B($00) Dta B($06),B($00) Dta B($04),B($00) Dta B($02),B($00) Dta B($00),B($00) Dta B($0E),B($04) Dta B($0B),B($04) Dta B($08),B($04) Dta B($05),B($04) Dta B($03),B($04) Dta B($01),B($04) Dta B($0F),B($08) Dta B($0D),B($08) Dta B($0B),B($08) Dta B($09),B($08) Dta B($08),B($08) Dta B($07),B($08) Dta B($06),B($08) Dta B($05),B($08) Dta B($05),B($08) Dta B($05),B($08) Dta B($04),B($08) Dta B($04),B($08) Dta B($03),B($08) Dta B($03),B($08) Dta B($02),B($08) Dta B($01),B($08) Dta B($01),B($08) Dta B($01),B($08) Dta B($00),B($08) Dta B($00),B($08) Dta B($00),B($08) End of fileProcedura przesuwa obrazek w poziomie, wykorzystując tablicę danych Tab_poz, która powielana jest w pamięci po uruchomieniu procedury (pętla L2). Każde dwa bajty tablicy określają nowe położenie obrazka. Pierwszy bajt to wartość HScrol'a dla obrazka, wpisywana do zmiennej OHScrol obsługiwanej przez przerwanie Display List. Drugi bajt to młodszy bajt adresu pamięci ekranu obrazka wpisywany bezpośrednio do Display List. Czynności te wykonywane są w głównej części procedury (etykieta IntProc). Dane zamieszczone w tablicy Tab_poz umożliwiają przesunięcie obrazka tylko w jedną stronę, dlatego też powielane są w odwrotnej kolejności, aby umożliwić przesuw w drugą stronę. "WSKAZNIK.ASM" jest już ostatnią procedurą potrzebną do tego, aby pierwsza część demonstracji działała w pełni poprawnie. Procedura ta również wywoływana jest co 1/50 sekundy: Procedure Equ $9F95 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Music Equ $7400 Start_pl Equ $9000 Opt List_err+Code_dsk Org Procedure IntProc Ldx #$1F Lda #$00 L1 Sta Start_pl+$5B0,x Dex Bpl L1 Tay Tax L2 Lda Music+$313,x And #$0F Sta Pomoc,y Inx Inx Iny Cpy #$03 Bne L2 Ldy #$00 L3 Lda #$10 Sec Sbc Pomoc,y Asl @ Tax L4 Lda Start_pl+$5B0,x Ora Tab,y Sta Start_pl+$5B0,x Inx Inx Cpx #$22 Bne L4 Iny Cpy #$03 Bne L3 Rts Pomoc Dta B($00),B($00),B($00) Tab Dta B($10),B($04),B($01) End of fileProcedura umieszcza na ekranie wskaźnik głośności poszczególnych kanałów dźwiękowych. Wskaźnik jest to jeden obiekt grafiki PMG modyfikowany przez powyższą procedurę. Na początku procedury czyszczony jest obszar PMG, na którym pojawi się wskaźnik, następnie w pętli L2 przepisywane są trzy bajty z obszaru pamięci, gdzie umieszczona jest procedura odgrywająca muzykę do tablicy pomocniczej Pomoc. Muzyka została stworzona przy pomocy Future Composer'a i umieszczona w pamięci pod adresem $7400 (etykieta Music). Bajty, w których cztery młodsze bity odpowiadają za głośność poszczególnych kanałów Future Composer umieszcza zawsze w adresach Music+$313, Music+$315 i Music+$317. Ostatnie pętle L3 i L4 przygotowują wygląd wskaźnika. Na zakończenie podajemy dwie procedury "CZYSC.ASM" oraz "RUN.ASM". Pierwsza z nich czyści pamięć komputera i powinna być uruchomiona przed załadowaniem całej demonstracji. Procedura posiada własny adres inicjacji, dzięki któremu po załadowaniu jej z DOS'a sama się uruchomi i pozwoli systemowi na dalsze ładowanie zbioru, jeśli zbiór się jeszcze nie skończył. Oto tekst źródłowy tej procedury: Program Equ $0600 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Pomoc Equ $F0 Opt List_err+Code_dsk Org Program Ldy #$00 Tya Ldx #$5A Sty Pomoc Stx Pomoc+$01 L1 Sta (Pomoc),y Iny Bne L1 Inc Pomoc+$01 Dex Bpl L1 Rts Org $2E2 Dta A($0600) End of FileOstatnia procedura "RUN.ASM" uruchamia całą demonstrację: Procedure Equ $0600 List_mem Equ %00000110 List_err Equ %00000101 Code_mem Equ %00010000 Code_dsk Equ %00100000 Atract Equ $004D Nmien Equ $D40E Rtclok Equ $0012 Skctl Equ $D20F VVblk Equ $0222 BScroll Equ $9DE6 Dli Equ $9800 Dliv Equ $9897 HScroll Equ $9DA5 Music Equ $7400 Players Equ $9B5B Polskie Equ $9AD0 Ruch Equ $9E98 Skoczek Equ $A10C VScroll Equ $9D49 Wskaznik Equ $9F95 Znaczek Equ $9E82 Opt List_err+Code_dsk Org Procedure Ldx Vvblk Ldy Vvblk+$01 Stx Koniec+$01 Sty Koniec+$02 Jsr Polskie Jsr Dli Jsr Dliv Jsr Players Jsr Ruch Jsr BScroll Jsr VScroll Jsr HScroll Lda #$03 Sta Skctl Ldx <Muzyka Ldy >Muzyka Lda #$C0 Stx Vvblk Sty Vvblk+$01 Sta Nmien L1 Lda Rtclok+$02 L2 Cmp Rtclok+$02 Beq L2 Lda Licznik Eor #$01 Sta Licznik Sta Atract Beq L3 Jsr Players+$03 Jsr Znaczek Jsr VScroll+$03 L3 Jsr HScroll+$03 Jsr BScroll+$03 Jsr Ruch+$03 Jsr Wskaznik Jmp L1 Licznik Dta B($00) Muzyka Jsr Music+$01 Koniec Jmp Koniec Org $02E0 Dta A($0600) End of FileMuzyka odtwarzana jest na przerwaniu Vblk (wektor przerwania = $222). Przerwanie to wymaga, by procedura użytkownika pracująca na nim wywoływała oryginalną procedurę zawartą w ROMie komputera. Nasza procedura przerwania obsługuje tylko muzykę (etykieta Muzyka). Na początku procedury "RUN.ASM" zapisywany jest wektor przerwania pod etykietę Koniec+$01. W ten sposób przerwanie wywołuje muzykę, a następnie wykonuje skok pod zapamiętany adres (a nie pod etykietę Koniec!). Po zapamiętaniu wektora przerwania inicjowane są wszystkie procedury, które tego wymagają. Następnie ustawiany jest wektor przerwania Vblk na etykietę Muzyka. Główna pętla L1 wywołuje część procedur co 1/50 sekundy, a dwie z nich: "PLAYER.ASM" i "ZNACZEK.ASM" - co 2/50 sekundy. Dodatkowo wpisanie wartości Licznika do rejestru Atract zapobiega włączeniu się trybu przyciągania uwagi (Atract = $4D). Na końcu procedury "RUN.ASM" umieszczony jest adres uruchomienia wpisywany do komórki $2E0, co pozwoli na automatyczne uruchomienie demonstracji. Poniżej zamieszczone są homogenizowane dane obrazka i muzyki, które należy przepisać i przy użyciu Zgrywusa zapisać na dysk pod nazwami, odpowiednio, "OBRAZEK.DAT" i "MUZYKA.OBJ". Oba zbiory posiadają własne nagłówki DOS'a. Aby uruchomić pierwszą część demostracji warto wczytać Command Processor'a i załadować następujące zbiory: CZYSC.OBJ. DLI.OBJ, DLIV.OBJ, PLAYER.OBJ, ZNAK.OBJ, BSCROLL.OBJ, HSCROLL.OBJ, VSCROLL.OBJ, DEFZNAK.OBJ, POLSKIE.OBJ, ZNACZEK.OBJ, WSKAZNIK.OBJ, RUCH.OBJ oraz TEKSTY.DAT (zbiór zawierający teksty do płynących napisów), OBRAZEK.DAT, MUZYKA.OBJ i program uruchamiający RUN.OBJ. Proponujemy jednak zapisać wszystkie zbiory na jeden dysk, przepisać poniższy program w BASIC'u i uruchomić go. Program połączy wszystkie zbiory w jedną całość, w zbiór "DEMO.COM". Zwracamy uwagę na to, że procedura "CZYSC.OBJ" dołączana jest jako pierwsza! Ciąg dalszy w następnym artykule. 10 REM 20 REM PROGRAM LACZACY ZBIORY 30 REM 40 COM NAZWA$(14) 50 OPEN #1,8,0,"D:DEMO.COM" 60 FOR L=0 TO 40:READ D 70 POKE 1536+L,D:NEXT L 80 FOR L=0 TO 16:READ NAZWA$:? NAZWA$ 90 OPEN #2,4,0,NAZWA$ 100 D=USR(1536,32,7,5000) 110 X=USR(1536,16,11,D) 120 CLOSE #2:NEXT L 130 CLOSE #1:END 897 REM 898 REM PROGRAM MASZYNOWY 899 REM 900 DATA 104,104,104,170,104,104,157 910 DATA 66,3,104,157,73,3,104,157 920 DATA 72,3,169,0,157,68,3,169,100 930 DATA 157,69,3,32,86,228,189,72,3 940 DATA 133,212,189,73,3,133,213,96 997 REM 998 REM NAZWY ZBIOROW 999 REM 1000 DATA D:CZYSC.OBJ 1010 DATA D:DLI.OBJ 1020 DATA D:DLIV.OBJ 1030 DATA D:PLAYER.OBJ 1040 DATA D:ZNAK.OBJ 1050 DATA D:BSCROLL.OBJ 1060 DATA D:HSCROLL.OBJ 1070 DATA D:VSCROLL.OBJ 1080 DATA D:DEFZNAK.OBJ 1090 DATA D:POLSKIE.OBJ 1100 DATA D:ZNACZEK.OBJ 1110 DATA D:WSKAZNIK.OBJ 1120 DATA D:RUCH.OBJ 1130 DATA D:TEKSTY.DAT 1140 DATA D:OBRAZEK.DAT 1150 DATA D:MUZYKA.OBJ 1160 DATA D:RUN.OBJ 1000 REM /-------------------------\ 1001 REM | PISZEMY DEMO | 1002 REM | (dane do obrazka) | 1003 REM | Tomasz Bielak | 1004 REM | Rafal Bielecki | 1005 REM \-------------------------/ 1010 DATA ffff0c801f8001555555555555 1020 DATA 55555555555555555555555540 1030 DATA 3480478005aaaaaaaaaaaaaaaa 1040 DATA aaaaaaaaaaaaaaaaaaaa505c80 1050 DATA 6f8016ffffffffffffffffffff 1060 DATA ffffffffffffffff9484809780 1070 DATA 1baaaaaaaaaaaaaaaaaaaaaaaa 1080 DATA aaaaaaaaaaaae4ac80bf801b95 1090 DATA 55555555555555555555555555 1100 DATA 55555556e9d480e7806e940000 1110 DATA 000000f0000000000000000000 1120 DATA 0006b9fc800f816e5000000000 1130 DATA 00f00000000000000000000006 1140 DATA b9248137816e500000000000f0 1150 DATA 0555555555555555500005b94c 1160 DATA 815f816e400000000000f00005 1170 DATA 556aaaa55554000001b9748187 1180 DATA 816e400000000000f000000aaa 1190 DATA aaa9aa80000001b99c81af816e 1200 DATA 400000000000f00000003beafa 1210 DATA 8000000001b9c481d7816e4000 1220 DATA 00000000f000000000ffc00000 1230 DATA 000001b9ec81ff816e41555550 1240 DATA 0000f0000000000c0000000000 1250 DATA 01b9148227826e415555500003 1260 DATA c00000000000000000003001b9 1270 DATA 3c824f826e415555500003c000 1280 DATA 00000000000000003001b96482 1290 DATA 77826e42aaaaa00003c0000000 1300 DATA 0000000000002001b98c829f82 1310 DATA 6e4002a0000003c00000000000 1320 DATA 000000001001b9b482c7826e40 1330 DATA 02a0000003c000000000000000 1340 DATA 00002001b9dc82ef826e4003f0 1350 DATA 000003c0000000000000000000 1360 DATA a801b9048317836e4003f00000 1370 DATA 0fc0000000000000000000b801 1380 DATA b92c833f836e4003f000000f00 1390 DATA 000000000000000000b801b954 1400 DATA 8367836e4003f000000f000000 1410 DATA 00000000000002de01b97c838f 1420 DATA 836e4003f000010f0000000000 1430 DATA 0000000faf47f1b9a483b7836e 1440 DATA 4002a000000f00000000000050 1450 DATA 000002de01b9cc83df836e4002 1460 DATA a005413c055050505540001541 1470 DATA 54b801b9f48307846e4002a000 1480 DATA a2fc2828aaa8a0a2a0a00a0ab8 1490 DATA 01b91c842f846e4001500ff3fc 1500 DATA 3ffcfffcf0f0f0f00fffa801b9 1510 DATA 448457846e4001502082fc2800 1520 DATA a228a0a0a0a00a002001b96c84 1530 DATA 7f846e4001500547f005505014 1540 DATA 5051541541542001b99484a784 1550 DATA 6e4000000007f0000000000000 1560 DATA 000000002001b9bc84cf846e40 1570 DATA 0000000ff00000000000000000 1580 DATA 00001001b9e484f7846e400000 1590 DATA 0003b000000000000000000000 1600 DATA 1001b90c851f856e400000000f 1610 DATA b0000000000000000000002001 1620 DATA b9348547856e400c00000eb000 1630 DATA 0000000000000000003001b95c 1640 DATA 856f856e400c00003eb0005015 1650 DATA 540501550555003001b9848597 1660 DATA 856e400800003ab002a802802a 1670 DATA 828280a0003001b9ac85bf856e 1680 DATA 4008000039b00a0a0280a0a282 1690 DATA 80a0000001b9d485e7856e4008 1700 DATA 0000f8bc0f0f03c0f0f3ff00f0 1710 DATA 000001b9fc850f866e40080000 1720 DATA eabfcaaa0280aaa28a00a00000 1730 DATA 01b9248637866e402a000fffff 1740 DATA c50501405051414555000001b9 1750 DATA 4c865f866e41bfac0fc00fc000 1760 DATA 00000000000000000001b97486 1770 DATA 87866e402e003f000fff000000 1780 DATA 0000000000000001b99c86af86 1790 DATA 6e400c003c0003ffc000000000 1800 DATA 000000000001b9c486d7866e40 1810 DATA 0800fcf000fff0000000000000 1820 DATA 00000001b9ec86ff866e400403 1830 DATA f0f00039fc0000000000000000 1840 DATA 0001b9148727876e40000fc0f0 1850 DATA 000e7f00000000000000000001 1860 DATA b93c874f876e40003fc3c00003 1870 DATA 9fc0000000000000000001b964 1880 DATA 8777876e4000fc0fc00000e7f0 1890 DATA 000000000000000001b98c879f 1900 DATA 876e400ff00ec0000039fc0000 1910 DATA 00000000000001b9b487c7876e 1920 DATA 40ffc33e8000000e7f00000000 1930 DATA 0000000001b9dc87ef876e43ff 1940 DATA 0ffa800000039fc00000000000 1950 DATA 000001b9048817886e7ffc0fe8 1960 DATA 80000000e7f000000000000000 1970 DATA 01b92c883f886e7fc03fe80000 1980 DATA 000039fc003f3f3308151501b9 1990 DATA 548867886e7c033ee800000000 2000 DATA 0e7f000c333e22100101b97c88 2010 DATA 8f886e40cffea400000000039f 2020 DATA c00c333229150401b9a488b788 2030 DATA 6e43ffba541104111500e7c00c 2040 DATA 332221011001b9cc88df886e4f 2050 DATA eea95415111110003bc00c3e22 2060 DATA 11151501b9f48807896e4aaa95 2070 DATA 5011151416000fc00000000000 2080 DATA 0001b91c892f896e4169555011 2090 DATA 11111000000000f82094104001 2100 DATA b9448957896e40551450111111 2110 DATA 1a00000000c88840444001b96c 2120 DATA 897f896e401504500000000000 2130 DATA 000000e8a854545001b99489a7 2140 DATA 896e4004045000000000000000 2150 DATA 00a08440444001b9bc89cf896e 2160 DATA 4004045001415122a2f3000088 2170 DATA 8440445401b9e489f7896e4000 2180 DATA 0440011101a223030000000000 2190 DATA 000001b90c8a1f8a6e40000040 2200 DATA 0111522223f300000000000000 2210 DATA 01b9348a478a6e500000400111 2220 DATA 022220300000000000000005b9 2230 DATA 5c8a6f8a6e5000000001416222 2240 DATA a3f30000000000000005b9848a 2250 DATA 978a6e94000000000000000000 2260 DATA 0000000000000016b9ac8abf8a 2270 DATA 2b955555555555555555555555 2280 DATA 555555555556e9d48ae78a1baa 2290 DATA aaaaaaaaaaaaaaaaaaaaaaaaaa 2300 DATA aaaaaaaae4fc8a0f8b1affffff 2310 DATA ffffffffffffffffffffffffff 2320 DATA ffffa4248b378b06aaaaaaaaaa 2330 DATA aaaaaaaaaaaaaaaaaaaaaaaaaa 2340 DATA 904c8b5f8b0155555555555555 2350 DATA 555555555555555555555540 1000 REM /-------------------------\ 1001 REM | PISZEMY DEMO | 1002 REM | (muzyka) | 1003 REM | Tomasz Bielak | 1004 REM | Rafal Bielecki | 1005 REM \-------------------------/ 1010 DATA ffff0174c776201074a208bd10 1020 DATA 779d00d2ca10f7602c0e773027 1030 DATA 5035a900a20b9de176ca10fa8d 1040 DATA 0e77a202a9089d0b77ad00749d 1050 DATA de76ca10f2a9508d18774c4c74 1060 DATA a900a2079d1077ca10faa9808d 1070 DATA 0e7760ee0f77a202861ee88a0a 1080 DATA a8841fcabd0278851cbd057885 1090 DATA 1dbde476f0034c5475bcde76b1 1100 DATA 1cc940f00ec9fff018c9fed02d 1110 DATA 8d0e774c2f76c8b11c8d1877c8 1120 DATA 989dde764c6c74ad00749dde76 1130 DATA a9508d1877a9009de4769de776 1140 DATA 9de1764c6c74482980f00bfede 1150 DATA 7668290f9d0b7710b268a8b922 1160 DATA 77851cb98277851dbde7769de4 1170 DATA 76a9009d0277bce176b11c3007 1180 DATA 0a30254a4c15750a0aa8b90878 1190 DATA 9ded76b909789df376b90a789d 1200 DATA f676b90b789df976fee1764cd1 1210 DATA 744a291faabde277a61e9de476 1220 DATA 9de776fee1764cd1749dff7618 1230 DATA 7d0b77a8e000d00fb956768d10 1240 DATA 77b996768d12774c3b75b92876 1250 DATA 9dea76a41f991077a9009df076 1260 DATA fee176bce176b11cc9ffd008a9 1270 DATA 009de176fede76bded76a8b962 1280 DATA 778d6a75b9c2778d6b75a61ebc 1290 DATA f076b9ff70c9fff0271010a41f 1300 DATA 991177a900991077fef0764cf8 1310 DATA 75a41ffef0761df376991177e0 1320 DATA 00f006bdea76991077bdf676f0 1330 DATA 23ad0f772901d005bdf676d002 1340 DATA a9008db27518bdff7669027d0b 1350 DATA 77a8b92876a41f991077bdf976 1360 DATA f0343020bcfc76fefc76b91977 1370 DATA c91fd007a9009dfc76f0ec187d 1380 DATA ea76a41f9910774cf875bdea76 1390 DATA c9fff00bfeea76feea76a41f99 1400 DATA 1077bd0277f029bd0577f006de 1410 DATA 05774c2676bd0277100a18bdea 1420 DATA 767d08774c1e7638bdea76fd08 1430 DATA 779dea76a41f991077dee476ca 1440 DATA 30034c517460fff1e4d7cbc0b5 1450 DATA aaa1988f877f78726b655f5a55 1460 DATA 504b47433f3c3835322f2c2a27 1470 DATA 2523211f1d1c1a1716130f0700 1480 DATA 388c006ae86aef8008ae46e695 1490 DATA 41f6b06e30f6bb845222f4c8a0 1500 DATA 7a553414f5d8bda48d77604e38 1510 DATA 271506f7e8dbcfc3b8aca29a90 1520 DATA 887f78706a645e5752320a000b 1530 DATA 0a0a0908080707070606050505 1540 DATA 04040404030303030302020202 1550 DATA 02020201010101010101010101 1560 DATA 01011877b37c50000001010000 1570 DATA ffff1f3438526a83bac3f73465 1580 DATA 78858f99a6c8e5104879abc6d3 1590 DATA df0b2740597c7d7e7f80818283 1600 DATA 8485868788898a8b8c8d8e8f90 1610 DATA 9192939495969798999a9b9c9d 1620 DATA 9e9fa0a4a8b1bec3d1dfe9ebf4 1630 DATA f6f7f8f9fafbfcfdfeff000102 1640 DATA 030405060708090a7878787878 1650 DATA 7878787979797979797979797a 1660 DATA 7a7a7a7a7a7a7b7b7b7b7b7b7b 1670 DATA 7b7b7b7b7b7b7b7b7b7b7b7b7b 1680 DATA 7b7b7b7b7b7b7b7b7b7b7b7b7b 1690 DATA 7b7b7b7b7b7b7b7b7b7b7b7b7b 1700 DATA 7b7b7b7b7b7b7b7b7b7b7b7b7b 1710 DATA 7b7b7c7c7c7c7c7c7c7c7c7c7c 1720 DATA 070e151c232a31383f464d545b 1730 DATA 626970777e858c939aa1a8afb6 1740 DATA bdc4cbd2d9e00b31967c7c7c00 1750 DATA 800000010000000280000003c0 1760 DATA 000004c0000005a0000206a00c 1770 DATA 0007a0000008a0000509800000 1780 DATA 0a0000008a5f01ff8041224022 1790 DATA 22412240811e80224122402222 1800 DATA 412240811e8022ff8041224022 1810 DATA 22412240811e80224122402222 1820 DATA 89411e811eff80412240222241 1830 DATA 2240811e8022412240821d1d41 1840 DATA 891e811eff83430d84410d8340 1850 DATA 1014410b0d84430d418308080b 1860 DATA 450d4110841083430d41840d40 1870 DATA 831012410a430d41840d830606 1880 DATA 0a450d410b840bff8a59018541 1890 DATA 0d1012ff854114141243144012 1900 DATA 14411743174012144117438619 1910 DATA 41174319418512171917121240 1920 DATA 141242141041124310410d400f 1930 DATA 104112ff854114141243144012 1940 DATA 144217411740171e1c41191743 1950 DATA 194186174319408717190d1217 1960 DATA 190d1217190d1217190d121719 1970 DATA 0d1217190d1217190d121719ff 1980 DATA 83410d10841083104510400d0b 1990 DATA 410d10841083104310410b0843 2000 DATA 0d41840d830d430d840d83410b 2010 DATA 0d840d830d0d0b0d0bff814119 2020 DATA 8040222289412581401e802281 2030 DATA 4119ff8040222289412581401e 2040 DATA 8022ff80402222894125811eff 2050 DATA 82401d1d894125811eff854110 2060 DATA 451286411012851012ff854314 2070 DATA 4114431241100d080b450d8641 2080 DATA 0b430d85400b0d43104110430d 2090 DATA 410b0d0bff8543144114121714 2100 DATA 1214400d0f451086400d0f4510 2110 DATA 85411210124910ff8541141412 2120 DATA 43144012144117431740121441 2130 DATA 17431941174319411217191712 2140 DATA 1240141242141043121417ff86 2150 DATA 4219194119421b174719854014 2160 DATA 12411040124114440d87401719 2170 DATA 0d1217190d1217190d1217190d 2180 DATA 1217190d1217190d1217190d12 2190 DATA 1719ff83410d10841083100d43 2200 DATA 10400d0b410d10841083100d10 2210 DATA 0b08080d840d830d0b0d84430d 2220 DATA 83410b0d840d830d0d0b0d0bff 2230 DATA 83410d10841083104510400d06 2240 DATA 410d10841083104310410b080d 2250 DATA 0d840d830d0d840d830d840d83 2260 DATA 1210121012841283430bff8141 2270 DATA 198040222289412581401e8022 2280 DATA 891919191941194019810dff89 2290 DATA 40198222804120811c8222ff89 2300 DATA 401982228941201c8222ff8a43 2310 DATA 01841e88472585451442198617 2320 DATA 85431486178740171723171723 2330 DATA 17172317172386431417411c1b 2340 DATA 1714ff80451242191743121486 2350 DATA 4b2085421e1c411e431c171917 2360 DATA 19411c1bff8940168222804120 2370 DATA 89401682228019194119194019 2380 DATA 191919ff894016822280412089 2390 DATA 40168222801919411919401919 2400 DATA 1919ff8741232325251c1c1e1e 2410 DATA 202019191c1c1e1e171719191c 2420 DATA 1c12121414171710191c1effff 2430 DATA ffffffffffffffffffffffffff 2440 DATA ffffffffffffffffffffffffff 2450 DATA ffffffffffffffffff080300ff 2460 DATA 0d0300ff0303030203020100ff 2470 DATA 080808070605040303020201ff 2480 DATA 01010100ff0b08060504040303 2490 DATA 0302020201ff0b080605040403 2500 DATA 030302020201ff010304050403 2510 DATA 020100ff02ff0f0b0705030201 2520 DATA 00ff00ffffffffffffffffffff 2530 DATA ffffffffffffffffffffffff83 2540 DATA 04040404080804040404121315 2550 DATA 15151515151616151515151515 2560 DATA 16161919191a04041213ff8f01 2570 DATA 02010301020103010201030102 2580 DATA 01030102010301020103090a09 2590 DATA 0b090a090c090a090b090a090c 2600 DATA 090a090b090a090c090a090b09 2610 DATA 0a090c090a090b090a090c090a 2620 DATA 090b090a148817171b8f010201 2630 DATA 0301020103090a090b090a090c 2640 DATA 090a090b090a14ff8800000005 2650 DATA 06070d0e0d0f101110110d0e0d 2660 DATA 0f1818000506110d0e0d0fff Tomasz Bielak
Rafał Bielecki |