<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.StylE-mailovZprvy17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=CS link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Vytvořte úplně nový projekt na C:\<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hoďte tam ten váš kód a zkompilujte. Pokud to projede, tak to sem hoďte. Bude to mít pár kB. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Tím eliminujeme nesrovnalosti v nastavení projektu.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Za moment budu mít čas se na to podívat a třeba to nahrát i do jiného PICu.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>ALE!<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Všiml jsem si včera letmo, možná že to má nějaký důvod.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Pokud používáte <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>TRISA_INI equ 00000000B;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Tak TRISA_INI nemá hodnotu 0x00, ale přiřazujete TRISA_INI  registr v nulté stránce paměti RAM s adresou 0x00<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Takže podle mě <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>#define TRISA_INI  00000000B<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Nebo <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>TRISA_INI  set d'0'<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>ALE: pokud něco dělám v asm, tak jenom opravuji staré projekty z doby do 2010 a to ještě v MPLAB8.92, možná se pro mplabx něco změnilo.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Míra<o:p></o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Hw-list [mailto:hw-list-bounces@list.hw.cz] <b>On Behalf Of </b>Jindrich Fucik<br><b>Sent:</b> Wednesday, April 3, 2024 10:11 AM<br><b>To:</b> HW-news<br><b>Subject:</b> RE: defektní PIC16F18015<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>používám mplabx verze tuším 6.5. V zásadě jsem nic neměnil proti defaultu, vlastně jen tu definici vektorů, která je napsaná v prvním řádku kódu.<o:p></o:p></p></div><div><p class=MsoNormal>Co píše pic-as? <o:p></o:p></p></div><div><p class=MsoNormal>Vlastné - není problém se jménem souboru, které obsahuje mezery a mínusko? Pravda je, že v editoru to mám s romantickým náznem default.s<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>---------- Původní e-mail ----------<br>Od: Miroslav Draxal <evik@volny.cz><br>Komu: 'HW-news' <hw-list@list.hw.cz><br>Datum: 2. 4. 2024 21:16:30<br>Předmět: RE: defektní PIC16F18015<br><br><o:p></o:p></p><p class=MsoNormal>Nakopněte mě. V jakém editoru to píšete (MPLABx to defect - config.s otevře) ale nedokážu to asemblovat (pic-as to nějak nebere)<br>Míra<br><br>-----Original Message-----<br>From: Hw-list [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Jindrich Fucik<br>Sent: Tuesday, April 2, 2024 7:11 PM<br>To: hw-list@list.hw.cz<br>Subject: Re: defektní PIC16F18015<br><br>Bezva, tak jsem to dotáhl téměř k dokonalosti. Vytvořil jsem kód, který <br>je složený převážně z instrukcí "nop" a "#ifdef". Na začátku jsou pak <br>dva #define, které umožňují si vybrat, co se stane. Možnosti jsou:<br>1) program funguje jak má.<br>2) program zamrzne zhruba na 2ms před každým přerušením<br>3) program zamrzne úplně<br><br>Ke stažení jako zip i se záznamem z analyzátoru:<br>https://www.uschovna.cz/zasilka/OX4JT76LTH6MCBD2-XU7<br><br>Jdu se zeptat na support, co s tím.<br><br>Dne 01.04.2024 v 22:02 Jindrich Fucik napsal(a):<br>> Bezva, tohle funguje jak by se dalo očekávat.<br>> Jdu hledat, co tohle udělá jinak než já.<br>> V příloze pro porovnání výstup ze Saleae. Je hodně podobný tomu ze <br>> simulátoru (ne zcela stejný).<br>> <br>> Jdu hledat, co je tady nastaveno jinak.<br>> <br>> <br>> Dne 01.04.2024 v 21:08 Miroslav Draxal napsal(a):<br>>> Zkuste tohle, ověřeno v MPLABx simulátoru a výstup taktéž MPLABx Logic <br>>> Analyzer (viz příloha).<br>>><br>>> #include <xc.h><br>>> #include <pic16f18015.h><br>>><br>>> // Configuration bits: selected in the GUI<br>>><br>>> //CONFIG1<br>>> #pragma config FEXTOSC = ECH // External Oscillator Selection <br>>> bits->EC (external clock) above 16 MHz<br>>> #pragma config RSTOSC = HFINTOSC_32MHz // Reset Oscillator <br>>> Selection bits->HFINTOSC (32 MHz)<br>>> #pragma config CLKOUTEN = OFF // Clock Out Enable bit->CLKOUT <br>>> function is disabled; i/o or oscillator function on OSC2<br>>> #pragma config VDDAR = HI // VDD Range Analog Calibration Selection <br>>> bit->Internal analog systems are calibrated for operation between VDD <br>>> = 2.3 - 5.5V<br>>><br>>> //CONFIG2<br>>> #pragma config MCLRE = EXTMCLR // Master Clear Enable bit->If LVP = <br>>> 0, MCLR pin is MCLR; If LVP = 1, RA3 pin function is MCLR<br>>> #pragma config PWRTS = PWRT_OFF // Power-up Timer Selection <br>>> bits->PWRT is disabled<br>>> #pragma config WDTE = OFF // WDT Operating Mode bits->WDT disabled; <br>>> SEN is ignored<br>>> #pragma config BOREN = ON // Brown-out Reset Enable bits->Brown-out <br>>> Reset enabled, SBOREN bit is ignored<br>>> #pragma config DACAUTOEN = OFF // DAC Buffer Automatic Range Select <br>>> Enable bit->DAC Buffer reference range is determined by the REFRNG bit<br>>> #pragma config BORV = LO // Brown-out Reset Voltage Selection <br>>> bit->Brown-out Reset Voltage (VBOR) set to 1.9V<br>>> #pragma config ZCD = OFF // ZCD Disable bit->ZCD module is <br>>> disabled; ZCD can be enabled by setting the ZCDSEN bit of ZCDCON<br>>> #pragma config PPS1WAY = ON // PPSLOCKED One-Way Set Enable <br>>> bit->The PPSLOCKED bit can be cleared and set only once after an <br>>> unlocking sequence is executed; once PPSLOCKED is set, all future <br>>> changes to PPS registers are prevented<br>>> #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable <br>>> bit->Stack Overflow or Underflow will cause a reset<br>>><br>>> //CONFIG4<br>>> #pragma config BBSIZE = BB512 // Boot Block Size Selection <br>>> bits->512 words boot block size<br>>> #pragma config BBEN = OFF // Boot Block Enable bit->Boot Block <br>>> disabled<br>>> #pragma config SAFEN = OFF // Storage Area Flash (SAF) Enable <br>>> bit->SAF disabled<br>>> #pragma config WRTAPP = OFF // Application Block Write Protection <br>>> bit->Application Block is NOT write protected<br>>> #pragma config WRTB = OFF // Boot Block Write Protection bit->Boot <br>>> Block is NOT write protected<br>>> #pragma config WRTC = OFF // Configuration Register Write <br>>> Protection bit->Configuration Register is NOT write protected<br>>> #pragma config WRTD = OFF // Data EEPROM Write Protection bit->Data <br>>> EEPROM is NOT write-protected<br>>> #pragma config WRTSAF = OFF // Storage Area Flash (SAF) Write <br>>> Protection bit->SAF is NOT write protected<br>>> #pragma config LVP = ON // Low Voltage Programming Enable bit->Low <br>>> Voltage programming enabled. MCLR/Vpp pin function is MCLR. MCLRE <br>>> Configuration bit is ignored<br>>><br>>> //CONFIG5<br>>> #pragma config CP = OFF // Program Flash Memory Code Protection <br>>> bit->Program Flash Memory code protection is disabled<br>>> #pragma config CPD = OFF // Data EEPROM Code Protection bit->EEPROM <br>>> code protection is disabled<br>>><br>>> void main(void) {<br>>> // Set the CLOCK CONTROL module to the options selected in the <br>>> user interface.<br>>> //<br>>> OSCCON2 = 0x0;<br>>> // SOSCPWR Low power;<br>>> OSCCON3 = 0x0;<br>>> // HFOEN disabled; MFOEN disabled; LFOEN disabled; SOSCEN <br>>> disabled; ADOEN disabled;<br>>> OSCEN = 0x0;<br>>> // HFFRQ 8_MHz;<br>>> OSCFRQ = 0x3;<br>>> //<br>>> OSCSTAT = 0x0;<br>>> // TUN undefined;<br>>> OSCTUNE = 0x0;<br>>> // ACTEN disabled; ACTUD enabled; ACTLOCK Not locked; ACTORS In <br>>> range;<br>>> ACTCON = 0x0;<br>>><br>>><br>>> /**<br>>> LATx registers<br>>> */<br>>> LATA = 0x0;<br>>> LATA0 = 1;<br>>><br>>> /**<br>>> TRISx registers<br>>> */<br>>> TRISA = 0x34;<br>>><br>>> /**<br>>> ANSELx registers<br>>> */<br>>> ANSELA = 0x34;<br>>><br>>> /**<br>>> WPUx registers<br>>> */<br>>> WPUA = 0x0;<br>>><br>>> /**<br>>> ODx registers<br>>> */<br>>><br>>> ODCONA = 0x0;<br>>> /**<br>>> SLRCONx registers<br>>> */<br>>> SLRCONA = 0x37;<br>>> /**<br>>> INLVLx registers<br>>> */<br>>> INLVLA = 0x37;<br>>><br>>> /**<br>>> PPS registers<br>>> */<br>>><br>>> /**<br>>> APFCON registers<br>>> */<br>>><br>>> /**<br>>> IOCx registers<br>>> */<br>>> IOCAP = 0x0;<br>>> IOCAN = 0x0;<br>>> IOCAF = 0x0;<br>>><br>>> //TMR0H 119;<br>>> TMR0H = 0x77;<br>>><br>>> //TMR0L 0;<br>>> TMR0L = 0x0;<br>>><br>>> //T0CS FOSC/4; T0CKPS 1:1; T0ASYNC not_synchronised;<br>>> T0CON1 = 0x50;<br>>><br>>> //Clear Interrupt flag before enabling the interrupt<br>>> PIR0bits.TMR0IF = 0;<br>>><br>>> //Enable TMR0 interrupt.<br>>> PIE0bits.TMR0IE = 1;<br>>><br>>> //T0OUTPS 1:1; T0EN enabled; T016BIT 8-bit;<br>>> T0CON0 = 0x80;<br>>><br>>> ei();<br>>><br>>> do {<br>>> LATA1 = 1;<br>>> NOP();<br>>> LATA1 = 0;<br>>> } while (1);<br>>> return;<br>>> }<br>>><br>>> void __interrupt() myHighIsr(void) {<br>>> if (TMR0IF == 1) {<br>>> TMR0H = 0x77;<br>>> TMR0IF = 0;<br>>> LATA0 = 0;<br>>> NOP();<br>>> LATA0 = 1;<br>>> }<br>>> }<br>>><br>>> -----Original Message-----<br>>> From: Hw-list [mailto:hw-list-bounces@list.hw.cz] On Behalf Of <br>>> Jindrich Fucik<br>>> Sent: Monday, April 1, 2024 7:14 PM<br>>> To: hw-list@list.hw.cz<br>>> Subject: Re: defektní PIC16F18015<br>>><br>>> Tak to jsem z toho jelen. Vzal jsem nový procesor a chová se stejně.<br>>> V příloze je obrázek z analyzátoru.<br>>> pochopitelně když program krokuji, tak se chová normálně. Nic <br>>> takového, že by přerušení skočilo někam jinam a běžel kus jiného <br>>> programu.<br>>><br>>> Dne 01.04.2024 v 17:22 Jindrich Fucik napsal(a):<br>>>> To není můj případ, start přerušení trvá tuším 3 instrukční cykly,<br>>>> procesor jede 8MHz, takže 1,5μs nebo tak něco. Program je velmi<br>>>> primitivní, je napsaný v assembleru, abych vyloučil nějakou botu z <br>>>> jazyka.<br>>>> Nakopíruji sem podstatnou část programu. Nepodstatná nastavuje config:<br>>>> vypnutý watchdog, interní oscilátor 8MHz a tak.<br>>>><br>>>> Program nedělá nic, než že v mainu bliká jedním výstupem a v přerušení<br>>>> druhým. přerušení je od časovače (v příkladu Timer 0, ale stejně se<br>>>> chová i Timer 2) a je nastaveno na 60 μs.<br>>>><br>>>> Na analyzátoru je pak velice zřetelné, že proběhne 25 bliknutí RA1,<br>>>> pak je těch 350μs mezera a pak jedno bliknutí RA0 a pak hned zase 25x<br>>>> RA1 (jasně, ten kód není optimální, je to poslední troska, než jsem to<br>>>> zabalil). Podstatné je, že ta díra je větší, než vlastní běh, takže je<br>>>> to velmi zřetelné a nemá cenu zjišťovat, jestli je něco ± jednotky<br>>>> instrukčních cyklů. Zábavné je, že stejný čas dostanu i při přepnutí<br>>>> rychlosti procesoru na 4MHz (tedy díra je asi 350μs, běh se 2x <br>>>> prodlouží).<br>>>><br>>>> -------<br>>>><br>>>> ; Timer0 management ; used for software serial Tx time ticks -<br>>>> 60 micro sec per tick T0CON1_INI equ 0x51 ; T0CS FOSC/4; T0CKPS<br>>>> 1:2; T0ASYNC not_synchronised; T0CON0_INI equ 0x80 ; T0OUTPS<br>>>> 1:1; T0EN enabled; T016BIT 8-bit; TMR0H_INI equ 0x3B ; in 8 bit<br>>>> mode the TMR0H is compared same as<br>>>> timer2 0x3B = 59 = LN baud rate<br>>>><br>>>> PIE0_INI equ 0x20 ; Enable TMR0 interrupt.<br>>>> PIE1_INI equ 0x00 ; none used<br>>>> PIE2_INI equ 0x00 ; none used<br>>>> PIE3_INI equ 0x00 ; none used<br>>>> PIE4_INI equ 0x00 ; none used<br>>>><br>>>> INTC_INI equ 0xC0 ; GIE enable, PIE enable<br>>>><br>>>><br>>>> PSECT resetVec,class=CODE,delta=2,abs<br>>>> resetVec:<br>>>> PowerUp:<br>>>><br>>>> clrf INTCON ; Disable all interrupts<br>>>> clrf PCLATH ; Tables on page 0<br>>>> ;clrf STATUS ; reset flags<br>>>> goto START<br>>>><br>>>> PSECT isrVec,class=CODE,delta=2<br>>>> isr:<br>>>> Interrupt:<br>>>><br>>>> movlb 0 ; BANK 0<br>>>> bsf LATA,0<br>>>> nop<br>>>> bcf LATA,0<br>>>> nop<br>>>> bsf LATA,0<br>>>> BANKSEL PIR4 ; BANK 14<br>>>> bcf TMR0IF ; clear timer overflow<br>>>> retfie<br>>>><br>>>> START:<br>>>> (...tady je miliarda přiřazení *_INI do správných registrů ...)<br>>>><br>>>> movlw INTC_INI ; GIE enable, PEIE enable<br>>>> movwf INTCON<br>>>><br>>>> movlb 0 ; BANK 0<br>>>><br>>>> testloop:<br>>>> bsf LATA,1<br>>>> nop<br>>>> bcf LATA,1<br>>>> goto testloop<br>>>><br>>>><br>>>> Dne 01.04.2024 v 13:46 Miroslav Draxal napsal(a):<br>>>>> Dobrý den,<br>>>>> Pozor na to, PICi si při přerušení ukládají registry soft, ne hw.<br>>>>> Kolikrát ta obsluha toho uložení registrů je docela časově náročná.<br>>>>> Standardně se ukládá<br>>>>> STATUS<br>>>>> WREG<br>>>>> BSR<br>>>>> Pokud se někde v používájí FSRx registry, a v přerušení Se používají<br>>>>> také, potom se i ty ukládají<br>>>>> FSR1<br>>>>> FSR1H<br>>>>> FSR2<br>>>>> FSR2H<br>>>>><br>>>>> A můžou se ukládat i další. Při ukončení přerušení se zase registry<br>>>>> obnovují. Tudíž je tam nějaká režie a prodleva, než se přerušení<br>>>>> dostane na příslušnou obsluhu. Takže pokud by docházelo k velmi<br>>>>> častému přerušení, může se i občas nějaké ztratit.<br>>>>><br>>>>> A ještě jedna věc, na kterou se zapomíná.<br>>>>> Novější procesory umí ukládat STATUS, WREG, BSR v režimu FAST. Nebudu<br>>>>> vypisovat podrobnosti, nakoukněte do *-.pdf konkrétního PICu, jestli<br>>>>> umí. Ovšem pozor, pokud odlaďujete program třeba s ICDx, potom tyto<br>>>>> FAST rutiny využívá ICDx. Pokud pak natvrdo pustíte program v<br>>>>> samotném PICu, tyto rutiny většinou potom používá přerušení s vysokou<br>>>>> prioritou. Takže časování je následně o něco rychlejší než při ladění<br>>>>> HW prostředky.<br>>>>><br>>>>> Nahoďte při jaké příležitosti se seká, jestli je to při periodickém<br>>>>> přerušení (např. od TMRx), nebo něčeho externího. Třeba nás něco <br>>>>> napadne.<br>>>>><br>>>>> Míra<br>>>>><br>>>>> -----Original Message-----<br>>>>> From: Hw-list [mailto:hw-list-bounces@list.hw.cz] On Behalf Of<br>>>>> Jindrich Fucik<br>>>>> Sent: Monday, April 1, 2024 12:09 PM<br>>>>> To: HW-news<br>>>>> Subject: defektní PIC16F18015<br>>>>><br>>>>> Ahoj,<br>>>>><br>>>>> občas si tu někdo hraje s těmito typy procesorů. Narazil jsem na<br>>>>> jeden defektní kus. Bohužel to byl ten, kterej jsem si odvezl na<br>>>>> velikonoce a nemám tu náhradu.<br>>>>> Projevuje se tak, že při vyvolání přerušení se procesor na cca 350 μs<br>>>>> zasekne. jak to tak bývá, tak mi trvalo dva dny zjistit, co se děje a<br>>>>> proč se nemohu dopočítat času nějaké události.<br>>>>><br>>>>> Tak třeba se někomu tato informace bude hodit. Nebo možná někdo ví o<br>>>>> něčem, co jsem špatně nastavil a může mi to říci.<br>>>>> _______________________________________________<br>>>>> HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz<br>>>>> http://list.hw.cz/mailman/listinfo/hw-list<br>>>>><br>>>>> _______________________________________________<br>>>>> HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz<br>>>>> http://list.hw.cz/mailman/listinfo/hw-list<br>>>> _______________________________________________<br>>>> HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz<br>>>> http://list.hw.cz/mailman/listinfo/hw-list<br>>>><br>>>> _______________________________________________<br>>>> HW-list mailing list - sponsored by www.HW.cz<br>>>> Hw-list@list.hw.cz<br>>>> http://list.hw.cz/mailman/listinfo/hw-list<br>> <br>> _______________________________________________<br>> HW-list mailing list - sponsored by www.HW.cz<br>> Hw-list@list.hw.cz<br>> http://list.hw.cz/mailman/listinfo/hw-list<br>_______________________________________________<br>HW-list mailing list - sponsored by www.HW.cz<br>Hw-list@list.hw.cz<br>http://list.hw.cz/mailman/listinfo/hw-list<br><br>_______________________________________________<br>HW-list mailing list - sponsored by www.HW.cz<br>Hw-list@list.hw.cz<br>http://list.hw.cz/mailman/listinfo/hw-list<o:p></o:p></p></div></body></html>