VTLが動いた

MITSのAltair680(とAltair680B)は256バイトのEPROM、1702のICソケットが4個あり、そのうちの1個にモニタが挿さっている。モニタを書いたのはポール・アレンとマーク・チェンバレン。マーク・チェンバレンの人となりは資料がなくて不明。ポール・アレンはビル・ゲイツと協力してBASICを完成させ、商談のためにMITSを訪問し、そのままMITSのソフトウェア担当ディレクタに収まっていた。その後、MITSが経営不振に陥ったことでビル・ゲイツとともにMicrosoftを創業したのだが、ああ、その話ではないのだった。

Altair680の3個のICソケットは総容量が768バイトしかなく、使い道がなくてしばらく空いたままになっていたが、1976年、コンピュータストアのゲイリー・シャノンとフランク・マッコイがぴったり768バイトのインタプリタ、VTLを完成させ、3個の1702に書き込んで発売した。MITSがこれを絶賛した結果、純正に準ずるオプションとなった。正式名称はVTL-2だが、VTL-1が表立って出回った形跡がないため、一般にただVTLと呼ばれる。

ファイルに書き出されたソースは出回っていないので、VTLのマニュアルに掲載されたソースを書き起こしてSBC6800で動かすことにした。自慢じゃないが、誰にでもできる簡単な作業ではない。正体不明のアセンブリ言語で書かれているし、行番号499にトリックがあって、どう書き起こしたらいいか判断が難しい。まあ、そこは何とかしたけどね。ちなみに、トリックのやり口は前回の投稿に頂いたコメントの返信で言及している。

VTL_trick_L

SBC6800でVTLを動かすにはモニタを移植するのが手っ取り早い。その場合、モニタのJコマンドで何ら手を加えていないVTLが起動する。しかし、当時の日本にAltair680がなかった関係でマニアはVTLを単独で動かすことに情熱を燃やしたらしい。同好の士にフンと鼻で笑われ(たように感じて)、癪に障ったので単独動作可能版を作った。やってみればどうということはない。移植したモニタからサブルーチンを3個、書き写しただけだ。

VTL_ROM

VTLは起動した直後、使ってもいいRAMの範囲を設定する。システム変数*に末尾のアドレスを代入し、同&に先頭のアドレスを代入する。これをやり忘れると必ず暴走する。最初にこの種の儀式を必要とするのは当時のプログラムにありがちなことであり、VTLの出来が悪いわけではない。マイクロソフトのBASICは時代が進んで16ビットパソコンに採用されてからでさえ、How many files(1-15)?と尋ねたものだ。

VTL_start

プログラムを入力する方法はBASICと同じ。コマンドやステートメントはぜんぜん違う。リストを表示するにはLISTではなく0を入力する。VTLの世界観を如実に物語るのは実行行を表すシステム変数#。#に1を代入すると先頭行から実行するのでRUNに相当。プログラムの中で行番号を代入すればGOTOのように分岐する。#に0を代入しても無視される。したがって条件式と行番号を掛け算してから代入することで、IF~GOTOにあたる条件分岐が成立する。

VTL_sample

VTLの文法は、まるで数学のように、少数の原則と多数の応用で成り立っている。ネットでは「小さいなりに貧弱」みたいなニュアンスで紹介されることが多いし、マイクロソフトのBASICを標準と考える人にはいんちき臭く感じるだろうが、ボクにはとても美しく見えるぞ。もしかして、とうとうボクも変人たちの仲間入りか。

カテゴリー: 6800 パーマリンク

VTLが動いた への4件のフィードバック

  1. DAI より:

    こんにちは。
    昨日ようやく打ち込みが終わり、バイナリファイルができあがりました。(でも、まだボードがない)
    で、先ほどもう一度資料をさがしてみると出てきました。ほぼ手の届くところ、元暗しですね。
    一度さがしたはずですが、気づかなかったのは、VTLではなく、マイクロBASICと書いてあったためです。
    アスキー1977年10月号です。「Altair680とマイクロBASIC」と言う題名です。
    VTLのダンプリストと680bのモニタダンプリストがついていました。例のトラップも0C 9C 0D としっかりあります。
    さらに、アスキー1978年2月号に、8080用の856Byte VTLが、同6月号に、Z80用VTL-Zの記事があります。
    インターフェース1978年4月号にVTL/2を拡張し、Mikbug上で動くようにしたVTL/Kの記事があります。
    どれもアセンブラリスト付きです。
    ん?VTL/2はMikbug前提ではなかったのですね。
    すごーい。

    • vintagechips より:

      DAIさん、こんにちは。貴重な情報を教えていただき有難うございます。ものもちのよさに、ちょっとびっくり。打ち込みまでしたということですが、まだコンピュータがないんですよね。プリント基板の最終版ができたら(seeedの夏休み明けを待っています)、中日電工さんにキットの販売を持ちかけるか、ガレージセールでもやろうかなと思案中。

  2. DAI より:

    vintagechipsさん、こんにちは。
    CPUやメモリは使い切れないほど集めたのですが、基板をどうするか、決めかねています。
    記事になった回路をそのまま使うのが一番成功率が高いでしょうが、それではおもしろくない、でも自信が無い、とうろうろしています。でも、もういい加減に思い切らないといけないでしょうね。私自身の賞味期限が切れてしまいそう。それとは別に、確実に動く基板は1つ欲しいところです。
    中日電工さんですか、実は、今回打ち込みに使ったのが、中日電工さんのND80Z3.5なんです。これの16進キーボードを使いました。菱田さんもこんな事に使ったとは思わないでしょうね。

    • vintagechips より:

      DAIさん、こんにちは。コメントを送信する際に入力していただいたメールアドレスへガレージセールのお知らせを送りました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中