home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 5 / FREESOFT.BIN / mopterm / fapx405b / fapxupld.plp < prev    next >
Text File  |  1992-08-19  |  15KB  |  602 lines

  1. /************************************************************************
  2. *    自動アップロード処理の定義                    *
  3. *************************************************************************/
  4. /*    現在の会議室にメッセージをアップする    */
  5. %MSGup    {
  6.     [replyto,title,text]
  7.     var    roomful    [3];
  8.     var    reply    [3];
  9.     roomful:={No};
  10.     reply:=replyto;
  11.     loop    ({
  12.         case    (reply<1||reply>999||reply={},
  13.             {No},
  14.             {
  15.             type({RE }|reply|{\n});
  16.             wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  17.                 {\n:},{type({1\n})},
  18.                 {◆該当する発言はありません◆},
  19.                 {
  20.                 WAITABORT(Wtime2);
  21.                 reply:={};
  22.                 im({Yes});
  23.                 },
  24.                 {行頭で/E)\n},{im({No})},
  25.                 {-登録個数が最大のため登録出来ません-},
  26.                 {
  27.                 WAITABORT(Wtime2);
  28.                 display({会議室が満杯のためアップロード}|
  29.                     {しないで次の処理に移ります\n});
  30.                 roomful:={Yes};
  31.                 im({No});
  32.                 }
  33.                 );
  34.             },
  35.             {Yes},
  36.             {
  37.             type({SAY\n});
  38.             wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  39.                 {属性 (1:メッセージ 2:コメント)\n:},
  40.                 {
  41.                 type({1\n});
  42.                 WAITCHAR(Wtime2,{行頭で/E)\n},{});
  43.                 im({No});
  44.                 },
  45.                 {-登録個数が最大のため登録出来ません-},
  46.                 {
  47.                 WAITABORT(Wtime2);
  48.                 display({会議室が満杯のためアップロード}|
  49.                     {しないで次の処理に移ります\n});
  50.                 roomful:={Yes};
  51.                 im({No});
  52.                 });
  53.             });
  54.         });
  55.     case    (roomful,
  56.         {No},
  57.         {
  58.         case    (title={},
  59.             {No},{type({SUB:}|title|{\n})},
  60.             {Yes},{type({SUB:自動アップロードです\n})}
  61.             );
  62.         case(text<>{},{Yes},{send(text)});
  63.         type({\n/POST\n});
  64.         WAITABORT(Wtime2);
  65.         });
  66.     };
  67.  
  68. /*    現在のフォーラムの会議室を指定してメッセージをアップする    */
  69. %MESup    {
  70.     [mesno,replyto,title,text]
  71.     case    (mesno<1||mesno>20||mesno={},
  72.         {Yes},{MSGup(replyto,title,text)},
  73.         {No},
  74.         {
  75.         type({MES }|mesno|{\n});
  76.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  77.             {該当する会議室がありません},
  78.             {WAITABORT(Wtime4)},
  79.             {\n>},
  80.             {MSGup(replyto,title,text)}
  81.             );
  82.         }
  83.         );
  84.     };
  85.  
  86. /*    フォーラムと会議室を指定してメッセージをアップする    */
  87. %FORUMup{
  88.     [forum,mesno,replyto,title,text]
  89.     display(forum|{の会議室}|mesno|{番にアップロードします\n});
  90.     footnote({フォーラム会議室へのアップロード中});
  91.     case    (forum={},
  92.         {Yes},{MESup(mesno,replyto,title,text)},
  93.         {No},
  94.         {
  95.         type({GO }|forum|{\n});
  96.         case    (@FORUMTOP={OK},
  97.             {No},,
  98.             {Yes},
  99.             {MESup(mesno,replyto,title,text)}
  100.             );
  101.         }
  102.         );
  103.     };
  104.  
  105. /*    バイナリメールをアップする    */
  106.  
  107. %BMAILup1{
  108.     [sendto,date]
  109.     var    send2    [90];
  110.     var    iderr    [3];
  111.     send2:=sendto;
  112.     iderr:={No};
  113.     loop    ({
  114.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  115.             {(IDか同報グループ名 改行で終了)\n:},
  116.             {case    (@head(send2,{,})={},
  117.                 {Yes},
  118.                 {type({\n})},
  119.                 {No},
  120.                 {type(@head(send2,{,})|{\n})}
  121.                 );
  122.             }
  123.             );
  124.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  125.             {(1:OK  2:NG) \n:},
  126.             {type({1\n});send2:=@body(send2,{,});im({Yes})},
  127.             {◆入力データエラー◆},
  128.             {send2:=@body(send2,{,});im({Yes})},
  129.             {◆既に入力されています◆},
  130.             {send2:=@body(send2,{,});im({Yes})},
  131.             {◆宛先を指定して下さい◆},
  132.             {send2:=ID;iderr:={Yes};im({Yes})},
  133.             {送信},
  134.             {im({No})},
  135.             );
  136.         });
  137.     wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  138.         {1:送信する 2:しない)\n:},
  139.         {case(iderr,{Yes},{type({2\n})},{No},{type({1\n}}))},
  140.         {2:しない  3:期日指定)\n:},
  141.         {case    (iderr,
  142.             {Yes},{type({2\n})},{No},
  143.             {case    (date={},
  144.                 {Yes},{type({1\n})},
  145.                 {No},
  146.                 {type({3\n});
  147.                  WAITCHAR(Wtime2,
  148.                     {例:990101)\n:},{type(date|{\n})});
  149.                  wait    (Wtime2,
  150.                     {AbortOff({ホストがおもいよ~})},
  151.                     {(1:OK  2:NG) \n:},{type({1\n})},
  152.                     {例:990101)\n:},{type({\n})});
  153.                     /* 日付指定間違いの場合即時送信する */
  154.                 }
  155.                 );
  156.             }
  157.             );
  158.         }
  159.         );
  160.     };
  161.  
  162. %BMAILup{
  163.     [sendto,title,file,date]
  164.     display(sendto|{へバイナリメールを送ります\n});
  165.     footnote({バイナリメール送信中});
  166.     type({GO MAIL\n});
  167.     WAITCHAR(Wtime2,{0:その他 E:終了)\n>},
  168.             {type({UPLOAD TYPE:BIN PROT:BPL\n})});
  169.     WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{type(file|{\n})});
  170.     WAITCHAR(,{-アップロード終了-},{});
  171.     WAITCHAR(Wtime2,{題名 (漢字で20文字まで)\n:},
  172.         {case    (title<>{},
  173.             {Yes},{type(title|{\n})},
  174.             {No}, {type({自動メール送信です\n})}
  175.             )
  176.         });
  177.     WAITCHAR(Wtime2,{(1:OK  2:NG)\n:},{type({1\n})});
  178.     BMAILup1(sendto,date);
  179.     WAITCHAR(Wtime2,{1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},{});
  180.     };
  181.  
  182. /*    宛先が複数あれば複数指定する(テキストメールのみ)    */
  183. %MAILup3{
  184.     [address]
  185.     case    (@head(address,{,})={},
  186.         {Yes},,
  187.         {No},
  188.         {
  189.         type({TO:}|@head(address,{,})|{\n});
  190.         MAILup3(@body(address,{,}));
  191.         }
  192.         );
  193.     };
  194.  
  195. /* 題名や宛先を実行時に指定する */
  196. %MAILup2{
  197.     wait    (Wtime2,,
  198.         {題名 (漢字で20文字まで)\n:},
  199.         {type({自動送信メール\n});MAILup2},
  200.         {又は FAX番号 改行で終了)\n:},
  201.         {type({\n});MAILup2},
  202.         {◆宛先を指定して下さい◆},    /*宛先IDがない場合自分に送信*/
  203.         {WAITCHAR(Wtime2,{改行で終了)\n:},{type(ID|{\n});MAILup2})},
  204.         {◆入力データエラー◆},
  205.         {MAILup2},
  206.         {◆既に入力されています◆},
  207.         {MAILup2},
  208.         {(1:OK  2:NG)\n:},
  209.         {type({1\n});MAILup2},
  210.         {(1:OK  2:NG) \n:},
  211.         {type({1\n});MAILup2},
  212.         {(1:OK 2:NG)\n:},        /* FAX番号の場合 */
  213.         {type({1\n});MAILup2},
  214.         {送信 (1:送信する 2:しない)\n:},
  215.         {type({1\n});MAILup2},
  216.         {送信(1:送信する  2:しない  3:期日指定)\n:},
  217.         {type({1\n});MAILup2},            /* エグゼクティブオプション */
  218.         {(西暦下 2桁で指定 改行で期日指定なし 例:990101)\n:},
  219.         {type({\n});MAILup2},        /* 期日指定誤りの場合 */
  220.         {\n>},
  221.         );
  222.     };
  223.  
  224. /*    メールをアップする    */
  225. %MAILup    {
  226.     [sendto,title,text,date]
  227.     display(sendto|{へメールを送ります\n});
  228.     footnote({メール送信中});
  229.     type({GO MAIL\n});
  230.     WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({2\n})});
  231.     WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
  232.     MAILup3(sendto);
  233.     case(title={},{Yes},,{No},{type({SUB:}|title|{\n})});
  234.     case(date={},{Yes},,{No},{type({SDATE:}|date|{\n})});
  235.     case(text,{},,,{send(text)});
  236.     type({\n/POST\n});
  237.     MAILup2;
  238.     };
  239.  
  240. /*    HPにメッセージをアップする    */
  241. %HPup1    {
  242.     [title,text]
  243.     type({WRITE\n});
  244.     WAITCHAR(Wtime2,{モードで20文字以内)\n:},{type(title|{\n})});
  245.     WAITCHAR(Wtime2,{(1:OK  2:NG) \n:},{type({1\n})});
  246.     WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
  247.     case(text,{},,,{send(text)});
  248.     type({\n/POST\n});
  249.     WAITCHAR(Wtime2,{\nHP>},{});
  250.     };
  251.  
  252. %HPup    {
  253.     [hpid,pass,title,text]
  254.     display(hpid|{のホームパーティにアップロードします\n});
  255.     footnote({ホームパーティへのアップロード中});
  256.     case    (hpid<>{},
  257.         {Yes},
  258.         {
  259.         type({GO HP\n});
  260.         WAITCHAR(Wtime2,{2. Home Partyの説明\n>},{type({1\n})});
  261.         WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hpid|{\n})});
  262.         wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  263.                 {◆該当する利用者のHome Partyはありません◆\n},
  264.                 {
  265.                 WAITCHAR(Wtime2,
  266.                     {2. Home Partyの説明\n>},
  267.                     {
  268.                     SNDMSG({okasi_f.snd});
  269.                      display({ホームパーティのID}|
  270.                         {が違っています\n});
  271.                     })
  272.                 },
  273.             {(1:設定する  2:しない)\n:},
  274.             {type({2\n});WAITABORT(Wtime2);},
  275.             {パスワード\n:},
  276.             {
  277.             loop    ({
  278.                 type(pass|{\n});
  279.                 wait    (Wtime2,
  280.                     {AbortOff({\nホストの反応が}|
  281.                             {鈍いよぉ~\n})},
  282.                     {\nHP>},
  283.                     {
  284.                     HPup1(title,text);
  285.                     im({No});
  286.                     },
  287.                     {パスワード\n:},
  288.                     {im({Yes})},
  289.                     {2. Home Partyの説明\n>},
  290.                     {im({No})}
  291.                     );
  292.                 });
  293.             });
  294.         },
  295.         {No},
  296.         {HPup1(title,text)}
  297.         );
  298.     };
  299.  
  300. /*    プロフィール情報をアップする    */
  301. %PROFup    {
  302.     [text]
  303.     display(ID|{のプロフィール情報を登録します\n});
  304.     footnote({プロフィール情報登録中});
  305.     type({GO PROFILE\n});
  306.     WAITCHAR(Wtime2,{ 2:登録  3:修正  4:削除  E:終了)\n>},{type({2\n})});
  307.     WAITCHAR(Wtime2,{プロフィール ( 100行まで 終了は行頭で/E)\n},{});
  308.     case(text,{},,,{send(text)});
  309.     type({\n/E\n});
  310.     WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
  311.     WAITCHAR(Wtime2,{(1:登録する  2:しない)\n:},{type({1\n})});
  312.     WAITABORT(Wtime2);
  313.     };
  314.  
  315. /*    データライブラリにアップする    */
  316. %LIBup1    {
  317.     [libno,dataname,keyword,docfile,datafile]
  318.     type({LIB }|libno|{\n});
  319.     wait    (Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
  320.         {3:アップロード(無料)  4:ダウンロード  E:終了)\n>},
  321.         {
  322.         type({UPLOAD PROT:BPL TYPE:BIN\n});
  323.         WAITCHAR(Wtime2,{データ名 (漢字20字まで)\n:},{});
  324.         type(dataname|{\n});
  325.         WAITCHAR(Wtime2,{(1:OK  2:NG)\n:},{});
  326.         type({1\n});
  327.         WAITCHAR(Wtime2,{(漢字10字以内/1KEY 入力可能数:5)\n:},{});
  328.         type(keyword|{\n});
  329.         WAITCHAR(Wtime2,{確認 (1:OK  2:NG)\n:},{});
  330.         type({1\n});
  331.         wait    (Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
  332.             {補足説明 ( 300行まで 終了は行頭で/E)\n},,
  333.             {改行で入力終了)\n:},
  334.             {
  335.             type({\n});
  336.             wait(Wtime2,{AbortOff({ホストの反応が鈍いよぉ~\n})},
  337.                 {補足説明 ( 300行まで 終了は行頭で/E)\n},);
  338.             });
  339.         send(docfile);
  340.         type({\n/POST\n});
  341.         WAITCHAR(Wtime2,{項目 (1:OK  2:NG  3:修正)\n:},{});
  342.         type({1\n});
  343.         WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
  344.         type(datafile|{\n});
  345.         wait(,,{-アップロード終了-});
  346.         WAITCHAR(Wtime2,{4:ダウンロード  E:終了)\n>},{});
  347.         },
  348.         {\n>},
  349.         {
  350.         SNDMSG({okasi_f.snd});
  351.         display({ライブラリ番号が違うため次の処理を行います\n});
  352.         });
  353.     };
  354.  
  355. %DLIBup    {
  356.     [forum,libno,dataname,keyword,docfile,datafile]
  357.     case    (dataname<>{} && keyword<>{} &&
  358.          @filechk(docfile) && @filechk(datafile),
  359.         {Yes},
  360.         {
  361.         display(forum|{の}|libno|{番ライブラリにアップロードします\n});
  362.         footnote({データライブラリへのアップロード中});
  363.         case    (forum<>{},
  364.             {Yes},
  365.             {
  366.             type({GO }|forum|{\n});
  367.             case    (@FORUMTOP,
  368.                 {OK},    {LIBup1(libno,dataname,keyword,
  369.                         docfile,datafile)}
  370.                 );
  371.             });
  372.         },
  373.         {No},
  374.         {display({必要なデータが揃っていないため}|
  375.                 {次の処理へスキップします\n})}
  376.         );
  377.     };
  378.  
  379. %SMAILup{
  380.     [forum,title,text]
  381.     case    (forum<>{} && @filechk(text),
  382.         {Yes},
  383.         {
  384.         display(forum|{のシスオペ宛メールをアップロードします\n});
  385.         footnote({シスオペ宛メールのアップロード中});
  386.         case    (forum<>{},
  387.             {Yes},
  388.             {
  389.             type({GO }|forum|{\n});
  390.             case    (@FORUMTOP,
  391.                 {OK},
  392.                 {
  393.                 type({SYM\n});
  394.                 WAITCHAR(Wtime2,
  395.                     {(1:送信 2:アップロード E:終了)\n},
  396.                     {});
  397.                 type({1\n});
  398.                 WAITCHAR(Wtime2,
  399.                     {(300 行まで 終了は行頭で/E)\n},{});
  400.                 send(text);
  401.                 type({\n/POST\n});
  402.                 WAITCHAR(Wtime2,
  403.                     {題名 (漢字で20文字まで)\n:},{});
  404.                 case    (title<>{},
  405.                     {Yes},{type(title|{\n})},
  406.                     {No},{type({自動アップロードです\n})});
  407.                 WAITCHAR(Wtime2,{(1:OK  2:NG)\n:},{});
  408.                 type({1\n});
  409.                 WAITABORT(Wtime2);
  410.                 });
  411.             });
  412.         },
  413.         {No},
  414.         {display({必要なデータが揃っていないため}|
  415.                 {次の処理へスキップします\n})}
  416.         );
  417.     };
  418.  
  419. /************************************************************************
  420. *    制御ファイルの内容に従って自動アップロードする            *
  421. *************************************************************************/
  422. /*    アップロードするテキストファイル名を決定する    */
  423. %UPtext    {
  424.     [fname]
  425.     case    (fname={memo1}||fname={memo2}||fname={memo3}||fname={memo4}||
  426.          fname={memo5}||fname={memo6}||fname={memo7}||fname={memo8}||
  427.          fname={memo9},
  428.         {Yes},
  429.         {
  430.         case    (@mlast>=@getchar(fname,5,1)&&@mcheck==0,
  431.             {Yes},
  432.             {
  433.             mwrite(TEMP2|{_moptext.txt},@getchar(fname,5,1));
  434.             im(TEMP2|{_moptext.txt});
  435.             },
  436.             {No},
  437.             {
  438.             SNDMSG({okasi_f.snd});
  439.             display(fname|{が使えません\n});
  440.             im({});
  441.             })
  442.         },
  443.         {No},
  444.         {im(fname)}
  445.         );
  446.     };
  447.  
  448. /*    アップ先の振り分け    */
  449. %AUTOup1{
  450.     line:=line+1;
  451.     linebuf:={};
  452.     case    (file={memo1}||file={memo2}||file={memo3}||
  453.          file={memo4}||file={memo5}||file={memo6}||
  454.          file={memo7}||file={memo8}||file={memo9},
  455.         {Yes},
  456.         {case    (@mlast>=@getchar(file,5,1)&&@mcheck==0,
  457.             {Yes},
  458.             {linebuf:=@memo(@getchar(file,5,1),line,1)},
  459.             {No},
  460.             {
  461.             SNDMSG({okasi_f.snd});
  462.             display(file|{が使えません\n});
  463.             linebuf:={};
  464.             })
  465.         },
  466.         {No},
  467.         {linebuf:=@read(file,line,1)}
  468.         );
  469.     case    (
  470.         @head(linebuf,{=}),
  471.         {forum},    /* フォーラムへアップ */
  472.         {
  473.         var    FILE    [256];
  474.         FILE:=@tail(linebuf,{file=},{;});
  475.         loop    ({
  476.             case    (@head(FILE,{,})<>{},
  477.                 {Yes},
  478.                 {FORUMup(@tail(linebuf,{forum=},{;}),
  479.                      @tail(linebuf,{mes=},{;}),
  480.                      @tail(linebuf,{reply=},{;}),
  481.                      @tail(linebuf,{title=},{;}),
  482.                      @UPtext(@head(FILE,{,})))}
  483.                 );
  484.             FILE:=@body(FILE,{,});
  485.             im(FILE<>{});
  486.             });
  487.         AUTOup1;
  488.         },
  489.         {mail},        /* メールをアップ */
  490.         {
  491.         var    FILE    [256];
  492.         FILE:=@tail(linebuf,{file=},{;});
  493.         loop    ({
  494.             case    (@head(FILE,{,})<>{},
  495.                 {Yes},
  496.                 {MAILup (@tail(linebuf,{mail=},{;}),
  497.                      @tail(linebuf,{title=},{;}),
  498.                      @UPtext(@head(FILE,{,})),
  499.                      @tail(linebuf,{date=},{;}))}
  500.                 );
  501.             FILE:=@body(FILE,{,});
  502.             im(FILE<>{});
  503.             });
  504.         AUTOup1;
  505.         },
  506.         {bmail},    /* バイナリメールをアップ */
  507.         {
  508.         var    FILE    [256];
  509.         FILE:=@tail(linebuf,{file=},{;});
  510.         loop    ({
  511.             case    (@head(FILE,{,})<>{},
  512.                 {Yes},
  513.                 {BMAILup(@tail(linebuf,{bmail=},{;}),
  514.                      @tail(linebuf,{title=},{;}),
  515.                      @head(FILE,{,}),
  516.                      @tail(linebuf,{date=},{;}))}
  517.                 );
  518.             FILE:=@body(FILE,{,});
  519.             im(FILE<>{});
  520.             });
  521.         AUTOup1;
  522.         },
  523.         {hp},        /* ホームパーティへアップ */
  524.         {
  525.         var    FILE    [256];
  526.         FILE:=@tail(linebuf,{file=},{;});
  527.         loop    ({
  528.             case    (@head(FILE,{,})<>{},
  529.                 {Yes},
  530.                 {HPup  (@tail(linebuf,{hp=},{;}),
  531.                     @tail(linebuf,{pass=},{;}),
  532.                     @tail(linebuf,{title=},{;}),
  533.                     @UPtext(@head(FILE,{,})))},
  534.                 );
  535.             FILE:=@body(FILE,{,});
  536.             im(FILE<>{});
  537.             });
  538.         AUTOup1;
  539.         },
  540.         {profile},        /* プロフィール情報をアップ */
  541.         {
  542.         PROFup(@UPtext(@tail(linebuf,{file=},{;})));
  543.         AUTOup1;
  544.         },
  545.         {forumlib},        /* データライブラリにアップ */
  546.         {
  547.         DLIBup (@tail(linebuf,{forumlib=},{;}),
  548.             @tail(linebuf,{libno=},{;}),
  549.             @tail(linebuf,{dataname=},{;}),
  550.             @tail(linebuf,{keyword=},{;}),
  551.             @UPtext(@tail(linebuf,{docfile=},{;})),
  552.             @tail(linebuf,{datafile=},{;}));
  553.         AUTOup1;
  554.         },
  555.         {sysmail},        /* シスオペ宛メールをアップ */
  556.         {
  557.         SMAILup (@tail(linebuf,{sysmail=},{;}),
  558.             @tail(linebuf,{title=},{;}),
  559.             @UPtext(@tail(linebuf,{file=},{;})));
  560.         AUTOup1;
  561.         },
  562.         {},,        /* 空文字列なら終了 */
  563.         ,AUTOup1    /* それ以外なら次の行を読む */
  564.         );
  565.     };
  566.  
  567. %AUTOup    {
  568.     [file]
  569.     case    (@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
  570.                  file={memo4}||file={memo5}||file={memo6}||
  571.                  file={memo7}||file={memo8}||file={memo9},
  572.         {Yes},
  573.         {line:=0;AUTOup1},
  574.         {No},
  575.         {
  576.         SNDMSG({okasi_f.snd});
  577.         display({\n}|file|{制御ファイルがありません\n});
  578.         });
  579.     };
  580.  
  581. /*    アップロード制御ファイル指定の有無の判定処理    */
  582. %AUTOUPLD
  583.     {
  584.     display({自動アップロードを開始します\n});
  585.     footnote({自動アップロードをしています});
  586.     case(upldcntl<>{},{Yes},{AUTOup(upldcntl);upldcntl:={}});
  587.     case    (@filechk(TEMP2|{_mopres.ctl}),
  588.         {Yes},
  589.         {
  590.         AUTOup(TEMP2|{_mopres.ctl});
  591.         dispoff({Yes});
  592.         command({del }|TEMP2|{_mopres.bak});
  593.         command({ren }|TEMP2|{_mopres.ctl _mopres.bak});
  594.         dispoff({No});
  595.         });
  596.     };
  597.  
  598. var    line    [3];    /* アップロード制御ファイル行カウンタ    */
  599. var    linebuf    [258];    /* アップロード制御文バッファ        */
  600.  
  601. AUTOUPLD;
  602.