simhのAltair 8800シミュレータ上で東大版Palo Alto Tiny BASICが動作し、Tiny Trekも動きました。ひとまず区切りがつきましたが、これを他の環境に移植してみても面白いのではないかという気がします。他の環境というのは、具体的にはつぎのようなものを思い描いています。
- amd64環境として、WSL2のUbuntuかFreeBSD/amd64
- PDP-11/40のUNIX v6
- OpenVMS vax
- OpenVMS alpha
いずれの環境であっても、アセンブラで書いてみようと思います。オリジナルはOSを意識しておらず、シリアルポートの先にASR-33が接続されているのを想定しています。しかし入出力はOSのが提供する機能を利用しようと思います。それでも、行編集のような便利な機能はつかわず、ASR-33並みの原始的な行入力にしておこうと思います。
またオリジナルの8080版では、整数16ビットを想定しています。amd64なら整数32ビットにすることもできるかもしれませんが、そういうTiny BASICの仕様を拡張するようなことはしない方針です。できるだけオリジナルと同じ仕様にしておきつつ、動作環境が8080ではないという方向で考えています。
データ構造やサブルーチンなども、オリジナルの東大版Palo Alto Tiny BASICと同じようにしようと考えています。発表当時の時代背景を踏まえて、BASICソースは、メモリ上に単純に置かれています。ソフトウェア工学的には、メモリ上の持ち方を変えればスマートかもしれませんが、そういうこともしないつもりです。所詮はTiny BASICなので、大規模と言ってもTiny Trekのような高々200行弱のプログラムで十分です。何千行もあるようなプログラムになることは考えず、最適化されたアルゴリズムを採用しません。
いろいろな環境を考えているとはいっても、いきなり全てはできません。まずはamd64環境から始めようと思います。
0 件のコメント:
コメントを投稿