シャープ製MZマイコンのエミュレータ上でGAME-MZが動きました^^
作成者の方に感謝します。記念に画面キャプチャを貼っておきます。
しかし、エミュレータなのであり余るパソコンのパワーを抑えて処理速度を昔の実機にあわせているため実行速度がかなり遅い状態です。
またキーボードのアサインが使いづらく、ロード/セーブもカセットテープI/Fをエミュレートし、かつモニタ内のマシン語処理を呼出す必要があるため、操作が煩雑です(昔のマシンに近い状態が再現できていること自体はすばらしいと思いますが私自身はMZを見たことはあるけど使ったことが無い・・)
個人的な感想としてはエミュレータ上でGAME言語を動かすよりもPIC上で動かした方が昔のワクワク感に近い楽しさを感じます(GAME言語で遊んだ頃の環境が 自作Z80マイコン だったからという理由もあるかもしれません)
また、GAME言語の作者である大西氏がGAME言語に続いて発表したTL/1(私は当時使っていなかったのですが)に今更ながら興味が湧き(16ビット化してPIC24FJに載せたら面白いのでは?)、言語仕様を探しましたが中々見つかりません。
GAME言語は記憶を辿りながらC言語を使って復元できましたがTL/1は使っていなかったので言語仕様が記憶の中にもありません・・
http://www7b.biglobe.ne.jp/~saia/tl1.html
また、 TL/1 で書かれたプログラムを C へ変換するプログラムも作っています。 ドキュメントを用意しておらず、変換器は Scheme を使って書いたので読みにくいかとは思いますが……
https://github.com/SaitoAtsushi/TL1
ただ、私の方でも持っている資料は月間アスキーの1980年1月号の特集記事と、その他ネット上にある断片的な情報だけなので曖昧な部分も多いです。 もっとも、 PIC で動かすならいずれにしても多少は変更が必要な部分もあるでしょうから、あいまいな部分は想像してみたり自分なりに再設計してみたりするのも楽しいかもしれませんね。
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文も対応していたんですね。またローテート/シフト系の充実とキャリーフラグ対応演算子が印象的でした。
修正しました。
定義した変数名が予約語をシャドウしてしまうことがあるというのとキャリーフラグが TL/1 の中で特に目をひく特徴ですね。 予約語をシャドウすることがあるのはパースと意味解析が分離できなくて困りました。
pic24版GAMEに感動しました。また、cpm/68kもすごいです。
TL/1について、cp/m80に移植したことがあります。もし必要なら
ソースコード、実行ファイルをお送りします。 \(^o^)/
CP/M-80版TL/1・・いいですね^^
TL/1は憧れてはいましたがソース編集機能としてBASICのエディタを使用していたので自作のZ80ボードで遊んでいた当時の私はTL/1を動かせずGAME派でした。GAMEコンパイラは衝撃的だったなぁ~
当時のアスキーに載っていた騎士巡歴問題を解くプログラムをGAME言語で作成しいくつかの枝刈り条件を入れて起動数秒後から解がポロポロ出てくるまでになっていた頃に、TL/1の作者である大西氏がTL/1をつかって枝刈りロジックを入れた騎士巡歴問題を解くプログラムを作成し、朝に結果を確認しようと寝る前に起動したらすぐに解がでてきた・・というような記事がアスキーに載っていたこと等を思い出しました。
https://piclabo.blog.so-net.ne.jp/CPM80GameCompiler
https://piclabo.blog.ss-blog.jp/BenchMark
https://piclabo.blog.ss-blog.jp/G850V_GAME
実機を持ってないけどエミュ環境でGAME言語を移植して見ました。
https://piclabo.blog.ss-blog.jp/PC6001_GAME
最初のコメントのものと情報源は同じようでほぼ同じ内容です。
https://ie.u-ryukyu.ac.jp/~kono/lecture/compiler/TL1/tl1j.html