7f11e9fb98bf135bd5a3112a452d8d68940ddc6a
[YACASL2.git] / as / yakuwa / floatedit.casl
1 EDIT    START
2 RETRY   IN      INAREA,INLENG
3         LAD     GR1,0
4         OR      GR1,INLENG
5         JZE     FINISH
6         CPA     GR1,TEN
7         JZE     BEGIN
8         OUT     ERRMSG,MSGLNG
9         JUMP    RETRY
10 BEGIN   LAD     GR0,1
11         ST      GR0,ZSFLAG
12         LAD     GR1,0
13         LAD     GR2,-1
14         LAD     GR3,0
15 LOOP    LD      GR0,MASK,GR3
16         PUSH    1,GR3
17         LD      GR3,INAREA,GR1
18         LAD     GR1,1,GR1
19         CPL     GR0,DIGIT0
20         JZE     ENDSPR
21         CPL     GR0,DIGIT9
22         JNZ     NONDGT
23         CPL     GR3,DIGIT0
24         JNZ     ENDSPR
25         LAD     GR0,0
26         OR      GR0,ZSFLAG
27         JNZ     SUPPRS
28 ENDSPR  LD      GR0,OTAREA,GR2
29         CPL     GR0,SPACE
30         JNZ     NOT1ST
31         LD      GR0,MASK
32         ST      GR0,OTAREA,GR2
33         LAD     GR0,0
34         ST      GR0,ZSFLAG
35 NOT1ST  LAD     GR0,0,GR3
36         JUMP    STORE
37 NONDGT  LAD     GR1,-1,GR1
38         LAD     GR3,0
39         OR      GR3,ZSFLAG
40         JZE     STORE
41 SUPPRS  LD      GR0,SPACE
42 STORE   LAD     GR2,1,GR2
43         ST      GR0,OTAREA,GR2
44         POP     GR3
45         CPA     GR1,INLENG
46         JNZ     LOOP
47         LAD     GR2,1,GR2
48         ST      GR2,OTLENG
49         OUT     OTAREA,OTLENG
50         JUMP    RETRY
51 FINISH  RET
52 MASK    DC      '\99,999,990.99'
53 SPACE   DC      ' '
54 DIGIT0  DC      '0'
55 DIGIT9  DC      '9'
56 TEN     DC      10
57 ERRMSG  DC      'input error!'
58 MSGLNG  DC      12
59 INAREA  DS      80
60 INLENG  DS      1
61 OTAREA  DS      80
62 OTLENG  DS      1
63 ZSFLAG  DS      1
64         END