ノウハウ・テクニック
LED駆動方式の実験
昔LED駆動の実験をした基板です。
いかに少ないポートで多くのLEDを駆動(制御)できるかというものです。
実験なので最小規模の3ポートでLED6つの構成です。6つのうち任意の1つを点灯することができます。複数を点灯させることもできなくはありませんが一部の組み合わせしかできず、電流制御にも問題が生ずるので使いにくいと思います。必要ならダイナミックスキャンを行ないます。
基板からの線は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年分のインデックスが毎年特定の号に掲載されていました。
- それ以外でも過去の総目次が掲載されたものもあります。
もしこれらを持っていて、著者・タイトルの見当が付くのであれば最も簡単な方法の一つと思います。
Z80 IX,IYのテクニック
8080からZ80になってありがたいことはいろいろありますが(ハード屋なら5V単一電源になったことが一番ありがたいかも)、IX,IYレジスタが追加されたこともその1つです。でもIX,IY関係の命令って意外と使いにくいのです。
まずHLレジスタと併用できないこと。これはHLレジスタを使う命令にプレフィックスとして0DDH, 0FDHを付けることでHLの部分がそれぞれIX, IYに替わり、(HL)は(IX+d),(IY+d)に替わるようになっているためです。ですから
ADD IX,BC
はできても
ADD IX,HL
はできないのです。
例外的に
LD H,(IX+4)
のようにHまたはLと(IX+d)または(IY+d)の間のLD命令は使えます。
80系でリロケータブルを実現する
80系(8080,Z80,8085)で真のリロケータブルコード(PIC)を書くことはほぼ不可能です。
MC6809では普通に可能だったので、6809ファンの友人によく馬鹿にされたものです。
PICであるためには何が必要で80系では何が欠けているのか考えて見ましょう。必要なのはコード内のアドレスを正しく求め、参照できることです。
続・80系アセンブラのテクニック
3回目も昨日に引き続き、80系アセンブラの懐かしいテクニックです。
スタックポインタ(SP)を利用してメモリクリアです。
80系アセンブラのテクニック
2日目の今日は80系(8080, Z80, 8085など)のちょっと懐かしいテクニックです。
今こんな書き方をすると、わかりにくいと怒られるか、パイプラインなどに悪影響が出たり技術的にもデメリットになったりしますので避けるべきですが、当時はそれなりにメリットもあってよく使われていました。
一つは命令の途中に飛び込むというものです。例えばこんな感じです。
1: 8000 ORG 8000H
2: 8000 entry1:
3: 8000 3EAF LD A,0AFH
4: 8002 3200FF LD (0FF00H),A
5: 8005 C9 RET
3行目でAレジスタに0AFHを入れ、4行目で0FF00H番地のメモリに書き込んで、リターンするだけのものです。
ここでは8000Hがエントリポイントですが、8001Hもエントリポイントと考えると以下のようになります。オブジェクトは上と一緒です。