現在地

ノウハウ・テクニック

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年分のインデックスが毎年特定の号に掲載されていました。
  • それ以外でも過去の総目次が掲載されたものもあります。

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

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)を書くことはほぼ不可能です。

これらのプロセッサが現役だった頃、リロケータブルなコードといえば現在のPIC (Position Independent Code)の事を指していました。好きなアドレスにロードすればそのまま(書き換えたりせずに)実行できるコードです。
MC6809では普通に可能だったので、6809ファンの友人によく馬鹿にされたものです。

PICであるためには何が必要で80系では何が欠けているのか考えて見ましょう。必要なのはコード内のアドレスを正しく求め、参照できることです。

ページ