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