CHRHEX START
BEGIN IN INBUF,LENG ;入力
LD GR1,LENG
CPA GR1,=40 ;誤り判定
JPL ERROR
CPA GR1,=0 ;終了判定
[ ( a ) ]
LAD GR1,0 ;入力領域インデックス
LAD GR2,0 ;出力領域インデックス
LOOP LD GR3,INBUF,GR1
SRL GR3,4 ;上位4ビット取り出し
CALL CONVST
[ ( b ) ]
AND GR3,=#000F ;下位4ビット取り出し
CALL CONVST
LAD GR1,1,GR1
CPA GR1,LENG ;全文字処理済みか?
JMI LOOP
[ ( c ) ]
OUT OUTBUF,LENG ;変換結果の出力
JUMP BEGIN
ERROR OUT MES,C13 ;エラーメッセージ
JUMP BEGIN
FIN RET
CONVST CPA GR3,=10
[ ( d ) ]
LAD GR3,7,GR3 ;数値から文字へ変換
SKIP ADDA GR3,=#0030
ST GR3,OUTBUF,GR2
LAD GR2,1,GR2
RET
INBUF DS 256
LENG DS 1
C13 DC 13
OUTBUF DS 80
MES DC '***TOO LONG!!'
END