<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Zk80Mini on きょうのかんぱぱ</title><link>https://kanpapa.com/tags/zk80mini.html</link><description>Recent content in Zk80Mini on きょうのかんぱぱ</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>kanpapa.com</copyright><lastBuildDate>Sun, 01 Jan 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://kanpapa.com/tags/zk80mini/index.xml" rel="self" type="application/rss+xml"/><item><title>ZK-80 mini (PIC32MX１チップTK-80互換機)で2017年の書き初めをしてみた</title><link>https://kanpapa.com/2017/01/zk-80-newyear2017.html</link><pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate><guid>https://kanpapa.com/2017/01/zk-80-newyear2017.html</guid><description>&lt;img src="https://kanpapa.com/2017/01/zk-80-newyear2017/images/newyear2017_zk80_picture.jpg" alt="Featured image of post ZK-80 mini (PIC32MX１チップTK-80互換機)で2017年の書き初めをしてみた" /&gt;&lt;p&gt;あけましておめでとうございます。新春初プログラミングは8080アセンブラでした。&lt;/p&gt;&#10;&lt;div class="video-wrapper"&gt;&#10; &lt;iframe loading="lazy" &#10; src="https://www.youtube.com/embed/0U_0NbnFAVU" &#10; allowfullscreen &#10; title="YouTube Video"&#10; &gt;&#10; &lt;/iframe&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;私は&lt;a class="link" href="http://www.recfor.net/blog/mycom/?itemid=883" title="ZK-80 mini"&#10; target="_blank" rel="noopener"&#10; &gt;ZK-80 mini&lt;/a&gt;で動かしましたが、TK-80でも動くと思います。&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="419px" data-flex-grow="174" height="366" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2017/01/zk-80-newyear2017/images/newyear2017_zk80_picture.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;プログラムリストは以下の通りです。8000番地から実行してください。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; ZK-80 mini(TK-80 compatible)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; Happy New Year 2017 PROGRAM&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; 2017/1/1 by @kanpapa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ORG 8000H&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8000: 01 30 80 START:&#9;LXI&#9;B,SDATA1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8003: 1E 17 &#9;MVI&#9;E,17H&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8005: 21 F8 83 LOOP1:&#9;LXI&#9;H,83F8H&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8008: 16 08 &#9;MVI&#9;D,08H&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800A: C5 &#9;PUSH&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800B: 0A LOOP2:&#9;LDAX&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800C: 77 &#9;MOV&#9;M,A&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800D: 23 &#9;INX&#9;H&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800E: 03 &#9;INX&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;800F: 15 &#9;DCR&#9;D&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8010: C2 0B 80 &#9;JNZ&#9;LOOP2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8013: CD 1F 80 &#9;CALL&#9;WAIT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8016: C1 &#9;POP&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8017: 03 &#9;INX&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8018: 1D &#9;DCR&#9;E&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8019: C2 05 80 &#9;JNZ&#9;LOOP1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;801C: C3 00 80 &#9;JMP&#9;START&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; WAIT ROUTINE&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;801F: C5 WAIT:&#9;PUSH&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8020: D5 &#9;PUSH&#9;D&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8021: 16 FF &#9;MVI&#9;D,0FFH&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8023: 06 00 WAIT2:&#9;MVI&#9;B,0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8025: 05 WAIT3:&#9;DCR&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8026: C2 25 80 &#9;JNZ&#9;WAIT3&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8029: 15 &#9;DCR&#9;D&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;802A: C2 23 80 &#9;JNZ&#9;WAIT2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;802D: D1 &#9;POP&#9;D&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;802E: C1 &#9;POP&#9;B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;802F: C9 &#9;RET&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;;; SEGMENT DATA&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8030: 00 00 76 77 73 73 6E 00 SDATA1:&#9;DB&#9;0,0,76H,77H,73H,73H,6EH,0&#9;;; HAPPY&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8038: 54 79 7E 00 6E 79 77 50 &#9;DB&#9;54H,79H,7EH,0,6EH,79H,77H,50H&#9;;; NEW YEAR&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8040: 00 5B 5C 06 27 00 00 00 &#9;DB&#9;0,5BH,5CH,06H,27H,0,0,0,0&#9;;; 2007&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;8049: 76 77 73 73 6E 00 &#9;DB&#9;76H,77H,73H,73H,6EH,0&#9;&#9;;; HAPPY&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;END&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>ZK-80 mini (PIC32MX１チップTK-80互換機)を作ってみた</title><link>https://kanpapa.com/2016/12/zk80-tk80kbd.html</link><pubDate>Sat, 31 Dec 2016 00:00:00 +0000</pubDate><guid>https://kanpapa.com/2016/12/zk80-tk80kbd.html</guid><description>&lt;img src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_4.jpg" alt="Featured image of post ZK-80 mini (PIC32MX１チップTK-80互換機)を作ってみた" /&gt;&lt;p&gt;NECの8ビットワンボードマイコンTK-80について調べていたところ、ZK-80 miniというPIC32MX 1チップで実装したTK-80互換機の製作記事をみつけました。PIC32であればTK-80ぐらいの仕組みは作れるとは思っていましたが、実際に動作しているのには感心しました。しかも回路図も非常にシンプルでさすがです。&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.rad51.net/blog/mycom/index.php?itemid=883" target="_blank" rel="noopener"&#10; &gt;https://www.rad51.net/blog/mycom/index.php?itemid=883&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="本物のtk-80のキーボードを接続する"&gt;本物のTK-80のキーボードを接続する&#10;&lt;/h2&gt;&lt;p&gt;この記事をみて、TK-80のキーボードをそのまま保管していたことを思い出しました。実は&lt;a class="link" href="https://kanpapa.com/2012/07/factory-hack-summer.html" title="工場ハック"&#10; target="_blank" rel="noopener"&#10; &gt;工場ハック&lt;/a&gt;というイベントで偶然TK-80のキーボードを手にいれていたのです。&lt;br&gt;&#10;これが使えるとよりTK-80に近い感覚で使えるので、ますます楽しくなるのではと思ったのです。&lt;/p&gt;&#10;&lt;p&gt;まずは、ZK-80 miniをブレッドボードで組み立てました。配線は多いように見えますが大したことはありません。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="ブレッドボードで組み立てたZK-80 mini" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="479" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_1.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;つぎに、TK-80の回路図で確認しながら、TK-80のキーボードをZK-80 miniに接続しました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="TK-80のキーボードをZK-80 miniに接続" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="480" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_2.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;動作テストをしてみたところ、RUNキーが動かないのでマイクロスコープで目視したらキーボード基板のパターンが切れていたのでリード線で補修し、正常な動作になりました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="基板のパターン切れをリード線で補修" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="480" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_3.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;動作している画像をYouTubeにアップしておきました。&lt;/p&gt;&#10;&lt;div class="video-wrapper"&gt;&#10; &lt;iframe loading="lazy" &#10; src="https://www.youtube.com/embed/dVXC1-I1jLM" &#10; allowfullscreen &#10; title="YouTube Video"&#10; &gt;&#10; &lt;/iframe&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="ユニバーサル基板での製作"&gt;ユニバーサル基板での製作&#10;&lt;/h2&gt;&lt;p&gt;ひとまず動くようにはなりましたが、ブレッドボードでの配線は仮組みで不安ですので、ユニバーサル基板に載せ替えてTK-80キーボードと組合せて秋月のA基板用透明アクリル板のベースにまとめました。ついでに電源回路を追加してUSB電源で動くようにしました。これならモバイルバッテリーでどこでもTK-80もできます。&lt;/p&gt;&#10;&lt;p&gt;最終的な実装はこのようになりました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="ZK-80 mini（TK-80キーボード版）" class="gallery-image" data-flex-basis="180px" data-flex-grow="75" height="640" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_4.jpg" width="480"&gt;&lt;/p&gt;&#10;&lt;p&gt;ただ、使っていると7セグメントLEDがやや暗く、周囲が明るいところでは手で光を遮らないと文字が読み取れません。&lt;/p&gt;&#10;&lt;p&gt;これを解消するには7セグメントLEDにスモーク板を取り付けると見やすくなるのではと、東急ハンズで何種類かのアクリル板と塩ビ板を買ってきて試してみました。&lt;/p&gt;&#10;&lt;h2 id="スモーク板で見やすくする"&gt;スモーク板で見やすくする&#10;&lt;/h2&gt;&lt;p&gt;まずは、アクリル板のブラウンスモーク。くっきりしますね。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="アクリル板のブラウンスモークでの見え方" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="480" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_5.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;アクリル板のブルースモーク。こちらも同様見やすくなります。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="アクリル板のブルースモークでの見え方" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="480" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_6.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;塩ビ板(0.4mm厚)の透明スモーク。これもアクリル板と遜色ありません。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="塩ビ板(0.4mm厚)の透明スモークでの見え方" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="480" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_7.jpg" width="640"&gt;&lt;/p&gt;&#10;&lt;p&gt;このように7セグメントLEDにスモーク板の効果は絶大です。&lt;br&gt;&#10;今回のおすすめは塩ビ板の透明スモーク。加工がしやすく見やすさもアクリル板とあまり変わりません。厚さも0.4mmと薄いので、7セグメントのLEDのサイズにハサミで加工して完成です。&lt;/p&gt;&#10;&lt;h2 id="コンパクトなtk-80が完成"&gt;コンパクトなTK-80が完成！&#10;&lt;/h2&gt;&lt;p&gt;これで蛍光灯直下でも見やすくなりました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="コンパクトなTK-80が完成" class="gallery-image" data-flex-basis="180px" data-flex-grow="75" height="640" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2016/12/zk80-tk80kbd/images/zk80_tk80kbd_8.jpg" width="480"&gt;&lt;/p&gt;&#10;&lt;p&gt;ZK-80 miniのPICに書き込むファームウェアのソースコードは公開されているので、ソースを改造して、LOAD/SAVE機能を実装したり、音が鳴るようにしたりとか、拡張してみようと思います。&lt;/p&gt;&#10;&lt;p&gt;また、8080をエミュレーションしているところを他のCPUに載せ替えるようなこともできてしまうかもしれませんが、こちらはもう少しPICに慣れないと厳しそうです。&lt;/p&gt;&#10;</description></item></channel></rss>