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