はじめに
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:










Comments
Let's comment your feelings that are more than good