ソフトな忘却力(59) FreeDOS、FreePASCAL、インストールしてHELLO

Joseph Halfmoon

C言語は「基本のキ」みたいなイメージ。しかし最初からそうであったわけでなく、メジャーになったのは意外と新しい(年寄からみたらば)気がします。DOSの時代、アセンブラかBASICからCへの移行期、PASCAL系の言語がメジャーになりかかった時期もあったような気がします。FreeDOS上ではPASCALも使えるっと。

※「 ソフトな忘却力」投稿順 Index はこちら

※実機動作確認には以下を使用しております。

    •  Windows 11 PC (i5-1235U)
    •  Ubuntu 24.04 LTS on WSL2
    •  QEMU 8.2.2
    •  FreeDOS 1.3
古のPASCAL処理系

太古の昔、アセンブラやFORTRANコンパイラが主流の時代に「そんなアチコチ飛び回る(JMP)んじゃね~」というコンセプト?で登場したのが「ストラクチャード・プログラミング」という思想?だったじゃないかと思います。遠い昔だね。当時言われた「スパゲッティ・プログラム」にならないような言語ということで脚光を浴びた?のがPASCALだったような。知らんけど。

PASCAL自体は、「ストラクチャードな」教育用に開発された経緯もあって、「ピュア」な仕様のままではちょいと実用には不向きなところがあり「工業PASCAL」と呼ばれるような拡張された仕様の各種処理系が登場。そしたら利用が進んだ記憶。

老人の記憶では、UCSD PASCAL処理系のカッコよさに衝撃を受けました。でも処理系のお値段高すぎて手が届かず。その後、ボーランド社からTurbo Pascal処理系が登場するとお値段もこなれて一気に大衆化、これからはPascalじゃ、という雰囲気がしたとかしないとか。これが1980年代中盤かと。残念ながらお惚け老人は、かのベストセラーにして金字塔、Turbo Pascalにはあまりご縁がなく、たまたま仕事で使うことになったMetaWare Pascalにちょっとばっかりお世話になっていた記憶。しかし、その後の C/C++への奔流の中に、この老人のような「腰の定まらぬ」Pascal組は押し流されていったような。唯一、Turbo Pascal御一統はDelphiとして孤高を守って?今にいたるらしいです。

さて、FreeDOSでは「近代化された」PASCAL処理系、FreePASCALも使用可能です。

FreePASCAL

多数の開発ツールがFreeDOSの2枚のCD-ROMイメージに含まれてますが、FreePASCALに「別格」感を与えているのが、LiveCD側に収録されていることです。ここまでNASM、OpenWatcom C/C++を試用してみましたが、これらはFreeDOSの「推し」として表明されており、FreeDOSの各種ツール自体の記述に使われているみた。よってLiveCD側に収録されてました。それらにならんでFreePASCALが格納されてます。その中身を見てみるとOpenWatcom世界とはまた別な世界がある感じ。

FreePASCALのFreeDOSへのインストール手順をざっくりまとめると以下です。

    1. DOSLFNを活かしておく
    2. FreePASCAL本体、FPCをインストールする
    3. パスにC:\DEVEL\FPC\BIN\GO32v2を加える

なお、FreeDOSのインストールツールは、FDIMPLES(TUI)でも、FDINST(コマンドラインツール)でも一緒じゃないかと。

まず「1」のステップは、ロング・ファイル・ネームを使えるようにするためです。FreePASCALは「上昇志向?違うか」な処理系なので一部DOS伝統の8.3縛りでは表せないファイル名を使っているらしいです。それで先に DOSLFNパッケージを導入して活かしておきます。

インストール後、とりあえずコマンドラインからDOSLFN.COMをTSRとしてLH(ロードハイ、UMB<第54回>へのロード)したところが以下に。DOSLFNversion

 

memでメモリをみてみると、ちゃんとUMBに収まってます。memAfterDOSLFN

実際には、FDAUTO.BATの中に DOSLFNを活かすためのif 文がREMでコメントアウトされていたので、これを外しました。これで、毎回のFreeDOS起動時にDOSLFNがメモリに常駐するハズ。

さてこの後は、FPCをインストールです。

FPCをインストール後、FPCのバイナリどもがいるディレクトリにPATHを通し、まずはIDEを起動したところが以下に。

最初は QEMUを curses モードで動かしている場合、FPcurses

例の「拡張文字の文字化け」問題で画像が何だか分からん、ということでGUIモードで動作しているQEMUから見たのが以下です。FPgui

確かにねえ、でも、気がついたらGUIモードで立ち上げ直すほどの意味はないかも。

さてFree Pascal自体は、コマンドラインからでも動かせます。しかし、付属のIDE(FP.EXE)を先に起動してみたのは、FreePASCALがTurbo Pascalコンパチ路線のPASCAL処理系だからです。Turbo PascalといえばIDEだものね。

40年近い月日は記憶も押し流してます。あれ、「PascalでHello World.したいのだけれど」、どしたら良かったっけ? まあ、なんとか書いた吉例Hello Worldが以下に。compile

コンパイルされた、HELLO.EXEを実行してみたものが以下に。fpcHelloWorld

 

 

Free Pascal 処理系は以下のような特徴らしいです。

    • 386以上必須の32ビットのコードを吐く。(コンパイラ自体は64ビットにも対応しているみたいだが)
    • DOS上で32ビットのオブジェクトを走らせる仕組みとして GO32v2 というDOSイクステンダを使う
    • FreePASCALの各種ツール自体、 GO32v2 上で走る
    • デバッガはGDBを使うなど、一部のGNUツールに依存している。FreeDOSへのインストールパッケージにはそれらが含まれているでのインストールすれば使えるようになる

ということでLinux版のFree Pascalを使えば、フツーにLinuxのオブジェクトも作れるみたいっす。

念のため、-cursesモードのQEMUで、コマンドラインでもコンパイル&実行してみました。fpcCompileCommandLine

 

 

コンパイルできとるな~fpcHelloWorld2

吉例、Hello Worldもできとるな~。

ソフトな忘却力(58) FreeDOS、MSYS2、MINGW64のQEMUで実行 へ戻る

ソフトな忘却力(60) FreeDOS、FreePASCAL、GDBでデバッグ へ進む