• 検索結果がありません。

FM-7用プロッタールーチンの作製

N/A
N/A
Protected

Academic year: 2021

シェア "FM-7用プロッタールーチンの作製"

Copied!
9
0
0

読み込み中.... (全文を見る)

全文

(1)

愛知工業大学研究報告 第

1

9

B

昭和

5

9

5

1

FM

7

用 プ ロ ッ タ ー ル ー チ ン の 作 製

秦 野 和 郎 ・ 葉

建 助 ・ 竹 松 英 夫

I

m

p

r

e

m

e

n

t

a

t

i

o

n

o

f

a

P

l

o

t

t

e

r

R

o

u

t

i

n

e

f

o

r

FM

7

Kazuo HATANO

J

i

a

n

xun YE

and Hideo TAKEMATSU

A p

l

o

t

t

e

r

r

o

u

t

i

n

e

f

o

r

p

e

r

s

o

n

a

l

computer FM-7 i

s

d

e

v

e

l

o

p

e

d

and i

m

p

l

e

m

e

n

t

e

d

.

I

t

d

r

i

v

e

s

MIPLOT J

o

u

n

i

o

r

(XY p

l

o

t

t

e

r

)

and CRT d

i

s

p

l

a

y

.

The program i

s

c

o

m

p

a

t

i

b

l

e

t

o

t

h

a

t

o

f

main

frame c

o

m

p

u

t

e

r

.

S

m

a

l

l

s

c

a

l

e

g

r

a

p

h

i

c

programs u

s

e

d

on main from computer c

a

n

r

u

n

on p

e

r

s

o

n

a

l

c

o

m

p

u

t

e

r

.

1

.

まえカずき 計算結果を「図」の形で出力すると直観的な資料がコ ンパクトな形で得られ,従って結果を整理しやすくなる 事が多い。この目的に従来から

XY

プロッターとか蓄積 管表示装置などが使われている。 大 型 計 算 機 の 利 用 者 の 多 く は

FORTRAN

を使ってプ ロ グ ラ ム を 作 製 す る 。 従 っ て 大 抵 の 計 算 セ ン タ ー に は

XY

プロッターや蓄積管表示装置に出力するための標準 的なサブノレーチンライブラリが用意されている。これは 通称カノレコンプ仕様のプロッタールーチンと呼ばれてお り計算機によって若干の相違はあるとしてもこのプロッ タールーチンを使ってプログラムを書いておけばどの計 算 機 に も そ の ま ま か 或 い は わ ず か の 変 更 で

XY

プロッ ター,蓄積管表示装置などに作図することができる。 最近パーソナノレコンビュータが急速に普及しハード, ソフトともに充実してきている。安価な

8

ピットパソコ ンにすら

CP!M-80

な る モ ニ タ ー が 提 供 さ れ そ の 制 御 の もとで

FORTRAN

コンパイラが動く。その性質上,主記 憶が少なく計算速度は遅いが応用によっては従来大型計 算機を使っていた計算をパソコンで行うことができるよ うになっている。 ほ と ん ど の パ ソ コ ン で は

CRT

ディスプレーはキャラ クタ ディスプレーとしての機能だけでなくグラフイツ クディスプレーとしての機能をも併せ持っている。しか しその機能はメーカ 提 供 の

BASIC

イ ン タ ー プ リ タ を 使ってプログラムを作製するときにのみ便利に使うこと ができる。

FORTRAN

プ ロ グ ラ ム で そ の 機 能 を 活 用 す るためには特別のプログラムを作らなければならない。 同 じ こ と は

XY

プロッターについても言える。高度の機 能 を 持 っ た

XY

プ ロ ッ タ ー を 現 在 安 価 に 入 手 で き る が それを

FORTRAN

プログラムで活用するためには適当 なプログラムを作製しなければならない。 大型計算機で使われているプログラムをパソコンで動 かすために,又その逆にパソコンで大型計算機用のプロ グラムを準備するためにパソコン用のプロッタールーチ ンを作製した。その際,手近かに使えるという利点を生 かすためにいくつかの工夫を試みた。本稿ではその概要 を述べる。

2

.

使 用 す る 装 置 と そ の 機 能 本章ではここで使用したパソコンシステムの概要を述 べる(図

2

.

1

)

。 一 J ジ タ ト ツ ツ 一 一 ロ ロ 一 フ 一 ププアカ一

Y

イニ色一

X

マュ

3

2

.

1

システムの概略図

2

.

1

FM-7 C

F

u

j

i

t

s

u

Micro 7

)

このパソコンの

CPU

MBL68B09

であるが,

Z80

カ ー ド を 装 着 す る こ と に よ っ て

CP!M-80

を 使 う こ と が で きる。

CPT

ディスプレーへの表示のために

D

i

s

p

l

a

ySub

System

を持っている。これにより

640X2

0

0

ドットの分 解 能 を 持 つ グ ラ フ ィ ッ ク 表 示 が 可 能 で あ る 。

D

i

s

p

l

a

y

Sub System

は独立した専用の

CPU

(サブ

CPU)

6

4

(2)

5

2

秦 野 和 郎 ・ 葉

KB

の メ モ リ を 有 し て い る 。 そ の メ モ リ は 主 と し て

8

色 の カ ラ ー 表 示 の た め の

VideoRAM

と し て 使 わ れ て い る。主

CPU

とサブ

CPU

とは

1

2

8

パ イ 卜 の 共 有

RAM

領 域を介してデータのやりとりをする。 主

CPU

の ア ト レ ス 空 間 内 に

VideoRAM

を有するパ ソコンでは

VideoRAM

への読み書きが容易であるが,

FM-7

の よ う に 主

CPU

の ア ド レ ス 空 間 と は 全 く 別 に

Video RAM

を 有 す る パ ソ コ ン で は ユ ー ザ プログラム から

VideoRAM

へ の ア ク セ ス は 容 易 で な い 。 こ の 難 点 を 解 決 す る た め に

FM-7

で は 基 本 入 出 力 シ ス テ ム ,

FBIOS

の 中 に

D

i

s

p

l

a

ySub System

と 通 信 す る 機 能 を 持 た せ て い る 。 こ の

FBIOS

の 使 用 法 は 利 用 者 に 公 開 さ れているのみでなく

CP/M-80

BDOSc

a

l

l

で使用する こ と が で き る 。 具 体 的 に は

RCB(

R

e

q

u

e

s

t

C

o

n

t

r

o

l

B

l

o

c

k

)

なる

8

バ イ ト の 領 域 を 確 保 し て そ の 先 頭 ア ド レ スを

DE

レジスタに乗せ,

C

レ ジ ス タ に

2

5

5

を ロ ー ト し て

5

番 地 を

c

a

l

l

すればよい。

CP/M-80

の も と で

FORTRAN-

8

0

なる

FORTRAN

コ ン パ イ ラ が 動 く 。 こ れ に 関 連 す る ソ フ ト ウ ェ ア に

MACRO-80

なるマクロアセンブラ,

LINK-80

な る リ ン ケ シローダ

LIB-80

な る ラ イ ブ ラ り マ ネ ゾヤカミあり 便 利 に 使 う こ と が で き る 。 特 に こ れ ら の 処 理 系 は コ マ ン ド体系がよくできており非常に使い易い。

FORTRAN-8

0

ANSI-FORTRAN66

と い う 一 時 代 前 の 規 格 を も と に し て 作 製 さ れ て お り 幾 分 古 め か し い 感 じ が す る が 実 用 上はこれで十分である。

2

.

2

XY

プロッタ(グラフテック社製マイプロットシ ュニア,

DA6100)

この

XY

プ ロ ッ タ は 高 度 の イ ン テ リ ジ ェ ン ス を 持 っ て い る の で 比 較 的 容 易 に 使 う こ と が で き る 。 豊 富 な 機 能 を 持 っ て い る が , こ こ で は そ の 部しか使わない。 有効{乍図範囲は

2

4

.5cm

X

18cm

, 最 大 作 図 速 度 は

2

0

cm/sec

, ス テ ッ プ サ イ ス は

O.lmm

3

種 類 の ベ ン を 使 用することができる。 パ ソ コ ン 本 体 と は セ ン ト ロ ニ ク ス イ ン タ ー フ ェ ー ス を 介 し て 接 続 す る 。 プ リ ン タ も こ の イ ン タ ー フ ェ ー ス を 介 し て 接 続 さ れ る の で プ リ ン タ と

XY

プ ロ ッ タ の 両 方 を 同時に使用することはできない。 パ ソ コ ン か ら

XY

プ ロ ッ タ へ の 出 力 は プ リ ン タ へ の 出 力 と 同 じ 形 式 で 行 え ば よ い 。 す な わ ち , プ ロ ッ タ コ マ ン ド を ア ス キ ー コ ー ド で1つづっ送出すればよい。 1つ の コ マ ン ド の 最 後 に は

(CR

互主)

(復帰改行コード)をつ ける。従って

XY

プロッタ用のプロツタノレ チ ン は 全 部

FORTRAN

で 書 く こ と が で き る 。 た と え ば 点 (

1

2)

か ら 点 (4, 3)へ 線 を 引 く に は2つのコマンド

M100

2

0

0

(CR/LF)

建 員 力 ・ 竹 松 英 夫

D400

3

0

0

(じ支

/

L

F

)

XY

プ ロ ッ タ へ 送 出 す れ ば よ い 。 但 し こ こ で 点(a,β〉 (土左下隅を原点としその点からx方 向 へ

acm

y

方 向 へ

βcm

移 動 し た 点 と す る 。 こ の 働 作 を

FORTRAN80

で 実 現 す る に は

IX=lOO

1Y =200

WRIIE~(2 , 10)~1X ,

1Y

10~FORMAT (l H ~・ 1HM,

1

4

1H

, ,

1

4

)

1X=400

1Y

3

0

0

WRITE~(2 , 20)~1X ,

1Y

20~FORMAT (l Hu

1HD

1

4

, lH, ,

1

4

)

とすればよい 以下にここで使用したプロッタコマントを列挙する。

l

i

)

MOVE

コマンド

M

y

(CR/LF)

主 ,

y

O.lmm

を 単 位 と す る 原 点 か ら の そ れ ぞ れ

x

方 向, y方 向 へ の 距 離 で あ る 。 共 に4桁 以 内 の 整 数 でO壬 孟三五

2

4

5

0

,。三三

Y

五三

1

8

0

0

でなければならない。 ベンを上げて(主, '1)へ移動する。

l

i

i

)

DRAW

コマント

D

Y(CR/LF)

主 , '1は

MOVE

コ マ ン ド と 同 じ で あ る 。 ベ ン を 下 げ て 現在位置から(主, '1)へ線をヲ│く。 ~ii)

PRINT

コマンド

P

c

j

c

.

.

.

.

.

.

c

n (百

πF)

CIC2・E・"Cnで指定されるn個の文字をプロットする。Cj はアスキ一文字である。 ( i

v

)

MARK

コマンド

N

(CR/LF)

百で指定された特殊文字〔記号)をプロットする。百は 記号の番号である。

(

v

)

ALPHA SCALE

コマンド

S

(

C

頁疋F

)

プ ロ ッ ト さ れ る 文 字 , マ ク の 大 き さ を 指 定 す る 。 こ のコマントを送出した後,

PR1NT

コ マ ン ド で プ ロ ッ ト される文字の大きさは, O. 7X (百十1

)mm

となる。ス,

MARK

コ マ ン ド で プ ロ ッ ト さ れ る マ ー ク の 大 き さ は O. 4X

(ロ+

1

)mm

となる。

I

v

i)

ALPHA ROT

A

TE

コマンド Qfi (百疋F) 百は

0

,1,

2

3

のいずれかである。

PR1NT

コマン ド で プ ロ ッ ト さ れ る 文 字 の 回 転 角 度 を 指 定 す る 。 文 字 の 回 転 角 度 が90'X主になる。

(

v

i

v

AX1S

コマンド

(3)

FM.7用プロッタールーチンの作製

5

3

X,]5

q

, r C CR/LF) 座標軸を描く。]5=

0

Y

軸,

1

X

軸が描かれる。 司で指定された長さ CO.lmmを単位とする)毎に目盛線 を入れて Fで指定された回数だけ軸を延長す7る。軸の全 長は司xrxO.lmmとなる。 州 HOMEコマンド H CCR/LF) プロッタを初期化するo (jx) SPEEDコマンド Tfi CCR/LF) ベンダウン時のベンの速度を指定する。百は

o

~lO の 整数である。ベンの速度がfiX 20/10cm!secになる。使用 する用紙の紙質に応じて百を変える。 (x) NEW PENコマンド Jfi (CR/LF) 百は0,1, 2, 3のいずれかである。百=0とすると 現在持っているベンをベンストックへ収納する。 1~3 のときは E番目のベンを選択する。 マ イ プ ロ ッ ト ジ ュ ニ ア に ほ こ の 他 に も 円 孤 を 描 い た り,片カナをプロットしたり破線,鎖線などをプロット する機能があるが,ここて‘はそれらを使わない。 ここで作製したXYプ ロ ッ タ ー ル ー チ ン で は 上 に 列 挙したコマンドのみを使用する。

3

.

作製したプロッタールーチン 前章で述べたような環境では,いくつかの使用形態を 持つプロッタールーチンを作製することができる。 図

3

.

1

に示すようにいくつかのプログラムを作製した。

CG

が一つのプログラムになっている)

l

3

.

1

データの流れ(プロッタールーチン のモード〉 (i) FM-7で計算した結果を直ちにプロッタに出力す るモード。 (u) 計算結果を一旦フロッピーディスFにファイノレと して出力し計算終了後uv)又 は(v)のルーチンを使ってXY プロッタ又はCRTディスプレーに出力するモード。フ ロッピーディスクへの出力はX Yプロッタコマンドの 形とする。 凶 計 算 結 果 を 直 ち にCRT.ディスプレーに出力する モード。 制 フロッピーディスク に出力されたX Yプロッタ ーコマンドを読み出し, XYプロッタに出力するノレーチ ン。実際にはこのノレーチンを作製する必要はない。ファ イノレからX Yプ ロ ッ タ へ の 単 純 な 転 送 で あ る か らCP/ M-80の標準的なコマンドPIP(Peripheral Interchange Program)を使用することができる。 (ii)で、出力されたフ ァイノレのファイノレ名をABC.OUTとすると

B

>

A : PIP L-' LST: = ABC. OUT

により XYプロッタへ出力で、きる。

(

v

)

フ ロ ッ ピ ー デ ィ ス ク へ 出 力 さ れ たXYプロッタ ーコマンドを解読してCRTディスプレーに出力するノレ ーチン。 通 常 は(i)のモードを使うのがよい。しかし長時間の計 算 後 にXYプ ロ ッ タ へ 出 力 す る と き は

(

i

)

の モ ー ド で は 不都合が生ずる。 XYプロッタを長時間待機させておくとベン先が乾い てしまう。従ってXYプロッタを使うときは連続的に動 作させるようにするのが望ましし、。そのために(ii)と(iv)の モードを使うと具合がよい。すなわち結果をまづフロッ ピーディスクに出力して計算が終了した後, XYプロッ ターに出力する(ほとんどの計算センターではこの形態 で の みXYプ ロ ッ タ ー を 使 用 で き る ) 。 計 算 実 行 中 は XYプロッタの電源を入れておく必要はない。当然ベン にはキャップをかぶせて乾燥を防ぐことができる。 ファイルからXYプロッタに出力する前にまづ,CRT ディスプレーに出力し結果が妥当なものであるかどうか を手軽に確認することができる。すなわち

(

v

)

のルーチン に よ り フ ァ イ ル か らXYプ ロ ッ タ コ マ ン ド を 読 ん で CRTディスプレーに表示する。このプログラムはコンプ リートプログラムの形になっている。 プログラムのデパックの段階で、は(jiDのモードが有用で ある。この段階ではノ、ードコピーを必要としない事が多 いのでCRTディスプレーへの表示だけで十分である。 (i), (ii), uiDは利用者プログラムから呼ぶことができる サブルーチンパッケージの形になっている。 (i),(ii), uiD のいずれを使うときも利用者プログラムは全く同じでよ (i), (ii)は同一のプログラムて‘(i)か(ii)の 選 択 は 後 出 の PLOTSの引数によってきめる。 uiDはサフソレーチン名が(i),(ii)と同じになっている。(i), (ii)かむ)iの選択はリンク時に指定する。 次に図

3

.1

(

i

)

,(ii),

u

iDに含まれるサァソレーチンの仕様

(4)

5

4

秦 野 和 郎 ・ 葉

を簡単に述べる。

まづこれらのサフソレーチン名と引数を列挙する。

PLOTS (ND

NFILE

NU)

PLOT (X

Y

I

P

)

SYMBOL (X

Y

HEIGHT

IASC

THETA

N)

NUMBER(X

Y

HEIGHT

FN

THETA

N)

SCALE

(D

A

T

A

SIZE

N

K)

AXIS(X

Y

LABEL

N

SIZE

THETA

DMIN

DDEL)

LINE (XDAT

YDAT

N

K

J

L

)

LINMRK (HMRK)

AXSPRM(AXSTP

HEG1

HEG2

AIN1

AIN2)

FACTOR (FAC)

WHERE (X

Y

FAC)

NEWPEN

(I

P

)

SPEED

(I

SDEG)

DCOPY(IBUF

ICTB

ICTG)

引数は I~N で始まる変数は 2 パイト型整数,それ以

外 の 文 字 で 始 ま る 変 数 は4バイト実数である。但し,

IASC

N>O

のときは文字列,

NFILE

LABEL

は文 字列である。

以上

1

4

種のサブールーチンは使用するモードにより使 用法に若干の相違がある。

PLOTS (ND

NFILE

NU)

は 図 形 出 力 の 初 期 設 定 を 行 う 。 こ れ と 対 に な る の が

PLOT (X

Y

, 999)である。

PLOTS(ND

NFILE

NU)

が呼ばれて

PLOT(X

Y

, 999) が呼ばれるまで が

l

枚の図になる。従って図

1

枚について

1

回づっこれら のサフツレーチンを呼ばなければならない。

モード(i)の と き に は

PLOTS

の引数

NU

2

を与え る。

ND

NFILE

には何を書いてもよし、(無視される)。 モード(i

i

i)のときは

PLOTS

の引数はすべて無視される。

PLOTS

が呼ばれると画面を消去する。(i),(ii)il、ずれのモ ードでも

PLOT(X

Y

, 999)を呼ぶと計算を一時中断 し

RETURN

キーを押すと再開する。モード

(

i

)

のときは この聞に紙を取り換える。

NU

6

以 上 の 整 数 を 与 え て

PLOTS

を呼ぶとモー ド(ii)になる。このモードではファイノレを聞く。どのフロ ッピーディスクにファイノレを作るかを

ND

で指示する。

ND=

1

ならドライブ

A

ND=

2

ならドライブ

B

にファ イノレが作られる。作るべきファイノレのファイノレ名を

NFILE

1

1

文字で与える。たとえば

B:ABC. XYP

を 出力ファイノレとするなら

CALL PLOTS (2

'ABCC_"

.

.

.

.

H.-'~~XYP' ,

S)

と呼ぶ。サフソレーチン

PLOTS

の内部では, 建 助 ・ 竹 松 英 夫

CALLOPEN

(ふ,ABC~~~~~XYP' ,

2)

を呼んで

B:ABC. XYP

を聞く。 以降呼ばれるプロッタールーチンにより生成される

XY

プロッターコマンドはファイノレ

B:AB

C

.

XYP

に出 力されてし、く。最後に

CALL PLOT (X

Y

, 999) を呼ぶとサブルーチン

PLOT

の内部で

ENDFILE

,--,

S

を実行しファイノレを閉じる。

1

つの計算で、複数個の図を書くのが普通であるがこの ようなときはたとえば次のようにするとよい。

IMPLICIT INTEGER

*

2

(I

-N)

DIMENSION NFILE

(6)

ND= 2

NU=

S

MAI=500

ENCODE (NFILE

1

0

)

MAI

1

0

FORMAT (3HABC

I

3

2X

3HXYP)

CALL PLOTS (ND

NFILE

NU)

{(l枚目の図)

CALL PLOT (X

Y

, 999)

MAI=MA!+ 1

ENCODE (NFILE

1

0

)

MAI

CALL PLOTS (ND

NFILE

NU)

{

(

2

枚目の図)

CALL PLOT (X

Y

, 999) これにより

l

枚目がファイノレ

B:

ABC500. XYP

に,

2

枚目がファイノレ

B:

ABC501

.

XYP

に出力される。 図形出力でもっとも頻繁に使うのが

PLOT (X

Y

I

P

)

である。ほとんどの場合

PLOTS

PLOT

2

つで十分 である。 このサフルーチンを呼ぶとプロッタのベンが現在位置 から点(X,Y)へ移動する。単位はcmである。

IP

によ りベンの状態を指示する。

I

I

P

I

= 1

ならベンの状態は変わらない。

I

I

P

I

= 2

ならベンを下げて指定された点へ移動 する。従って直線が引かれる。

I

I

P

I

= 3

ならベンを上げて指定された点へ移動 する。

IP< 0

な ら 指 定 さ れ た 点 を 新 た な 原 点 と す る。

PLOTS

を呼んだ時点では左下隅が 原点になっている。

IP

=

0

ならなにもしない。

(5)

FM-7

用プロッターノレーチンの作製

5

5

I

P

= 9

9

9

とするとl枚の図の終了処理を行う。 どのような働作をするかは

(

i

l

(

i

i

l

, (i

i

i)の モートによって異なる(前出入 次に

SYMBOL (X

Y

HEIGHT

IASC

THETA

, N) は指定された点に(又は指定された点から)記号(又は 文字列)を描く。

X

Y

で点を指定し,

HEIGHT

で文字,記号の高さ,

THETA

で文字の回転角を指定する

(X

軸正の方向から 反時計まわりで単位は度)。但し,

THETA

0

.

0

9

0

0

1

8

0

.

0

2

7

0

.

0

のいずれか

t

こ限る。 角度の制限はマイプロットシュニア及び,

FM-7

D

i

s

p

l

a

y

Sub System

の制限に由来する。大型計算機で使 われる大型のプロッタールーチンはその中に文字フォン トを持っている。しかしパソコンではメモりの制約が大 きいのでここて、はノレーチン内に文字フォントは持たず, プロッタ や

D

i

s

p

l

a

ySub System

の機能をそのまま使 った。

N

の値により動作が大きく異なる。

N>O

のとき,現在位置からベンを上げて点

(X

Y)

へ移動し

IASCI

こ与えられた

N

個の文字を プロッ卜する。但し

X

Y

が共に

9

9

9

.

0

ならベン の移動は行なわず現在位置から文字をプロット する。

N<O

のときには点

(X

Y)

を中心として記号を プ ロ ッ ト す る 。 記 号 の 番 号 を

IASC

で 指 定 す る。又

X

Y

が共に

9

9

9

.

0

な ら ベ ン は 移 動 し な し、O

N

1

のときベンを上げて移動する。

N

2

のときベンを下げて移動する。 記 号 を プ ロ ッ ト し な が ら グ ラ フ を 書 く と き に は N=~2 とするとよい。

NUMBER(X

Y

HEIGHT

FN

THETA

N)

は数値をプロットする。

HEIGHT

THET

A

SYM-BOL

の場合と同じである。 ヘンを上げて点 (X,Y)へ移動して

FN

で与えられる 数字列をプロットする。但し

X

Y

が共に

9

9

9

.

0

のときは ベンは移動しない。 。三五

N

9

のとき

FN

の 小 数 点 以 下

N

位 ま で を プロットする。

N

O

の と き 整 数 部 と 小 数 点 の み を プ ロ ッ ト す る。 N =~ 1 のとき整数部のみをプロットする。

9

~五 N 三五一 I のとき整数部の

1

0

"

1

位までをプロ ツ卜する。

SCALE

AXIS

LINE

LINMRK

AXSPRM

はこ れだけを一組にして使用する。グラフを描くのに用いる。

LINE

が主たる働きをする。これらのサフソレーチンの機 能は複雑であるからここでは説明を省略する。

FACTOR (FAC)

はプロット尺度を変える。現在の原点位置からの距離が

FAC

倍される。

WHERE (X

Y

FAC)

はベンの現在位置,プロット尺度を与える。

NE

rpEN

(I

P

)

はベンの種類を変更する。

I

P

によりベンの種類を指定す る。

SPEED

(I

SDEG)

はベンの速度を変える。マイプロットジュニアではベン の 速 度 を

1

0

段 階 に 変 え る こ と が で き る 。 ベ ン の 速 度 が

ISDEG x 2

c

m

/

s

e

c

になる。使用する紙の種類によって 変えるとよい。このサブルーチンはモード(i

i

i

l

では無視さ れる。

HDCOPY

(I

BSF

ICTB

ICTG)

はモード(iii)でのみ意味がある。画面に表示された図をプ リンタヘハードコピーする。

XY

プロッタに比較すると 非常に雑な図になる。

IBSF

は作業領域で

2

0

9

パイト以上 の長さでなければならない。

ICTB

ICTG

は そ れ ぞ れ

1

2

8

1

2

6

とする。 さてモード

(

i

l

(

i

i

l

のサブルーチンは全部

FORTRAN

8

0

で書かれており, コンパイノレして

A :

PLOTSO. REL

というファイノレに入っている。モード(i

i

i

l

のサフノレーチン はほとんとが

FORTRAN80

で 書 か れ て い る が

1

0

行 程 度 は

MACR080

で書いた。これらはコンパイノレされアセン ブノレされて

LIB80

に よ り 結 合 さ れ て

A

GRAFM7

.

REL

というファイノレに入っている。モード

(

v

l

のプログラ ムは

FORTRAN80

MACR080

て、書かれておりコンパ イノレ,アセンブノレ,リンクされて

A :

GRPL 7

.

COM

と いうファイノレに入っている。 プロッタ←ノレ←チンを呼び出す利用者プログラムが

B: SAMP. FOR

というファイノレに入っているとすると

(

i

l

l

i

i

l

のモードの操作手順は次のようになる。

B>A :

F80

,--,二

SAMP

B>A :

L80~↓ SAMP,

A: PLO

T8

o/S

A: FOR

LIB/S

SAMP

/N

/E

B>SAMP

ス, (jii)のモ ドでの操作手順は次のようになる。

B>A

:

F80~=SAMP

B>A

:

L80~SAMP ,

A: GRAFM 7/S

A

FORLIB/S

SAMP

/N

/E

(6)

A:PIF' C口N,~B , F:LTE81El. FOF,CNl 1: C~戸 2, C半半¥¥挙半半半半 F'LTESl ¥¥ F'LTE81El 半¥挙半半半半半半半半¥¥~挙挙キ挙半己評¥¥キ¥¥ 3, C半 》 斗, C¥ PLOTTEFi: TEST (1) 半 5: C¥ 半 らミ E苦手¥¥¥¥¥¥¥¥ ¥¥ ¥¥半導¥¥¥¥¥¥¥¥羊¥¥¥¥¥¥¥¥¥¥¥¥ 7, F'RロGF:A刊F'LTESl

日, I門PLICIT INTEGER本2C:I-N)

9: INTEGEF:*l NFILE1

1(;': F~EAL :t4F'I, STEF', XF', YF', FACT, SCAしX,SCALY,SHIY

11: 1 , XF'し, YF'L, XDAT, YDA了

12: DIMENSION NFILE1(11)

XDATC103)

YDATC1Co3)

13: DATA F'I / 3.14159 26535 I

14: MAI=l,n

15: ENCODE (NFILE1

110日 )MAI

1ι: 110(;' FORMAγ(3HRL口, I3,2X,3HOU丁、

17, CAしし口F'EN(5,'RLTES1I1DAT' ,2)

18: READ (5,1110) NU1, ND1, FACT

19: 1110 FORMAT(2I5,Flの.5)

20

C 一一-SIN

COS

21: CALL F'L口TSCND1

NFILE1

NU1)

22: CALL FACT口F:(FACT)

23: CALL F'LOTCO.O

u.O

3)

24: CALL PLOT(18綱O,':).f.), 2)

25: CALL PL口T(1包.c'

18.()

2)

26: CALL PLOT((~ 圃 0 , 18. (:0, 2)

27: CALL PL口 T(O.r) ,~?":), 2)

28

CALL NEωF'EN(2)

29: CALL SY門B口L(4.(), 16.0, 1.(),' SIN(X)', O. (), 6) 3~?: CALL SY門日口LC11.0,2.0,1贋(), 'C口S(X)',180.り, 5) 31

CALL NEωPEN(3) 32: CAしL SYM80LC9.0,8.0,凸 .5,'SIN(X)' ,90.0,6) 33: CALL SY門旬口L(15.0,17司り, 0.5,'C口S(X)' , 27'~' 圃(), 6) 34: CALL PLOT(2.':),2.f.), -3) 35: NINT=lC :..) 36: STEP=2. 0本F'I/FL口AT(NINT) 37: SCALX巴14.0/(2開。*F'D 38: SHIY =7.0 39: SCALY=7.(:l 40: NINT1=NIN丁+1 41

CALL NEωPEN(1) 42: CALL PLOT(O.(),).C',3) ,

43: CALL F'LOT(C.. 0

2. 0本8CAしY

2)

44, CALし PL口T((o:.0,SCALY,3)

45: CALL F'LOT(14.0

SCALY

2)

46: CALL PLOT(14.(;' ,(~.(), 3) 47' CALL PL口T(14.()

2.()本SCALY

2) 48

D口 1120 11=1

NINT1 4ヲ, XP~8TEP 本 FLOATCll-l) 50: YP=SIN(xP) 51

XPL~XP本 8CALX

52: YPL=YP本8CAしY+SHIY

53: IPEN=2

54: IF(I1.EQ.1) IPEN=3

55, CALL F'L口T(XPL,YPL, IPEN)

56: 112':) CロNTINUE 57: D口 1130 11=1

NINT1 58, XP~STE F'本 FLOAT01- 1) 59: YP=C口S(XF') 60

X F' L~XP*8CALX 61: YPL=YP*SCALY+SHIY 62: IF'EN=2 63: IF(I1.EQ.1) IF'EN=3

64, CALL F'L口γ(XPL,YPL, IPEN)

65: 1130 C口NTINUE 56, CALL F'LOTι ,:). ( (,)).c"99'3) 67

C --- C口S:tSIN+巳08一一一 68

D口 1140 11=1

NINT1 69: XP認8TEP本FLOAT(I1-1) 70= YP=COS(xP)本SIN(XP)+CQS(XP) 71

XDA T( II)~XP 72: YDAT正II) ~yp 73

1140 C口NTINUE 74

MAI~刊 AI+1 75: ENCODE (NFILE1

11l?0)門AI

76' CAしL PLOTS CND1

NFIしE1

NU1)

ア7, CALL PL口T(2司0,2.0,-3)

78: CALL SCALE(XDAT,20.(),NINT1, 1)

79: CALL SCALE(YDAT, 14.0,NINT1, 1)

80: CALL NE凶PEN(2)

81, CAしL 8YMB口L(().5, (). 5, ':). 8, 'COS(X、本SIN(X)+COS(X),

82: 1 ,O.(),2())

83

CALL NE凶PEN(3)

84: CALL AXIS((). 0, O. 0, , X-AXIS' ,6,16. (),の .0

85: 1

XDAT(NINT1+1)

XDAT(NINT1+2))

86: CALL AXSPRM(1.C), ().21,(), 28,().6, 1.1)

87, CAしし AXIS(('司':), O. ., 'Y-AXIS' r ); -6,14. (), 9(). ,:)

88: 1

YDAT(NINT1+1)

YDAT(NINT1+2))

89

CAしL NEωPEN(l)

9f.): CALL LIN門RfUO.5)

91, CAししし INE(XDAT, YDAT, NINT1, 1, 1'~' , 0)

92: CALL AXSPRMC2.o,().42,0.56,0.4,1.r.))

93: CALL AXIS((). (), 14刷。, , CQS (X) * ( 1 ':)+S 1 N (X) ) , , -19

94: 1 ,16.0, O. 0, XDAT(NINT1+1), XDAT(NINT1+2))

95: CALL AXSPR門(2.(),0.42,O闘56,()‘ 6,1.2)

ヲ6: CALL AXIS (1 6.Ç."~, .ç,, 'y',0, 1斗 .(),9r.>.C. 97: 1

YDAT(NINT1+1)

YDAT(NINT1+2)) 98, CALL PL口T(().(), (). c., 999) 99: ST口P 100: END 夫 このように

XY

プロッターに出すか

CRT

デ ィ ス プ レ ー に 出 す か は リ ン ク 時 に ど の ラ イ フ ラ リ を 指 定 す る か に よ りきめることができる。 モード(jj)により作製したプロッターファイノレを

CRT

デ ィ ス プ レ ー に 表 示 す る に は

A>GRPL 7

とタイプし,プロンプトに従ってファイノレ名をタイプイ ンすればよい。 以上のように, こ こ で 作 製 し た プ ロ ッ タ ー ル ー チ ン は 非常に使用しやすいものであると思われる。

4

.

使 用 例 英 松 動・竹 建 郎・葉 和 野 秦

5

6

4

.

1

に簡単なプログラム例を挙げる。このプログラム を動かすとモード

(

i

)

で は 図4.2, 図4.3が,モート

i

ゅでは 6.4日 ¥sl ¥sl 巴a ._,. ‘ '.4園Fー唱 日 N . 日 自由.日 I

(Xl+COS(Xl

円 。

x 5_60

COS(Xl

本(1.回

+SIN(Xll

1.6日 3.2日 4.8日

.a困 4.00

O

J

3.20 X-AX l 5 図4.3 図4.2

(

X

)

'

.

4

固 fl.目白 血

iCOS(Xl*

":.1 -j,'目 o_ao 図

4

.

1

(7)

5

7

FM-7用プロツタ レノ チンの作製

J

¥

λ

r

"

/

1

[/¥¥i

図5.1

6

4

E

B

H 同 川 山 川 川 げ a m 川 川 a m M U ﹂ 山 川 町 I R 山 首 l l i 同町同凶 v ・ 1

l H M n γ l i a 川 崎 f

4

.

:

:

:

1

3

図4.4 h l 円 円 旨 ム 引 っ ﹄ ト υ i i J

f

y l - - E

+

1

1

1 H H R L J h -E 山 h﹁ ム

- L

-1 E 門 山 刊 い国 -川 円 川 ・

川 雄 d y 聞は円吊明品川UE 由 旬 判 的 w ,傾川皆川川目川温創出, m 閉 曜 日 w1ER 閉 園 田 W 1

m

明 寸 ! E t 明 l l 的 W 同 V A F U W ﹄ lJRJ 図5.3 図4.5 図

4

.

4

.

4

.5

が得られる。 図

4

.1

2

1

行目から

6

6

行目までが図

4

.

2

をサ

7

6

行はから

9

8

H

までが図

4

.

3

を描く。

1

8

行自で読むデータをここで はNU 1に8. ND 1に2. FACTに1.0を与えた。

5

.

応 用 パソコンヒで動くプロツタ ノレーチンができたので試 みに名古屋大学大型計算機センタ でライブラリ プロ グラムとして使用されている等高線を書くプログラムと 立体図を書くプログラムとをFM-7上で動かしてみた。 プログラムにわずかの修正が必要であったが大型計算機 で 使 わ れ て い る プ ロ グ ラ ム が ほ と ん ど そ の ま ま の 形 で FM-71::で動く。

(8)

58 秦 野 和 郎 ・ 葉 建 員 泊 ・ 竹 松 英 夫

図5.4 図5.7

図5帽5 図5.8

(9)

FM.7用プロッターノレーチンの作製 59 図5.10 図 5.1~ 図 5.5は f(x, y)= (X2_1)2+ (y2_1)2_1 Ixl孟1.5, Iyl壬1.5 の等高線と立体図である。図5.2には更に等高線と直交す る線が書き加えてある。(場が電界をあらわすならこれは 電気力線をあらわす) 図 5.6~ 図 5.7はモード(iiiJでの図 である。 図5.8~ 図 5.10 は

cosγsmr

f(x, y)=ーァ」十ーヂ主 11 1.2 +~m

r

3

-

r

3

c

o

s

r

3

r,'

(

fl==

ι

町 日

'v

向 向

F

5

5)2+(

ア舛川九

2斗引+(

r

ら2

=

v

"Cx+l

、戸

r

3

=

v

"

(x-15)2+y2 Ixl:豆15

Iyl孟15 の等高線と立体図である。これらの図を1枚描くのに必 要な計算時間は30分位であった。 6. むすび 計算機はハードウェアだけでは何の役にも立たない。 豊富なソフトウェアとそれらを使いこなす技術が伴なっ て始めて有用な道具になるのである。パソコンも小さい とは言え計算機であるから同じことが言える。ハードウ ェアについて言えば

8

セットパソコンですら15年前の中 型機程度の能力は持っているように思われる。しかしそ れが15年前の中型機と同じ程度に有用に使われているか どうかは疑がわしい。 8ピットパソコンといっても基本 ソフトウェアはCP/M-80,FORTRAN-80, COBOL-80 等々,かなり豊富になってきている。これらは使い慣れ ればノミソコンの有用性を大きく高めてくれるが十分に使 われてはいないようである。価格が高いということが大 きな理由かも知れないがむしろこれらのソフトウェアの 持つ潜在的な能力が正しく認識されていないのではない かと思う。 本 稿 に 例 示 し た 等 高 線 , 立 体 図 は 筆 者 の l名 が F ACOM230-60としづ大型機で 12年前に書いたものであ る。これがそのまま安価な8ピットパソコンで処理でき るようになったことに驚きを禁じ得ない。これだけの能 力を持つパソコンを手近かに使えるのはありがたい事で ある。 8ピットパソコンでこれだけのことができるのである から16ピットパソコンではもっと使い易く豊富な機能を 持つプロクラムを作れるであろう。ここで作製したプロ グラムを, 16ピットパソコン MULT

1

l

6用に書きかえる ベく現在検討中である。 参 考 文 献 1 )グラフテック社:マイプロットジュニア取扱説明 書, 1983 2 )富士通:FM-7ユーザーズマニュアノレシステム仕 様, 1982 3)富士通 FM-7 CP/M-80操作手引書, 1982 4)名古屋大学大型計算機センター:図形出力の手引, 1977 ( 受 理 昭 和59年1月17日)

図 5 帽 5 図 5 . 8

参照

関連したドキュメント

に着目すれば︑いま引用した虐殺幻想のような﹁想念の凶悪さ﹂

カウンセラーの相互作用のビデオ分析から,「マ

C)付為替によって決済されることが約定されてその契約が成立する。信用

次に我々の結果を述べるために Kronheimer の ALE gravitational instanton の構成 [Kronheimer] を復習する。なお,これ以降の section では dual space に induce され

ここで, C ijkl は弾性定数テンソルと呼ばれるものであり,以下の対称性を持つ.... (20)

現行の HDTV デジタル放送では 4:2:0 が採用されていること、また、 Main 10 プロファイルおよ び Main プロファイルは Y′C′ B C′ R 4:2:0 のみをサポートしていることから、 Y′C′ B

モノづくり,特に機械を設計して製作するためには時