WCNT    START              ;語数の出力 [c09.cas]
        LAD    GR2,0       ;入力ポインタ初期化
        ST     GR2,INLENG
        LAD    GR1,0       ;語数カウンタ初期化
LP1     CALL   GETCHR      ; 1文字取得
        CPA    GR0,=' '    ;語の区切り文字?
        JZE    LP1         ; [  a  ]
        CPA    GR0,='.'    ;文の区切り文字?
        JZE    SEND
LP2     CALL   GETCHR
        CPA    GR0,=' '
        JZE    WEND
        CPA    GR0,='.'
        JNZ    LP2         ;区切り文字でなければLP2
WEND    LAD    GR1,1,GR1   ;語数のカウントアップ
        CPA    GR0,='.'
        JNZ    LP1         ; [  b  ]
SEND    CALL   DECPRN      ;語数の出力
        RET
;
GETCHR  CPA    GR2,INLENG  ; 1文字取得処理
        JZE    GETREC
        LD     GR0,BUF,GR2
        ADDA   GR2,=1      ; [  c  ]
        RET
GETREC  LAD    GR2,0
        IN     BUF,INLENG  ; 1レコード読取り
        LD     GR0,INLENG  ; [  d  ]
        CPA    GR0,=-1     ;入力データの終了?
        JNZ    GETCHR
        RET
INLENG  DS     1
BUF     DS     256
        END
DECPRN  START
        OR     GR1,=#0030
        ST     GR1,WK
        OUT    WKOUT,OUTLEN
        RET
WKOUT   DC     'GR1='
WK      DS     1
OUTLEN  DC     5
        END