NUMGET START
BEGIN IN INBUF,LENG ;数字の入力
LD GR1,LENG ;入力文字長
P1 SUBA GR1,=1 ; 1引く
JMI XNULL
LD GR2,=' ' ;スペースを入れる
CPA GR2,INBUF,GR1 ;後続スペース
JZE P1
ST GR1,LENG ;長さを格納
LAD GR1,-1 ;指標レジスタ
P2 [ ( a ) ] ;指標レジスタを増やす
CPA GR2,INBUF,GR1 ;先頭スペース
JZE P2
LD GR2,LENG ;
SUBA GR2,GR1 ;入力文字長-1
[ ( b ) ]
JPL XERR ; 5けた以上?
LAD GR1,-1,GR1 ; 1引く
LAD GR0,0 ;初期値
P3 LAD GR1,1,GR1 ; 1加算
LD GR2,INBUF,GR1 ; 1文字取り出し
CPA GR2,='0' ; '0'より小さい?
JMI XERR
[ ( c ) ]
JPL XERR
SUBA GR2,='0' ; '0'を引く
SLA GR0,1 ; GR0を10倍する
LD GR3,GR0 ; 〃
SLA GR0,2 ; 〃
ADDA GR0,GR3 ; 〃
[ ( d ) ]
CPA GR1,LENG ; 全けた処理
JMI P3
RET
XERR OUT ERMSG,LNG ;エラー出力
JUMP BEGIN
XNULL LAD GR0,10000
RET
INBUF DS 256
LENG DS 1
ERMSG DC '**ERROR**'
LNG DC 9
END