現在地

思い出・昔話

BASICの拡張法

カテゴリー:

以前68000 Tiny BASICの予約語で書いたように独自の命令を追加していました。

でもソースコードもあり自由に変更できたTiny BASICなどだけでなく、マスクROMが使用されソースコードも無い市販パソコンのBASICの命令拡張も良く行われていました。ちょっとした数十バイト程度のものから本格的なものまで当時の雑誌には頻繁に掲載されていたものです。

以下はある程度知っているN-BASIC, N80-BASICを例に書いてみます。

ところでマスクROMのBASICをどうやって拡張するのでしょう?

BASICによっては要所要所でRAM上の特定番地をCALLするようになっていました。そこは起動時にはRET命令が置かれているので、これを用意したルーチンへの分岐命令に書き換えることで動作に介入することができるのです。これを「フック」と読んでいました。

介入したい個所にピンポイントでフックが無い場合は少し手前のフックから目的個所までのROM内の処理を自分のルーチン内で行ない、さらに戻り番地を調整するなどを行ないます。

ピタゴラス数

カテゴリー:

ちょっと思い出してきたので今回は原始ピタゴラス数の探索について書こうと思います。

高校生の頃に原始ピタゴラス数の探索をしていたことがありました。ピタゴラス数というのは a2+b2=c2 を満たす自然数の組で、各辺の長さの比がこれになっている三角形は直角三角形になります。(3, 4, 5)などのいくつかは学校でも習いますね。

ある時もっとあるだろうから探してみようと思い立ちました。

40年近く昔のことですからネットで探すなどということはできません。

当然パソコンを使って探すわけですが、当時手元にあって使えたのはPC-8001mk2かFP-1100くらい(FM-7はまだなかったと思う)でした。ある理由(後述)でFP-1100の方が良いのですが、遅かったことやFDDが無かったことなどでPC-8001mk2を使いました。言語も当時使えたのはBASICのみ(平方根を使いたいのでTL/1, GAMEは不向き)でした。

データブックには応用回路がいっぱい

カテゴリー:

LM3909のところで触れた『初歩のラジオ』の連載「データブックには応用回路がいっぱい」の一覧を作ってみました。

『初歩のラジオ』は持っていた全号を「夢の図書館」に寄贈したため手元には無いのですが、国立国会図書館のデジタルコレクションにありました。国立国会図書館内公開なので行かないと内容は確認できませんが、目次情報は読めるのでそれをもとにまとめています。

初めて買った雑誌

カテゴリー:

またちょっと探し物をしていたところこんなモノが出てきました。


雑誌『模型とラジオ』の1981年11月号、実はこれ初めて自分で買った雑誌だったりします。

以前私の雑誌遍歴にも書いたように『子供の科学』『模型とラジオ』は学校の図書室や地域の図書館で読んでいましたが、遂に自分で買ったのがこの号になります。

これ以前も『太陽』のロボット特集やパズル特集号なども家にありましたがそれは父が買ってくれたものでした。

私のOS遍歴(実行環境編)

カテゴリー:

このシリーズは久しぶりですね。

以前私のOS遍歴では使った操作環境について書きましたが、今回はどんな環境向けのプログラミングをしてきたかについて書いてみたいと思います。今回は組み込みOSも含めています。

  1. N/N80 BASIC 【家】
    自宅のPC-8001mk2です。BASICの他、GAME, TL/1, アセンブリ言語などで書いたものも含みます。
  2. N88 BASIC(86) 【学】
    中学のときマイコン部部室(技術科準備室)にあったPC-9801F2向けです。
    当時書いていた程度のものなら十分な速度で実行できたのでこれはBASICのみでした。
  3. CP/M-80 【家】
    これも自宅のPC-8001mk2、アセンブリ言語がメインで、末期にCを少しといった感じでした。

懐かしいスイッチ

カテゴリー:

最近発掘された部品はまだまだあります。ということで今回はプッシュスイッチです。


一つ目はこのプッシュスイッチです。

これ子供の頃に工作によく使ったスイッチですね。以前LX-3400のところでキットで買ったと書きましたが、確かそのキットにはこれが6つ使われていたように思います。

一時期(20年位前かな)秋月でも扱われていたこともありました。当時、昔のものとどこか異なっていたと感じた記憶があるのですが、それがどこだったのかよく憶えていません。

今回出てきたこれはいつ買ったものなのだろう?

さて、これメーカとか型番はどうなっているのだろうかと探したところ......

ホストの命名法

今回はホスト名についてです。

ホスト名とは、ネットワークに接続されたホスト(ワークステーション・パソコンなど)に付けられた名前で、DNSなどによって実際のアドレスに変換されます。定義として正確かはわかりませんが今回の話にはこれで十分です。要はリモートでログインしたりアクセスするのにアドレスより憶えやすい名前が使えるということですね。

パソコンなんかだとネットワークからアクセスすることは少ないのであまり必要は無く購入したときやセットアップ時に勝手につけられたのをそのまま使ってる人も多いと思います。

それだとアドレス憶えるのと大差ないので、サーバなど外部からアクセスものではもう少し憶えやすい名前が欲しいところです。

で、wwwとかmailとか機能名を付けることが多いわけですが、ホストと機能が一対一に対応しなかったりで本名は機能と関係なく付けて機能名は別名付けることも多いですね。

ちなみに本名でも別名でもIPアドレスに変換可能ですが、逆にIPアドレスから名前に変換しようとすると通常本名だけが得られます。

機能名は似たり寄ったりのものが多いですが、本名は命名者の趣味が出たりして面白いものがあります。

古のマイコン開発法(補足)

カテゴリー:

その1その3までの「古のマイコン開発法」に少し補足しておきます。

これ「無いものは(道具も含めて)作る」のですけど、道具の無い状態では作るのは大変なので「とりあえず必要最小限」を作ってそれを道具にして自分自身を改善していきます。最終的には不要なものでも途中で必要なものは作るしかありません。

持っているものがあれば楽になります。

古のマイコン開発法(その3)

カテゴリー:

その2で市販トレーニングキットと同じように使えるようになりました。

しかしまだハンドアセンブルしたバイナリを入力して実行することしかできません。何らかの高級言語を使いたいところです。そうなると16進キーパッドや7セグメントLED表示器では不足です。

というわけで......

キーボード
16進キーパッドと異なりスイッチを並べて自作するのは難しいですが、当時でもキーボードは入手できたようです。

もちろんUSBのような共通のインターフェイスがあったわけではありません。単にキースイッチが並んでいるだけで自分でマトリクスを配線しなくてはならないもの、マトリクスの配線までされているもの、エンコーダまでついているものなどがあったようです。マトリクスタイプならキーパッドの数が増えただけのようなものなのでソフトウェアの変更は容易でしょう。

ディスプレイ
表示装置そのものの製作は困難なので既製品を利用します。最も安価なのはテレビで代用する方法で、ビデオ入力が無い場合はRFモジュレータを用意してアンテナ端子から入力します。

古のマイコン開発法(その2)

カテゴリー:

その1でプログラムを実行できるようになりましたが、スイッチを操作して書き込むのは非常に手間がかかります。また電源を切れば消えてしまい、再度入力しなくてはなりません。

バッテリバックアップ
SRAMを電池でバックアップ(あるいは電源を入れっぱなしに)すれば毎回入力しなくて済むようになります。

プログラムを暴走させて壊してしまうリスクはありますが、RAMを2つ搭載して片方の書き込み信号をスイッチで切れるようにして保護する方法もあります。

キーパッド
16進キーパッドと7セグメントLED表示器を搭載すれば入力が楽になります。

これを制御するためのプログラムはスイッチ操作で入力する必要があります。必要最小限のプログラムをスイッチ操作で入力し、キーパッドが使えるようになったらそれを利用して機能を拡張していくことで効率よく入力できます。

カセットインターフェイス
カセットインターフェイスを製作すれば入力したプログラムを保存しておくことができます。

ページ