4 .
技 術 解 説市販ファイルコンパータ
(N88‑BASIC <=> IBM)
の 使い勝手とそのサポートプログラム工学部
内 田 勝 徳 金 丸 邦 康
1) はじめに
パーソナルコンビュータは、近年、高性能、低価格化し、各研究室に於てもスタンドアロン として一般の技術計算などに大いに利用されていると思うが、そのデータの量が増大し、また より高速な処理が必要になるとやはり大型の計算機には及ばない。そこで、大型計算機に電話 回線を利用してデータを転送し処理するといった方法が考えられ(文献(1),
(2))
、著 者らもPC‑9800
シリーズ用のTSS
インテリジェントプログラムを、移植して活用して いる(文献(3 )
)。しかしながらこの方法は、そのデータ転送速度が1200 (bps)
で あっても大量のデータになると時間的にかなりのロスとなる場合があり、また混線やノイズに よる文字化けも起こり得る。さて本学情報処理センターの特殊端末室には光学読み取り装置(OCR)
が設置されており、8
インチフロッピーディスク上のデータが入出力可能である。今回の報告は、この入出力装置を用いて大量のデータを高速に転送する場合、最も普及率の高 いと思われる
PC‑9801
用のファイルコンパータ(市販品)だけでは不十分な点を補いプロック形式をサポートさせるためのものである。
2)
プログラムの説明先ずこれから述べる変換手順の主要部は、
PC‑9801
のN88‑DISK BASIC
のファイルをIBM
フォーマットに変換するための市販のファイルコンパートプログラム(文 献(4)
一 (6)
)に委ねられているが、そのプログラムはファイルのブロック形式まではサ ポートしておらず、そのままこれに依ってコンパートされたIBM
ファイルをOCR8
インチ デ川スクにより転送すると、256byte
のレコードと見なされそのファイルが非圧縮(即 ちディスケットの1
セクタに対してl
レコード)の場合は、そのレコードの後ろに256
byte
に満たない分だけ空白文字が入り、それを大型計算機は1
行とみなす。また圧縮ファ イル(即ち25 6
by t e
単位でファイルを無意味に区切る)の場合は、大型計算機のl
行はl
セクタ分即ち無意味に区切られて構成する。これらの事より疑似的にレコード長を80
のプロック形式を成立させるために、下記の変換図にみられるように、
2
つのプログラム(リスト1
、リスト2 )
を、この市販のコンパータの前処理、後処理用として作成した。‑37 ‑
データ
1 N 8 8 F O R
門A T
一一一→ データ
1'
一一一→ データ2
一一一ー+ データ2' L A B E L C f l A N G E D 1 B M F O R
門A T
"IBMfrm. bas"
リスト
1
市販のファイルコンバータ
"OCR. N88"
リスト
2
図1
データ変換リスト
1
はファイルコンパートの前処理用としてのプログラムである。データに限らずソー ステキストの転送も可能にするため、変換したいBASIC
ファイルは、1
行80
文字以内で ある事を前提とし、80
文字に満たない分だけ空白文字を付加し、1
行を80
文字丁度のBASIC
ファイルを作成し、これを1
レコードとみなす。と同時に行数をカウントし、3
行 を1
組としてこれを1
ブロックと見立てる。即ち、l
ブロック2
.110byte
となるが1
セク タ25 6 b y t e
なので残りの16byte
にヌルストリングスコード(アスキーコード&H 0 0 )
を付加し、これをBASIC
ファイルとして1
セクタ内に格納する。以後これをフ ァイル終了まで操り返すが、最終行で1
プロック使い果たさなかった場合は、残ったレコード+16byte
分だけ空白文字(アスキーコード:&H 2 0 )
を入れ1
セクタを作成する。以 上で疑似的に1
レコード80byte
、1
プロック240byte
のBASIC
上のデータファイルが完成する。
リスト
2
はファイルコンパートの後処理用のプログラムである。IBM
ディスクフォーマッ トに於いては、通常のデータ記憶領域の他に、トラックO .
サーフェスO .
セクタ8‑26
及 びトラックO .
サーフェス1.セクタ1‑16
にデータセット識別名や種々の属性表示のため のデータセットラベルを有している。本プログラムはそのラペル内の属性を変更して、ブロッ ク形式をサポートしようというものである。8
インチディスケットの特徴として、2D
一2 5 6
(両面倍密度1
セクタ256byte)
であってもトラックO .
サーフェスO
のセクタお
は全て
128byte
で成っていて、DSKI$
のコマンドで読み出すと2
つのセクタを同時 に読む事と、トラックO
でデリーテッドデータ(以下、DDAT)
を読もうとするとエラーに なる事である。従って、トラックO .
サーフェスO
では2
つのセクタのうち、一方がDDAT
ならばDSKI$
で読めない事に成る。そこで、その場合は2
つの組み合わせを換える事で可 能となるがDDAT
に挟まれたラベルは読むことができない。しかし、一度IBM
ファイルに コンパートしたファイルを消さぬ限り上記の事態は起こらず、また今回の場合はデータを変換 してラベルを変更し、転送するためのものだから、通常の使用には差し支えないと考える。デ ータセット識別名をそのデータセットラベルのディスク上の位置を示す情報と一緒にメモリに 格納し、iデータセット識別名の入力を待ちその識別名の現在の属性をリストアップする。(但 し、ここでリストアップされるラペルは、OCR
のユーティリティーに標準を合わせ同じ出力 にした。)ここで変更すべき属性は、ブロック長、レコード属性、レコード長、交換タイプ標識、デー タセットの終わり
(EOD)
の5
ケ所で、ブロック長は..240
..レコード属性を..B"
(ブ ロック化、非スパンレコード)、レコード長を..0 080
..とし、レコード属性の変更に伴っ て交換タイプ標識は"E" (E
タイプデータ交換形式)に、また今回使用した市販コンパート プログラムはEOE
の次のセクタがEOD
となり、転送の際に余分な1
プロック分が付加され る事になるので、EOD
はEOE
と問ーのセクタとした。これらの変更が許可されたら、現状 況はアスキーコードでの処理なのでこれをエピセディク(EBCDIC)
コードに変換後(こ のコード変換は、英大文字,数字,数記号のみのサポート) 1BM
ディスケットのデータセッ トラベルに格納され、変換後の属性を再出力して完了する。なお、リスト2
のアスキーコード とエピセディクコードの変換は、文献(7)
を参考にした。また、本グログラムは、プロック 形式のサポートのみにとどまったが、OCR
のユーティリティーによらずパーソナルコンビュ ータ側で種々の属性を変更する将来の拡張のために(例えば、バイパスインデックスを消す 等)都合の良いように19
コの変数が用意されている。3)
操作方法i
)先ず、,1 B M
fr m. b a s
..を起動し (Put your source disket in ASCII code in
tJ:2 )
のメッセージに対してN88DISK‑BASIC
のアスキーファイル(参照:図2
データ1)をドライブ2
にセットし、
(Are you ready?)
にリターンキーで応答する。するとファイル名が出 力されるから変換希望のファイル名を入力する。この時、デバイスは(2
:)となっているの で単にファイル名だけを入力する。(Converted
fle name is l:WORK.(asc))
のメッセージQ d
nd
d
で終了しドライブ
1
に'WORK'
の名のファイル名が作成された。(参照:図3
データl ' )
i )次に、市販のファイルコンパートプログラムを実行し
IBM
フォーマットのファイル を作成する。(但し、この時必ず圧縮ファイルで、なければならない。)変換後のデータセットラペルを図
4
に示す。i
)最後に、'OCR. N88'
を起動する。実行が始まるとデータセット名をリスト アップするから(参照:図5
)、その中から変換したいファイル名を入力する。ファイルが存 在するとその属性を表示する(しなければ、再びファイル名の表示) (参照:図6 )
0 '1 s
t a 1 1 r
ig h t ?
'のメッセージが出るので、変換の時は、リターンキーで応答 する。(リターン以外で、ファイル名の入力待ち)変換後、確認のため再び属性を表示し( If you want to end , type < RETURN
>Otherwise , key in< Any key
>.のメッセージが出るので、終了する場合はリターンキーで応答すると、
(Completed!J
が表示されて終了する。変換後のデータセットラベルを図
7
に示すd
尚、システムの変更に伴い
OCR
によりデータを転送する際に必要なコマンドが有るので記 しておく。ALTDSD
データセット名UACC (UPDATE)
詳しくは、センターパンフレット(文献(8)
)を参照されたい。4 )
おわりに本プログラムは、パーソナルコンビュータでいったん入力した犬量のデータを、大型計算機 で処理したいユーザーのためのもので、データ入力の重複化を避けることができる。既発表の
TSS
インテリジェントターミナルプログラムと併用することにより、効率的なデータ処理が 可能となろう。本プログラムの場合のように比較的安価な市販ソフトには、機能面において不 満な点が多少あるが、適切なサポートプログラムを作成し付加することにより、使い勝手は格 段に向上する。本報告が、パーソナルコンピュータと大型計算機を同時に利用して、データの 大量処理を行ないたいと考えているユーザにとって、寄与するところが多少ともあれば幸いで ある。参考文献
(1)泉、小山、山田 「マイクロコンビュータによる
FACOM M‑180IIAD
へのフ ァイルの送信および受信について」センターレポート第1 号 (980)
( 2
)清木、芳本rpC‑880 0/PC8 0 0 0
シリーズによるテキスト編集および、‑40 ‑
TSS インテリジェントターミナルのためのプログラム J センターレポート第 3 号 (1 983)
( 3 )金丸 fPC‑9800TSS インテリジェントターミナル用プログラム J センターレ
ポート第 4 号 ( 1 983)
( 4 )システムソフト 「ファイルトランスレータ 98 ユーザーズマニュアル」
( 5 )管理工学研究所 「ファイルコンパータ /9800 マニュアル J
( 6 )ソフト情報編集部 「共通 OS ワークショップ、機種の違い、応用ソフトの違いを突き
破る小道具」 ソフト情報 1 984 年 9 月(第 3 巻第 9 号)
( 7 )石村 fN E C P C ‑9 8 0 1 活用研究 =その 3 PC‑IBM データ交換」 マ
イコン 1 983 年 9 月号
( 8 ) 長崎大学情報処理センター「データセットの管理について J 昭和 59 年 8 月
IBM diskket Surface 0 Track 8 Sector 6
FORd5553E551700000 2
噌CI‑‑C4ClFE74400
E09DDDC230D580000 ‑4D0005CE04F64400 D403330D960B70000
‑ n u d
噌
F
L F
U F
﹂
R d A
‑ z
﹁
U
﹁L n ‑ z
R U E ‑
泊地
‑ 8
・2 n u n
u
C108EC2C9B3550000 ‑C4645C5D6EFF4400
B90222E1651BB5000
‑ n u
凋 抽
E p
u p ‑ v
F
﹂凋品
τ
円 し
P H
F
﹂
F
﹂
泊
‑ E
a u ‑
且
凋
‑ z
n u n u
A H
司
f n u n D F
巳
F L
' l F
巳
n u
n D a ‑
‑ n u R
J n u n
u n u n
u
一‑
﹁﹂
必品
τ R U A
‑ A R .
u p
﹂﹃
︐ 凋
‑ z
c u n u
円
F
E l
n u
a
噌n u n u
96oil‑‑D704918D000 =υ4CCC4C4CDF45400 8900EEMEnu006605500
‑ n u s
‑ A ‑ z
守 ' ヮ︐必値冨凋品司
F
T 4 ‑ n
U F U
円
F
円r '
A n
u n
u
770D45600D6B18D00 ‑D45CCC445C6F・4000
R u
n u
R U
F L
n u
n u
n u
n u
n u
n u
n u
n u
a u
n u
ヲ
' n
u n u
‑41544444F47CFDOO
R d
n u
n u
n D
n u
n u
n u
n u
n u
n u
n U
F U
n D
・ 1 n
O
円
F
n u
‑ a n u τ n U F O a a τ
必性凋怜
A
岨z a ‑ F
r a u
宮 司
︐ 戸 む
F r n υ
司
d
n u
a ‑ n u
n D R d
n U
向
u n
u n u n
u ‑ ‑ n
u a u τ
n u n O
巧
d
F D
n u
‑4EF44444FFC7CE10 304000005BODE8200
‑
‑ m
崎
n u
s τ a
骨 組 幽
τ A
・
3 A
値
τ ・
E P O F
F
司
︐ 句
'
P O
F U
n u
n u
ヲ 白
n u ・
4
・ n
u n u n
u n u n
u n u n
u ‑ ‑ n
u R d n
u n u
泊 宅 で
10440005DDOODE050 ‑4D444440FF6C74C0
内U
4 F
巴
﹁
A
幽﹂Z A
噌凋
M E
' a R
叫
A
噌凋値2 8
噌 ヲ 'ヲ
'
4 ・
n u n u
n u n U
必 且
τ '
i n u n
u n u n
U
内
d
n u
n u
n o
n D
n o
n u
P 3
n u
‑ s u T
F U F L
d
怜
a u
宅
A
噌n u F L
A
噌
a ‑
F L P O
F L 8 a
τ F b n
u
••••••••••••••••••••••••••••••••
‑ ‑ ‑ 一
‑ ‑ ‑ ‑
‑ ‑ ‑ ‑
‑ ‑ ‑ ‑
n u
1 ?
・勺
J V
A ‑ J D
R U
司
F
a u
n 3
A H
R u
p u
n u
E U
E I
図
2 デ ー タ 1
‑4 1
ー01 23456789ABCDEF PROGRAM
DUMMY RE
AD (5.*) A.B.C D=A+B+C E=A*B*C F=(A+BI*C
G=A
鈴【B+
Cl WRITE
(6.100) D
,E
,F 100 FORMAT ( 1 H ・ . D= • , F ' 10 .5 , 5X
,