>  >  >  >  >  >  >  >  >  >  >  >  > B A N N E R Ver.1.1 1990/02/24 #60 Oh!石  <  <  <  <  <  <  <  <  <  <  <  <  <  いわゆるバナーです。指定のファイルまたは文字列を拡大(花文字)して画面に表示 します。  この手のプログラムはUNIXに標準で付いてきます。私は大学の研究室で住友の Ustationと日本電気のEWS−4800(両方ともCPUは68020だった りする)を使う機会がありましたが、両方ともこのバナーが付いていました。仕様や使 える文字に若干の違いがありまして、いわゆる標準仕様なんてものはないんだというこ とで、このS−OS用のバナーは私の独自仕様となっております。  なお、Jコマンドによる実行はできませんので、必ずRUN&SUBMITの拡張を 行ったSWORDで使ってください(まぁこのドキュメントをオンラインで読んでいる 人は心配ないですが)。 *** 主な特徴  UNIXの本物ではパラメータに指定した文字列のみを花文字にできるのですが、こ のプログラムは約9Kバイトと大きく、ロードに時間がかかるのと、S−OSのバッチ ファイルにはECHO OFFがないので、ファイルを読み込んでその内容を表示する (つまりは花文字TYPE)ようになっています。  また、様々なスイッチにより、構成文字の変更やプリンタへの出力も可能になってい ます。 *** 使い方  コマンドラインより、次のような書式で入力してください。    # BANNER:ファイル名/スイッチ・・  表示させるファイルはあらかじめWINERなどのエディタで作っておいてください 。スイッチを全て省略すると、40桁モードのときは8文字、80桁モードのときは 16文字が5×7ドットのフォントで一度に表示されます。文字列の長さが8文字又は 16文字を越えるときは、次の行に続きを表示します。  スイッチは、次の6種類があります。 ¥ ・・・ MZなどでは¥は\ですし、SWORDの最初のアスキーコード 表でも\になっているのでこのプログラムも標準では\です。しか し、/¥とすることで\が¥に変わります。MZなどでは、/\と 指定します。 C ・・・ 標準では花文字の構成される文字は′*′なのですが、例えば /C%とすることにより′%′で花文字が構成されるようになりま す。また、′ ′(スペース)を指定すると表示される文字のキャ ラクタがその花文字の構成文字になります。 K ・・・ X1などではカーリーブレイス(′{′)が使え、SLANGで 文かっこに用いるとC言語みたいでかっこいいのですが、そのよう なファイルをTYPEすると他機種では別のキャラクタに変わり、 正しく見れません。/Kを指定すると′{′が見れるようになりま す。 M ・・・ 1行だけしか表示しないのにファイルを使用するのはもったいな いので、このスイッチを設けました。これに続く文字列を花文字に します。なお、このスイッチの後は全て文字列とみなされるので、 文字列に続くスイッチは無効になります。もちろんファイルの指定 も無意味です。 P ・・・ 花文字をプリンタに出力します。制御コードなどは一切出力しな いでそのままプリントアウトします。普段使用しているプリンタに 合わせて次の3種類のスイッチから選択してください。 P0 ・・・  80桁(16文字) P1 ・・・ 136桁(27文字) P2 ・・・ 160桁(32文字) S ・・・ 正直言いまして、この花文字は見にくいです。それは、できるだ け多くの桁と行を稼ぐため、文字同士の間を詰めて表示しているか らです。このスイッチにより、文字と文字との間にスペースを入れ ることができます。必要に応じて次の3種類のスイッチを使い分け てください。 S0 ・・・ 桁ごとにスペースを入れる S1 ・・・ 行ごとに   〃 S2 ・・・ 桁と行ごとに 〃 当然のことながら、このスイッチ(特にS0とS2)の使用によ り1行に表示できる文字数が減りますので、メッセージ作成の際に は注意してください。  このプログラムの使い道は、なんといってもAUTOEXEC.BATに組み込むこ とでしょう。UNIXでもたいがいは起動時に読み込む′.login′または終了時 に読み込む′.logout′(両方ともバッチファイルです)に組み込んで使用して いるようです。起動時に派手なメッセージで立ち上がるSWORDも悪くないでしょう ? *** プログラムについて  やっと(と言っても2ヶ月前だが)SLANGが手に入ったので、このプログラムは SLANGで記述しています。一応万人向けなので、カーリーブレイス′{′は使わず ′[′を使っています。プログラムのほとんどが文字データで、メインは後ろの方にあ ります。スクロールしていくのがめんどうでしたら、main関数は1330行目付近 にありますので、エディタでもってジャンプしちゃってください。  文字は、気に入らなければ変更してください。といっても、そんな気にはならないと 思います(おっと自信過剰)。というのも、文字のデータはPC−1251から戴いて きたからです。著作権の問題が気になりますが、だいじょうぶだとおもいます。スイッ チも、例えばPスイッチは縮小印字に対応していないので、バンバン改造してください 。なお、SLANGはファイル入出力ライブラリの拡張のされているものが必要です。 *** 思い当たる改良点  改良しようと思ったことを発表前に全部やっちゃったので、ここに書くことがありま せん。しいて言うなら、漢字への対応でしょう。しかしこれは機種が限定されたり機種 ごとの対応の方法が違ったりしてたいへんです。でも実現できれば漢字どころかグラフ ィックも持たない機種での漢字の表示が可能になるわけですが・・・。 *** さいごに  発案から最初のドキュメント作成まで1日でやっちゃったもんですから、ちょこちょ こボロがあると思います。まぁ、ものが暇つぶしプログラムですから、肩ひじはらない で気楽に作ってしまいました。SLANGの参考プログラムと思ってやってください。  SLANGでコマンドラインからのファイルを受け取るには、mainの先頭でGE TREG()してFOPEN(0,^DE,0)すると一発でオープンできます(但し エラーチェックを除く)。SLANGはとっても簡単です。気楽にチャレンジしてみて ください。  ちなみに、本物のバナーは横10文字しか表示できず、もちろん文字列はパラメータ から指定するものしか受付けられません。間にスペースが入ると、そこが区切りと判断 され改行します。スペースを入れるにはダブルクォーテーションでくくる必要がありま すが、このためにダブルクォーテーションは表示されないようです。その他にもフォン トのないキャラクタがいくつかあります。スイッチなぞはひとつもありません。結果的 に、このバナーは本物を超えた超強力バージョンとなってしまったのです。  また、UNIXによってはBANNER7というバナーがあります。これは普通のバ ナーの7倍の大きさ(最大は16倍くらい)が得られるものですが、これだけ大きいと もはや画面の許容量を超えてプリンタ専用となっています(但しプリンタへはリダイレ クションによる)。  なお、このプログラムはPDSです。改造していいものができたら、S−OSUCに 送ってください(私は、画面中央を横にスクロールするバナーを期待している)。その ときには、原作者として私の名前を忘れずに。 #60 大石伸彰 (Oh!石) 参考文献 SLANGコンパイラ Oh!X ′90.1 SLANG用ファイル入出力ライブラリ Oh!X ′88.10 SLANG用リダイレクションライブラリ Oh!X ′89.12 (ファイル入出力ライブラリのエラー出力について、こちらのソースリストを 読む必要あり) Ustationマニュアル 基本コマンド編 住友電工 EWS−4800マニュアル 日本電気