【公式】スペースコブラ 第1話「復活!サイコガン」”SPACE ADVENTURE COBRA” EP01(1982)
アニメ『スペースコブラ』(1982)
当時夢中になっていたアニメの一つです。夢中になった理由の一つは、当時流行っていたルービックスネークのように形が変わるタートル号だったり、車がロボットに変形するサイコロイドだったり。まあ変形するものにすぐに目がいってしまう子供時代を過ごしていたので、まんまと玩具メーカーの策略にハマりながらアニメをみてたわけです。コブラの一番の魅力はサイコガンで間違いないのですが、欲しかったですタートル号。
 左手のサイコガンは、なんと曲がるんです。アンジェリーナ・ジョリー主演の「ウォンテッド」を見た時、サイコガンを思い出しました。サイコガンは曲がることが一番の魅力です。
ではCOBRAではなくCOBOLいきます。
前回Hello Worldを作りましたが、左側の空白部分に行番号がありません。
takk@ubu16:~/coboltest$ cat test.cob
      * コメント
      *
      *
      *
       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     HELLO.
       PROCEDURE       DIVISION.
       DISPLAY "Hello World!".
       STOP   RUN.
takk@ubu16:~/coboltest$
この7列の空白部分に行番号を入れてコンパイルしてみましょう。
 行番号はnlコマンドで作ります。
takk@ubu16:~/coboltest$ nl test.cob
     1        * コメント
     2        *
     3        *
     4        *
     5         IDENTIFICATION  DIVISION.
     6         PROGRAM-ID.     HELLO.
     7         PROCEDURE       DIVISION.
     8         DISPLAY "Hello World!".
     9         STOP   RUN.
    10
takk@ubu16:~/coboltest$
COBOLは10ずつ増える行番号が似合ってますので、10増やすようにnlコマンドに-iオプションを指定します。
takk@ubu16:~/coboltest$ nl -i10 test.cob
     1        * コメント
    11        *
    21        *
    31        *
    41         IDENTIFICATION  DIVISION.
    51         PROGRAM-ID.     HELLO.
    61         PROCEDURE       DIVISION.
    71         DISPLAY "Hello World!".
    81         STOP   RUN.
    91
takk@ubu16:~/coboltest$
先頭が1から始まってますので、10からに指定します。
takk@ubu16:~/coboltest$ nl -i10 -v10 test.cob
    10        * コメント
    20        *
    30        *
    40        *
    50         IDENTIFICATION  DIVISION.
    60         PROGRAM-ID.     HELLO.
    70         PROCEDURE       DIVISION.
    80         DISPLAY "Hello World!".
    90         STOP   RUN.
   100
takk@ubu16:~/coboltest$
次は左側を空白埋ではなく、0埋に変えましょう。
takk@ubu16:~/coboltest$ nl -i10 -v10 -nrz test.cob 000010 * コメント 000020 * 000030 * 000040 * 000050 IDENTIFICATION DIVISION. 000060 PROGRAM-ID. HELLO. 000070 PROCEDURE DIVISION. 000080 DISPLAY "Hello World!". 000090 STOP RUN. 000100 takk@ubu16:~/coboltest$
元々のテキストの左6桁は不要なので削除します。
takk@ubu16:~/coboltest$ cut -b7- < test.cob * コメント * * * IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY "Hello World!". STOP RUN. takk@ubu16:~/coboltest$
くっつけます。
takk@ubu16:~/coboltest$ cut -b7- < test.cob | nl -i10 -v10 -nrz -w7 0000010 * コメント 0000020 * 0000030 * 0000040 * 0000050 IDENTIFICATION DIVISION. 0000060 PROGRAM-ID. HELLO. 0000070 PROCEDURE DIVISION. 0000080 DISPLAY "Hello World!". 0000090 STOP RUN. 0000100 takk@ubu16:~/coboltest$
行番号と本体の間に区切り文字(タブ)が入ってしまいました。
 いっそのこと、タブを0に置換することにします。これでnlへ指定するオプションも減ります。
takk@ubu16:~/coboltest$ cut -b7- < test.cob | nl -nrz -w5 | sed 's/\t/0/' 000010* コメント 000020* 000030* 000040* 000050 IDENTIFICATION DIVISION. 000060 PROGRAM-ID. HELLO. 000070 PROCEDURE DIVISION. 000080 DISPLAY "Hello World!". 000090 STOP RUN. 000100 takk@ubu16:~/coboltest$
コンパイルしてみます。
takk@ubu16:~/coboltest$ !! > test2.cob cut -b7- < test.cob | nl -nrz -w5 | sed 's/\t/0/' > test2.cob takk@ubu16:~/coboltest$ cobc -x test2.cob takk@ubu16:~/coboltest$ ./test2 Hello World! takk@ubu16:~/coboltest$
ビルド、実行できました。行番号があるプログラムってなんだかまっすぐで固い印象になりますね。


コメント