{"id":930980,"date":"2022-01-28T11:55:07","date_gmt":"2022-01-28T10:55:07","guid":{"rendered":"https:\/\/sindik.at\/?p=930980"},"modified":"2022-01-28T12:10:47","modified_gmt":"2022-01-28T11:10:47","slug":"grundy-newbrain-a-seriovy-prenos","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=930980","title":{"rendered":"Grundy NewBrain a s\u00e9riov\u00fd prenos"},"content":{"rendered":"\n<p>Ako u\u017e mike spomenul v z\u00e1piskoch, na poslednom SinDiKATe som sa venoval<br>s\u00e9riov\u00e9mu prenosu d\u00e1t z a do NewBrainu. Ke\u010f\u017ee sa v internetoch pr\u00edli\u0161 \u010dasto o<br>tomto po\u010d\u00edta\u010di nep\u00ed\u0161e, rozp\u00ed\u0161em tu trochu viac \u010do konkr\u00e9tne som vlastne<br>rie\u0161il.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trocha-teorie-na-uvod\">Trocha te\u00f3rie na \u00favod<\/h2>\n\n\n\n<p>\u0160tandartn\u00fd neroz\u0161\u00edren\u00fd NewBrain (verzia A aj AD) obsahuje 2 s\u00e9riov\u00e9 porty.<br>Jeden je ur\u010den\u00fd pre tla\u010diare\u0148, ten je jednosmern\u00fd, druh\u00fd je obojsmern\u00fd. Oba<br>s\u00fa softv\u00e9rov\u00e9, r\u00fdchlos\u0165 je voliteln\u00e1 v rozmedz\u00ed 75 a\u017e 19200 baudov. Oba porty<br>s\u00fa plne vyu\u017eiteln\u00e9 priamo opera\u010dn\u00fdm syst\u00e9mom a netreba \u017eiadny \u010fal\u0161\u00ed softv\u00e9r na<br>ich obsluhu. Predvolen\u00e1 r\u00fdchlos\u0165 po zapnut\u00ed po\u010d\u00edta\u010da je 9600 baudov.<\/p>\n\n\n\n<p>Skvel\u00e1 vlastnos\u0165 syst\u00e9mu je, \u017ee umo\u017e\u0148uje LOAD aj SAVE z \/ na u\u017e\u00edvate\u013eom zvolen\u00fd<br>stream. Druh\u00e1 skvel\u00e1 vlastnos\u0165 syst\u00e9mu je, \u017ee LOAD dok\u00e1\u017ee nahra\u0165 nie len<br>klasick\u00fd tokenizovan\u00fd BASIC (v\u00fdstup z pr\u00edkazu SAVE), ale aj BASIC v ASCII<br>form\u00e1te. Ten mus\u00ed ma\u0165 nasledovn\u00fd tvar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>prv\u00fd riadok programu je pr\u00e1zdny (0x0D alebo 0x0A)<\/li><li>ka\u017ed\u00fd \u010fal\u0161\u00ed riadok programu za\u010d\u00edna \u010d\u00edslom riadku (\u010d\u00edsla riadku s\u00fa v<br>rozmedz\u00ed 1 a\u017e 65535)<\/li><li>ka\u017ed\u00fd riadok kon\u010d\u00ed 0x0D 0x0A<\/li><li>s\u00fabor kon\u010d\u00ed riadkom, ktor\u00fd obsahuje len 0x04<\/li><li>riadky nemusia \u00eds\u0165 po porad\u00ed, syst\u00e9m si ich v pam\u00e4ti poupratuje <\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/01-ASCII_format_programu.png\"><img loading=\"lazy\" decoding=\"async\" width=\"739\" height=\"201\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/01-ASCII_format_programu.png\" alt=\"\" class=\"wp-image-930982\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/01-ASCII_format_programu.png 739w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/01-ASCII_format_programu-300x82.png 300w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/01-ASCII_format_programu-500x136.png 500w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/a><figcaption>Obr. 1 &#8211; ASCII form\u00e1t programu<\/figcaption><\/figure>\n\n\n\n<p>R\u00fdchlos\u0165 LOAD a SAVE je v\u017edy 1200 baudov a tomu mus\u00edme prisp\u00f4sobi\u0165 aj r\u00fdchlos\u0165<br>s\u00e9riov\u00e9ho portu.<\/p>\n\n\n\n<p>Na opa\u010dnej strane m\u00e1m oby\u010dajn\u00e9 PC s Linuxom a prevodn\u00edk USB-to-RS232 (FT232<br>USB-Serial (UART) IC). Ako softv\u00e9r pou\u017e\u00edvam Picocom, ale Minicom \u010di ak\u00fdko\u013evek<br>in\u00fd program na obsluhu s\u00e9riov\u00e9ho portu bude samozrejme fungova\u0165 rovnako dobre. Nem\u00e1m pr\u00edstup k Windows a ani sa v nich neorientujem, tak\u017ee situ\u00e1ciu tam pop\u00edsa\u0165 nem\u00f4\u017eem.<br>Predpoklad\u00e1m, \u017ee s modern\u00fdmi Apple syst\u00e9mami to bude podobn\u00e9 ako s Linuxom.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zapojenie\">Zapojenie<\/h2>\n\n\n\n<p>Sign\u00e1ly na konektore NewBrainu s\u00fa nasledovn\u00e9 (poh\u013ead na konektor zozadu<br>po\u010d\u00edta\u010da):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>          +----------+----------+----------+\n          |  clear   |  data    |  signal  |\n          |  to      |  out     |  ground  |\n          |  send    |  (TX)    |          |\n          |  PIN 2   |  PIN 4   |  PIN 6   |\n          +----------+----------+----------+\n          |  data    |          |  ready   |\n          |  in      |          |  to      |\n          |  (RX)    |          |  send    |\n          |  PIN 1   |          |  PIN 5   |\n          +----------+          +----------+<\/code><\/pre>\n\n\n\n<p>Sign\u00e1ly na konektore USB prevodn\u00edka s\u00fa tieto:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-white-background-color has-text-color has-background\"><code>   +----------+----------+----------+----------+----------+\n   | carrier  | data     | data     | data     | signal   |\n   | detect   | in       | out      | terminal | ground   |\n   |          | (RX)     | (TX)     | ready    |          |\n   |  PIN 1   |  PIN 2   |  PIN 3   |  PIN 4   |  PIN 5   |\n   +-----+----+-----+----+-----+----+-----+----+-----+----+\n         | data     | request  | clear    | ring     |\n         | set      | to       | to       | indicator|\n         | ready    | send     | send     |          |\n         |  PIN 6   |  PIN 7   |  PIN 8   |  PIN 9   |\n         +----------+----------+----------+----------+<\/code><\/pre>\n\n\n\n<p>Zapojenie sign\u00e1lov je teda toto:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">NewBrain &lt;----------&gt; PC serial\n\n PIN 1 (RX) ------ PIN 3 (TX)\n PIN 2 (CTS) ----- PIN 6 (RTS)\n PIN 4 (TX) ------ PIN 2 (RX)\n PIN 5 (RTS) ----- PIN 8 (CTS)\n PIN 6 (G) ------- PIN 5 (G)<\/pre>\n\n\n\n<p>Pozn\u00e1mka ku konektorom: NewBrain s\u00edce pou\u017e\u00edva propriet\u00e1rne k\u00e1ble a konektory, rozte\u010d pinov je ale \u0161tandardn\u00e1 a je mo\u017en\u00e9 pou\u017ei\u0165 skr\u00e1ten\u00fd oby\u010dajn\u00fd dvojradov\u00fd eurokonektor (DIN 41612).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-1024x575.jpg\" alt=\"\" class=\"wp-image-930983\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-1024x575.jpg 1024w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-300x168.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-768x431.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-1536x862.jpg 1536w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel-500x281.jpg 500w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/02-Skusobny_seriovy_kabel.jpg 1824w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Obr. 2 &#8211; Sk\u00fa\u0161obn\u00fd s\u00e9riov\u00fd k\u00e1bel<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prenos-dat\">Prenos d\u00e1t<\/h2>\n\n\n\n<p>Sn\u00e1\u010f ako \u00faplne prv\u00fd krok by som doporu\u010dil presved\u010di\u0165 sa, \u017ee ni\u010d neblokuje<br>s\u00e9riov\u00fd port na strane PC. To sa presne stalo mne. Testoval som USB2RS232 prevodn\u00edk tak, \u017ee<br>som si spustil s\u00e9riov\u00fa konzolu a prihl\u00e1sil sa cez \u0148u. V\u0161etko fungovalo, tak<br>som to znova porozp\u00e1jal a pustil to z hlavy. Samozrejme, \u017ee som konzolu<br>zabudol vypn\u00fa\u0165 a str\u00e1vil som dos\u0165 ve\u013ea \u010dasu zis\u0165ovan\u00edm, pre\u010do mi d\u00e1ta te\u010d\u00fa len<br>jedn\u00fdm smerom a aj to nie \u00faplne spo\u013eahlivo. Tu \u010fakujem Pavlovi Vymet\u00e1lkovi,<br>ktor\u00e9mu debug probl\u00e9mu trval asi 1 min\u00fatu (spo\u010d\u00edvalo to v spojen\u00ed pinu 2 a 3 na<br>prevodn\u00edku, t\u00fdm p\u00e1dom som dostal login prompt a videl kde je probl\u00e9m).<\/p>\n\n\n\n<p>Ke\u010f\u017ee m\u00e1me zapojen\u00fdch v\u0161etk\u00fdch 5 sign\u00e1lov, vyu\u017eijeme hardv\u00e9rov\u00e9 riadenie toku<br>d\u00e1t. NewBrain pou\u017e\u00edva 2 stopbity a r\u00fdchlos\u0165 mus\u00edme obmedzi\u0165 na 1200 baudov.<\/p>\n\n\n\n<p>Na PC teda pou\u017e\u00edvam Picocom (znova v\u010faka Pavlovi, je to s\u00e9riov\u00fd<br>guru!), je jednoduch\u00fd a r\u00fdchlo sa na\u0148 zvyk\u00e1. Ako prv\u00e9 je treba nastavi\u0165 \u010d\u00edm sa<br>bud\u00fa pren\u00e1\u0161a\u0165 s\u00fabory, to sa rob\u00ed pri samotnom \u0161tarte:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ picocom \/dev\/ttyUSB0 --send-cmd \"ascii-xfr -e -d -s -v -n\" --receive-cmd \"ascii-xfr -r -v -d -n\"<\/pre>\n\n\n\n<p>Po spusten\u00ed treba nastavi\u0165 port na r\u00fdchlos\u0165 1200 baudov, 2 stop bity,<br>hardv\u00e9rov\u00fa kontrolu toku. Pre istotu nastavujem aj lok\u00e1lne echo, to sa hod\u00ed ak<br>si nie som ist\u00fd v akom stave je prenos (vr\u00e1tim sa k tomu nesk\u00f4r). V\u00fdpis nastavenia portu z Picocomu:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">*** baud: 1200<br>*** flow: RTS\/CTS<br>*** parity: none<br>*** databits: 8<br>*** stopbits: 2<br>*** dtr: up<br>*** rts: up<br>*** mctl: DTR:1 DSR:0 DCD:0 RTS:1 CTS:0 RI:0<\/pre>\n\n\n\n<p>Nastavenie na strane NewBrainu je nasledovn\u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">OPEN #9,9,\"T1200R1200\"<\/pre>\n\n\n\n<p>T\u00fdmto otvor\u00edme stream 9 (m\u00f4\u017ee to by\u0165 \u013eubovoln\u00fd voln\u00fd stream) na zariadenie 9 (to je s\u00e9riov\u00fd port), parametre s\u00fa vysielanie 1200 baudov (\u00favodn\u00e9 T sa ale m\u00f4\u017ee vynecha\u0165) a pr\u00edjem tie\u017e 1200 baudov<br>To je aj cel\u00e1 konfigur\u00e1cia na strane NewBrainu a m\u00f4\u017eeme nahr\u00e1va\u0165:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">LOAD #9<\/pre>\n\n\n\n<p>Ke\u010f z PC po\u0161leme s\u00fabor, obraz na NewBraine za\u017ene blika\u0165. Je to znak toho, \u017ee<br>sa pren\u00e1\u0161aj\u00fa d\u00e1ta (d\u00f4vod blikania je ten, \u017ee o vstup a v\u00fdstup sa star\u00e1 druh\u00fd<br>procesor, COP420. Ten sa v\u0161ak star\u00e1 aj o obsluhu video obvodu a ke\u010f\u017ee nevie<br>robi\u0165 viac vec\u00ed naraz, pri prenose vypne obraz). Po skon\u010den\u00ed prenosu sa vr\u00e1ti<br>blikaj\u00faci kurzor a m\u00f4\u017eeme spusti\u0165 program (syst\u00e9m nepozn\u00e1 auto\u0161tart po nahran\u00ed).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/03-Prijimanie_suboru_na_NewBraine.png\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"480\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/03-Prijimanie_suboru_na_NewBraine.png\" alt=\"\" class=\"wp-image-930984\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/03-Prijimanie_suboru_na_NewBraine.png 720w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/03-Prijimanie_suboru_na_NewBraine-300x200.png 300w, https:\/\/sindik.at\/wp-content\/uploads\/2022\/01\/03-Prijimanie_suboru_na_NewBraine-450x300.png 450w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><figcaption>Obr. 3 &#8211; Prij\u00edmanie s\u00faboru na NewBraine<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"co-dalej\">\u010co \u010falej?<\/h2>\n\n\n\n<p>Ak m\u00e1me zapnut\u00e9 lok\u00e1lne echo, nemus\u00edme BASIC posiela\u0165 ako hotov\u00fd s\u00fabor, ale<br>m\u00f4\u017eeme ho pohodlne p\u00edsa\u0165 priamo do termin\u00e1lu. V\u017edy po odENTERovan\u00ed riadku ho NewBrain<br>pr\u00edjme a \u010dak\u00e1 na \u010fal\u0161\u00ed. Ke\u010f program dop\u00ed\u0161eme, po\u0161leme koniec s\u00faboru (CTRL+D) a<br>ENTER. Podobne vieme plni\u0165 aj premenn\u00e9 be\u017eiacemu programu (INPUT aj<br>LINPUT vedia \u010d\u00edta\u0165 aj zo streamov), GET# m\u00f4zeme pou\u017ei\u0165 na \u010d\u00edtanie d\u00e1t. Vy\u0161\u0161\u00ed<br>level je potom pou\u017eitie OPEN IN# a OPEN OUT# ktor\u00e9 vedia pracova\u0165 so s\u00fabormi.<\/p>\n\n\n\n<p>T\u00fdmto t\u00e9mu s\u00e9riov\u00e9ho prenosu na NewBraine ur\u010dite nekon\u010d\u00edm, z\u00e1mer je pou\u017ei\u0165<br>Linux ako spo\u013eahliv\u00e9 z\u00e1znamov\u00e9 m\u00e9dium a vyhn\u00fa\u0165 sa pou\u017eitiu kaziet. Ke\u010f sa tak<br>stane, ur\u010dite sa tu o tom objav\u00ed \u010dl\u00e1nok.<\/p>\n\n\n\n<p>A \u010do vy, ako ste na tom so s\u00e9riov\u00fdm prenosom na va\u0161ich po\u010d\u00edta\u010doch?<\/p>\n\n\n\n<p>ellvis\/zeroteam<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ako u\u017e mike spomenul v z\u00e1piskoch, na poslednom SinDiKATe som sa venovals\u00e9riov\u00e9mu prenosu d\u00e1t z a do NewBrainu. Ke\u010f\u017ee sa v internetoch pr\u00edli\u0161 \u010dasto otomto po\u010d\u00edta\u010di nep\u00ed\u0161e, rozp\u00ed\u0161em tu trochu viac \u010do konkr\u00e9tne som vlastnerie\u0161il.<\/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":[5,6],"tags":[],"class_list":["post-930980","post","type-post","status-publish","format-standard","hentry","category-tema-2-hardware-php","category-tema-3-software-php"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aqy8-3UbO","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930980","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=930980"}],"version-history":[{"count":2,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930980\/revisions"}],"predecessor-version":[{"id":930986,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930980\/revisions\/930986"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}