2012.7.10
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第168回]


●FORTRAN80

先週末から今週はじめまでの3日間は、またもや泥沼でもがいておりまして、更新ができませんでした。
4日ぶりの更新です。

何をやっておったのか、と申しますと。
お題にありますように、Microsoft社の古典的なFORTRANコンパイラFORTRAN80をND80ZVのCP/M互換DOS上で走らせようともがいておりましたのです。

先日ご紹介しておりましたMBASIC([第157回])はインタプリタですが、このFORTRAN80はコンパイラです。

FORTRANは私がはじめて習い覚えた高級言語で、もうかれこれ40年近く昔のことになります。
当時勤めておりました会社のコンピュータルームに鎮座ましましておりました富士通のFACOM450だったか45だったかそのような名前の大型(中型?)コンピュータにぞっこん惚れ込んでしまい、無理矢理押しかけて仲間に入れてもらい、業務の合間に「ちょっとこれ、流してくれない」てな調子でパンチカードの束を渡したりしたものでした。

当時はプログラムの1行を1枚のカード(ハガキをもう少し細長くしたくらいのサイズ)にカードパンチャーで穴をあけたものをプログラムとして読み込ませて実行しました。
プログラムの1行が1枚ですから、ちょいと長くて500行くらいのプログラムになると持ち運びも大変でした。

ともかくそういう懐かしい思い出の残るプログラム言語ですから、そのうち走らせてみたいと思って、実はMBASICと同じ時期に(今年2月ごろ)ダウンロードしておいたのです。

入手先はMBASICと同じ、こちらのサイト(http://www.retroarchive.org/cpm/lang/lang.htm)からダウンロードさせていただきました。

Mbasic.comの5行ほど下にF80.ZIPがあります。
そこをクリックして、F80.ZIPをダウンロードしてディスクに保存してから、解凍します。
解凍すると、FORTRAN80本体(F80.COM)以外にいくつかのファイルが現れます。

しかし。
さて。
これを一体どのようにして、動かすのだ?

インターネットはほんとに便利でありまして、情報の宝庫であります。
あちこち検索しておりましたら、ちょうどぴったり、というサイトに行きつきました。
こちらのサイトです。
http://ldlabo.hishaku.com/NO35/main.htm

おお。
私と同じところからダウンロードされたようです。

このFORTRAN80もMBASICと同様Microsoft社の製品でありますから、フリーではないと思うのでありますが。
ま、しかし。
個人として使う分には問題はないでありましょう。
もちろん、配布するなどということはできませぬから、ご興味がお有りの方はご自身でダウンロードなさってくださいませ。

上記サイトにはFORTRANの短いサンプルプログラムが紹介されております。
私自身はもう40年も前のことですから、FORTRANなど全く完全に忘却してしまいまして、露カケラほどの記憶も残ってはおりませぬ。

FORTRANのプログラムをどうやって書いたらよいのか、さっぱりわかりません状態でありましたから、上記サイトにありましたサンプルプログラムをそのままそっくり有り難く使わせていただくことにいたしました。

こちらが、有り難く使わせていただいたFORTRANソースプログラムです。

	PROGRAM HELLO
	WRITE(3,100)
100	FORMAT(' HELLO WORLD!! by FORTRAN80')
	WRITE(3,110)
110	FORMAT(3X,'A,B,C,D=')
	READ(3,120) I,J,L,M
120	FORMAT(4I15)
	K=I+J+L+M
	WRITE(3,200) K
200	FORMAT(3X,'A+B+C+D=',I5)
	END

このファイルをHELLO.FORというファイル名で仮想FDDにセーブしまして、それをF80.COMを起動してコンパイルしてみたのでありますが。

なんだか異常なエラーメッセージが表示されて、見事に失敗してしまいました。
かくして、3日間泥沼でもがくことになったのであります。
それこそどこから手をつけてよいのかわからん状態から、悩みながらの原因追求でありまして、その過程につきましても、のちほど整理しながら説明をすることにいたします。

ともかく。
もがいておりますうちに少しずつ糸口がほぐれてまいります。
そして。
ついに。
感激の瞬間を迎えることが出来たのでありました。

下はその感激の画面です。
ND80ZVのCP/M互換DOS(仮想FDD版)の上で、ソースプログラムHELLO.FORをコンパイルして生成されたHELLO.COMを実行しているところです。



FORTRAN80(F80.COM)はコンパイラで、ソースプログラム(HELLO.FOR)から相対ファイルHELLO.RELを生成しますが、そのままでは実行できません。
リンカ(L80.COM)を実行してはじめて実行ファイル(HELLO.COM)が作成されます。

画面上部に見えております、
*HELLO,HELLO/N/E
がリンカ(L80.COM)に入力したコマンドで、その結果、HELLO.COMが作成されてAドライブに保存されました。
画面下部では、作成保存されたHELLO.COMを実行しています。

いやあ。
もう、感激です。
昨晩は、もちろん金麦で乾杯、いたしました。

ということで、今回はざっと簡単にご報告させていただきました。
次回からはもう少し詳しく、F80.COMの実行とL80.COMの実行や、泥沼でもがく様子などにつきまして、ご報告申しあげます。

なにはともあれ、乾杯!

ワンボードマイコンでCP/Mを![第168回]
2012.7.10upload

前へ
次へ
ホームページトップへ戻る