{"id":1223,"date":"2020-06-16T18:54:27","date_gmt":"2020-06-16T17:54:27","guid":{"rendered":"https:\/\/www.pmd85.cz\/?page_id=1223"},"modified":"2020-07-15T17:42:19","modified_gmt":"2020-07-15T15:42:19","slug":"synchronizace-casovace-t1-s-generatorem-tv-signalu","status":"publish","type":"page","link":"https:\/\/www.pmd85.cz\/?page_id=1223","title":{"rendered":"Synchronizace \u010dasova\u010de T1 s gener\u00e1torem TV sign\u00e1lu"},"content":{"rendered":"<p><span style=\"color: #808080;\"><em>[p\u0159ilo\u017een\u00fd program obsahuje chybu a bude upraven]<\/em><\/span><\/p>\n<p>\u010cl\u00e1nek \u0159e\u0161\u00ed problematiku kreslen\u00ed objektu na obrazovku PMD-85 tak, aby b\u011bhem kreslen\u00ed tohoto objektu nep\u0159e\u0161el pomysln\u00fd paprsek TV obrazovky prostorem kreslen\u00ed, proto\u017ee potom dojde na 20ms k &#8222;zakonzervov\u00e1n\u00ed&#8220; p\u0159echodn\u00e9ho stavu, kdy prvn\u00ed \u010d\u00e1st obr\u00e1zku u\u017e je nov\u011b vykreslen\u00e1, ale od m\u00edsta, kde vykreslovac\u00ed paprsek TV obrazovky &#8222;p\u0159edb\u011bhl program\u00e1tora&#8220;, z\u016fstala p\u0159edchoz\u00ed anima\u010dn\u00ed f\u00e1ze, nebo obecn\u011b n\u011bjak\u00fd zbytek obrazu, kter\u00fd nesouvis\u00ed s t\u00edm nov\u011b kreslen\u00fdm. Tento jev, a\u010d trv\u00e1 pouze zm\u00edn\u011bn\u00fdch 20ms do dal\u0161\u00edho kompletn\u00edho vykreslen\u00ed obrazu rozkladov\u00fdmi obvody TV p\u0159ij\u00edma\u010de \u010di monitoru, je velmi viditeln\u00fd.<\/p>\n<p>A o jeho eliminaci by n\u00e1m m\u011blo j\u00edt p\u0159edev\u0161\u00edm :)<\/p>\n<p>D\u00edky zm\u00ednce Martina z RM-Teamu ohledn\u011b pokus\u016f, kter\u00e9 s Romanem d\u011blali ve v\u011bci synchronizace \u010dasova\u010de T1 s rozkladov\u00fdmi obvody gener\u00e1toru TV sign\u00e1lu, jsem se i j\u00e1 nat\u011b\u0161il na zdol\u00e1n\u00ed v\u00fdzvy. N\u011bco se povedlo, a tak to p\u0159edkl\u00e1d\u00e1m k prostudov\u00e1n\u00ed.<\/p>\n<p>Proto\u017ee centrem pozornosti se stane p\u0159ilo\u017een\u00fd testovac\u00ed program, tak jen vysv\u011btlen\u00ed jeho smyslu a funkce. Program nastav\u00ed \u010dasova\u010d T1 na stejn\u00fd \u010dasov\u00fd interval, kter\u00fd zab\u00edr\u00e1 vygenerov\u00e1n\u00ed jednoho kompletn\u00edho p\u016flsn\u00edmku TV obrazu. Pokud chce program\u00e1tor n\u011bco nakreslit nap\u0159\u00edklad mezi mikro\u0159\u00e1dky 20 a\u017e 50, pak je bezpe\u010dn\u00e9 po\u010dkat, a\u017e TV monitor vykresl\u00ed onen 50 mikro\u0159\u00e1dek a m\u016f\u017eeme za\u010d\u00edt kreslit n\u00e1\u0161 objekt. Pokud to (pro zjednodu\u0161en\u00ed) stihneme do necel\u00fdch 20 milisekund, TV paprsek n\u00e1s nedob\u011bhne, a obr\u00e1zek p\u0159i pohybu nebude nep\u0159\u00edjemn\u011b trhan\u00fd. V demonstra\u010dn\u00edm programu se pro n\u00e1zornost kresl\u00ed svisl\u00fd pruh. Prostudov\u00e1n\u00edm programu zjist\u00edte, \u017ee jin\u00fd ne\u017e souvisl\u00fd (a svisl\u00fd) pruh kreslit neum\u00ed, p\u0159esto se na obrazovce objev\u00ed svisl\u00fd pruh, kter\u00fd bude v ur\u010dit\u00e9 v\u00fd\u0161ce usko\u010den\u00fd do strany. V\u00fd\u0161ku, kde k tomuto usko\u010den\u00ed m\u00e1 doj\u00edt, si vol\u00edm j\u00e1 jako program\u00e1tor. Jedn\u00e1 se o dynamick\u00fd d\u011bj a je to n\u011bco na zp\u016fsob programov\u00e9ho RASTER INTERRUPTu. Proto\u017ee v\u0161ak \u010dasova\u010d T1 neum\u00edme spr\u00e1vn\u011b sf\u00e1zovat s rozkladov\u00fdmi obvody (maj\u00ed pouze stejnou &#8222;rychlost&#8220;), tak toto sf\u00e1zov\u00e1n\u00ed mus\u00edme ud\u011blat ru\u010dn\u011b. Nap\u0159\u00edklad v n\u011bjak\u00e9m dialogu na za\u010d\u00e1tku programu. N\u011bco podobn\u00e9ho umo\u017e\u0148ovala nap\u0159\u00edklad hra DynaBlaster pro DOS v dialogu nastaven\u00ed grafick\u00e9 karty.<\/p>\n<p>A nyn\u00ed k ovl\u00e1d\u00e1n\u00ed programu. Tla\u010d\u00edtky U a D posouv\u00e1me nahoru a dol\u016f m\u00edsto, kde je pruh na obrazovce stranov\u011b usko\u010den\u00fd. To je to m\u00edsto, na kter\u00e9 si po\u010dk\u00e1m (d\u00edky \u010dten\u00ed stavu T1) a v tomto okam\u017eiku (= v po\u017eadovan\u00e9 v\u00fd\u0161ce na obrazovce) za\u010dnu kreslit pruh posunut\u00fd do strany. Pruh se kresl\u00ed shora dol\u016f cel\u00fd souvisl\u00fd, ov\u0161em d\u00edky p\u0159echodu TV paprsku uvid\u00edte novou \u010d\u00e1st pruhu na jedn\u00e9 stran\u011b a tu starou, nep\u0159ekreslenou, zakonzervovanou \u010d\u00e1st uvid\u00edte usko\u010denou do druh\u00e9 strany. Pro sf\u00e1zov\u00e1n\u00ed hodnoty \u010dasova\u010de T1 s rozkladov\u00fdmi obvody lze stisknout EOL. Vyje\u010fte si z usko\u010den\u00edm pruhu na horn\u00ed okraj obrazovky, stiskn\u011bte EOL a od t\u00e9 chv\u00edle v\u00e1m \u010d\u00edseln\u00fd ukazatel ukazuje spr\u00e1vn\u00e9 \u010d\u00edslo mikro\u0159\u00e1dku, na kter\u00e9 je RASTR INTERRUPT nastaven\u00fd. Pokud stranov\u00fd \u00faskok pruhu nen\u00ed vid\u011bt, stiskn\u011bte tla\u010d\u00edtko U nebo D a chv\u00edli po\u010dkejte, Ten \u00faskok m\u016f\u017ee b\u00fdt toti\u017e schovan\u00fd cca 1\/4 v\u00fd\u0161ky obrazovky bu\u010f naho\u0159e nebo dole pod viditelnou \u010d\u00e1st\u00ed obrazovky. Tato viditeln\u00e1 \u010d\u00e1st obrazovky na PMD-85 zab\u00edr\u00e1 pouze 256 z celkov\u00fdch 320 mikro\u0159\u00e1dk\u016f.<\/p>\n<p>Tak\u017ee p\u011bknou z\u00e1bavu s touto akademickou h\u0159\u00ed\u010dkou. I kdy\u017e d\u00edky tomu, \u017ee T1 b\u011b\u017e\u00ed na pozad\u00ed a my se o n\u011bj nemus\u00edme starat, tak po prvotn\u00edm sf\u00e1zov\u00e1n\u00ed pomoc\u00ed n\u011bjak\u00e9ho \u00favodn\u00edho dialogu ve h\u0159e nebo demu m\u016f\u017eeme u\u017e potom kdykoliv testov\u00e1n\u00edm hodnoty T1 dosahovat kreslen\u00ed synchronn\u00edho a neru\u0161en\u00e9ho obrazu, tak jak to nap\u0159\u00edklad na ZX Spectru \u0159e\u0161\u00ed \u010dten\u00edm portu <del>28h<\/del> FFh nebo u ostatn\u00edch po\u010d\u00edta\u010d\u016f pomoc\u00ed ji\u017e zm\u00edn\u011bn\u00e9ho RASTR INTERRUPTu.<\/p>\n<p>Howg!<\/p>\n<p><a href=\"https:\/\/www.pmd85.cz\/wp-content\/uploads\/rastrtest.txt\" target=\"_blank\" rel=\"noopener\">zdrojov\u00fd k\u00f3d demonstra\u010dn\u00edho programu<\/a><\/p>\n<p><a href=\"https:\/\/www.pmd85.cz\/wp-content\/uploads\/rastrtest.zip\">zkompilovan\u00fd demonstra\u010dn\u00ed program pro emul\u00e1tor PMD-85 od RM-Teamu<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[p\u0159ilo\u017een\u00fd program obsahuje chybu a bude upraven] \u010cl\u00e1nek \u0159e\u0161\u00ed problematiku kreslen\u00ed objektu na obrazovku PMD-85 tak, aby b\u011bhem kreslen\u00ed tohoto objektu nep\u0159e\u0161el pomysln\u00fd paprsek TV obrazovky prostorem kreslen\u00ed, proto\u017ee potom dojde na 20ms k &#8222;zakonzervov\u00e1n\u00ed&#8220; p\u0159echodn\u00e9ho stavu, kdy prvn\u00ed \u010d\u00e1st obr\u00e1zku u\u017e je nov\u011b vykreslen\u00e1, ale od m\u00edsta, kde vykreslovac\u00ed paprsek TV obrazovky &#8222;p\u0159edb\u011bhl program\u00e1tora&#8220;, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":337,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1223"}],"collection":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1223"}],"version-history":[{"count":5,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1223\/revisions"}],"predecessor-version":[{"id":1272,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/1223\/revisions\/1272"}],"up":[{"embeddable":true,"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=\/wp\/v2\/pages\/337"}],"wp:attachment":[{"href":"https:\/\/www.pmd85.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}