CASL2LIBで、固定小数点表示のプログラムを中心に修正
[YACASL2.git] / test / system / casl2 / lib_mull / mull.casl
index b7d6997..6085ce1 100644 (file)
@@ -1,12 +1,12 @@
 MAIN    START
-        LAD     GR3,0           ; Xのインデックス
-LOOPX   CPA     GR3,XCNT        ; (GR3 = XCNT)の場合、ループ脱出
+        LAD     GR4,0           ; Xのインデックス
+LOOPX   CPA     GR4,XCNT        ; (GR4 = XCNT)の場合、ループ脱出
         JZE     FIN             ; ↓
-        LD      GR1,X,GR3       ; GR1に、(X+GR3)番地の値を転送
-        LAD     GR4,0           ; Yのインデックス
-LOOPY   CPA     GR4,YCNT        ; (GR4 = YCNT)の場合、ループ脱出
+        LD      GR1,X,GR4       ; GR1に、(X+GR4)番地の値を転送
+        LAD     GR5,0           ; Yのインデックス
+LOOPY   CPA     GR5,YCNT        ; (GR5 = YCNT)の場合、ループ脱出
         JZE     XNEXT           ; ↓
-        LD      GR2,Y,GR4       ; GR2に、(X+GR4)番地の値を転送
+        LD      GR2,Y,GR5       ; GR2に、(X+GR5)番地の値を転送
         CALL    OUTL            ; GR1の数値を出力
         PUSH    0,GR1           ; GR2の数値を出力
         LD      GR1,GR2         ; ↓
@@ -19,11 +19,19 @@ LOOPY   CPA     GR4,YCNT        ; (GR4 = YCNT)の場合、ループ脱出
         CALL    OUTL            ; ↓
         POP     GR1             ; ↓
 YNEXT   OUT     SEP,SLEN        ; 区切り線を出力
-        LAD     GR4,1,GR4       ; GR4 <- GR4 + 1
+        LAD     GR5,1,GR5       ; GR5 <- GR5 + 1
         JUMP    LOOPY           ; LOOPYへジャンプ
 WOV     OUT     YOMSG,YLEN      ; オーバーフローした場合のメッセージを表示
+        PUSH    0,GR1           ; GR0の数値を出力
+        LD      GR1,GR0         ; ↓
+        CALL    OUTL            ; ↓
+        POP     GR1             ; ↓
+        PUSH    0,GR1           ; GR3の数値を出力
+        LD      GR1,GR3         ; ↓
+        CALL    OUTL            ; ↓
+        POP     GR3             ; ↓
         JUMP    YNEXT           ; YNEXTへジャンプ
-XNEXT   LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
+XNEXT   LAD     GR4,1,GR4       ; GR4 <- GR4 + 1
         JUMP    LOOPX           ; LOOPXへジャンプ
 FIN     RET
 X       DC      0,1,2,127,128,255,256,257,32767,#8000,#FFFF
@@ -32,6 +40,6 @@ XCNT    DC      11
 YCNT    DC      11
 SEP     DC      '--------------------'
 SLEN    DC      20
-YOMSG   DC      'Warning: overflow'
-YLEN    DC      17
+YOMSG   DC      'overflow'
+YLEN    DC      8
         END