goo blog サービス終了のお知らせ 

まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

3728. tiny BASIC、続き^3

2022年04月30日 | 日記
 初期のビデオゲーム、スタートレックについてはweb情報(日本語)がとても詳しいのでここでは述べません。1975年の英文資料によると、このゲーム作成に必要なtiny BASICの要求要件は、

 16bit符号付き整数(-32768~+32767)
 26個の変数 A-Z 大域変数のみ
 RND関数 乱数発生
 7つのBASIC命令
  INPUT, PRINT, LET, GOTO, IF, GOSUB, RETURN
 文字列はPRINT文の固定文字のみ

 もちろん(計算機の変数の)配列は最低1個は必要です。端末はビデオ端末ですからDEC VT-100みたいなのを想定していたみたいです。こちらにはテレタイプASR-33のように紙テープ装置は付いていませんから、記録したいのなら何らかの入出力装置が必要です。あるいはPROMか。

 日本で有名なのは1978年の共立出版bit臨時増刊「マイクロコンピュータのプログラミング」に掲載された、変更版のPalo Alto Tiny BASICです。2KB程度のROMあるいはRAMに入る大きさで、それとは別にBASICプログラム自体と動作のために最低0.5KB程度のRAMが必要です。CPUはintel 8080で、intel流のアセンブラで記述されていました。
 上述の命令に加えて、FOR, NEXT, STOP, REMが追加され、関数ではABSとSIZEが追加されています。配列は@(式)の一つだけでテキストバッファの最後部から前に向かって伸びるので、プログラムが大きくなると配列の取れる要素数(SIZE)が小さくなります。

 このtiny BASICプログラムの機械語列をメモリに入れて動作させると、ディスプレイ(あるいはテレタイプ)はコマンド待ちになって、タイピングでは行番号で開始するとプログラムの行と認識されてメモリ(テキストバッファ)に記録され、RUNコマンドでプログラムが起動します。このあたりは8bitパソコンやポケットコンピュータを知っている方には言わずもがなの動作と思います。

 スタートレックのプログラム自体は同年に刊行された同じくbit臨時増刊「マイコンゲームを楽しもう。BASICプログラム集」に掲載されています。ただし、こちらのBASICでは実数と文字列の変数と関数が必要なのでtiny BASICで動作させるのならかなり変更が必要と思います。逆に言うと、計算機言語として、パソコンとしての最低限の必要な要素はtiny BASICで完成していた、ということ。

 tiny BASICの計算機言語としての特徴はいくつかあると思います。最大のものは、人間が読めるテキストをそのまま解釈・実行している点です(さすがに行番号は2進数に変換される)。その後のパソコンBASICでは1行単位で中間言語に翻訳されていました。
 もう一つは、サブルーチン呼び出しで元に戻るための情報がスタックに積まれるのは今の普通の計算機言語と同じですが、FOR-NEXTループの情報もスタックに積まれて行くことです。この設計はその後のパソコンBASICでも継続されました。C言語ではそんなものありません(局所変数はスタックに入るが)から、それ以前があるかどうか私は知りませんが、このtiny BASICのその後への影響は絶大だったと思います。

 ちなみに、FOR-NEXTは配列計算(ベクトルと行列)で使うとプログラムが見やすくなる仕掛けで、原理的にはGOTO文(ループ)とIF文(条件分岐)で実現でき、GOSUB/RETURNと組み合わせれば可読性もある程度確保できます。上述の構想段階の(FOR-NEXTの無い)tiny BASICでは、このLISPみたいな書き方を想定していたようです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

3727. tiny BASIC、続き^2

2022年04月30日 | 日記
 tiny BASICというのはそのintel 8080が発売された1974年の1年後のこと。個人でも買える電子計算機が登場したというので、マニアは多分CPUチップとメモリを買って自分で半田ごてを握って組み立てたと思います。日本でも技術雑誌で詳しく紹介されていましたから、作った人は何人かいると思います。

 以下、時間列が曖昧なので申し訳ありません。電子回路が自作できる、しかもデジタル回路というのは少数派なので、さすがに米国で、さっそくマイコンキットが発売されました。外見はその頃米国では大学などであるていど普及していたミニコンとそっくり。しかし、どうやら手作りに近かったらしく注文してもなかなか届かず。やっと届いたと思って組み立てたら、ソフトは貧弱でできることといったらコンソールパネルのLEDを点滅させるくらいしかできませんでした。intel社は当然、開発系も売っていましたが個人で買えるようなものではなかったみたいです。さあ、困った。米国ですから、おそらく中古のテレタイプのASR-33あたりは簡単に手に入ったと思います。
 現在のパソコンに近い感じのオールインワンになったコモドール社のPET 2001が発売されるのは1977年です。その直前の話。

 8080発売の翌年の1975年には早くもtiny BASICの構想が登場していました。BASICは大型機でのタイムシェアリングシステムの教育用のFORTRAN類似の計算機言語です。これを何とか4KB(キロバイト)程度のメモリの8080システムで動作させようとした、ということ。
 最初から明確なターゲットがあって、コンピュータゲームです。いや、科学技術計算などまだ夢の夢。そのゲームの一つがスタートレックと呼ばれるミニコンでは遊べたゲームだそうです。有名なTV番組(宇宙大作戦)ですし、映画化もされましたから知っている方は多いと思います。というか、米国どころか日本でもいわゆるお宅がいて、多分制作側も乗りに乗って詳しく詳しく設定が練られていった感じがします。

 原点のTVシリーズの内容はあからさまにアメリカのプロパガンダというか米国万歳の内容だったと思います。宇宙、それは最後に残されたフロンティア(開拓地)だ、だったか。巨大な宇宙戦艦エンタープライズ号が超光速(ワープ航法)で(多分)我が銀河内の(多分)見知らぬ惑星を訪れ、着陸シーンは面倒なので転送とか言っていきなり惑星表面にうまくテレポートします。で、なぜかその惑星には十分な重力と安全な濃度の酸素があって、地球そっくりの植物や動物がいて、でも哺乳類と同じくらいの大きさの怪獣みたいなのもいたか。先に商隊が到達している場合もあったような。
 で、あからさまに敵役のクリンゴンという高度文明を持つ、しかし邪悪な人類みたいなのがいて、どう見ても当時(冷戦時代)のソ連でした。破壊と支配をモットーとします。
 エンタープライズ号の乗員はカーク船長以下、主要要員は米国東海岸の感じで、黒人の通信係や日本人設定の操舵士がいます。この日本人が邦訳ではミスターカトー(加藤)ですが、元はスルーで多分日本語のdoに相当する動詞のする、の感じ。あえて名字風にするなら州流か名前風にするなら…同様か。
 さらにあからさまな共産党みたいなのが登場した回があって部族名がコム(コミュニスト)で毛沢東時代の中国みたいな感じだったはずです。最初は友好的な感じで、後に幻滅するというのもいかにもの感じ。

 破壊部隊担当のミッション:インポッシブル(TV版、日本ではスパイ大作戦)、おはようフェルプス君…(通信内容)…このテープは自動的に消滅する、で始まる番組も流行していたみたいです。日本でも水戸黄門とか大江戸捜査網とか非情のライセンスとかありましたから同様の…、多分、日本が真似していたと思います、いわゆる魔改造済みで。
 まあ多分おそらく、米国という広大な大国を一つの意思にまとめるのは並大抵では無かったみたいです。赤い服の太っちょサンタクロースもその一つ。さすがに隣国のカナダでもこれが本物のサンタクロースだ、みたいなカトリック聖人の絵本があったと記憶しています。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする