現在地

思い出・昔話

私のエディタ遍歴

カテゴリー:

先日のVzエディタの記事で予告したとおり、過去に使っていたエディタについて書いて見ます。

ここで言う「エディタ」は勿論テキストファイル編集用のソフトウェアのことですよ。
  1. BASICのエディタ
    最初はN-BASICのエディタでした。あくまでもBASICプログラム入力用のものですが、他の用途に使用したこともありました。
    一つはTL/1のソースコードです。PC-8001用のTL/1コンパイラはBASICのREM(コメント)としてソースコードを入力します。
    もう一つはMC68000のクロスアセンブラのソースです。これはREMではなく文字列として下記のように入力します。
    10 "entry:
    20 " mov d0,#$3400
    30 " rts
        

    BASICのプログラムとしては文法エラーですが、そのまま(中間コードに変換されたりせず)保存されるのでアセンブラはそれを読み取って処理するという寸法です。

豆電球

カテゴリー:

豆電球は乾電池とならび小学校の教科書にも登場する誰もが知る電気部品ですが、家庭用の白熱電球が次々と生産終了になる中いつまで残るのでしょうか?

豆電球
これはジャンク箱の中から発見した豆電球、ねじ込み式ではなくバヨネット式です。

バヨネットとは本来は「銃剣」を意味しますが、電気の世界では挿して数十度回転させることでロックするコネクタを指します。BNCコネクタなどがそうです。ネジのようにグルグル回す必要が無く迅速に脱着できるのが特徴です。

何かを分解してソケットごと取ったものだと思いますが、ソケットの方は未発見です。

「FK8V0.3A」と刻印があり、定格が8V 0.3Aであるとわかります。

私のプロセッサ遍歴

カテゴリー:

今回は私のかかわってきたプロセッサたちです。

アセンブリ言語でプログラミングしたかハードウェア設計をおこなったものです。
それぞれ代表的なものを挙げてみました。仕事関係は詳しく書けませんのでご了承ください。

  1. Zilog Z80 CPU
    Z80はPC-8001mk2でのプログラミングから始まって、ボードの自作まで行なっていますが、全て個人的なものです。
    PC-8001mk2では
    • 640×200のグラフィックで漢字を25行表示する圧縮表示(2ラインをOR合成する)ルーチン
    • アマチュア無線コンテストのログの重複チェックプログラム
    • 62k CP/Mを実現するためにBIOS作り直し
    • ROMライタをCP/MのPIPコマンドから使えるようにする

    自作ボードでは以下のハードウェアとそのソフトウェア

Z80ボード2号機の話

カテゴリー:

これまでにZ80ボードは1号機, 3号機, 4号機(MAA-1)と紹介してきました。そう、2号機がまだなのです。今回はその2号機について書いてみたいと思います。

まずこの「2号機」という呼び方です。1号機が最初で4号機が最後(今のところ)なのは確かなのですが、どうも2号機と3号機は製作順序が逆のように思えてきています。でも「3号機」という表記をすでにかなり使っていて面倒なのでこのまま行きたいと思います。

何のルーチンでしょう?

ふとZ80ボード 3号機で遊んでいたときに考えたルーチンを思い出しました。


   1:	8000          	    ORG     8000H
   2:	8000          	check:
   3:	8000  7E      	    LD      A,(HL)
   4:	8001  AE      	    XOR     (HL)
   5:	8002  C9      	    RET

ルーチンと呼ぶのもおかしいほどの短いコードです。何をするものでしょうか?

Z80のコードがわからない人のために簡単に解説するとこんな感じです。

  1. 1,2行目は開始番地とエントリポイントのラベルです。
  2. 3行目でHLレジスタの指すメモリを読んでAレジスタに入れます。
  3. 4行目でもHLレジスタの指すメモリを読み、Aレジスタの内容とXOR演算をします。結果はAレジスタに入ります
  4. 5行目でメインルーチンへ帰ります。

簡単ですね。

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系では何が欠けているのか考えて見ましょう。必要なのはコード内のアドレスを正しく求め、参照できることです。

ページ