現在地

ノウハウ・テクニック

CPU判別法(80編)

68編に引き続き80編をお送りします。

8080系

8080系とZ80系の区別は『I/O』誌の記事を参考にしました。i8080/μPD8080AF, μPD8080A, i8085の判別法は一般的なものがあれば利用するつもりでしたが、見当たらなかったのでデータシートを元に独自に書いたものです。

CPU判別法(68編)

現在のCPUではその種類や対応する命令の範囲などを取得する命令(例えばx86系のCPUID命令)がありますが、以前は微妙な挙動の違いなどから判別していました。

自作のUniversal Monitorのソースコードを例に解説してみます。

MC6800系

まずは昨日目処が立ったと書いたMC6800系からです。

この系統はあまり情報が無く(旬な時期にあまりかかわらなかったのも理由です)手持ちのデバイスで試しながら書いたものです。

該当部分のソースは次のようになっています。

AVRA から AS へ

カテゴリー:

これまでAVRのソフトウェア開発はAVRAを使ってきました。文法が純正アセンブラとほぼ一緒で、NetBSD上で使えるのがその理由でした。

最近 8080, Z8, MC6800, MC6809 などで共通に使えるという理由で The Macroassembler AS を使うことが増えてきました。Z80 も容易に移行できたので、AVR もこの際統一しようとやってみたので引っかかった点などを書いてみようと思います。

題材は、ROMエミュレータのメモリ編集ルーチンの製作中のボードへの移植です。製作中のボードについてはある程度形になったところで取り上げようと思います。

PC-8001 テープからのオートスタート

カテゴリー:

テープ時代のメモの記事でオートスタートに触れたのでその仕組みを書いてみます。

PC-8001でバイナリ(いわゆるマシン語)のプログラムをテープから読んで実行するには普通次のようにします。

mon
*L
*GD55B

ここで「*」はプロンプトなので入力はしません。

mon」コマンドでマシン語モニタに入り、「L」でテープからロードし、「G」で実行します。「D55B」は実行開始アドレスです。

mon」「L」は不変なので憶えられますが、実行開始アドレスはプログラム毎に異なるので面倒です。そこで市販ソフトウェアを中心にこのオートスタートのテクニックが使われました。

The Macroassembler AS

カテゴリー:

以前うまくインストールできずに旧バージョンを入れてしのいでいた「The Macroassembler AS」ですが、公式ページを見に行ったところ数日前に新バージョンが出ていたことと、SBC6800, SBC6809のコードを書き始めるところだったことから最新版にアップデートしました。

前回はさらっと書いたので今回は流れを書いてみます。

私はNetBSD環境で使いたいのでソースコードからビルドすることにします。

まだpkgsrcには入っていないようです。私は野良ビルドしてしまうことが多いので気にしません。

Win32などバイナリの用意されているプラットフォームもあります。

LED駆動方式の実験

カテゴリー:

昔LED駆動の実験をした基板です。

LED駆動方式の実験回路
いかに少ないポートで多くのLEDを駆動(制御)できるかというものです。

実験なので最小規模の3ポートでLED6つの構成です。6つのうち任意の1つを点灯することができます。複数を点灯させることもできなくはありませんが一部の組み合わせしかできず、電流制御にも問題が生ずるので使いにくいと思います。必要ならダイナミックスキャンを行ないます。

2ポートだとLEDは2つまででポート節約の意味はありません。でもLEDへの線は2本ですむ(コモンが不要)ので、PCの電源LEDなどに使用例があります。

基板からの線は3本です。これへのLEDの繋ぎ方は6通りあるので、最大6つまでは独立して制御できる可能性があります。

NMOS Z80 CPU のクロック

カテゴリー:

先日クロック信号について書いた時、資料に面白い記述を見つけたので今回はそれについて書いてみます。

それは1978年3月版のZ80 CPUの仕様のAC特性にあった以下の記述です。『Z80ファミリ・ハンドブック』もこれを元にしていると思われます。

HDMI入力の無いテレビにBDレコーダを接続する

先日BDレコーダが不調と書きましたが、結局新しいレコーダを買ってしまいました。SONYのBDZ-ZW2500Mというもの、これまでも2チューナで特に困らなかったので2チューナ、容量は価格差が小さかったので2TBに増やしています。

最近は自動設定が充実しているので設置は簡単なはずなのですが、うちの特殊な事情により一筋縄ではいきませんでした。

HDMI2AVでも書いたようにテレビが古くてHDMI入力が無いのです。これまでもLKV384(今は新しくなってLKV384Proになっているようですが、私の使っているのは「Pro」の付かないほうです)という変換器でコンポーネントに変換して入力していたので今回も行けるだろうと軽く考えていたのですが、意外に手こずってしまいました。

まずは自動で繋がることを期待して接続してみたのですが正常に表示されません。

以前のレコーダは720pで映っていたので手動で出力解像度を設定すれば良さそうなのですが、正常に表示されないとメニュー操作もできません。

古い雑誌記事の入手の仕方

カテゴリー:

前回、古い雑誌記事の探し方を書きましたが、今回は見つけた記事の入手方法について書いてみたいと思います。

バックナンバー

比較的新しい号でしたら出版社にはまだ在庫が残っているかもしれません。

出版社によってはメール等で申し込めば販売してくれるところもありますので問い合わせてみると良いでしょう。

また書店から取り寄せてもらう方法もあります。

一般の書店では次の号が出ると返本してしまうことが多いですが、秋葉原の書泉ブックタワー等バックナンバーを置いているところも少ないながらあります。

合本

数か月分の記事をまとめた合本が発売されていたものもありました。

  • 『エンサイクロペディア・アスキー』:『ASCII』誌をまとめたもの
  • 『TheBASIC B-Number』:『TheBASIC』誌をまとめたもの

合本も入手困難になってしまっていますが、後述の古本屋などをあたる時の選択肢しては有効と思います。

広告やニュース記事などが省略されていたり、順序が変更されていたりするので注意は必要です。

古い雑誌記事の探し方

カテゴリー:

以前、私の雑誌遍歴(前編)(後編)を書いたためか、「○○の記事の号は何年何月号ですか?」といった問い合わせが何件かありました。

そこで昔の記事の探し方について私がよく使う方法を書いてみたいと思います。

総目次を使う

技術系の雑誌であれば何らかの形で総目次が用意されていることが多いと思いますので、もしそれがあるのなら当たってみるのが良いでしょう。

  • 『トランジスタ技術』,『インターフェース』は毎年発行されているCDROM版(1年分の記事がPDFで収録されている)に創刊号からのインデックスがテキスト形式で収録されています。ページの範囲まで記載されていますのでコピーサービスを使うにも便利です。
  • 『ASCII』,『Oh!PC』などは1年分のインデックスが毎年特定の号に掲載されていました。
  • それ以外でも過去の総目次が掲載されたものもあります。

もしこれらを持っていて、著者・タイトルの見当が付くのであれば最も簡単な方法の一つと思います。

ページ