GAME言語に関する情報源 [日記]
インターネット上でGAME言語の情報を探してもあまり見当たらなかった(話題になったのはインターネットが普及するかなり前のことだしw)のですが、エミュレータ界隈のWEBサイトに結構情報があることが判りました(または図書館等で1980年近辺のエンサイクロペディアASCIIを参照するとか・・)
シャープ製MZマイコンのエミュレータ上でGAME-MZが動きました^^
作成者の方に感謝します。記念に画面キャプチャを貼っておきます。
しかし、エミュレータなのであり余るパソコンのパワーを抑えて処理速度を昔の実機にあわせているため実行速度がかなり遅い状態です。
またキーボードのアサインが使いづらく、ロード/セーブもカセットテープI/Fをエミュレートし、かつモニタ内のマシン語処理を呼出す必要があるため、操作が煩雑です(昔のマシンに近い状態が再現できていること自体はすばらしいと思いますが私自身はMZを見たことはあるけど使ったことが無い・・)
個人的な感想としてはエミュレータ上でGAME言語を動かすよりもPIC上で動かした方が昔のワクワク感に近い楽しさを感じます(GAME言語で遊んだ頃の環境が 自作Z80マイコン だったからという理由もあるかもしれません)
また、GAME言語の作者である大西氏がGAME言語に続いて発表したTL/1(私は当時使っていなかったのですが)に今更ながら興味が湧き(16ビット化してPIC24FJに載せたら面白いのでは?)、言語仕様を探しましたが中々見つかりません。
GAME言語は記憶を辿りながらC言語を使って復元できましたがTL/1は使っていなかったので言語仕様が記憶の中にもありません・・
シャープ製MZマイコンのエミュレータ上でGAME-MZが動きました^^
作成者の方に感謝します。記念に画面キャプチャを貼っておきます。
しかし、エミュレータなのであり余るパソコンのパワーを抑えて処理速度を昔の実機にあわせているため実行速度がかなり遅い状態です。
またキーボードのアサインが使いづらく、ロード/セーブもカセットテープI/Fをエミュレートし、かつモニタ内のマシン語処理を呼出す必要があるため、操作が煩雑です(昔のマシンに近い状態が再現できていること自体はすばらしいと思いますが私自身はMZを見たことはあるけど使ったことが無い・・)
個人的な感想としてはエミュレータ上でGAME言語を動かすよりもPIC上で動かした方が昔のワクワク感に近い楽しさを感じます(GAME言語で遊んだ頃の環境が 自作Z80マイコン だったからという理由もあるかもしれません)
また、GAME言語の作者である大西氏がGAME言語に続いて発表したTL/1(私は当時使っていなかったのですが)に今更ながら興味が湧き(16ビット化してPIC24FJに載せたら面白いのでは?)、言語仕様を探しましたが中々見つかりません。
GAME言語は記憶を辿りながらC言語を使って復元できましたがTL/1は使っていなかったので言語仕様が記憶の中にもありません・・
GAME-MZ |
|
こんにちは。 TL/1 の言語仕様をまとめているので紹介します。 ぜひ参考にしてください。
http://www7b.biglobe.ne.jp/~saia/tl1.html
また、 TL/1 で書かれたプログラムを C へ変換するプログラムも作っています。 ドキュメントを用意しておらず、変換器は Scheme を使って書いたので読みにくいかとは思いますが……
https://github.com/SaitoAtsushi/TL1
ただ、私の方でも持っている資料は月間アスキーの1980年1月号の特集記事と、その他ネット上にある断片的な情報だけなので曖昧な部分も多いです。 もっとも、 PIC で動かすならいずれにしても多少は変更が必要な部分もあるでしょうから、あいまいな部分は想像してみたり自分なりに再設計してみたりするのも楽しいかもしれませんね。
by 齊藤 (2016-02-08 16:04)
齊藤さん はじめまして コメントありがとうございます。
TL/1の言語仕様を興味深く読ませて頂きました。TL/1の情報については結構探したのですが、これ程、整然と整理されたTL/1の情報ははじめて見ました^^
「2.2 識別子」で名前検索順として
大域単変数名
大域配列名
小域単変数名
小域配列名
となっています。想像ではありますが大域変数より先に小域(ローカル)変数を検索するのではないでしょうか?
(C言語等ではローカル変数が優先されますし、その方が使い易いと思われます)
> あいまいな部分は想像してみたり自分なりに再設計してみたりするのも楽しいかもしれませんね。
実はTL/1の仕様探しは既に諦めて、独自言語を作成していますw
言語仕様の概要が
http://piclabo.blog.so-net.ne.jp/2016-01-30
でPIC24FJへの実装が
http://piclabo.blog.so-net.ne.jp/2016-02-03
です。
検討過程は
http://piclabo.blog.so-net.ne.jp/tag/articles/%E7%8B%AC%E8%87%AA%E8%A8%80%E8%AA%9E
になります。
今回、TL/1の言語仕様がわかりましたが、TL/1はcase文も対応していたんですね。またローテート/シフト系の充実とキャリーフラグ対応演算子が印象的でした。
by skyriver (2016-02-08 22:41)
ご指摘ありがとうございます。 小域変数が優先するものと私も認識はしていたのですが参考にした資料の中の図で逆順に書かれていた (下から上の矢印で方向が示されてはいた) のでうっかりそのまま書いてしまっていたようです。
修正しました。
定義した変数名が予約語をシャドウしてしまうことがあるというのとキャリーフラグが TL/1 の中で特に目をひく特徴ですね。 予約語をシャドウすることがあるのはパースと意味解析が分離できなくて困りました。
by 齊藤 (2016-02-09 00:21)
拝啓
pic24版GAMEに感動しました。また、cpm/68kもすごいです。
TL/1について、cp/m80に移植したことがあります。もし必要なら
ソースコード、実行ファイルをお送りします。 \(^o^)/
by kanzo katuaki (2019-03-31 17:46)
コメントありがとうございます。
CP/M-80版TL/1・・いいですね^^
TL/1は憧れてはいましたがソース編集機能としてBASICのエディタを使用していたので自作のZ80ボードで遊んでいた当時の私はTL/1を動かせずGAME派でした。GAMEコンパイラは衝撃的だったなぁ~
当時のアスキーに載っていた騎士巡歴問題を解くプログラムをGAME言語で作成しいくつかの枝刈り条件を入れて起動数秒後から解がポロポロ出てくるまでになっていた頃に、TL/1の作者である大西氏がTL/1をつかって枝刈りロジックを入れた騎士巡歴問題を解くプログラムを作成し、朝に結果を確認しようと寝る前に起動したらすぐに解がでてきた・・というような記事がアスキーに載っていたこと等を思い出しました。
by skyriver (2019-03-31 20:22)
TK-80BS版のGAMEインタプリタをCP/M-80に移植し、GAMEコンパイラを動かしてみました。
https://piclabo.blog.so-net.ne.jp/CPM80GameCompiler
by skyriver (2019-05-03 13:46)
ブラウザ上で動作するMSX環境であるWebMSXでCP/M-80に移植したGAME80を動かし、インタプリタとコンパイラのベンチマーク比較をしてみました。
https://piclabo.blog.ss-blog.jp/BenchMark
by skyriver (2020-01-07 12:20)
最近入手したシャープのポケコン(PC-G850V)はCPUがZ-80なのでTK-80BS用のGAME80を移植してみました。
https://piclabo.blog.ss-blog.jp/G850V_GAME
by skyriver (2020-01-13 00:35)
意外なことにパピコン(PC-6001)にはまだGAME言語が移植されていないみたい。
実機を持ってないけどエミュ環境でGAME言語を移植して見ました。
https://piclabo.blog.ss-blog.jp/PC6001_GAME
by skyriver (2020-01-27 23:09)
TL/1の言語仕様について書かれているサイトを見つけたのでURLを貼っておきます。
最初のコメントのものと情報源は同じようでほぼ同じ内容です。
https://ie.u-ryukyu.ac.jp/~kono/lecture/compiler/TL1/tl1j.html
by skyriver (2022-11-05 23:29)