+++ /dev/null
-EDIT START
-RETRY IN INAREA,INLENG
- LAD GR1,0
- OR GR1,INLENG
- JZE FINISH
- CPA GR1,TEN
- JZE BEGIN
- OUT ERRMSG,MSGLNG
- JUMP RETRY
-BEGIN LAD GR0,1
- ST GR0,ZSFLAG
- LAD GR1,0
- LAD GR2,-1
- LAD GR3,0
-LOOP LD GR0,MASK,GR3
- PUSH 1,GR3
- LD GR3,INAREA,GR1
- LAD GR1,1,GR1
- CPL GR0,DIGIT0
- JZE ENDSPR
- CPL GR0,DIGIT9
- JNZ NONDGT
- CPL GR3,DIGIT0
- JNZ ENDSPR
- LAD GR0,0
- OR GR0,ZSFLAG
- JNZ SUPPRS
-ENDSPR LD GR0,OTAREA,GR2
- CPL GR0,SPACE
- JNZ NOT1ST
- LD GR0,MASK
- ST GR0,OTAREA,GR2
- LAD GR0,0
- ST GR0,ZSFLAG
-NOT1ST LAD GR0,0,GR3
- JUMP STORE
-NONDGT LAD GR1,-1,GR1
- LAD GR3,0
- OR GR3,ZSFLAG
- JZE STORE
-SUPPRS LD GR0,SPACE
-STORE LAD GR2,1,GR2
- ST GR0,OTAREA,GR2
- POP GR3
- CPA GR1,INLENG
- JNZ LOOP
- LAD GR2,1,GR2
- ST GR2,OTLENG
- OUT OTAREA,OTLENG
- JUMP RETRY
-FINISH RET
-MASK DC '\99,999,990.99'
-SPACE DC ' '
-DIGIT0 DC '0'
-DIGIT9 DC '9'
-TEN DC 10
-ERRMSG DC 'input error!'
-MSGLNG DC 12
-INAREA DS 80
-INLENG DS 1
-OTAREA DS 80
-OTLENG DS 1
-ZSFLAG DS 1
- END