UPPER START ;大文字に変換 [b10.cas]
IN WORD,LEN ;文字列の入力
LAD GR1,0 ;フラグを0
LAD GR2,0 ;文字列の指標
TOP LD GR0,WORD,GR2 ;1文字取り出す [ a ]
CPA GR0,=' ' ;空白か?
JZE BLANK
CPA GR1,=0 ;フラグのチェック
JNZ N1
CPA GR0,='a' ;'a'以上?
JMI N1 ; [ b ]
CPA GR0,='z' ;'z'以下?
JPL N1
SUBA GR0,=#0020 ;大文字に変換
ST GR0,WORD,GR2 ;1文字格納
LAD GR1,1 ;フラグを1
N1 LAD GR2,1,GR2 ;指標レジスタを加算
CPA GR2,LEN ;終了判定
JZE FIN
JUMP TOP
BLANK LAD GR1,0 ;フラグを0 [ c ]
JUMP N1
FIN OUT WORD,LEN ;変換結果の出力
RET
LEN DS 1 ;単語の長さ
WORD DS 256 ;単語
END