FTP印刷スプール送信RPG/SNDFTPSPLR

Return

[例]

     H            Y/                                    1
     H*---------------------------------------------------------------*
     H* PROGRAM-ID    :    SOKFTPSPLR                                 *
     H* REMARKS       :    SOKFTP SPLF SEND                          *
     H* AUTHOR        :    Y.IDE                                      *
     H* DATE-WRITEN   :    1999/05/15                                 *
     H* VERSION       :    01.00 ORIGINAL                             *
     H*---------------------------------------------------------------*
     FSPLDATA IF  F     256            DISK
     E                    BUF       251  1
     E                    MSG        80  1
     E                    SA          3  1
     E                    SB          3  1
     E                    PA          3  1
     E                    PB          3  1
     ISPLDATA AA  01
     I                                        1   3 SKP
     I                                        4   4 SPC
     I                                        5   5 DUMMY
     I                                        6 256 BUF
     I            DS
     I                                    B   1   20CRLF
     I                                        1   2 CRLFA
     I            DS
     I                                    B   1   40BIN4
     I            DS
     I                                        1   4 MSGHD
     I                                        5  80 MSGBD
     I                                        1  80 MSG
     C*---------------------------------------------------*
     C           *ENTRY    PLIST
     C                     PARM           FTPSVR 60
     C                     PARM           CPORT   5
     C                     PARM           CUSER  10
     C                     PARM           CPASS  10
     C                     PARM           RPATH 128
     C                     PARM           RFILE  30
     C                     PARM           FCCSID  5
     C                     PARM           TCCSID  5
     C                     PARM           SOSI    1
     C                     PARM           WIDTH  155
     C*---------------------------------------------------*
     C*初期化
     C                     EXSR R#INZ
     C*初期接続
     C                     EXSR R#CON1
     C*データポート接続
     C                     EXSR R#CON2
     C* DATA獲得
     C           TAG#01    TAG
     C                     MOVEA*BLANK    BUF
     C                     READ SPLDATA                  99
     C           *IN99     IFEQ '1'
     C                     EXSR R#CLOS
     C                     SETON                     LR
     C                     RETRN
     C                     ENDIF
     C           SKP       IFNE *BLANK
     C*スキップ
     C                     MOVE SKP       SKPS    30
     C           SKPS      IFLT LINE
     C*改頁
     C                     CALL 'SKSEND'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM '1'       BUFLEN  4
     C                     PARM OC        BUFOUT 10
     C                     ELSE
     C*行送り
     C           SKPS      SUB  LINE      CRNUM   30
     C                     SUB  1         CRNUM
     C           1         DO   CRNUM
     C                     CALL 'SKSEND'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C                     ENDDO
     C                     Z-ADDSKPS      LINE
     C                     ENDIF
     C                     ELSE
     C*スペース
     C           SPC       IFEQ '1'
     C                     ADD  1         LINE
     C                     ENDIF
     C           SPC       IFEQ '2'
     C                     CALL 'SKSEND'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C                     ADD  2         LINE
     C                     ENDIF
     C           SPC       IFEQ '3'
     C                     CALL 'SKSEND'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM '4'       BUFLEN  4
     C                     PARM CRLFA2    BUFOUT
     C                     ADD  3         LINE
     C                     ENDIF
     C                     ENDIF
     C* DATA送信
     C                     CALL 'SKSNDC'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM           FCCSID  5
     C                     PARM           TCCSID  5
     C                     PARM SOSI      SOSISP  1
     C                     PARM CRLFA     TERMCH  2
     C                     PARM CLENA     BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*--------------------------------------------------------*
     C                     GOTO TAG#01
     C*ソケットクローズ--------------------------------------*
     C           TAG#E     TAG
     C                     CALL 'SKCLOS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C*--------------------------------------------------------*
     C                     SETON                     LR
     C                     RETRN
     C*--------------------------------------------------------*
     C* データ受信
     C           R#RCV     BEGSR
     C*--------------------------------------------------------*
     C                     MOVE *BLANK    BUF
     C                     CALL 'SKRCVS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '256'     BUFLEN  4
     C                     PARM           BUF
     C*
     C                     CALL 'SKMSGS'
     C                     PARM           BUF
     C*
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C           BUF,1     IFEQ '5'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     ENDSR
     C*--------------------------------------------------------*
     C* PORT番号設定
     C           R#PNO     BEGSR
     C*--------------------------------------------------------*
     C                     SETOF                     3031
     C                     Z-ADD0         A       30
     C                     Z-ADD0         B       30
     C                     MOVE BUFLEN    BUFLN   40
     C           4         DO   BUFLN     X
     C           *IN30     IFEQ '1'
     C           BUF,X     IFGE '0'
     C           BUF,X     ANDLE'9'
     C                     ADD  1         A
     C                     MOVE BUF,X     SA,A
     C                     ENDIF
     C                     ENDIF
     C*
     C           *IN31     IFEQ '1'
     C           BUF,X     IFGE '0'
     C           BUF,X     ANDLE'9'
     C                     ADD  1         B
     C                     MOVE BUF,X     SB,B
     C                     ENDIF
     C                     ENDIF
     C           BUF,X     IFEQ ','
     C                     ADD  1         Y       40
     C           Y         IFEQ 4
     C                     SETON                     30
     C                     SETOF                     31
     C                     ENDIF
     C           Y         IFEQ 5
     C                     SETOF                     30
     C                     SETON                     31
     C                     ENDIF
     C                     ENDIF
     C                     ENDDO
     C           4         SUB  A         P       40
     C                     MOVEASA        PA,P
     C           4         SUB  B         P
     C                     MOVEASB        PB,P
     C                     Z-ADD*ZEROS    AA
     C                     Z-ADD*ZEROS    BB
     C                     MOVEAPA        WA      3
     C                     MOVEAPB        WB      3
     C                     MOVE WA        AA      30
     C                     MOVE WB        BB      30
     C                     Z-ADD0         PP      50
     C           AA        MULT 256       PP      50
     C           PP        ADD  BB        PP
     C                     MOVE PP        RPORT   5
     C                     ENDSR
     C*--------------------------------------------------------*
     C* 初期設定
     C           R#INZ     BEGSR
     C*--------------------------------------------------------*
     C                     Z-ADD0         CRLF
     C                     Z-ADD3338      CRLF
     C                     MOVELCRLFA     CRLFA2  4
     C                     MOVE CRLFA     CRLFA2
     C                     MOVE *LOVAL    OC      1
     C                     BITON'45'      OC
     C                     MOVEL'==> '    MSGHD
     C                     Z-ADDWIDTH     CLEN   100
     C                     MOVE CLEN      CLENA   4
     C                     Z-ADD0         LINE    30
     C*ホスト名検索
     C                     CALL 'SKGETH'
     C                     PARM FTPSVR    HOSTNM128
     C                     PARM           RC
     C                     PARM           CIP    15
     C                     PARM           IPHOST128
     C           RC        IFEQ 'E'
     C                     ENDIF
     C                     ENDSR
     C*--------------------------------------------------------*
     C*--------------------------------------------------------*
     C* 初期接続
     C           R#CON1    BEGSR
     C*--------------------------------------------------------*
     C*ソケットオープン--------------------------------------*
     C                     CALL 'SKOPEN'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* ソケットコネクト --------------------------------------*
     C                     CALL 'SKCONN'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM CIP       IP     15
     C                     PARM CPORT     PORT    5
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* ノンブロックの設定 ------------------------------------*
     C                     CALL 'SKNBLK'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '1'       FLG     1        1=ON 0=OFF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C           1         DO   *HIVAL
     C* セレクト実行(タイムアウト2秒) ----------------------*
     C                     CALL 'SKSELC'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '00000002'TIMOUT  8
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C           RC        IFEQ 'T'
     C                     LEAVE
     C                     ENDIF
     C* ソケットデータ受信 ------------------------------------*
     C                     EXSR R#RCV
     C                     ENDDO
     C* ノンブロックの解除 ------------------------------------*
     C                     CALL 'SKNBLK'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '0'       FLG     1        1=ON 0=OFF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*--------------------------------------------------------*
     C* USER送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'USER '   BUF
     C                     MOVEACUSER     BUF,6
     C           6         DO   256       X       40
     C           BUF,X     IFEQ ' '
     C                     LEAVE
     C                     ENDIF
     C                     ENDDO
     C           X         SUB  1         BUFLN
     C                     MOVE BUFLN     BUFLEN
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM           BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* USER REPLY受信 ---------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '3'
     C                     GOTO TAG#E
     C                     ENDIF
     C*--------------------------------------------------------*
     C* PASS送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'PASS '   BUF
     C                     MOVEACPASS     BUF,6
     C           6         DO   256       X       40
     C           BUF,X     IFEQ ' '
     C                     LEAVE
     C                     ENDIF
     C                     ENDDO
     C           X         SUB  1         BUFLN
     C                     MOVE BUFLN     BUFLEN
     C*
     C                     MOVEABUF       MSGBD
     C                     MOVEA'[XXXXXXX'MSG,10
     C                     MOVEA'X]'      MSG,18
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM           BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* PASS REPLY 受信 ---------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '2'
     C                     GOTO TAG#E
     C                     ENDIF
     C*--------------------------------------------------------*
     C* PASV送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'PASV'    BUF
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM '4'       BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* PASV REPLY受信---------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '2'
     C                     GOTO TAG#E
     C                     ENDIF
     C*ポート番号設定----------------------------------------*
     C                     EXSR R#PNO
     C*ローカルポート検索------------------------------------*
     C                     CALL 'SKGETS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM           LIP    15
     C                     PARM           LPORT   5
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKATOI'
     C                     PARM           BIN4
     C                     PARM           LPORT
     C*
     C                     ADD  1         BIN4
     C                     MOVE BIN4      LPORT
     C* CWD送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'CWD '    BUF
     C                     MOVEARPATH     BUF,5
     C           BUF,5     IFEQ '*'
     C                     MOVEA*BLANK    BUF,4
     C                     Z-ADD3         BUFLN
     C                     MOVE BUFLN     BUFLEN
     C                     ELSE
     C           5         DO   66        X       40
     C           BUF,X     IFEQ ' '
     C                     LEAVE
     C                     ENDIF
     C                     ENDDO
     C           X         SUB  1         BUFLN
     C                     MOVE BUFLN     BUFLEN
     C                     ENDIF
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM           BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* CWD REPLY受信----------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '2'
     C                     GOTO TAG#E
     C                     ENDIF
     C* PWD送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'PWD'     BUF
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM '3'       BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* PWD REPLY受信----------------------------------------*
     C                     EXSR R#RCV
     C                     ENDSR
     C*--------------------------------------------------------*
     C*データポート接続
     C           R#CON2    BEGSR
     C*--------------------------------------------------------*
     C*第2ソケットオープン----------------------------------*
     C                     CALL 'SKOPEN'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*ソケットバインド--------------------------------------*
     C                     CALL 'SKBIND'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM           LIP
     C                     PARM           LPORT
     C*ソケットコネクト--------------------------------------*
     C                     CALL 'SKCONN'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     PARM CIP       IP     15
     C                     PARM RPORT     PORT    5
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* TYPE A送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'TYPE A'  BUF
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM '6'       BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* TYPE A REPLY受信-------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '2'
     C                     GOTO TAG#E
     C                     ENDIF
     C* STOR送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'STOR  '  BUF
     C                     MOVEARFILE     BUF,6
     C           6         DO   256       X       40
     C           BUF,X     IFEQ ' '
     C                     LEAVE
     C                     ENDIF
     C                     ENDDO
     C           X         SUB  1         BUFLN
     C                     MOVE BUFLN     BUFLEN
     C*
     C                     MOVEABUF       MSGBD
     C                     CALL 'SKMSGS'
     C                     PARM           MSG
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM           BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C* STOR REPLY受信---------------------------------------*
     C                     EXSR R#RCV
     C           BUF,1     IFNE '1'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     ENDSR
     C*--------------------------------------------------------*
     C* 終了処理
     C           R#CLOS    BEGSR
     C*--------------------------------------------------------*
     C                     CALL 'SKCLOS'
     C                     PARM           SD2     4
     C                     PARM           RC      1
     C                     EXSR R#RCV
     C* QUIT送信
     C                     MOVEA*BLANK    BUF
     C                     MOVEA'QUIT'    BUF
     C*
     C                     CALL 'SKMSGS'
     C                     PARM           BUF
     C*
     C                     CALL 'SKSNDS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM SOSI      SOSISP  1
     C                     PARM '4'       BUFLEN  4
     C                     PARM           BUF
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKSEND'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     PARM '2'       BUFLEN  4
     C                     PARM CRLFA     BUFOUT
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C                     CALL 'SKCLOS'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C                     ENDSR
     C*--------------------------------------------------------*

【解説】

【実行結果】


[Return]