ESP8266 CP/M上で動作するmbasic(BASIC-80)で中学生時代に地元の今は無き青山堂で買った「マイコン宇宙講座」の最初のプログラム(JST<->MJD変換)を試してみました。買った当時はちゃんと試していなかったような気がします。
「マイコン宇宙講座」は1980年に廣済堂から出版された書籍でPC-8001などを対象にしていました。
コードはそのまま載せるのはまずいと思うので載せませんが、Macなどのエディタで書いて、ターミナルからコピペするのが良いです。やり直したいときはnewで消えます。
130行目で使われている、WIDTH命令はmbasicでは引数は1つです。これ以外はそのままいけました。倍精度のサポート(#)もあるようです。PC-8001のN-BASICはmbasicがオリジナルなので、当たり前っていえばそうなのですが。
f>b:mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32568 Bytes free
Ok
100 DIM T(12)
省略
2600 RETURN
run
DATE AND TIME(JST) ? -47120101,2100
INPUT DATE=-4712 1 1.5 UT
MJD =-2400000.5 UT
RETURN DATE=-4712 1 1.5 UT
MJD =-2400000.5 UT
何十年ぶりかでBASICのリストを打ち込みましたが、エラーにならない打ち間違いのデバッグが大変でした。
当時はBASICしかなかったのでしかたないですが、このような実装をするにはBASICは分かりにくいです。今であれば他の言語で書くのが良い気がしました。
この本が出るまでは、宇宙の計算なんて、大きなコンピュータじゃなきゃ無理と思われていたのを、一般のパソコンでできるようにして解説した功績は非常に大きいと思います。また読み物としても大変よく書かれていると思います。
mbasicで小文字のファイル名で保存できますが、CP/Mで扱えないので、注意してください。もし小文字のファイルを作ってしまった時にはmbasicのkillで削除できます。