AVRビデオ端末の製作の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!CP/M用の端末を作る
http://star.gmobb.jp/koji/data/avrvd01.jpg

CP/Mマイコン(AVRとZ80でCP/M)を作っても、PCのターミナルソフトに繋いでいては「CP/Mエミュレータでいいじゃん」って言われそうで味気ないですよね。ちゃんと端末も作ってスタンドアロンマシンにしたいところです。今時ならLCDディスプレイにするところでしょう。しかしCP/Mは80字×25行を必要とし、見易さを考えるとなるべく大きいパネルで横480ドットは必要で、そうなると結構値が張ってしまいます。(ジャンクの大き目のモノクロ液晶パネルを持っていたのでこれを使った端末は既に製作しているのですが、完成度や視認性が今一つで公開に至っていません)
CP/Mマイコン(AVRとZ80でCP/M)を作っても、PCのターミナルソフトに繋いでいては「CP/Mエミュレータでいいじゃん」って言われそうで味気ないですよね。ちゃんと端末も作ってスタンドアロンマシンにしたいところです。今時ならLCDディスプレイにするところでしょう。しかしCP/Mは80字×25行を必要とし、見易さを考えるとなるべく大きいパネルで横480ドットは必要で、そうなると結構値が張ってしまいます。(ジャンクの大きめのモノクロ液晶パネルを持っていたのでこれを使った端末は既に製作しているのですが、完成度や視認性が今一つで公開に至っていません)

安価に作るならビデオ出力にするのが良いでしょう。しかしAVRマイコンを使うにしても横80字は結構大変。ネットを検索してここを見つけました。[Grant SearleさんのHP|http://searle.hostei.com/grant/cpm/index.html#MonitorKBInterface]
(これ以外にもオリジナルなCP/Mマシンや8ビットマイコンの製作例の数々が紹介されています。コレクションが凄い。懐かしい[ST-100|http://searle.hostei.com/grant/ElectronicKits/index.html#DenshiBlock100] 私持っていました)

AVRを2個使ったPS2キーボード入力、NTSC出力のANSI互換端末です。オリジナルはビデオ出力にMega32を使用していますが、手持ちのMega328に置き換えて製作してみました。オリジナルからの主な変更点は、
*シリアル通信速度を38400bpsに変更(12MHz Xtal)
*NTSC専用
*日本語キーボード対応(日本語を表示できるわけではありません)
*SOROCのカーソル制御に対応
*RTS信号の仕様変更(READY時High-Z、BUSY時0V)
CP/Mのゲームソフトなどは[SOROC IQ-120端末|http://www.thepcmuseum.net/details.php?RECORD_KEY(museum)=id&id(museum)=72]に対応しているものが多く、これに対応させるとTeraTerm(ANSI)では正常に表示できないものも正しく表示されるようになります。
!組み立て
http://star.gmobb.jp/koji/data/avrvd04s.jpg [拡大|http://star.gmobb.jp/koji/data/avrvd04.jpg]

http://star.gmobb.jp/koji/data/avrvd05.jpg

[回路図|http://star.gmobb.jp/koji/data/avrvd_cir.png]
{{ref avrvideo20150519.zip,AVRビデオ端末の製作,ソフトウェアのダウンロード(最新)}}
{{ref avrvideo20140330.zip,AVRビデオ端末の製作,旧版(2014/3/30)}}
{{ref avrvideo20130310.zip,AVRビデオ端末の製作,初版(ソースは差分のみ)}}
!表示
http://star.gmobb.jp/koji/data/avrvd15s.jpg [拡大|http://star.gmobb.jp/koji/data/avrvd15.jpg]
アナログTV(SONYの16インチワイドトリニトロン)に繋いでみましたが、こんなもんですかね。カラーTVはマスクが荒くて全然ダメですね。(背景が青いのはTVが壊れているからで本来は黒です)

モノクロTV(格安の中華製非常用ライト。電灯、蛍光灯、AM/FMラジオ、TV、サイレン、コンパス、温度計が一体化!)[こんなヤツ|http://star.gmobb.jp/koji/data/avrvd06.jpg]があったので、アナログTV放送終了につき思い切って分解。映像入力部に直接信号を入れてみました。
""ご注意:ブラウン管は非常に危険です。十分な知識の無いままTVの分解は絶対に行わないでください
http://star.gmobb.jp/koji/data/avrvd03.jpg http://star.gmobb.jp/koji/data/avrvd02.jpg

5インチ程の小さな管ですが、十分な視認性が得られました。マスクが無いモノクロCRTはTV用でも高精細なんですね。
http://star.gmobb.jp/koji/data/avrvd07s.jpg [1|http://star.gmobb.jp/koji/data/avrvd07.jpg] http://star.gmobb.jp/koji/data/avrvd08s.jpg [2|http://star.gmobb.jp/koji/data/avrvd08.jpg] http://star.gmobb.jp/koji/data/avrvd09s.jpg [3|http://star.gmobb.jp/koji/data/avrvd09.jpg] http://star.gmobb.jp/koji/data/avrvd10s.jpg [4|http://star.gmobb.jp/koji/data/avrvd10.jpg] http://star.gmobb.jp/koji/data/avrvd11s.jpg [5|http://star.gmobb.jp/koji/data/avrvd11.jpg] http://star.gmobb.jp/koji/data/avrvd12s.jpg [6|http://star.gmobb.jp/koji/data/avrvd12.jpg] http://star.gmobb.jp/koji/data/avrvd13s.jpg [7|http://star.gmobb.jp/koji/data/avrvd13.jpg] http://star.gmobb.jp/koji/data/avrvd14s.jpg [8|http://star.gmobb.jp/koji/data/avrvd14.jpg]
レトロな雰囲気がいい感じ。

!トラブルメモ
今回はビデオ出力でかなり手間取りました。[オリジナルの回路|http://searle.hostei.com/grant/cpm/Schematic_IF.gif]通りでは巧く表示できないのです。ビデオ機器の入力は75Ωで終端されていると考えればよいのですが、そうすると出力の抵抗値が変ですね。ここは計算がちょっと厄介なんです。ダイオードを入れてしまえば簡単になるんですが、入れてみたら波形が汚くなってしまったので結局却下。ネットを検索してみると有りました。[5Vの場合470Ωと1kΩ|http://picavr.uunyan.com/making_p_ntsc.html]。しかし74HCシリーズは出力を4mAまでしか流せません。オーバーロードではないかと。

実際74HC166は壊れてしまいました。壊れているにもかかわらず中途半端にノイジーに動作するのでスイッチング電源のノイズのせいかと、シリーズレギュレータを組んでみたりとか無駄をやりまくりました。まあ、いつものことですが。HC166を交換して解決。AVRは頑丈ですが、HC166は弱いようなので保護と出力強化のためFETを間に入れました。

Mega328だとピン数がぎりぎりで余裕が無く、AVR同士のMOSIとMISOが繋がっちゃってます。ISP書き込みする場合は、328のみソケットに挿して書き込みを先に行ってから、88を挿して書き込みをしないと328を認識できなくなってしまいます。作例ではジャンパーピンにして回避しています。

!【変更履歴】2014.3.30リリース版の変更点
小型のPS2キーボードが壊れてしまったので、買い換えようと探したのですが最近はもうPS2/USB兼用のものぐらいしか販売されていませんね。こちら[SANWA SUPPLY SKB-KG3W|http://www.amazon.co.jp/SANWA-SUPPLY-SKB-KG3W-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88/dp/B002ZNKD3E]を購入したのですが使えませんでした。調べてみるとどうもキーボード側からセルフテスト結果(0xAA)を出し続けて先に進まないようなので、応答としてLED情報を返したら使えるようになりました。そのほかWordStarが使い易いように少しキーアサインを変更しています。

ところで、GrantさんのHPは更新されていてMega32版は旧版扱いになり、新たなMega328版が公開されています。私が参考にした元のソースの在り処が分かり難くなってしまったので、今回ソースは全部入れてあります。
!【変更履歴】2015.5.19リリース版の変更点
Mega88の余っているポート(PB1)を使用して、英語/日本語どちらのキーボードも使えるようにしました。
!!関連リンク
http://searle.hostei.com/grant/
http://terminals.classiccmp.org/wiki/index.php/Soroc_IQ-120
http://homepage2.nifty.com/akikawa/cpm2.html
CP/Mゲームアーカイブ
http://www.retroarchive.org/cpm/cdrom/ENTERPRS/CPM/GAME/
http://n8vem-sbc.pbworks.com/browse/#view=ViewFolder&param=Games
http://maben.homeip.net/static/S100/compupro/code/unsorted/GAMES/
http://www.iee.et.tu-dresden.de/~kc-club/09/RUBRIK17.HTM
http://www.roguelikedevelopment.org/archive/index.php
モニター
http://www.tu-han.jp/camera5.html
PS/2キーボードインターフェース
http://www.technoveins.co.jp/technical/keyboard/
当サイト内関連
AVRとZ80でCP/M
AVRとZ80でCP/Mの改良
----
*実にクールです。がんばればADM3A互換もいけるかなあ。 - e.naka (2013年03月12日 23時17分36秒)
*74HC166にのみパスコンをつけたらカラーTVでもとても綺麗に表示されるようになりました。 - T.YANA (2015年05月11日 22時19分32秒)
*T.YANAさんコメントありがとうございます。回路図では省略してしまっていますが基本、パスコンは必須です。大きいサイズのTVや最近の液晶TVなら綺麗に表示されると思います。私のカラーTVは小さくて古いので物理的に無理なようです。 - 管理人 (2015年05月11日 22時57分36秒)
{{comment}}