Turbo Pascal CP/M80

Turbo Pascal はコンパイラとスクリーンエディタを備えた統合環境です。 アセンブラやリンカはありませんが80系の入出力操作や番地を指定してのメモリ操作などの 装置制御のためのプログラミングを支援しています。 またアセンブリ言語を差し込むインラインアセンブラはありませんがコードを埋め込むインライン文が準備されています。 PASCALをBASICのように便利に使えるようになっています。
しかしながらPASCAL言語の仕様ではビット単位の論理演算ができないようなので 8ビットの入力ポートを読んで2を論理積してビット2の値を判定するようなことはできません、 またTurbo Pascalにはポートの入出力はあるものの文字型のデータを割り当てられません。

このツールの入手は http://www.retroarchive.org/ の下の所からできます。

FIG1.jpg(2659 byte)
 
   準備

Turubo Pascal は統合環境の中でファイルの選択やコンパイルなどの指示をします。 TURBO .COM を実行するとそれが使えます。 統合環境はエスケープシーケンスを使っていますがWindowsのコンソールは ANSI に対応していますからこれに合わせると見映えはよくなります。 そのままでも支障はありません。
TURBO .COMANSI 対応にするには Screen installation をします。


TINST .COM を実行する。

FIG2.jpg(29530 byte)


S を押す。

FIG3.jpg(69527 byte)


ANSI6 を選択する。

FIG4.jpg(74777 byte)


N を選択する。

FIG5.jpg(78017 byte)


改行する。

FIG2.jpg(29530 byte)


Q を押す。

ANSI 対応に書き換えられた TURBO .COM になっています。

FIG6.jpg(31194 byte)

Y を押す。

 
   使い方

FIG21.jpg(11031 byte)

この TESTS .PAS のプログラムをコンパイルしてみます。
統合開発環境にはエディタも入っていますがこの上で作ったソースファイルでなくても支障はありません。



FIG7.jpg(29732 byte)

W を押す。

FIG8.jpg(30963 byte)

TESTS .PAS を指定する。

FIG9.jpg(33097 byte)

改行する。

FIG10.jpg(31091 byte)

R を押すとプログラムが実行されます。

FIG11.jpg(38862 byte)


O を押す。

FIG12.jpg(22309 byte)


C を押す。
コンパイルの結果を COM ファイルに出力するようにします。

FIG13.jpg(27204 byte)

E を押す。

FIG14.jpg(28308 byte)


8000 を指定します。
CP/Mアダプタでも実行させる場合は End AddressF000H 未満に修正する必要があります。 そうしないとメモリ不足のエラーを表示してプログラムが終了してしまいます。

FIG15.jpg(27096 byte)

Q を押す。

FIG16.jpg(31019 byte)


C を押す。
ここでコンパイルしてその結果がファイルに出力されます。

FIG17.jpg(40580 byte)

Q を押す。

FIG17.jpg(40580 byte)


ここで TURBO .COM の実行が終了しました。 TESTS .COM が出来ているので実行してみます。

FIG19.jpg(41290 byte)


FIG20.jpg(16412 byte)

CP/Mアダプタでも実行させてみました。


 
   IO直接操作

write 文を使わずに直接IO操作してコンソールに Hello World!! と表示するプログラムを作ってみました。 Turbo Pascalでビット操作ができないので inline 文を使った関数を作りました。

FIG22A.jpg(57366 byte)
FIG22B.jpg(17145 byte)


文字列に制御文字を含ませる方法とか関数に文字列を渡す方法とか分からないこともあるのですが inline 文で関数を書けば解決可能です。