<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>UPD72001 on きょうのかんぱぱ</title><link>https://kanpapa.com/tags/upd72001.html</link><description>Recent content in UPD72001 on きょうのかんぱぱ</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>kanpapa.com</copyright><lastBuildDate>Tue, 14 Apr 2026 15:31:33 +0900</lastBuildDate><atom:link href="https://kanpapa.com/tags/upd72001/index.xml" rel="self" type="application/rss+xml"/><item><title>V53 VMEシステムで遊ぶ #19 SIOボード用モニタの実装</title><link>https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor.html</link><pubDate>Tue, 14 Apr 2026 15:31:33 +0900</pubDate><guid>https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor.html</guid><description>&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-board-1.webp" alt="Featured image of post V53 VMEシステムで遊ぶ #19 SIOボード用モニタの実装" /&gt;&lt;p&gt;&lt;a class="link" href="https://kanpapa.com/2026/04/v53-vme-system-18-sio-1.html" &gt;前回&lt;/a&gt;は、V53搭載のSIOボードでシリアル入出力ができることを確認しました。今回はSIOボードにモニタを実装して、SIOボードをV53のワンボードコンピュータとして使用できるようにします。&lt;/p&gt;
&lt;h2 id="v53モニタの実装"&gt;V53モニタの実装
&lt;/h2&gt;&lt;p&gt;ここで使用するV53モニタは&lt;a class="link" href="https://kanpapa.com/2026/01/v53-vme-system-5.html" &gt;V53 CPUボード用に開発したモニタ&lt;/a&gt;を移植します。CPUボードとほぼ同じメモリマップと思われるので、入出力部分をSIOボードに搭載されているシリアル通信デバイス用に書き換えます。
前回作成した&lt;a class="link" href="https://github.com/kanpapa/VMEbus-V53/blob/main/SIO/hello_world/test2.asm" target="_blank" rel="noopener"
&gt;Hello worldのコード&lt;/a&gt;とV53モニタのコードをマージするイメージです。&lt;/p&gt;
&lt;p&gt;ベースとなるV53モニタのコードは以下にあります。600行程度でプログラムの実行に必要な最小限の機能(DUMP/LOAD/GO)を持つものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/kanpapa/VMEbus-V53/blob/main/monitor/v53mon.asm" target="_blank" rel="noopener"
&gt;v53mon.asm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このモニタのコードはV53内蔵のSCUをコンソールとして使用していますが、SIOボードではSCUの外部ポートは無いため、uPD72001を使用し、V53 CPUの初期化コードはHello wolrdのものをそのまま使います。&lt;/p&gt;
&lt;p&gt;完成したSIO用モニタのコードです。今回はF000:0000に配置しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/kanpapa/VMEbus-V53/blob/main/SIO/monitor/v53sio_mon.asm" target="_blank" rel="noopener"
&gt;v53sio_mon.asm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;できたバイナリをROMライターでROMに書き込みます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-rom-writer.webp"
width="800"
height="603"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-rom-writer_hu_5c37fcb8e9b0370f.webp 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-rom-writer_hu_84ee17177d0b8de4.webp 1024w"
loading="lazy"
alt="バイナリをROMに書き込む"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
&gt;&lt;/p&gt;
&lt;h2 id="モニタの動作確認"&gt;モニタの動作確認
&lt;/h2&gt;&lt;p&gt;モニタROMをSIOボードに取り付けて電源を投入したところ、次のような画面になりました。無事モニタが動きだしました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-startup.png"
width="659"
height="438"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-startup_hu_f8ff9f0fc368076a.png 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-startup_hu_f8fb840e22f15492.png 1024w"
loading="lazy"
alt="モニタの起動画面"
class="gallery-image"
data-flex-grow="150"
data-flex-basis="361px"
&gt;&lt;/p&gt;
&lt;p&gt;モニタの３つのコマンドは動いているように見えます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-moniror-command.png"
width="659"
height="438"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-moniror-command_hu_b12c94bd56a45452.png 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-moniror-command_hu_5e704771d6710154.png 1024w"
loading="lazy"
alt="モニタコマンドの動作確認"
class="gallery-image"
data-flex-grow="150"
data-flex-basis="361px"
&gt;&lt;/p&gt;
&lt;p&gt;HEXファイルのアップロードをテストしてみます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-upload.png"
width="659"
height="438"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-upload_hu_cbdc2745df66317e.png 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-sio-monitor-upload_hu_5722adff274d07dd.png 1024w"
loading="lazy"
alt="Loadコマンドでアップロードテスト"
class="gallery-image"
data-flex-grow="150"
data-flex-basis="361px"
&gt;&lt;/p&gt;
&lt;p&gt;DUMPコマンドでメモリを確認しアップロードできていることを確認しました。&lt;br&gt;
これでSIOボードで自由にプログラムを動かせるようになりました。&lt;/p&gt;
&lt;h2 id="改造されたreset端子"&gt;改造されたRESET端子
&lt;/h2&gt;&lt;p&gt;このSIOボードはCPUボードとは違い外部にリセットスイッチがありません。このためプログラムを実行して暴走した場合はリセットを行うことができません。&lt;br&gt;
このシステムの開発者もその課題を持っていたようで、基板を改造して写真のようなRESET端子を作ったようです。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-reset-pin.webp"
width="800"
height="603"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-reset-pin_hu_2e63c69240d801e7.webp 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-reset-pin_hu_26639b6c11f9d547.webp 1024w"
loading="lazy"
alt="改造されたRESET端子"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
&gt;&lt;/p&gt;
&lt;p&gt;ラベルにはRESと書かれていて、テストプローブをひっかけやすい端子を用意してくれています。この端子をGNDに落とすとRESETがかかり再びモニタのプロンプトに戻りました。&lt;br&gt;
このRESET機能は今後の作業に役立ちそうです。&lt;/p&gt;
&lt;h2 id="sioボードをvmeラックにマウントする"&gt;SIOボードをVMEラックにマウントする
&lt;/h2&gt;&lt;p&gt;これでSIOボード単体でモニタが動作するようになりましたが、やはりVMEシステムの一つとして動作させたいものです。&lt;br&gt;
これまでは机の上にSIOボードを平置きにして、暫定的にシリアルコネクタにブレッドボード用のワイヤーを刺しこんでシリアルターミナルに接続していました。VMEラックに戻すためにはこの部分を改善する必要があります。&lt;br&gt;
そこでD-SUB15ピンを使った専用のシリアルコネクタを製作しました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-serial-cable.webp"
width="800"
height="603"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-serial-cable_hu_a603901b14469991.webp 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-sio-serial-cable_hu_b41012da4e33bf3e.webp 1024w"
loading="lazy"
alt="シリアルコネクタの製作"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
&gt;&lt;/p&gt;
&lt;p&gt;今回はTXD、RXD、GNDだけをD-SUB15ピンコネクタからワイヤーで引き出しておき、ラックマウントしたSIOボードにD-SUB15ピンコネクタで接続しました。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-serial-cable.webp"
width="800"
height="1063"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-serial-cable_hu_472bfd0985d665ce.webp 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-serial-cable_hu_f1ab36115ba5a4c1.webp 1024w"
loading="lazy"
alt="ラックマウントしたSIOボード"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
&gt;&lt;/p&gt;
&lt;p&gt;もう少し長いケーブルが良かったのですが、とりあえず手持ちのケーブルを使いました。&lt;/p&gt;
&lt;h2 id="vmeシステムを起動する"&gt;VMEシステムを起動する
&lt;/h2&gt;&lt;p&gt;この状態で電源をいれたところ、無事CPUボード、SIOボードともにRUN LEDが点灯しました。&lt;br&gt;
V53 CPUが2つ同時に動いている状態です。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-board-1.webp"
width="800"
height="603"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-board-1_hu_7a0450941c9058e2.webp 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-mount-sio-board-1_hu_77f6c75c2cc4517.webp 1024w"
loading="lazy"
alt="VMEラックで起動したSIOボード"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="318px"
&gt;&lt;/p&gt;
&lt;p&gt;各ボードのシリアルポートをターミナルに接続することで、VMEシステムの上で2つのモニタが動いていることが確認できます。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-multi-cpu-monitor.png"
width="522"
height="326"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-multi-cpu-monitor_hu_f064a056fd1c50d1.png 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-multi-cpu-monitor_hu_9f5e6da86cad5b4d.png 1024w"
loading="lazy"
alt="2つのモニタ"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
&gt;&lt;/p&gt;
&lt;p&gt;両方のモニタでメモリダンプを行ったところ、同じ内容が表示されるところがありました。C0000-DFFFFまでが共有メモリとして見えているようです。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-shared-memory.png"
width="558"
height="558"
srcset="https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-shared-memory_hu_63ce9a20d0eada10.png 480w, https://kanpapa.com/2026/04/v53-vme-system-19-sio-monitor/v53-vme-system-shared-memory_hu_6fc41d286a1f1ba7.png 1024w"
loading="lazy"
alt="両方のモニタで共有メモリを発見"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
&gt;&lt;/p&gt;
&lt;p&gt;このVMEシステムではC0000-FFFFFの共有メモリを使って各ボードが連携していたものと推測されます。他のデジタル入力ボードやアナログ入力ボードもこの共有メモリを使っているかもしれません。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ
&lt;/h2&gt;&lt;p&gt;ここまでの成果物をGitHubリポジトリに登録しておきました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/kanpapa/VMEbus-V53" target="_blank" rel="noopener"
&gt;https://github.com/kanpapa/VMEbus-V53&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このSIOボードをどのように活用するかはまだはっきりしませんが、まだ機能が判明していないIOアドレスが存在しますので、IOスキャンを行ってみて、もう少し機能を探ってみようと思います。&lt;/p&gt;</description></item></channel></rss>