Priznam se ze moc nechapu o cem mluvite o tom tisku.
Doufal jsem ze kdyz se posila znak na tiskarnu tak to neni jako tisk grafiky, jako na obrazovku, ale ze neco umelo i prijimat kody a mit vlastni grafiku pro znak (vlastni fonty).
Protoze se tam zminovalo OCR... takze to tak neni?
To by byl mozna i duvod proc me to krome txt neustale zapisuje i tu grafiku co neustale mazu a ani nevim k cemu ji mam pouzit. ...Asi na to OCR.
Mel jsem jen BT-100 a jako vsechno okolo ZX kdyz jsem byl pubertak byla magie, protoze jsem jsem to vsechno ziskal po nekom vcetne piratskych kazet, nejakych svazarm magazinu a microbaze, jedne originalni anglicke prirucky a jedne prelozene knihy, ktera vypadala jako by to nekdo delal na nejake kopirce. Nebylo to pres pruklepovy papir na stroji, ale necim kvalitnejsim. Ale v otresne kvalite.
Nemel jsem zadne dalsi informace. I kdyz existoval minimalne jeden spoluzak co mel asi taky ZX, protoze si pamatuji ze rikal ze hral Tomahawk a ze se dostal do situace, kdy mel poskozeny stabilizacni rotor a porad se otacel. Coz ve skutecnosti asi nebyla raritni situace.
Takze bez internetu a ze bych nekdy byl v nejakem klubu jsem mel v podstate nula informaci a nebyt microbaze tak asi nepochopim ani poukovani a prolamovani loaderu.
Po HW strance to bylo jeste horsi, protoze jsem bezne vypojoval za behu..ten plugin pro joysticky, kdyz jsem ho chtel zamenit z kempston na sinclair.
A vlastne jsem nakonec ustrihl snuru od napajeni, protoze nekdo tvrdil ze ta nabijecka co je k tomu dodavana ma vysoke napeti, a ze je lepsi tam mit trafo (co jsem mel na vlacky).
No, ale po ustrizeni jsem to nejak nepripojil na to trafo, takze tim moje pouzivani ZX skoncilo.
Ale to uz jsem mel myslim 486.
Takze na tu BT-100 jsem vytiskl asi tak 10 obrazku z uvodni obrazovky her a byl rad ze jsem to rozchodil. Zadny text. Ona taky ta kvalita... byla horsi nez to psat na stroji s pruklepakem.
Zase BT-100 mela tu vyhodu ze me nezaschla barva.
Ok, konec offtopic jak jsem marnej. Radsi nebudu zminovat jak jsem vyjmul nahradni Z80 z nejake desky pomoci sroubovaku a ulomil nozicky a myslel si ze je to ok.Pouzivani nejakych metod "tisku" do pameti a ukladani nebo na diskety me moc nepomuze, protoze jsem tisknul 16 mb dat v txt souboru (pak me to zacne swapovat a nasledne zamrzne vetsinou cely OS, ze to ani nejde killnout). A to jsem byl v polovine co jsem chtel tisknout a trvalo to vic jak pulhodky realneho casu.
Jak zxcygnus zminil RS232, tak nevim ktera bije.
AY-3-8912 bude asi nejaky box, co se strka dozadu jako byly ty krabicky na joysticky.
Ale umi to hrat hudbu.
A krome toho to ma... RS232?
Aha to je kabel, takze krome toho ze posilam neco na porty co cte ta krabicka to dokaze poslat dal...
a data mohu posilat jako ascii bajty, protoze jsou to jen data.
To by fakt znamenalo ze me pocet znaku na radek pak netrapi.
A ty pak nekde mohu zachytit do toho txt souboru.
Stale se bavime o emulaci toho vseho?
Protoze to zachyceni do txt vypadalo jako externi program a ne Fuse rozsireni.
Hmm... asi by to chtelo teda upravit asm, ze misto tisku to posila na ty porty, krere cte AY, takze resit i rychlost prenosu atd?
Ja se nakonce s temi 32 bajty nejak vyporadal.
Pokud se rozhodnu ze vystup optimalizuji misto pro obrazovku pro txt, tak staci udelat nekolik pravidel.
Staci aby se kazda polozka vlezla do 31 znaku a mit nejaky znak, ktery pak nahradim pomoci escape sekvenci ve vysledku \n? -> "".
Vlastne ve skutecnosti byla chyba mit vystup jako ASM a ne jako HEX.
Pokud z toho chci delat tabulku v C knihovne o 64kb radcich tak je lepsi to mit jako asi 6 bajtu na radek.
A az pak z toho generovat txt vypis.
Ty bajty nemusi byt ani jako cisla ale klidne nejaky pseudo asm.
Neco jako:
a_n,x_0F, sub_n, x_77,nop,nop
a tohle se me do 32 znaku vleze...
dokonce premyslim zda konecny vystup nebude jako pole bajtu s informaci ze je to pseudoinstrukce LD AF, 0x988B
Kód:
DB 0x3E, 0x0F, 0xD6, 0x77 ; 14:4 ld AF = 0x988B (ld a, 0x0F/sub 0x77)
Tak a ted co jsem chtel psat:
Zde je tabulka hodnot co jdou nastavit v "F" (druha polozka), bez ohledu co bude v A (prvni polozka).
0x01;0x00;8;2;xor_a/inc_a
0x00;0x01;12;3;xor_a/inc_a/rra
0x01;0x02;14;4;ld_a_$05/sub_$04
0x10;0x03;11;3;xor_a/sub_$F0
0x06;0x04;12;3;xor_a/and_a/daa
0x01;0x05;14;4;ld_a_$81/add_$80
0x10;0x06;14;4;ld_a_$85/sub_$75
0x03;0x07;15;4;xor_a/sub_$97/daa
0x08;0x08;11;3;xor_a/add_$08
0x08;0x09;14;4;ld_a_$78/add_$90
0x08;0x0A;14;4;ld_a_$7F/sub_$77
0x18;0x0B;14;4;ld_a_$0F/sub_$F7
0x09;0x0C;15;4;xor_a/add_$09/or_a
0x08;0x0D;14;4;ld_a_$81/add_$87
0x18;0x0E;14;4;ld_a_$8F/sub_$77
0x09;0x0F;15;4;xor_a/sub_$91/daa
0x01;0x10;12;3;xor_a/inc_a/and_a
0x01;0x11;14;4;ld_a_$7F/add_$82
0x01;0x12;14;4;ld_a_$70/sub_$6F
0x01;0x13;11;3;xor_a/sub_$FF
0x03;0x14;15;4;xor_a/add_$03/and_a
0x10;0x15;14;4;ld_a_$81/add_$8F
0x01;0x16;14;4;ld_a_$80/sub_$7F
0x80;0x17;18;5;ld_a_$81/add_$FE/cpl
0x18;0x18;14;4;ld_a_$0F/add_$09
0x08;0x19;14;4;ld_a_$7F/add_$89
0x08;0x1A;14;4;ld_a_$77/sub_$6F
0x08;0x1B;11;3;xor_a/sub_$F8
0x09;0x1C;15;4;xor_a/add_$09/and_a
0x18;0x1D;14;4;ld_a_$8F/add_$89
0x08;0x1E;14;4;ld_a_$85/sub_$7D
0x0C;0x1F;15;4;xor_a/sub_$8E/daa
0x20;0x20;11;3;xor_a/add_$20
0x20;0x21;14;4;ld_a_$70/add_$B0
0x20;0x22;14;4;ld_a_$7F/sub_$5F
0x20;0x23;11;3;xor_a/sub_$E0
0x21;0x24;15;4;xor_a/add_$21/or_a
0x60;0x25;12;3;xor_a/ccf/daa
0x20;0x26;14;4;ld_a_$85/sub_$65
0x21;0x27;15;4;xor_a/sub_$79/daa
0x28;0x28;11;3;xor_a/add_$28
0x28;0x29;14;4;ld_a_$78/add_$B0
0x28;0x2A;14;4;ld_a_$7F/sub_$57
0x28;0x2B;14;4;ld_a_$1F/sub_$F7
0x28;0x2C;15;4;xor_a/add_$28/or_a
0x28;0x2D;14;4;ld_a_$81/add_$A7
0x28;0x2E;14;4;ld_a_$9F/sub_$77
0x28;0x2F;15;4;xor_a/sub_$72/daa
0x20;0x30;14;4;ld_a_$1F/add_$01
0x20;0x31;14;4;ld_a_$7F/add_$A1
0x21;0x32;14;4;ld_a_$70/sub_$4F
0x21;0x33;11;3;xor_a/sub_$DF
0x21;0x34;15;4;xor_a/add_$21/and_a
0x65;0x35;11;3;or_$FF/daa
0x21;0x36;14;4;ld_a_$80/sub_$5F
0xA0;0x37;18;5;ld_a_$81/add_$DE/cpl
0x28;0x38;14;4;ld_a_$1F/add_$09
0x28;0x39;14;4;ld_a_$7F/add_$A9
0xFE;0x3A;12;3;xor_a/inc_a/cpl
0x28;0x3B;11;3;xor_a/sub_$D8
0x28;0x3C;15;4;xor_a/add_$28/and_a
0x28;0x3D;14;4;ld_a_$9F/add_$89
0x28;0x3E;14;4;ld_a_$85/sub_$5D
0x2B;0x3F;15;4;xor_a/sub_$6F/daa
0x00;0x40;8;2;xor_a/adc_a
0x00;0x41;12;3;xor_a/cp_a/ccf
0x00;0x42;8;2;xor_a/cp_a
0x00;0x43;15;4;xor_a/sub_$FF/dec_a
0x00;0x44;4;1;xor_a
0x00;0x45;8;2;xor_a/ccf
0x00;0x46;12;3;xor_a/cp_a/daa
0x00;0x47;15;4;xor_a/sub_$A0/daa
0xCA;0x48;19;5;or_$FF/daa/cp_a/rla
0x4C;0x49;20;5;xor_a/dec_a/daa/cp_a/rra
0x08;0x4A;15;4;xor_a/add_$08/cp_a
SZ5H 3PNC 0100 1011 problem Z == 3 == 1? && ( H != 0 || N != 0 ) Problem Z == 0 && Z != P
SZ5H 3PNC 0100 1100 problem Z == 3 == 1? && ( H != 0 || N != 0 )
0xDF;0x4D;20;5;xor_a/cpl/rra/rra/rra
SZ5H 3PNC 0100 1110 problem Z == 3 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0100 1111 problem Z == 3 == 1? && ( H != 0 || N != 0 )
0x00;0x50;11;3;or_$FF/inc_a
0x00;0x51;14;4;ld_a_$81/add_$7F
0x00;0x52;15;4;or_$FF/cp_a/cpl
0x00;0x53;19;5;or_$FF/cp_a/ccf/cpl
0x00;0x54;8;2;xor_a/and_a
0x00;0x55;15;4;xor_a/add_$9A/daa
0x00;0x56;12;3;xor_a/cpl/cpl
0x00;0x57;16;4;xor_a/ccf/cpl/cpl
SZ5H 3PNC 0101 1000 problem Z == 3 == 1? && ( H != 0 || N != 0 ) Problem Z == 0 && Z != P
SZ5H 3PNC 0101 1001 problem Z == 3 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1? Problem Z == 0 && Z != P
0x9A;0x5A;19;5;or_$FF/daa/cp_a/cpl
0x4D;0x5B;23;6;or_$FF/daa/cp_a/rrca/cpl
SZ5H 3PNC 0101 1100 problem Z == 3 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0101 1101 problem Z == 3 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1?
SZ5H 3PNC 0101 1110 problem Z == 3 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0101 1111 problem Z == 3 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1?
0x30;0x60;20;5;xor_a/ccf/daa/cp_a/rra
0x32;0x61;19;5;or_$FF/daa/cp_a/rra
0x20;0x62;15;4;xor_a/add_$20/cp_a
SZ5H 3PNC 0110 0011 problem Z == 5 == 1? && ( H != 0 || N != 0 ) Problem Z == 0 && Z != P
0x20;0x64;20;5;xor_a/ccf/rra/rra/rra
SZ5H 3PNC 0110 0101 Lze vytvorit pres xor a/cpl/rla/rla/rla/rla (kde se vynulovane carry dostane do bitu 3)
SZ5H 3PNC 0110 0110 problem Z == 5 == 1? && ( H != 0 || N != 0 ) To many problem for Z == 1...
SZ5H 3PNC 0110 0111 problem Z == 5 == 1? && ( H != 0 || N != 0 )
0x7F;0x68;19;5;or_$FF/cp_a/rla/rrca
0x7F;0x69;15;4;or_$FF/cp_a/rra
0xFF;0x6A;11;3;or_$FF/cp_a
SZ5H 3PNC 0110 1011 problem Z == 5 == 1? && ( H != 0 || N != 0 ) Problem Z == 0 && Z != P
0x7F;0x6C;16;4;xor_a/cpl/rla/rrca
0x7F;0x6D;12;3;xor_a/cpl/rra
SZ5H 3PNC 0110 1110 problem Z == 5 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0110 1111 problem Z == 5 == 1? && ( H != 0 || N != 0 )
0x32;0x70;23;6;or_$FF/daa/cp_a/rra/ccf
SZ5H 3PNC 0111 0001 problem Z == 5 == 1? && ( H != 0 || N != 0 )
0x66;0x72;20;5;xor_a/dec_a/daa/cp_a/cpl
SZ5H 3PNC 0111 0011 problem Z == 5 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1? Problem Z == 0 && Z != P
SZ5H 3PNC 0111 0100 problem Z == 5 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0111 0101 problem Z == 5 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1?
SZ5H 3PNC 0111 0110 problem Z == 5 == 1? && ( H != 0 || N != 0 )
SZ5H 3PNC 0111 0111 problem Z == 5 == 1? && ( H != 0 || N != 0 ) Problem H == C == 1?
0x7F;0x78;19;5;or_$FF/cp_a/rra/ccf
SZ5H 3PNC 0111 1001 problem Z == 5 == 1? && ( H != 0 || N != 0 )
0xFF;0x7A;12;3;xor_a/cp_a/cpl
0xFF;0x7B;16;4;xor_a/cp_a/ccf/cpl
0x7F;0x7C;16;4;xor_a/cpl/rra/ccf
SZ5H 3PNC 0111 1101 problem Z == 5 == 1? && ( H != 0 || N != 0 )
0xFF;0x7E;8;2;xor_a/cpl
0xFF;0x7F;12;3;xor_a/ccf/cpl
0x80;0x80;11;3;xor_a/add_$80
0x80;0x81;14;4;ld_a_$F0/add_$90
0x80;0x82;14;4;ld_a_$85/sub_$05
0x90;0x83;11;3;xor_a/sub_$70
0x80;0x84;14;4;ld_a_$70/add_$10
0x00;0x85;15;4;or_$FF/cpl/ccf
0x81;0x86;18;5;ld_a_$85/sub_$04/daa
0x80;0x87;11;3;xor_a/sub_$80
0x88;0x88;11;3;xor_a/add_$88
0x88;0x89;14;4;ld_a_$F8/add_$90
0x88;0x8A;14;4;ld_a_$FF/sub_$77
0x98;0x8B;14;4;ld_a_$0F/sub_$77
0x88;0x8C;14;4;ld_a_$78/add_$10
0x99;0x8D;16;4;xor_a/dec_a/daa/scf
0x88;0x8E;18;5;ld_a_$FF/sub_$77/daa
0x99;0x8F;12;3;xor_a/dec_a/daa
0x90;0x90;14;4;ld_a_$81/add_$0F
0x80;0x91;14;4;ld_a_$81/add_$FF
0x00;0x92;12;3;xor_a/dec_a/cpl
0x81;0x93;11;3;xor_a/sub_$7F
0x80;0x94;14;4;ld_a_$7F/add_$01
0x80;0x95;15;4;xor_a/sub_$81/inc_a
0x00;0x96;11;3;or_$FF/cpl
0x81;0x97;14;4;ld_a_$70/sub_$EF
0x98;0x98;14;4;ld_a_$0F/add_$89
0x88;0x99;14;4;ld_a_$FF/add_$89
0x88;0x9A;14;4;ld_a_$F7/sub_$6F
0x88;0x9B;11;3;xor_a/sub_$78
0x88;0x9C;14;4;ld_a_$7F/add_$09
SZ5H 3PNC 1001 1101 problem D nibble? H == C == 1?
0x08;0x9E;18;5;ld_a_$7F/add_$78/cpl
0x88;0x9F;14;4;ld_a_$77/sub_$EF
0xA0;0xA0;11;3;xor_a/add_$A0
0xA0;0xA1;14;4;ld_a_$F0/add_$B0
0xA0;0xA2;14;4;ld_a_$FF/sub_$5F
0xA0;0xA3;11;3;xor_a/sub_$60
0xA0;0xA4;14;4;ld_a_$70/add_$30
0x33;0xA5;16;4;xor_a/dec_a/daa/rla
SZ5H 3PNC 1010 0110 problem?
0xA0;0xA7;14;4;ld_a_$7F/sub_$DF
0xA8;0xA8;11;3;xor_a/add_$A8
0x7F;0xA9;12;3;xor_a/dec_a/rra
0xFE;0xAA;11;3;or_$FF/dec_a
0xA8;0xAB;14;4;ld_a_$1F/sub_$77
0xFF;0xAC;7;2;or_$FF
0x7F;0xAD;11;3;or_$FF/rra
SZ5H 3PNC 1010 1101 Lze vytvorit pres ld A,11.1...0/and a/rra/ccf kde tecky obsahuji lichy pocet nul
0xA8;0xAF;14;4;ld_a_$7F/sub_$D7
0xA0;0xB0;14;4;ld_a_$81/add_$1F
0xA0;0xB1;14;4;ld_a_$FF/add_$A1
0xA1;0xB2;14;4;ld_a_$F0/sub_$4F
0xA1;0xB3;11;3;xor_a/sub_$5F
0xA0;0xB4;14;4;ld_a_$7F/add_$21
0xA0;0xB5;18;5;ld_a_$81/add_$B9/daa
0x20;0xB6;18;5;ld_a_$7F/add_$60/cpl
0xA1;0xB7;14;4;ld_a_$70/sub_$CF
0xA8;0xB8;14;4;ld_a_$1F/add_$89
0xFE;0xB9;11;3;or_$FF/adc_a
0xFF;0xBA;8;2;xor_a/dec_a
0xA8;0xBB;11;3;xor_a/sub_$58
0xFF;0xBC;11;3;or_$FF/and_a
SZ5H 3PNC 1011 1101 problem D nibble? H == C == 1?
0xFA;0xBE;15;4;or_$FF/cpl/daa
0xA8;0xBF;14;4;ld_a_$77/sub_$CF
Konci to u 191, protoze pak je problem ze musi byt flag ZERO a zaroven SIGN.
Nevim zda to jde obejit.
Intrukce BIT vypadaji nadejne, ale v manualu se pise ze SIGN je nedefinovan...
Nevim co si mam pod tim predstavit, jako ze je to prilis komplexni? Ale stale deterministicke?
Kazdy procesor to ma jinak?
V Z80 je fyzicky generator nahodnych cisel... a mala zmena napeti zmeni hodnotu a takhle ho muzu pekne pres SIGN bit po bitu nacitat?
A nepotrebuji pak nejake XOR alogoritmy RND... .)
V tech nizsich hodnotach jsou stale mezery.
Nektere se mi podarilo zaplnit kdyz jsem nad tim premyslel...
Je to takove SUDOKU.
Znate vysledek a zpetne hledate podle pravidel instrukce az se dostanete na zacatek.
Ale mezery jsou tam vetsinou protoze ze existuji nejake kombinace BITu, ktere jsou nepravdepodobne/problematicke a u mezer je to vetsinou kombinace vice problemu dohromady.
Pri generovani jsem ale nezkousel vsechny mozne reseni, takze tam je prostor objevit reseni.
Kód:
org 0x8000
; SZ5H 3PNC
; SZ5H 3PNC AaFf ..5. 3... SZ5H 3PNC
xor A ; SZ50 3P00 0x0044 0000 0000 0100 0100 pocet nul je sude? Takze Z80 dela sudou paritu?
inc A ; SZ5H 3V0- 0x0100 0000 0001 0000 0000
or A ; SZ50 3P00 0x0100 0000 0001 0000 0000
inc A ; SZ50 3V0- 0x0200 0000 0010 0000 0000
or A ; SZ5H 3P00 0x0200 0000 0010 0000 0000
inc A ; SZ50 3V0- 0x0300 0000 0011 0000 0000
or A ; SZ5H 3P00 0x0200 0000 0011 0000 0100 pocet nul je sude? Takze Z80 dela sudou paritu?
; SZ5H 3PNC AaFf ..5. 3... SZ5H 3PNC
xor A ; SZ50 3P00 0x0044 0000 0000 0100 0100 pocet nul je sude? Takze Z80 dela sudou paritu?
cpl ; --51 3P1- 0xFF7E 1111 1111 0111 1110 pocet nul je sude? Takze Z80 dela sudou paritu?
rra ; --50 3-0C 0x7F6D 0111 1111 0110 1101
rra ; --50 3-0C 0xBF6D 1011 1111 0110 1101
rra ; --50 3-0C 0xDF4D 1101 1111 0100 1101
; SZ5H 3PNC AaFf ..5. 3... SZ5H 3PNC
xor A ; SZ50 3P00 0x0044 0000 0000 0100 0100 pocet nul je sude? Takze Z80 dela sudou paritu?
cpl ; --51 3P1- 0xFF7E 1111 1111 --11 111- pocet nul je sude? Takze Z80 dela sudou paritu?
rla ; --50 3-0C 0x7E6D 1111 1110 --10 1101
rla ; --50 3-0C 0xFD6D 1111 1101 --10 1101
rla ; --50 3-0C 0xFB6D 1111 1011 --10 1101
rla ; --50 3-0C 0xF765 1111 0111 --10 0101
; --5H 3-0C 0x..9D .10. 1... 0110 0110
; SZ5H 3PNC AaFf ..5. 3... SZ5H 3PNC
ld A,$FC; 0xFC.. 1111 1100
and A ; SZ51 3P00 0xFCBC 11.1 ...0 101. 1100 musi byt sudy pocet nul!!!
rra ; --50 3-0C 0x7EAC 011. 1... --10 1-00 Carry = next H = 0
ccf ; --5H 3-0C 0x7EAD .11. 1... --10 1-01
; --5H 3-0C 0x..AD .11. 1... 1010 1101
ld A,$DE; 0xDE.. 1011 1110
and A ; SZ51 3P00 0xDE9C 11.1 ...0 101. 1100 musi byt sudy pocet nul!!!
rra ; --50 3-0C 0x6FAC 011. 1... --10 1-00 0 -> Carry -> H
ccf ; --5H 3-0C 0x6FAD .11. 1... --10 1-01
; --5H 3-0C 0x..AD .11. 1... 1010 1101
ld A,$D8; 0xD8.. 1011 1000
and A ; SZ51 3P00 0xD89C 11.1 ...0 101. 1100 musi byt sudy pocet nul!!!
rra ; --50 3-0C 0x6CAC 011. 1... --10 1-00 Carry = next H = 0
ccf ; --5H 3-0C 0x6CAD .11. 1... --10 1-01
; --5H 3-0C 0x..AD .11. 1... 1010 1101
ld A,$F0; 0xF0.. 1111 0000
and A ; SZ51 3P00 0xF0B4 11.1 ...0 101. 1100 musi byt sudy pocet nul!!!
rra ; --50 3-0C 0x78AC 011. 1... --10 1-00 Carry = next H = 0
ccf ; --5H 3-0C 0x78AD .11. 1... --10 1-01
; --5H 3-0C 0x..AD .11. 1... 1010 1101
; SZ5H 3PNC AaFf ..5. 3... SZ5H 3PNC
dec A ; SZ5H 3V1- 0x..BD 1.1. 1... 1011 1101 dec never V == 1 && S == 1 && ( 5 == 0 || 3 == 0 )
inc A ; SZ50 3V0- 0x..BD 1.1. 1... 1011 1101 inc never V == 1 && S == 0 && ( 5 == 1 || 3 == 1 )
ret
PS: V te tabulce jsou nejzajimavejsi hodnoty, ktere jsou okolo problematickych mist, jak se ty problemy nakonec obesly.
PPS: P/V... "V" se pouziva pro oVerflow, protoze "O" vypada jako "0"?