{"id":930230,"date":"2018-03-29T13:17:04","date_gmt":"2018-03-29T12:17:04","guid":{"rendered":"https:\/\/sindik.at\/?p=930230"},"modified":"2018-03-29T14:08:08","modified_gmt":"2018-03-29T13:08:08","slug":"historicke-okienko-zx-spectrum-a-farby","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=930230","title":{"rendered":"Historick\u00e9 okienko &#8211; ZX Spectrum a farby"},"content":{"rendered":"<p>Nap\u00edsal mi Jirka, \u017ee odkaz na <a href=\"https:\/\/scontent-frx5-1.xx.fbcdn.net\/v\/t1.0-9\/182807_184686171569731_7051550_n.jpg?_nc_cat=0&amp;oh=f5bf0c267ec1cb25242f4eb785e51f7f&amp;oe=5B6BCAC4\">\u010dl\u00e1nok vo Fife<\/a> v <a href=\"\/?p=930222\">z\u00e1piskoch z Foreveru 2018<\/a> nestoj\u00ed zave\u013ea, preto\u017ee text je \u0165a\u017eko \u010ditate\u013en\u00fd a zle sa l\u00fa\u0161ti. Pomohol mi t\u00fdm, \u017ee \u010dl\u00e1nok vlastnoru\u010dne oskenoval a zOCRkoval. Ja som u\u017e len opravil zop\u00e1r preklepov a pridal\u00a0<a href=\"\/data\/zx_farby.zip\">tapky z listingov<\/a> a nimi vygenerovan\u00e9 obr\u00e1zky.<\/p>\n<p><!--more--><\/p>\n<p>Pros\u00edm berte do \u00favahy, \u017ee \u010dl\u00e1nok vznikol niekde na prelome rokov 1991\/92, ke\u010f som mal Deltu s\u00edce u\u017e tri roky, ale farebn\u00fd telev\u00edzor ani nie pol, tak\u017ee farbi\u010dky boli pre m\u0148a \u00faplne nepresk\u00faman\u00e1 oblas\u0165 \ud83d\ude42<\/p>\n<hr \/>\n<p><strong>FIFO 16, strana 6<\/strong><\/p>\n<p>ZX SPECTRUM A FARBY<\/p>\n<p>&#8212;<br \/>\nAko to s t\u00fdmi farbami vlastne je? T\u00fato ot\u00e1zku si kladie takmer ka\u017ed\u00fd Spectrista. Je toti\u017e v\u0161eobecne zn\u00e1me, \u017ee Spectrum to nem\u00e1 s farbami tak\u00e9 jednoduch\u00e9.<br \/>\n&#8212;<\/p>\n<p>Probl\u00e9my rob\u00ed nielen ich usporiadanie do atrib\u00fatov\u00fdch \u0161tvorcov, ale aj ich obmedzen\u00e1 paleta.<\/p>\n<p>Sk\u00fasme sa teda spolo\u010dne pozrie\u0165 na jadro veci.<\/p>\n<p>Ako ka\u017ed\u00fd za\u010diato\u010dn\u00edk, aj ja som si myslel, \u017ee farieb na Spectre je osem. Potom som sa v\u0161ak skamar\u00e1til s funkciou BRIGHT a po\u010det farieb sa r\u00e1zom zdvojn\u00e1sobil. Ale \u010dierna farba s BRIGHTom zodpoved\u00e1 norm\u00e1lnej \u010diernej. Tak\u017ee som zistil, \u017ee farieb je 2*8-1 -15 farieb. Toto si m\u00f4\u017eete skontrolova\u0165, ak prep\u00ed\u0161ete do po\u010d\u00edta\u010da program pod\u013ea listingu 1.<\/p>\n<p><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-930237\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby1.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby1.png 640w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby1-300x225.png 300w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby1-400x300.png 400w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>Existuje v\u0161ak sp\u00f4sob, ako na obrazovku dosta\u0165 aj v\u00e4\u010d\u0161ie mno\u017estvo farebn\u00fdch kombin\u00e1ci\u00ed. Pokia\u013e si do Spectra nahr\u00e1te hru BLOOD BROTHERS, zist\u00edte, \u017ee v \u00favodnom screene (v prvom po spusten\u00ed hry) sa nach\u00e1dza aj ak\u00e1si \u0161ed\u00e1 farba. Ke\u010f som ju po prv\u00fd kr\u00e1t uvidel, tak ma to trochu zasko\u00e4lo a za\u010dal som uva\u017eova\u0165, ako sa tam mohla dosta\u0165. Po chv\u00ed\u013eke mi to do\u0161lo. Zistil som. \u017ee to nie je v\u00f4bec \u017eiadny probl\u00e9m a odvodil som ve\u013emi jednoduch\u00fa te\u00f3riu:<\/p>\n<p>Ak dvom susediacim bodom pridel\u00edme rozli\u010dn\u00fa farbu, v\u00fdsledn\u00fd efekt bude tak\u00fd. \u017ee na obrazovke uvid\u00edme iba farbu jednu, ktor\u00e1 bude namie\u0161an\u00e1 z farieb jednotliv\u00fdch bodov. T\u00e1to vlastnos\u0165 vypl\u00fdva z pomerne nekvalitn\u00e9ho zobrazenia na be\u017enom farebnom telev\u00edzore (ale tie\u017e z dynamickej \u010dinnosti obvodu ULA) a na listingu \u010d. 2 je program, ktor\u00fd t\u00fato vlastnos\u0165 vyu\u017e\u00edva.<\/p>\n<p><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-930236\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby2.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby2.png 640w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby2-300x225.png 300w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby2-400x300.png 400w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Pomocou neho si m\u00f4\u017eete vysk\u00fa\u0161a\u0165 v\u0161etky dosiahnute\u013en\u00e9 farebn\u00e9 kombin\u00e1cie. Teoreticky vych\u00e1dza, \u017ee mie\u0161an\u00edm by sme mohli zobrazi\u0165 a\u017e 2*(8*8-8) &#8211; 112 farieb (pri\u010dom \u010d\u00edslo 2 vo vz\u0165ahu vyjadruje mo\u017enos\u0165 pou\u017ei\u0165 norm\u00e1lny alebo zv\u00fd\u0161en\u00fd jas. 8*8 je po\u010det farieb pri kombin\u00e1cii a -8 vyjadruje nepr\u00edpustnos\u0165 mie\u0161a\u0165 rovnak\u00fd INK a PAPER).<\/p>\n<p>Ak k tomu prir\u00e1tame 16 z\u00e1kladn\u00fdch farieb, dopracujeme sa k v\u00fdsledku 128. \u010co je u\u017e celkom slu\u0161n\u00fd po\u010det Ke\u010f som odladil program, ktor\u00fd naraz nakreslil v\u0161etky tieto farby na obrazovku (listing 3), s\u00e1m som u\u017easol nad v\u00fdsledkom. Spam\u00e4tal som sa tak asi po piatich min\u00fatach a za\u010dal som racion\u00e1lne rozm\u00fd\u0161\u013ea\u0165 o tom, kde sa to vlastne bude da\u0165 vyu\u017ei\u0165.<\/p>\n<p><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-930238\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby3.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby3.png 640w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby3-300x225.png 300w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/zx_farby3-400x300.png 400w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Jednozna\u010dn\u00e9 by bolo vyu\u017eitie pri nepohyblivej grafike, hlavne pri tehli\u010dkovk\u00e1ch. Ur\u010dit\u00e9 probl\u00e9my by nastali pri anim\u00e1cii, rolovan\u00ed a podobne. Tie\u017e by nebolo jednoduch\u00e9 vklada\u0165 do pl\u00f4ch vyplnen\u00fdch t\u00fdmito farbami grafiku alebo text, ale nie je to nemo\u017en\u00e9 (\u010ditate\u013enos\u0165 pr\u00edp. zrete\u013enos\u0165 z\u00e1vis\u00ed od toho ak\u00e9 farby mie\u0161ame). Plochy, ktor\u00e9 m\u00f4\u017eu tieto farby zap\u013a\u0148a\u0165 by mali by\u0165 \u0161tvorcov\u00e9 alebo v tvare obd\u013a\u017enika, pr\u00edp. \u0161tvorcovo alebo obd\u013a\u017enikovo \u010dlenit\u00e9.<\/p>\n<p>Teraz si e\u0161te vysk\u00fa\u0161ajte program pod\u013ea listingu 4. Pomocou neho sa d\u00e1 jeden atrib\u00fatov\u00fd \u0161tvorec vyfarbi\u0165 a\u017e tromi namie\u0161an\u00fdmi farbami. V\u00fdsledok v\u0161ak nie je ve\u013emi presved\u010div\u00fd.<\/p>\n<p>V programe m\u00f4\u017eete zmeni\u0165 jednotliv\u00e9 farby na t\u00fdchto adres\u00e1ch:<\/p>\n<p><strong>40009<\/strong> &#8211; pre horn\u00fa tretinu atrib\u00fatov\u00e9ho \u0161tvorca (A\u0160)<br \/>\n<strong>40014<\/strong> &#8211; pre stredn\u00fa 1\/3 A\u0160<br \/>\n<strong>40019<\/strong> &#8211; pre spodn\u00fa 1\/3 A\u0160<\/p>\n<p>Hodnotu atrib\u00fatu si vyr\u00e1tate pod\u013ea vzorca: <em>a=p*8+i<\/em>,<\/p>\n<p>kde &#8222;a&#8220; je v\u00fdsledok, &#8222;p&#8220; je \u010d\u00edslo farby papiera, &#8222;i&#8220; je \u010d\u00edslo farby pera. \u010eal\u0161ie experimentovanie u\u017e prenech\u00e1m na v\u00e1s. Sn\u00e1\u010f sa niekomu z v\u00e1s podar\u00ed prin\u00fati\u0165 na\u0161e star\u00e9 dobr\u00e9 Spectrum, aby zobrazilo aspo\u0148 t\u00fdch 4096 farieb ako AMIGA<\/p>\n<p>Ak na nie\u010do pr\u00eddete, nenechajte si to pre seba, ale po\u0161lite to do redakcie FIFA. Pri pr\u00edpadn\u00fdch nejasnostiach alebo probl\u00e9moch (oh\u013eadom \u010dl\u00e1nku alebo programov) sa m\u00f4\u017eete prostredn\u00edctvom redakcie obr\u00e1ti\u0165 na autora<\/p>\n<p>Chcel by som e\u0161te doda\u0165, \u017ee programy boli odladen\u00e9 na ZX Spectre+ a FTVP Rub\u00edn-Tesla C392D. Ver\u00edm, \u017ee bud\u00fa rovnako fungova\u0165 na v\u0161etk\u00fdch po\u010d\u00edta\u010doch a TVP.<\/p>\n<p>&#8211; ikon &#8211;<\/p>\n<p><a href=\"\/data\/zx_farby.zip\"><strong>Obsah listingov v TAP<\/strong><\/a><\/p>\n<pre>LISTING 1:\r\n\r\n5 BORDER 6\r\n10 CLS: LET A$ = \"\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \": REM 16 MEDZIER\r\n20 FOR N = 0 TO 6\r\n30 FOR M = 0 TO 2\r\n40 FOR B = 0 TO 1\r\n50 PRINT PAPER N; BRIGHT B; A$;\r\n60 NEXT B\r\n70 NEXT M\r\n80 NEXT N\r\n90 PRINT AT 21,0; PAPER 7; A$; BRIGHT 1; A$\r\n100 PRINT #1; PAPER 7; A$; BRIGHT 1; A$\r\n110 PRINT #1 ;AT 0,0; PAPER 7; A$; BRIGHT 1; A$\r\n120 PAUSE 0\r\n\r\nLISTING 2:\r\n\r\n5 BORDER 0: PAPER 0: INK 0: CLS\r\n10 FOR N = 0 TO 7: READ A: POKE USR \"A\"+N,A: NEXT N\r\n20 DATA 170,85,170,85,170,85,170,85\r\n30 LET A$= \"\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\": REM 11 MEDZIER\r\n40 LET B$ = \"AAAAAAAAAA\": REM 10 * GRAFICKE A\r\n50 LET P=4: LET I=0: LET B=0\r\n60 PRINT INK I; PAPER P; BRIGHT B; B$; BRIGHT 0; A$; BRIGHT 1; A$\r\n70 INPUT \"INK \"; I: INPUT \"\u00a0 \u00a0 \u00a0PAPER \"; P: INPUT \"BRIGHT \"; B\r\n80 GO TO 60\r\n\r\nLISTING 3:\r\n\r\n1 FOR N = 0 TO 7: READ A: POKE USR \"A\"+N,A: NEXT N\r\n5 DATA 170,85,170,85,170,85,170,85\r\n10 BORDER 0: PAPER 0: CLS\r\n20 FOR N = 0 TO 7\r\n30 FOR M = 0 TO 7\r\n35 FOR B = 0 TO 1\r\n40 PRINT BRIGHT B; PAPER N; INK M;\"AAA\": REM 3 * GRAFICKE A\r\n45 NEXT B\r\n50 NEXT M\r\n60 NEXT N\r\n\r\nLISTING 4:\r\n\r\n5 REM MIESANIE FARBY STROJAK\r\n10 PAPER 0: BORDER 0: INK 7: CLEAR 39999\r\n15 LET S = 0\r\n20 FOR N = 40000 TO 40043\r\n30 READ A: POKE N,A\r\n40 LET S = S + A\r\n50 NEXT N\r\n60 IF S&lt;&gt;4777 THEN PRINT \" CHYBA V DATACH \": STOP\r\n70 DATA 251,118,205,92,156,33,0,88,54,<wbr \/>30,205,103,156,54,47\r\n71 DATA 205,103,<wbr \/>156,54,48,58,8,92,254,32,32,<wbr \/>230,201\r\n75 REM ^ HLAVNY PROGRAM\r\n80 DATA 6,20,197,6,48,16,254,193,16,<wbr \/>248,201\r\n85 REM ^ CAKACI CYKLUS 1\r\n90 DATA 6,30,16,254,201\r\n95 REM ^ CAKACI CYKLUS 2\r\n100 FOR N = 0 TO 7: READ A: POKE USR \"A\"+N,A: NEXT N\r\n110 DATA 170,85,170,85\r\n120 DATA 170,85,170,85\r\n130 RANDOMIZE USR 4E4\r\n140 PRINT AT 0,0; OVER 1;\"A\": REM GRAFICKE A\r\n150 POKE 23560,0: GO TO 130<\/pre>\n<hr \/>\n<p><a name=\"pp01\"><\/a><br \/>\nTo\u013eko p\u00f4vodn\u00fd \u010dl\u00e1nok a teraz aktualiz\u00e1cia k PP01: Ak u\u017e m\u00e1te stiahnut\u00fd <a href=\"https:\/\/pp01.borik.net\/\">najnov\u0161\u00ed emul\u00e1tor od Romana B\u00f3rika<\/a>, m\u00f4\u017eete si spusti\u0165 <a href=\"\/data\/pp01_farby.pta\">tento PTA s\u00fabor<\/a> pr\u00edpadne pre\u0165uka\u0165 listing do re\u00e1lnej ma\u0161iny:<\/p>\n<pre>5 SETCHAR 1 170,85,170,85,170,85,170,85\r\n10 PAPER 0: INK 7: CLEAR\r\n15 FOR B = 0 TO 3\r\n20 FOR N = 0 TO 7\r\n30 FOR M = 0 TO 7\r\n35 PAPER N: INK M\r\n40 PRINT CHR$(1);CHR$(1);CHR$(1);\r\n50 NEXT M\r\n60 NEXT N\r\n70 NEXT B\r\n100 INK 0\r\n<\/pre>\n<p>A v\u00fdsledok\u00a0 sa dostav\u00ed&#8230;<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-930231\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/pp01_farby.png\" alt=\"\" width=\"512\" height=\"512\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/pp01_farby.png 512w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/pp01_farby-150x150.png 150w, https:\/\/sindik.at\/wp-content\/uploads\/2018\/03\/pp01_farby-300x300.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nap\u00edsal mi Jirka, \u017ee odkaz na \u010dl\u00e1nok vo Fife v z\u00e1piskoch z Foreveru 2018 nestoj\u00ed zave\u013ea, preto\u017ee text je \u0165a\u017eko \u010ditate\u013en\u00fd a zle sa l\u00fa\u0161ti. Pomohol mi t\u00fdm, \u017ee \u010dl\u00e1nok vlastnoru\u010dne oskenoval a zOCRkoval. Ja som u\u017e len opravil zop\u00e1r &hellip; <a href=\"https:\/\/sindik.at\/?p=930230\">Pokra\u010dova\u0165 v \u010d\u00edtan\u00ed <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[],"class_list":["post-930230","post","type-post","status-publish","format-standard","hentry","category-tema-3-software-php"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aqy8-3TZI","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=930230"}],"version-history":[{"count":6,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930230\/revisions"}],"predecessor-version":[{"id":930240,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930230\/revisions\/930240"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}