石原 博の覚書

電子工作に関する日々の覚書を記載します

MINOLを動かした

2021-04-04 20:31:33 | 日記

CP/Mが動くハードが何種類も出来たが、それだけでは面白くない。

有り難いことに、インターネット上に様々なソフトがある。
そこでいくつかダウンロードして動かしてみた。

CPMUG17のMINOL.ASM
(1.75KBのTinyBasic)

参考
https://deramp.com/downloads/mfe_archive/010-S100%20Computers%20and%20Boards/00-MITS/40-Software/minolvtl/minol22.txt
https://brhfl.com/2019/05/minol/
http://vintagecomputer.net/cisc367/DrDobbs%20Apr%2076%20Minol%20Listing%20w-corrections.pdf

ソースを見ると、RST 2がINPUT, RST 4がOUTPUTなどCP/Mで直ぐ動くわけではないことがわかる。
CP/Mで動くようにソースを修正。LOAD SAVEを追加
https://github.com/ishihara-h/minol
(CP/M付属のASMでアセンブル出来ます)

特徴
・行番号は1〜254
・変数はA〜Z(1バイト長)
・ソースは入力してもスペースが消される
・予約後は以下のとおり
 PR、IN、IF、GOTO、CALL、END、RUN、LIST、NEW、CLEAR、OS
 先頭からマッチングするが、一意に定まった時点であとは読み飛ばし
  なので GOTO10 は GXXX10 と書いても動くし、PRA は PXA でも動く(Xはスペースでない任意の文字) 
・演算子は +, -, *, / だが優先順位はない
・CP/Mなのに保存出来ないのは辛いので、
 LOAD、SAVE を追加した。 LOADTEST SAVETEST (拡張子は入力不要)

注意点
 CPMUG17のMINOL.ASMにはバグがある。
> GOTO: INX D ;GOTO EXECUTOR

  ここれは INX H でないとおかしい。 (そのままだと GOTO文が3文字になり、GOT10等としないといけなくなる)
  (参考であげたURLでも微妙に違うんだけど)



最新の画像もっと見る

コメントを投稿