現在地

ソフトウェア

16進の表記方法について

カテゴリー:

今回からしばらくはちょっと趣向を変え、ソフトウェアについて書いてみたいと思います。1回目は「ソースコード等に16進を記述する際の記述方法」です。

  • (F300)16
    コンピュータを離れるとこれが一般的でしょうか。
    ただコンピュータ以外で16進表記を使うことはあまり無いので、昔数学か何かでやったはずですが完全に忘れていました。さすがに当時の教科書は残していないと思うので、当時の表記方法が同じだったのかはわかりません。
  • 0xF300
    C言語をはじめ最近の言語では一般的な記述方法ですね。
    「x」をつけずに「0」で始まると8進だとみなされます。私は8進なんて使わないという人でもこれは知っておく必要があります。桁をそろえるなどの理由で「012」などと書くと(12)10ではなく(12)8=(10)10と解釈されるからです。
    定数「0」は実は8進定数として処理されているのだとか。結果は変わらないですが。

    今ではアセンブラもこの記述方法が多いです。

私のプログラミング言語遍歴

カテゴリー:

いつもモノのことばかり書いているので、時には「私」についても書いてみようかと思っています。
題して「私の~遍歴」、第1回はプログラミング言語についてです。

これまでに個人的にも業務としてもいろいろなプログラミング言語を使ってきました。既存のプログラムをちょっと修正したようなものまで含めるとかなりの数になってしまうので、ある程度使い込んだものを並べて見ました。

  1. BASIC
  2. 私が初めてパソコンに接したのは1982年のことですから、BASICから入ったのはごく自然な流れでした。一部の例外を除いてパソコンを買えばBASICは入っている時代でしたから、まずはそれを使ってみることになります。

EPSON ソフトウェア・インストレーション・プログラム

テーマ:

EPSON製のPC-9801互換機を購入すると付いてきたものです。


NEC製のパソコンPC-9801シリーズは一時期日本で絶大なシェアを誇っていました。それに便乗しようとEPSONは互換機を発売したわけですが、当然NECとしては面白くありません。そこで自社のソフトウェアに互換機かどうか判別して動作させなくする細工を施しました。
それに対しEPSONは互換機チェックを無効化するパッチを作成し、パッチをあてるツールとしてこのソフトウェア・インストレーション・プログラム(略してSIP)をパソコン本体に付属させたのです。

MC68kボード (ソフトウェア編)

テーマ:

今回はMC68kボード (概要編)で紹介したボードに搭載したソフトウェアの話です。
CP/M-68K上で動作させたソフトウェアまで含めるとキリが無いので、ボード上のROMに書き込んだものに限定します。そうするとモニタ、Tiny BASIC、CP/M-68Kの3つになります。

【モニタ】は最初に動かしたもの(ハードウェアのテスト用の無限ループ等を除いて)になります。ベースは「トランジスタ技術」誌の1985年4月号にアセンブラソースが掲載されたものです。その後少しずつ機能を追加して行き、MPUをMC68010に変更したときは対応するための修正をしています。
ただMC68kはバイナリを見ながらデバッグするような代物ではないので、もっぱらハードウェアの確認用に使用することが多かったです。後述のTiny BASICのデバッグ時も机上で行ってROMを書き換えてしまうことが多かったです。

J-OS III

テーマ:

Palm OSの日本語環境ソフトJ-OSです。


これがパッケージです。
Sony CLIEなど最初から日本語化されているものはともかく、私のように英語版のPalm Pilot使用者でもこれを入れれば日本語を使用できるというもので、フォントやかな漢字変換とその辞書などの集まりです。

MAA-1ボード ソフトウェア編

テーマ:

MAA-1ボードのソフトウェアは次の3つからなっています。

一つ目はハードウェアの初期化・制御を行い、またシリアルからメモリの参照・変更を行うモニタプログラムです。この部分は基本的には「南青山アドベンチャー」からは独立したプログラムで、Z-80のマイコンシステム一般に容易に移植可能です。コマンドとしてはD(メモリダンプ)・S(メモリへの書き込み)・G(指定アドレスへのジャンプ=実行)と@(ゲームの開始、これだけ南青山専用)です。

CP/M-68K

テーマ:

カテゴリー:

CP/M-68Kのマニュアルが出てきました。


CP/Mというと8080用のものや8086用のCP/M-86が有名ですが、このMC68000用のCP/M-68KやZ-8000用のCP/M-8000というのもありました。
変わったサイズのバインダーですが、おそらくは8インチフロッピーが入るサイズだったのでしょう。私は日本でパソコンの68000拡張ボード用に移植されたものを購入したのでメディアは5インチの2HDでしたね。それをさらに自作のボードに移植して使っていました。

AVRタイマ (ソフトウェア編)

テーマ:

まずは前回の宿題の回答を載せておきましょう。


LEDのスキャンの途中で以下のように読みます。

  1. PB0~7を全て"L"にします。
  2. PD0を"L"、PD1~3を"H"にします。
  3. PD4を読んで"L"ならSW1が押されていると判定。
  4. PD1を"L"、PD0,2,3を"H"にします。
  5. PD4を読んで"L"ならSW2が押されていると判定。
  6. 同様にSW3,4も判定します。

もし4つで不足ならPD5も使えば8つまで増やせます。

ページ