OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 13:49

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 370 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6 ... 25  Další
Autor Zpráva
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 06.08.2020, 10:24 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Ono to bude asi tím, že ta násobička je asi opravdu československá zvláštnost, tak ji tam přilepili takhle na hulváta.
Zatímco ty ostatní konstrukce, aj ta dioda RUN a tlačítko přerušení, jsou převzaté ze SM 50/40, totiž z Intel SBC 80/20.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 06.08.2020, 23:05 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak násobičky už jsou "in da haus" tak opaticovat, nasadit a až bude pp 01 běhat tak otestovat :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 25.12.2020, 14:08 
Offline
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 955
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Konečně jsem nezapomněl objednat příslušné předřadné odpory z dob dávno minulých (TR192, 33R), napájel je do IQčka a vyzkoušel s upraveným kódem z těchto stránek. V kódu jsou ale dvě drobné chybky, kdy ve funkci SignedMul jsou chybně po testech na znaménka činitelů je pouze nepodmíněné skoky (JP xx), správně mají být podmíněné skoky na základě příznaku S (JP P,xx):
Kód:
;HW nasobicka MH102
;FR   A0   /CS   /WR   /RD   RND   funkce
; 1    X    X    X    X    X   7-mi bitove nasobeni D7=1 zaporne/D7=0 kladne
; 0    X    X    X    X    X   8-mi bitove nasobeni
; X    0    X    X    X    X   nizsi byte (cteni/zapis)
; X    1    X    X    X    X   vyssi byte (cteni/zapis)
; X    X    1    X    X    X   obvod nevybran, D0..D7=1
; X    X    0    X    X    X   obvod vybran pro cteni/zapis
; X    X    X    1    X    X   zapis blokovan
; X    X    X    0    X    X   zapis do obvodu povolen
; X    X    X    X    1    X   cteni blokovano D0..D7=1
; X    X    X    X    0    X   cteni registru povoleno
; 1    1    X    X    X    1   zaokrouhluje D01= D´9 + prenos (D´7+1)
; 0    1    X    X    X    1   zaokrouhluje D01= D´9 + prenos (D´8+1)
; X    X    X    X    X    0   nezaokrouhluje


   ORG   01000h
Init:
      LD   A,07Fh
      CALL   0F5D5h      ; zobraz A hexadecimalne
      LD   C,'x'
      CALL   0F007h
      LD   A,07Fh
      CALL   0F5D5h      ; zobraz A hexadecimalne
      LD   C,'='
      CALL   0F007h
      LD   BC,07F7Fh
      CALL   UnsignedMul
      CALL   0F5D0h      ; zobraz HL hexadecimalne
      CALL   0F5B0h
      LD   A,07Fh      ; kladne 127
      CALL   0F5D5h      ; zobraz A hexadecimalne
      LD   C,'x'
      CALL   0F007h
      LD   A,081h      ; zaporne 127
      CALL   0F5D5h      ; zobraz A hexadecimalne
      LD   C,'='
      CALL   0F007h
      LD   BC,0817Fh
      CALL   SignedMul
      CALL   0F5D0h      ; zobraz HL hexadecimalne
      JP   0F5B0h
      
; Vynasobeni dvou 8. bitovych cisel bez znamenka.
; I: B=1. cinitel, C=2. cinitel
;      - obe cisla jsou bez-znamenkova: <0, 255>
;    HL=vysledok: <0, 65025>
; O: HL, PSW
UnsignedMul:
      LD   A,000000001b   ; nuluj FR a nech EPROM na 0F000h
      OUT   (080h),A
      LD   A,C      ; 1. cinitel
      OUT   (08Ch),A
      LD   A,B      ; 2. cinitel
      OUT   (08Dh),A
      IN   A,(08Ch)   ; nizsi byte vysledku
      LD   L,A      ; do L
      IN   A,(08Dh)   ; vyssi byte vysledku
      LD   H,A      ; do H
      RET

; Vynasobeni dvou 7 bitovych cisel se znamenkem
; I: B=1. cinitel, C=2. cinitel - obe cisla se transformuji do primeho kodu
;                                 se znamenkem v 7. bitu: <-127, 127>
;    HL=vysledek - v doplnkovem kode: <-16129, 16129>
; O: HL, PSW
SignedMul:
      LD   A,000000011b   ; nastav FR a nech EPROM na 0F000h
      OUT   (080h),A
      LD   A,C      ; 1. cinitel
      OR   A      ; test na znamenko
      JP   P,SignedMul1   ; kladne cislo bezezmeny
      CPL         ; neguj cislo v doplnkovem kodu
      INC   A
      OR   080h      ; a pridej znamenko v primem kodu
SignedMul1:
      OUT   (08Ch),A   ; zapis do MH102
      LD   A,B      ; 2. cinitel
      JP   P,SignedMul2
      CPL         ; neguj cislo v doplnkovem kodu
      INC   A
      OR   080h      ; a pridej znamenko v primem kodu
SignedMul2:
      OUT   (08Dh),A
      ; vysledek je opet v primem kodu a transformuje se do doplnkoveho
      IN   A,(08Ch)   ; nizsi byte vysledku
      RLCA         ; znamenko do 0. bitu
      LD   L,A      ; uloz zatim do L
      IN   A,(08Dh)   ; vyssi byte vysledku
      AND   07Fh      ; zrus znamenko
      RRA         ; nejnizsi bit H do CY
      LD   H,A      ; hotovy vyssi byte
      LD   A,L      ; nizsi byte
      RRA         ; pridej nejvyssi bit, CY = znamenko
      LD   L,A      ; hotový nizsi byte
      RET   NC      ; kladne cislo - navrat
      CPL         ; zneguj číslo
      LD   L,A
      LD   A,H
      CPL
      LD   H,A
      INC   HL
      RET

U IQčka je ještě specifické to, že způsob násobení (ale i zaokrouhlování) se nastavuje přes port 080h bity D1 (signál FR) a D2 (signál RND1). Přitom je nutno pamatovat na to, že bit D0 přemapovává EPROM na správnou adresu pro běh MONITORu (0F000h).

Po několika různých vstupních hodnotách pro obě varianty násobení lze konstatovat, že MH102 i program jsou plně funkční.

Nějakou dokumentaci k MH101 někdo náhodou nemáte? Když už tam je osazená, tak jí alespoň vyzkoušet. Dík.

Petr


Přílohy:
MH102.jpg
MH102.jpg [ 585.46 KiB | Zobrazeno 4214 krát ]


Naposledy upravil RaceSoft dne 25.12.2020, 15:16, celkově upraveno 1
Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 25.12.2020, 15:07 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
RaceSoft píše:
V kódu jsou ale dvě drobné chybky, kdy ve funkci SignedMul jsou chybně po testech na znaménka činitelů je pouze nepodmíněné skoky (JP xx), správně mají být podmíněné skoky na základě příznaku S (JP P,xx):
To je omyl. JP xx v notácii i8080 zodpovedá JP P,xx v notácii Z80. Takže je to tam správne.

V uvedenom výpise je zrejme v rutine SignedMul konštrukcia LD C,A | CALL 0F5D5h len kvôli debug výpisu, ale otázka je, či volanie rutiny na adrese 0F5D5h ponechá nezmenený akumulátor. Ak nie, tak tam za volaním chýba ešte LD A,C.

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 25.12.2020, 15:18 
Offline
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 955
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Ano, máš pravdu s tím JP. Nějak mi to nedošlo. Omlouvám se, žiju s mnemotechnikou pro Z80.

Ta konstrukce s LD a CALL sloužila jen k debugu bez ohledu na zbytek kódu nebo hodnoty v registrech. Aby to nikoho nemátlo, odstranil jsem to.

P.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 26.12.2020, 12:34 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2570
Bydliště: Praha
Has thanked: 502 times
Been thanked: 604 times
Nic lepšího než tohle se na internetech asi nenajde...
http://www.teslakatalog.cz/MH101.html
Ale matně si vzpomínám, že Danhard někde psal, že MH101 je na ho*no, tak kdyby ho někdo donutil vyprávět proč je na exkrement, tak bysme se mi nadšení posluchači možná něco dozvěděli :)

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 26.12.2020, 13:13 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
vanthomas píše:
Nic lepšího než tohle se na internetech asi nenajde...
http://www.teslakatalog.cz/MH101.html
Ale matně si vzpomínám, že Danhard někde psal, že MH101 je na ho*no, tak kdyby ho někdo donutil vyprávět proč je na exkrement, tak bysme se mi nadšení posluchači možná něco dozvěděli :)
Klasicky zeleny Tesla katalog, aj ja ho mam :)

Preletel som narychlo popis. Je to generator kontrolneho suctu CRC32, na vyber su styri rozne typy suctov.
Cele to funguje tak, ze najprv sa nastavi rezim (typ suctu, seriovy/paraleny prenos...), potom sa do obvodu OUTuju data - bud po jednom bite, alebo naraz po styroch bitoch. Po naOUTovani celeho bloku dat sa z obvodu nacita jeho kontrolny sucet.

V pripade ze sa jedna o zabezpecenie prenosu, tak sa to robi tak, ze sa vysielana sprava posle do MH101, z MH101 sa nacita kontrolny sucet, ktory sa posle na konci vysielanej spravy. Prijimacia strana zase posiela prijimanu spravu do MH101, a na konci tiez nacita z kontrolny sucet a porovna s tym co prijala od odosielatela.

Prakticky vyznam pre nas prilis nevidim, pretoze MH101 robi nieco, co sa da softwerovo pomerne priamociaro zvladnut. Jednak CRC sa daju velmi dobre urobit pomerne trivialne: nacitanie z tabulky a nejaky ten XOR a dvak, castokrat nie su nutne az tak zlozite CRC ako robi tento obvod, ale konzenstacia dat sa da dostatocne dobre otestovat aj nejakym jednoduchsim sposobom - napr. XORom vsetkych bajtov.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 26.12.2020, 14:16 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Busy píše:
... potom sa do obvodu OUTuju data - bud po jednom bite, alebo naraz po styroch bitoch. Po naOUTovani celeho bloku dat sa z obvodu nacita jeho kontrolny sucet.

Ten jedno bitový vstup mi přijde, že se ta MH101 pověsila rovnou na datový vstup/výstup UART/USART a CPU jen přečetl CRC a poslal jej anebo jej jen zkontroloval. Pak by to mělo smysl, aneb CPU se vůbec nebude obtěžovat s nějakým pracným ládováním dat do MH101.

Taky by chtělo zjistit, zda to CRC co dělá ta MH101 je nějaký standart nebo si to soudruzi vycucali z prstu.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 26.12.2020, 14:33 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Ještě dodatek programové CRC se řešilo zde

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 26.12.2020, 15:36 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
EC1045.01 píše:
Busy píše:
... potom sa do obvodu OUTuju data - bud po jednom bite, alebo naraz po styroch bitoch. Po naOUTovani celeho bloku dat sa z obvodu nacita jeho kontrolny sucet.
Ten jedno bitový vstup mi přijde, že se ta MH101 pověsila rovnou na datový vstup/výstup UART/USART a CPU jen přečetl CRC a poslal jej anebo jej jen zkontroloval. Pak by to mělo smysl, aneb CPU se vůbec nebude obtěžovat s nějakým pracným ládováním dat do MH101.
Ano, teoreticky to takto pouzivat zmysel ma, ale prakticky vypocet toho CRC pri (pomalom) seriovom prenose nie je nic, co by dobre CPU (vratane 8080) nevedelo bez problemov zvladat.

Obecne si myslim nasledovne: HW vznikol davno predtym, nez SW, v minulosti, ked bolo vela hardweristov, ale malo softweristov a taktiez ked boli procesory este dost pomale a akekolvek vypocty im zaberali vela casu, Preto boli snahy co sa dalo riesit pomocou HW. Preto vznikla aj cela rada obvodov MH10x. Vypocet polynomu je typicka vec, ktora sa pomocou HW riesi velmi dobre a lahko (posuvny register a zopar XOR hradiel), preto sa rozhodlo, ze aj na tento problem sa vymysli podporny obvod. To, ze sa neskor objavia rozne triky, ako to podobne jednoducho riesit softwerovo, navrhari vtedy mozno vobec netusili.

EC1045.01 píše:
Taky by chtělo zjistit, zda to CRC co dělá ta MH101 je nějaký standart nebo si to soudruzi vycucali z prstu.
Ano, tie polynomy co su implementovane v MH101 sa bezne zvykli pouzivat na zabezpecenie prenosu. Boli stanovene tak, aby mali statisticky co najlepsiu schopnost zistit
pripadne chyby. Napriklad polynom x^16+x^12+x^5+1 sa pouziva aj v FDC radicoch na kontrolu spravnosti nacitaneho sektora z diskety.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 07.01.2021, 09:07 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 580
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 90 times
pro zájemce jsem s Racesoftem odladili a vyzkoušeli na IQ151 16-ti bitové násobení pomocí MH102, vstup čísla v HL a DE, výstup v HLDE, používá všechny registry. Celý kód včetně rutiny dekadického výpisu takového čísla je v příloze

Kód:
hlxde:   ld b,l
         ld c,e
         call bxc2bc
         push bc
         ld b,l
         ld c,d
         call bxc2bc
         push bc
         ld b,h
         ld c,e
         call bxc2bc
         push bc
         ld b,h
         ld c,d
         call bxc2bc
         ld d,b      ;nejvyšší rovnou do D
         ld a,c      ;přijde do E
         pop bc
         ld  h,c   ;počáteční hodnota H
         add a,b      ;přípočet pro E
         jp  nc,hlde1
         inc d
hlde1:   pop bc
         add a,b
         ld e,a      ;součty OK, ještě můžou být přetečení z H
         jp  nc,hlde2
         inc d
hlde2:   ld a,h
         add a,c
         jp nc,hlde3
         inc e
         jp nz,hlde3
         inc d
hlde3:   pop bc
         ld l,c      ;nejnižší rovnou do L
         add a,b
         ld  h,a   ;hotovo
         jp nc,hlde4
         inc e
         jp nz,hlde4
         inc d
hlde4:   ret
   
bxc2bc:  ld   A,000000001b   ; nuluj FR a nech EPROM na 0F000h
         out   (080h),A
         ld   A,C      ; 1. cinitel
         out   (08Ch),A
         ld   A,B      ; 2. cinitel
         out   (08Dh),A
         in   A,(08Ch)      ; nizsi byte vysledku
         ld   C,A      ; do L
         in   A,(08Dh)      ; vyssi byte vysledku
         ld   B,A      ; do H
         ret


Přílohy:
zknas.zip [1.93 KiB]
221 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 07.01.2021, 09:37 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Z80kovou syntaxí jsi mě úplně zmátl. Chvíli jsem přemýšlel, co vlastně má IQ151 za procesor.

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 07.01.2021, 15:20 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Tak mi to ráno nasadilo brouka do hlavy a zkusil jsem otevřít chytrou knihu Jaroslava Starého "Mikropočítač a jeho programování", strana 131. Tam uvedenou proceduru jsem upravil pro rozsah násobení 16x16=32 bitů. Předkládám dvě verze. První je optimalizována na délku kódu, ta druhá je optimalizována na rychlost vykonávání. O nějaké veliké optimalizaci se nebavíme, přepsal jsem to za 15 minut. Jde jen o rozdílné pojetí, jak k problému přistupovat.

Takže násobení 16 bitů:

Kód:
MH102:      délka kódu 81 bajtů,  doba vykonávání 732T CPU
SW verze 1: délka kódu 37 bajtů,  doba vykonávání 2135T CPU
SW verze 2: délka kódu 267 bajtů, doba vykonávání 1282T CPU


nyní tedy 1. verze softwarového násobení:
Kód:
; **********************************************************
; Podprogram pro nasobeni dvou 16-bitovych cisel
; upraveno pro rozsah 16 bitu dle procedury NASOB z knihy
; "Mikropocitac a jeho programovani"
; autor Jaroslav Stary, strana 131
; delka programu: 37 byte vcetne promenne "mul16bitcnt"
; pocet taktu CPU: 2135T vcetne CALL/RET (1,04msec@2,048MHz)
; **********************************************************
; BC = nasobenec
; DE = nasobitel
; HL:DE = soucin
; **********************************************************

mul16
   mvi a,17
   sta mul16bitcnt
   lxi h,0
   ana a
mul16nasob1
   mov a,d
   rar
   mov d,a
   mov a,e
   rar
   mov e,a

   lda mul16bitcnt
   dcr a
   sta mul16bitcnt
   rz

   jnc mul16nasob2
   dad b
mul16nasob2
   mov a,h
   rar   
   mov h,a
   mov a,l
   rar
   mov l,a
   jmp mul16nasob1

mul16bitcnt
   .db 0

a druhá verze:
Kód:
; **********************************************************
; Podprogram pro nasobeni dvou 16-bitovych cisel
; upraveno pro rozsah 16 bitu dle procedury NASOB z knihy
; "Mikropocitac a jeho programovani"
; autor Jaroslav Stary, strana 131
; akcelerovana verze
; delka programu: 267 byte
; pocet taktu CPU: 1282T vcetne CALL/RET (0,62msec@2,048MHz)
; **********************************************************
; BC = nasobenec
; DE = nasobitel
; HL:DE = soucin
; **********************************************************

#define mux16iter mov a,d\ rar\ mov d,a\ mov a,e\ rar\ mov e,a\ jnc $+4\ dad b\ mov a,h\ rar\ mov h,a\ mov a,l\ rar\ mov l,a

mul16
   lxi h,0
   ana a

   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter
   mux16iter

   mov a,d
   rar
   mov d,a
   mov a,e
   rar
   mov e,a
   ret


Tím nechci tvrdit, že MH102 je nanic, ale když už se o tomto čipu mluví, ať je vidět jeho skutečný přínos. Někdy to může být zajímavé, jindy ta cena realizace není adekvátní. To už se každý musí rozhodnout podle svých možností.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 07.01.2021, 15:43 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Ještě jedna připomínka k těm vzorovým programům pro násobení 16-bitových čísel. Jsou to opsané a upravené verze něčeho, co někdo někde napsal. Zkusil jsem ověřit pár násobení typu 11x11 nebo 1000x1000 a protože seděly, tak jsem se v tom nevrtal. Ale nejsou to odladěné knihovny!


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH102
PříspěvekNapsal: 07.01.2021, 17:04 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 580
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 90 times
netuší někdo k čemu tam mělo být u násobičky to zaokrouhlování? vůbec mi to z popisu není jasné k čemu to mělo sloužit... Dokážu si představit použití pro celočíslenou aritmetiku, záporné čísla díky formátu bych si pořešil jako kladná a znaménko výsledku lehce určil před násobením...


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 370 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6 ... 25  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 9 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz