{"id":930516,"date":"2019-03-09T23:56:12","date_gmt":"2019-03-09T22:56:12","guid":{"rendered":"https:\/\/sindik.at\/?p=930516"},"modified":"2019-03-09T23:56:18","modified_gmt":"2019-03-09T22:56:18","slug":"zx-rom-na-pmd","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=930516","title":{"rendered":"ZX ROM na PMD"},"content":{"rendered":"\n<p>Stru\u010dn\u00e9 poohliadnutie za opom\u00ednan\u00fdm Busyho po\u010dinom<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Mal som dnes zauj\u00edmav\u00fa debatu s kamar\u00e1tom, ktor\u00fd mi nazna\u010dil, \u017ee bombastick\u00e9 veci sa niekedy str\u00e1caj\u00fa v z\u00e1plave t\u00fdch priemern\u00fdch s dokonal\u00fdm (dnes hlavne FB) marketingom. Jedn\u00fdm z tak\u00fdch po\u010dinov je ur\u010dite port\u00e1cia \u0161tandardnej fabrickej ZX Spectrum ROM s <a href=\"https:\/\/busy.speccy.cz\/tvorba\/zxromky.htm\">plne funk\u010dn\u00fdm ZX Basicom na PMD85<\/a>. <\/p>\n\n\n\n<p>Dokonca aj s\u00e1m autor Busy p\u00ed\u0161e na svojej str\u00e1nke, \u017ee &#8222;<em>Podobne ako na platform\u00e1ch C64 a Ondra, ani na PMD85 to u\u017e nie je romka v pravom slova zmysle, t.j. d\u00e1ta ktor\u00e9 je mo\u017en\u00e9 nap\u00e1li\u0165 do ((E)E)PROM (Flash) a fyzicky vlo\u017ei\u0165 do po\u010d\u00edta\u010da, ale je to klasick\u00e1 aplik\u00e1cia, ktor\u00e1 funguje na po\u010d\u00edta\u010di bez ak\u00fdchko\u013evek HW \u00faprav a ktor\u00fa treba norm\u00e1lne nahra\u0165 a spusti\u0165 <\/em>&#8222;. S t\u00fdm si samozrejme dovol\u00edm nes\u00fahlasi\u0165. \u010ci u\u017e <a href=\"http:\/\/nostalcomp.cz\/pmd_megamodul.php\">Nostalcomp-ov MEGA modul <\/a>alebo <a href=\"https:\/\/sindik.at\/?p=904506\">moje rie\u0161nie<\/a> umo\u017e\u0148uje ulo\u017ei\u0165 jeho ZX ROMku do \u010dasti Flash pam\u00e4ti a po zapnut\u00ed po\u010d\u00edta\u010da prev\u00e1dzkova\u0165 PMD85 ako Spektrum z poh\u013eadu \u0161tadnardn\u00e9ho Basic program\u00e1tora z osemdesiatych rokov.<\/p>\n\n\n\n<p>Je neskuto\u010dn\u00e9 sledova\u0165 ako retro vlna <a href=\"http:\/\/spectrumcode.club\/\">prin\u00e1\u0161a knihy pln\u00e9 listingov<\/a>, ako si naprogramova\u0165 hru v Basicu. Ja si spom\u00ednam na jednu obdobn\u00fa dobov\u00fa knihu, ktor\u00fa sa &#8211; dnes u\u017e neboh\u00e9mu, nech mu je zem \u013eahk\u00e1 &#8211; otcovi m\u00f4jho kamar\u00e1ta podarilo zohna\u0165 v Ma\u010farsku. Pred samotn\u00fdm listingom &#8222;Gust\u00e1va na motorke&#8220; bolo zop\u00e1r pokynov, ktor\u00fdm sme v cudzom jazyku samozrejme nerozumeli, ale nebolo toho viac ako 2 odstavce, tak\u017ee sme tomu nevenovali n\u00e1le\u017eit\u00fa pozornos\u0165 &#8211; inak povedan\u00e9 s preh\u013eadom sme to odignorovali :). Ak\u00e9 bolo ale prekvapenie, ke\u010f sa n\u00e1m po hodin\u00e1ch \u010fatlovania a opr\u00e1v preklepov podarilo kone\u010dne hru spusi\u0165. A ak\u00e9 bolo sklamanie, ke\u010f namiesto Gust\u00e1va a motorky po obrazovke behali oby\u010dajn\u00e9 p\u00edsmen\u00e1 A, B, C, D&#8230;<\/p>\n\n\n\n<p>A\u017e nesk\u00f4r sa n\u00e1m omylom podarilo n\u00e1js\u0165 v grafickom m\u00f3de ak\u00e9si podivn\u00e9 kreat\u00fary na p\u00edsmen\u00e1ch A, B, C a D a napadlo n\u00e1s nahradi\u0165 v programe tie oby\u010dajn\u00e9 p\u00edsmen\u00e1 za grafiku a &#8211; voil\u00e0 &#8211; zrazu sa po spusten\u00ed sc\u00e9na zmenila, z A bol Gust\u00e1v z B jeho motorka, C, D at\u010f kadejak\u00e9 \u010fal\u0161ie kreat\u00fary scen\u00e9rie. <\/p>\n\n\n\n<p>Zrejme ste si u\u017e domysleli, \u017ee listing obsahoval len \u010dist\u00e9 ASCII znaky a v pokynoch pred n\u00edm bol postup ako spr\u00e1vne natypova\u0165 do po\u010d\u00edta\u010da znaky v grafickom m\u00f3de. Ale ten proces zis\u0165ovania a u\u010denia sa mal ur\u010dite nie\u010do do seba. \u010co je \u00fa\u017easn\u00e9, \u017ee si dnes &#8222;Gust\u00e1va&#8220; m\u00f4\u017eem rovnako natypova\u0165 aj do PMD\u010dka. Kto by si to chcel na vlastnej ko\u017ei vysk\u00fa\u0161a\u0165, bude v\u00edtan\u00fd pri stol\u00edku SinDiKatu bud\u00faci t\u00fd\u017ede\u0148 <a href=\"http:\/\/forever8.net\/\">na Foreveri<\/a>.<\/p>\n\n\n\n<p>Na <a href=\"https:\/\/pmd85.borik.net\">PMD infoserveri<\/a> sa zatia\u013e<a href=\"https:\/\/pmd85.borik.net\/wiki\/ZX_ROM\"> inform\u00e1cia o ZX ROM<\/a> verzii 02 neobjavila, tak\u017ee si dovol\u00edm aspo\u0148 mal\u00fa up\u00fatavku v podobe &#8222;\u010co je nov\u00e9ho&#8220; <a href=\"http:\/\/busy.speccy.cz\/download\/zxromp02.rar\">z arch\u00edvu dod\u00e1van\u00e9ho spolu s Busyho ZX ROM<\/a>:<\/p>\n\n\n\n<p><strong>Oprava chyby sporadickeho objavenia sa blikajuceho kurzora za chybovym hlasenim<\/strong><\/p>\n\n\n\n<p>Tato chyba sa neprejavuje casto, ale obcas sa stane, ze sa objavi. Je zapricinena     nekorektnym nastavenim systemovych premennych, konkretne bitu ktory signalizuje     ze editacna zona nebola zmazana. Pri nespravnom nastaveni tohto bitu sa zobrazene     chybove hlasenie nezmaze a editacny riadok pre novy prikaz je umiestneny nie    od zaciatku riadku, ale az a tymto hlasenim. V ZXrom02 by sa toto uz nemalo stavat.<\/p>\n\n\n\n<p><strong>Kompletne prepracovane matematike rutinky<\/strong><\/p>\n\n\n\n<p>Povodne matematicke rutinky v ZX romke boli pisane tak, aby si co najviac udajov drzali v registroch (velmi casto vyuzivali instrukciu EXX). Procesor 8080 nema tolko registrov, preto si musi niektore udaje odkladat do pameti. Toto sposobilo ze mnohe matematicke rutinky prepisane na 8080 bezali podstatne pomalsie. V ZXrom02 su rutinky prepracovane a optimalizovane priamo na mieru instrukcneho suboru 8080 a tym padom bezia podstatne rychlejsie nez v ZXrom01. Navyse, pre niektore rutinky boli pouzite ine, rychlejsie algoritmy na vypocet, tieto rutinky dokazu na 2 MHz 8080 bezat dokonca este rychlejsie ako originalne rutinky na 3.5 MHz Z80.<\/p>\n\n\n\n<p>Napriklad bezne vedecke funkcie (SIN,COS,LN,EXP,SQR\u2026) bezia v priemere 6-krat rychlejsie, nasobenie bezi (v zavislosti od argumentov) az 40-krat rychlejsie, generovanie nahodnych cisel 50 az 60-krat rychlejsie, take delenie az 96-krat rychlejsie a absolutnym rekorderom je premena textovej formy cisla na hodnotu (napr. funkcia VAL) ktora v urcitych pripadoch bezi az 360-krat rychlejsie nez bezali povodne rutinky v ZXrom01 !<\/p>\n\n\n\n<p><strong>Novy nastavovaci bit.4: Povolenie emulacie matematickych chyb: delenie a -65536<\/strong><\/p>\n\n\n\n<p>Nove prepracovane matematicke rutinky uz netrpia znamymi chybami z povodnej romky ZX Spektra. Pre kazdy pripad, ak by bolo nutne, je mozne zapnut emulaciu tychto chyb nastavenim bitu 4 na hodnotu 1 v bajte pre nastavenie rezimov cinnosti.<\/p>\n\n\n\n<p><strong>Prepracovany linearny interpolator v prikazoch DRAW a CIRCLE<\/strong><\/p>\n\n\n\n<p>Povodny linearny interpolator v ZXrom01 fungoval presne ako original na ZX Spektre, to znamena ze pocital suradnice bodov a pre kazdy bod volal rutinku prikazu PLOT. Novy optimalizovany interpolator uz nevola PLOT, ale pristupuje priamo do videoramky, vdaka comu prikazy DRAW a CIRCLE dokazu bezat 5 az 6-krat rychlejsie.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\/ikon<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stru\u010dn\u00e9 poohliadnutie za opom\u00ednan\u00fdm Busyho po\u010dinom<\/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-930516","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-3U4k","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930516","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=930516"}],"version-history":[{"count":1,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930516\/revisions"}],"predecessor-version":[{"id":930517,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930516\/revisions\/930517"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}