{"id":131,"date":"2020-07-30T10:15:00","date_gmt":"2020-07-30T13:15:00","guid":{"rendered":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/?p=131"},"modified":"2020-08-10T10:42:37","modified_gmt":"2020-08-10T13:42:37","slug":"milton-6","status":"publish","type":"post","link":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/2020\/07\/30\/milton-6\/","title":{"rendered":"Milton #6"},"content":{"rendered":"<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-12 col-xs-12 col-sm-12\">\n<p class=\"\">Como nos jogos 8bit e demais programas gr\u00e1ficos&nbsp;<em>oldskool<\/em>, pensei em aproveitar as imagens desenhadas em&nbsp;<strong>milton:p <\/strong>como padr\u00f5es (<em>tiles<\/em>) que podem ser combinados em telas mais complexas. Este tipo de estrat\u00e9gia foi utilizada, dentre outras raz\u00f5es, para economizar mem\u00f3ria de armazenamento e processamento em computadores e consoles antigos. Com 5 ou 6 padr\u00f5es modulares (16&#215;16, 32&#215;32 etc.) \u00e9 poss\u00edvel produzir telas interessantes.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"637\" height=\"523\" src=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/bluefalcon.jpg\" alt=\"Blue Falcon\" class=\"wp-image-134\" srcset=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/bluefalcon.jpg 637w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/bluefalcon-300x246.jpg 300w\" sizes=\"auto, (max-width: 637px) 100vw, 637px\" \/><figcaption>Blue Falcon: editor de telas do jogo Contra (Nintendo NES)<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">O editor&nbsp;<strong>milton:u<\/strong> importa imagens desenhadas em&nbsp;<strong>milton:p<\/strong> como padr\u00f5es e permite construir telas. Desenvolvi o segundo editor sobre o primeiro, com duas diferen\u00e7as:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>As cores foram substitu\u00eddas por &#8220;carimbos&#8221; das imagens importadas (16&#215;16 pixels);<\/li><li>Os arquivos exportados s\u00e3o compostos das informa\u00e7\u00f5es sobre a disposi\u00e7\u00e3o dos padr\u00f5es e de seus dados. Dessa forma, a importa\u00e7\u00e3o de uma tela via cabe\u00e7alho (.h) ou arquivo texto oferecer\u00e1 todas as informa\u00e7\u00f5es necess\u00e1rias para a exibi\u00e7\u00e3o da imagem.&nbsp;<\/li><\/ol>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1318\" height=\"666\" src=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u.png\" alt=\"\" class=\"wp-image-136\" srcset=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u.png 1318w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u-300x152.png 300w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u-1024x517.png 1024w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u-768x388.png 768w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/milton-u-1200x606.png 1200w\" sizes=\"auto, (max-width: 1318px) 100vw, 1318px\" \/><\/a><figcaption>Tela de milton:u com imagens importadas de milton:p<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">O formato de arquivo \u00e9 t\u00e3o simples quanto o que utilizei em <strong>milton:p<\/strong>. A identifica\u00e7\u00e3o <strong>MILTONUI <\/strong>seguida do <strong>t\u00edtulo<\/strong> e quantidade de imagens utilizadas na tela. Em seguida, os \u00edndices indicam o n\u00famero do padr\u00e3o que deve ser exibido em cada bloco da tela. As informa\u00e7\u00f5es seguintes referem-se \u00e0s imagens dos \u00edndices. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>MILTONUI uiteste 2<br>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2<br>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2<br>MILTONPIX 16 16 pincel 0<br>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<br>0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0<br>0,15,15,14,14,14,14,14,14,14,14,14,14,15,15,0<br>0,15,14,14,14,14,14,14,14,14,12,14,14,14,15,0<br>0,15,14,14,14,14,14,14,14,12,4,4,14,14,15,0<br>0,15,14,14,14,14,14,14,12,4,4,4,3,14,15,0<br>0,15,14,14,14,14,14,12,4,4,4,3,14,14,15,0<br>0,15,14,14,14,14,12,4,4,4,3,14,14,14,15,0<br>0,15,14,14,14,12,4,4,4,3,14,14,14,14,15,0<br>0,15,14,14,6,4,4,4,3,14,14,14,14,14,15,0<br>0,15,14,6,7,7,4,3,14,14,14,14,14,14,15,0<br>0,15,14,6,7,7,7,14,14,14,14,14,14,14,15,0<br>0,15,14,3,3,3,3,3,3,3,3,3,3,3,15,0<br>0,15,15,14,14,14,14,14,14,14,14,14,14,15,15,0<br>0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0<br>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<br>MILTONPIX 16 16 borracha 0<br>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<br>0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0<br>0,15,15,14,14,14,14,14,14,14,14,14,14,15,15,0<br>0,15,14,14,14,14,14,14,14,4,14,14,14,14,15,0<br>0,15,14,14,14,14,14,14,4,4,4,14,14,14,15,0<br>0,15,14,14,14,14,14,4,4,4,4,4,14,14,15,0<br>0,15,14,14,14,14,4,4,4,4,4,4,3,14,15,0<br>0,15,14,14,14,1,4,4,4,4,4,3,14,14,15,0<br>0,15,14,14,6,6,1,4,4,4,3,14,14,14,15,0<br>0,15,14,6,6,6,6,1,4,3,14,14,14,14,15,0<br>0,15,14,1,6,6,6,6,1,14,14,14,14,14,15,0<br>0,15,14,14,1,6,6,1,14,14,14,14,14,14,15,0<br>0,15,14,14,14,1,1,14,14,14,14,14,14,14,15,0<br>0,15,15,14,14,14,14,14,14,14,14,14,14,15,15,0<br>0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0<br>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Outra vantagem do editor de telas \u00e9 a possibilidade de controlar a quantidade de mem\u00f3ria dispon\u00edvel para construir aplica\u00e7\u00f5es. Planejei empregar <a rel=\"noreferrer noopener\" href=\"https:\/\/www.microchip.com\/wwwproducts\/en\/AT24C64D\" target=\"_blank\">mem\u00f3rias externas EEPROM<\/a> para armazenar elementos b\u00e1sicos da interface gr\u00e1fica, deixando os arquivos criados por usu\u00e1rios no cart\u00e3o microSD. Este caminho permitiria atualiza\u00e7\u00f5es do &#8220;<em>firmware<\/em>&#8221; de Milton sem comprometer os documentos dos usu\u00e1rios.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2444\" height=\"1241\" src=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501.jpg\" alt=\"\" class=\"wp-image-137\" srcset=\"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501.jpg 2444w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-300x152.jpg 300w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-1024x520.jpg 1024w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-768x390.jpg 768w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-1536x780.jpg 1536w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-2048x1040.jpg 2048w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-1200x609.jpg 1200w, https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-content\/uploads\/2020\/08\/webserver-scaled-e1597065783501-1980x1005.jpg 1980w\" sizes=\"auto, (max-width: 2444px) 100vw, 2444px\" \/><figcaption>Servido web do dispositivo (NodeMCU).<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">As duas ferramentas rodam satisfatoriamente no servidor web do dispositivo, ocupando pouco mais de 600kb.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como nos jogos 8bit e demais programas gr\u00e1ficos&nbsp;oldskool, pensei em aproveitar as imagens desenhadas em&nbsp;milton:p como padr\u00f5es (tiles) que podem ser combinados em telas mais complexas. Este tipo de estrat\u00e9gia foi utilizada, dentre outras raz\u00f5es, para economizar mem\u00f3ria de armazenamento e processamento em computadores e consoles antigos. Com 5 ou 6 padr\u00f5es modulares (16&#215;16, 32&#215;32 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[30,22,28,31,18,20],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-atualizacoes","tag-editores","tag-espvgax2","tag-miltonp","tag-miltonu","tag-nodemcu","tag-vga"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":7,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":143,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/posts\/131\/revisions\/143"}],"wp:attachment":[{"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hugocristo.com.br\/projetos\/milton\/blog\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}