はじめに
Turbo Modula-2 Reloaded は CP/M 版 Turbo Modula-2 のリバースエンジニアリングから生まれた Linux で動作する Modula-2 です。
Turbo Modula-2 Reloaded
Turbo Modula-2 Reloaded は CP/M 版 Turbo Modula-2 のクローンと考えていいと思います。言語仕様も CP/M 版 Turbo Modula-2 に準じています。
■ ビルド&インストール
Linux 環境でリポジトリの vm_linux
フォルダ内をビルドします。Windows の場合、WSL / WSL2 を使うか、Cygwin でコンパイルします。
See also:
WSL の場合
- リポジトリを ZIP で DL。
- vm_linux サブフォルダの中味を C:\TM2 にコピー
- m2.dsk を C:\TM2 にコピー
- WSL で cd /mnt/c/tm2
- WSL で make
Cygwin の場合
- リポジトリを ZIP で DL。
- vm_linux サブフォルダの中味を C:\TM2 にコピー
- m2.dsk を C:\TM2 にコピー
- Cygwin で cd /cygdrive/c/tm2
- Cygwin で make
C:\TM2 に cygwin1.dll
をコピーしておきます。
■ 実行
WSL の場合
- WSL で cd /mnt/c/tm2
- WSL で ./m2 m2.dsk
Cygwin の場合
- cd C:\TM2
- M2.EXE m2.dsk
M2.EXE のパラメータとして m2.dsk
を渡して実行するだけです。ショートカットをつくっておくといいでしょう。
■ Turbo Modula-2 Reloaded の使い方
Turbo Modula-2 や Turbo Pascal 3.x と同じような使い方です。
CP/M のような仮想環境で実行されています。
メインメニュー
ショートカット | 説明 |
---|---|
〔Alt〕+〔F〕 | ワークファイルの指定 |
〔Alt〕+〔R〕 | 実行 |
〔Alt〕+〔O〕 | オプション |
コマンド
#
プロンプトで実行します。
コマンド | 説明 |
---|---|
E〔Enter〕 | エディタの起動 (ワークファイルを開く) |
E ファイル名〔Enter〕 | エディタの起動 (ファイルを開く) |
C〔Enter〕 | ワークファイルをコンパイル |
C ファイル名〔Enter〕 | 指定ファイルをコンパイル |
DIR〔Enter〕 | ディレクトリを表示します。 |
CD ディレクトリ〔Enter〕 | カレントディレクトリを変更します。 |
REBOOT〔Enter〕 | Turbo Modula-2 Reloaded の終了 |
※他にもコマンドがあります。 SHELL
フォルダや SYSUTILS
フォルダを確認してみてください。
エディタ
ショートカット | 説明 |
---|---|
〔Ctrl〕+〔S〕 | ファイルの保存 |
〔F10〕 | エディタの終了 |
サンプル (FIZZBUZZ)
MODULE FizzBuzz;
FROM InOut IMPORT WriteString, WriteInt, WriteLn;
VAR
i: INTEGER;
BEGIN
FOR i:=1 TO 100 DO
IF ((i MOD 3) + (i MOD 5)) = 0 THEN
WriteString('FizzBuzz');
WriteLn
ELSIF (i MOD 3) = 0 THEN
WriteString('Fizz');
WriteLn
ELSIF (i MOD 5) = 0 THEN
WriteString('Buzz');
WriteLn
ELSE
WriteInt(i, 1);
WriteLn
END
END
END FizzBuzz.
Turbo Modula-2 には Turbo Pascal 互換の READ / READLN / WRITE / WRITELN (すべて大文字で記述) が実装されているため、次のようにも書けます。
MODULE FizzBuzz;
VAR
i: INTEGER;
BEGIN
FOR i:=1 TO 100 DO
IF ((i MOD 3) + (i MOD 5)) = 0 THEN
WRITELN('FizzBuzz')
ELSIF (i MOD 3) = 0 THEN
WRITELN('Fizz')
ELSIF (i MOD 5) = 0 THEN
WRITELN('Buzz')
ELSE
WRITELN(i:1);
END
END
END FizzBuzz.
おわりに
Turbo Modula-2 についての私の認識は次の通りです。
- Turbo Modula-2 は開発は Borland。CP/M 版は Echelon 社が販売した。
- MS-DOS 版は未完成のものが JPI 社に買い取られ、完成後に TopSpeed Modula-2 として販売された。
- 同時期に FTL Modula-2 という Turbo Modula-2 よりも安価な製品があった。
- FTL Modula-2 は CP/M 版と MS-DOS 版があり、日本国内ではサザンパシフィック社が販売した。
- Turbo Modula-2 は日本国内で発売される事はなかった。
- MS-DOS 用としては他に N.J.K Modula-2 / 86 があった。中味はおそらく LOGITECH Modula-2 / 86。
間違いがありましたらコメ欄でご指摘ください。
See also: