コマンドテストCASLファイルの追加、整理
authorj8takagi <j8takagi@nifty.com>
Thu, 11 Feb 2010 13:18:15 +0000 (22:18 +0900)
committerj8takagi <j8takagi@nifty.com>
Thu, 11 Feb 2010 15:49:44 +0000 (00:49 +0900)
61 files changed:
as/cmd/AND/and0.casl
as/cmd/AND/and0_s.casl
as/cmd/AND/and0_z.casl
as/cmd/AND/and1.casl
as/cmd/AND/and2.casl [new file with mode: 0644]
as/cmd/IN/in.casl [new file with mode: 0644]
as/cmd/LAD/lad0_l.casl [deleted file]
as/cmd/LAD/lad2.casl [deleted file]
as/cmd/LAD/lad3.casl [deleted file]
as/cmd/LAD/lad4.casl [deleted file]
as/cmd/LD/ld0_l.casl [new file with mode: 0644]
as/cmd/LD/ld3.casl [deleted file]
as/cmd/LD/ld4.casl [deleted file]
as/cmd/LD/ld5.casl [deleted file]
as/cmd/LD/ld_loop.casl [deleted file]
as/cmd/NOP/nop.casl
as/cmd/OR/or0.casl [new file with mode: 0644]
as/cmd/OR/or0_s.casl [new file with mode: 0644]
as/cmd/OR/or0_z.casl [new file with mode: 0644]
as/cmd/OR/or1.casl [new file with mode: 0644]
as/cmd/OR/or2.casl [new file with mode: 0644]
as/cmd/OUT/out.casl [moved from as/cmd/OUT/out1.casl with 92% similarity]
as/cmd/OUT/out0.casl [deleted file]
as/cmd/POP/push_pop_0.casl [new file with mode: 0644]
as/cmd/POP/push_pop_1.casl [new file with mode: 0644]
as/cmd/PUSH/README [new file with mode: 0644]
as/cmd/PUSH/pushpop.casl [deleted file]
as/cmd/RET/README [new file with mode: 0644]
as/cmd/RPOP/rpop.casl [new file with mode: 0644]
as/cmd/RPUSH/rpush.casl [new file with mode: 0644]
as/cmd/SLA/sla_1.casl [new file with mode: 0644]
as/cmd/SLA/sla_2.casl [new file with mode: 0644]
as/cmd/SLA/sla_m.casl [new file with mode: 0644]
as/cmd/SLA/sla_o.casl [new file with mode: 0644]
as/cmd/SLA/sla_ov.casl [new file with mode: 0644]
as/cmd/SLA/sla_s.casl [new file with mode: 0644]
as/cmd/SLA/sla_so.casl [new file with mode: 0644]
as/cmd/SRA/sra_1.casl [new file with mode: 0644]
as/cmd/SRA/sra_m.casl [new file with mode: 0644]
as/cmd/SRA/sra_o.casl [new file with mode: 0644]
as/cmd/SRA/sra_ov.casl [new file with mode: 0644]
as/cmd/SRA/sra_s.casl [new file with mode: 0644]
as/cmd/SRA/sra_so.casl [new file with mode: 0644]
as/cmd/XOR/literal_spc.casl [deleted file]
as/cmd/XOR/xor0.casl
as/cmd/XOR/xor0_s.casl [new file with mode: 0644]
as/cmd/XOR/xor0_z.casl [new file with mode: 0644]
as/cmd/XOR/xor1.casl
as/cmd/XOR/xor2.casl [new file with mode: 0644]
as/cmd/XOR/xor2_clear.casl [moved from as/cmd/XOR/xor5.casl with 56% similarity]
as/cmd/XOR/xor3.casl [deleted file]
as/cmd/XOR/xor4.casl [deleted file]
as/misc/in_out.casl [moved from as/cmd/IN/in_out.casl with 100% similarity]
src/token.c
test/integration/casl2/cmd_err0/0.txt
test/integration/casl2/cmd_err1/0.txt
test/integration/casl2/ds_err/0.txt [new file with mode: 0644]
test/integration/casl2/labeldup_err/0.txt
test/integration/casl2/literalstr_err/0.txt
test/integration/casl2/opdspc_err/0.txt
test/integration/casl2/quoteend_err/0.txt

index 1fe63d1..b389e00 100644 (file)
@@ -1,4 +1,4 @@
-;;; AND r,adr[,x]
+;;; AND r,adr
 MAIN    START
         LD      GR1,A
         AND     GR1,B
index 448c768..b8aee82 100644 (file)
@@ -1,4 +1,4 @@
-;;; AND r,adr[,x] 演算結果の符号が負
+;;; AND r,adr 演算結果の符号が負
 MAIN    START
         LD      GR1,A
         AND     GR1,B
index 0ac684e..a33e69b 100644 (file)
@@ -1,4 +1,4 @@
-;;; AND r,adr[,x] 演算結果が零
+;;; AND r,adr 演算結果が零
 MAIN    START
         LD      GR1,A
         AND     GR1,B
index 91ea8cf..abec8ed 100644 (file)
@@ -1,9 +1,8 @@
-;;; AND r1,r2
+;;; AND r,adr
 MAIN    START
         LD      GR1,A
-        LD      GR2,B
-        AND     GR1,GR2
+        AND     GR1,1,A
         RET
 A       DC      #3000
-B       DC      #4FFF
+        DC      #4FFF
         END
diff --git a/as/cmd/AND/and2.casl b/as/cmd/AND/and2.casl
new file mode 100644 (file)
index 0000000..91ea8cf
--- /dev/null
@@ -0,0 +1,9 @@
+;;; AND r1,r2
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        AND     GR1,GR2
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
diff --git a/as/cmd/IN/in.casl b/as/cmd/IN/in.casl
new file mode 100644 (file)
index 0000000..248762f
--- /dev/null
@@ -0,0 +1,7 @@
+;;; IN IBUF,ILEN
+MAIN    START
+LOOP    IN      IBUF,ILEN
+FIN     RET
+IBUF    DS      20
+ILEN    DS      1
+        END
diff --git a/as/cmd/LAD/lad0_l.casl b/as/cmd/LAD/lad0_l.casl
deleted file mode 100644 (file)
index 0a9c296..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; LAD r,adr
-MAIN    START
-        LAD     GR1,='A'
-        RET
-        END
diff --git a/as/cmd/LAD/lad2.casl b/as/cmd/LAD/lad2.casl
deleted file mode 100644 (file)
index 5d75b42..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-LAD1    START
-        LAD     GR1,10
-        LAD     GR1,65534,GR1
-        RET
-        END
diff --git a/as/cmd/LAD/lad3.casl b/as/cmd/LAD/lad3.casl
deleted file mode 100644 (file)
index bd8d349..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-LAD1    START
-        LAD     GR1,-1
-        LAD     GR1,65535,GR1
-        RET
-        END
diff --git a/as/cmd/LAD/lad4.casl b/as/cmd/LAD/lad4.casl
deleted file mode 100644 (file)
index 1711f01..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN    START   BEGIN
-BEGIN   LD      GR7,A
-        LAD     GR7,1,GR7
-        RET
-A       DC      3
-        END
diff --git a/as/cmd/LD/ld0_l.casl b/as/cmd/LD/ld0_l.casl
new file mode 100644 (file)
index 0000000..b23b09e
--- /dev/null
@@ -0,0 +1,97 @@
+;;; LD  r,adr
+MAIN    START
+        LD      GR1,='"'
+        LD      GR1,='#'
+        LD      GR1,='$'
+        LD      GR1,='%'
+        LD      GR1,='&'
+        LD      GR1,=''''
+        LD      GR1,='('
+        LD      GR1,=')'
+        LD      GR1,='*'
+        LD      GR1,='+'
+        LD      GR1,=','
+        LD      GR1,='-'
+        LD      GR1,='.'
+        LD      GR1,='/'
+        LD      GR1,='0'
+        LD      GR1,='1'
+        LD      GR1,='2'
+        LD      GR1,='3'
+        LD      GR1,='4'
+        LD      GR1,='5'
+        LD      GR1,='6'
+        LD      GR1,='7'
+        LD      GR1,='8'
+        LD      GR1,='9'
+        LD      GR1,=':'
+        LD      GR1,=';'
+        LD      GR1,='<'
+        LD      GR1,='='
+        LD      GR1,='>'
+        LD      GR1,='?'
+        LD      GR1,='@'
+        LD      GR1,='A'
+        LD      GR1,='B'
+        LD      GR1,='C'
+        LD      GR1,='D'
+        LD      GR1,='E'
+        LD      GR1,='F'
+        LD      GR1,='G'
+        LD      GR1,='H'
+        LD      GR1,='I'
+        LD      GR1,='J'
+        LD      GR1,='K'
+        LD      GR1,='L'
+        LD      GR1,='M'
+        LD      GR1,='N'
+        LD      GR1,='O'
+        LD      GR1,='P'
+        LD      GR1,='Q'
+        LD      GR1,='R'
+        LD      GR1,='S'
+        LD      GR1,='T'
+        LD      GR1,='U'
+        LD      GR1,='V'
+        LD      GR1,='W'
+        LD      GR1,='X'
+        LD      GR1,='Y'
+        LD      GR1,='Z'
+        LD      GR1,='['
+        LD      GR1,='\'
+        LD      GR1,=']'
+        LD      GR1,='^'
+        LD      GR1,='_'
+        LD      GR1,='`'
+        LD      GR1,='a'
+        LD      GR1,='b'
+        LD      GR1,='c'
+        LD      GR1,='d'
+        LD      GR1,='e'
+        LD      GR1,='f'
+        LD      GR1,='g'
+        LD      GR1,='h'
+        LD      GR1,='i'
+        LD      GR1,='j'
+        LD      GR1,='k'
+        LD      GR1,='l'
+        LD      GR1,='m'
+        LD      GR1,='n'
+        LD      GR1,='o'
+        LD      GR1,='p'
+        LD      GR1,='q'
+        LD      GR1,='r'
+        LD      GR1,='s'
+        LD      GR1,='t'
+        LD      GR1,='u'
+        LD      GR1,='v'
+        LD      GR1,='w'
+        LD      GR1,='x'
+        LD      GR1,='y'
+        LD      GR1,='z'
+        LD      GR1,='{'
+        LD      GR1,='|'
+        LD      GR1,='}'
+        LD      GR1,='~'
+        RET
+        END
diff --git a/as/cmd/LD/ld3.casl b/as/cmd/LD/ld3.casl
deleted file mode 100644 (file)
index 733c109..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-MAIN   START
-BEGIN  LD      GR1,I
-       RET
-I      DC      17
-       END
diff --git a/as/cmd/LD/ld4.casl b/as/cmd/LD/ld4.casl
deleted file mode 100644 (file)
index d6723d6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-; LDコマンド
-MAIN   START   BEGIN
-BEGIN  LD      GR1,A
-        LD      GR2,B
-        ADDL    GR1,GR2
-        RET
-A      DC      32767
-B       DC      32675
-       END
diff --git a/as/cmd/LD/ld5.casl b/as/cmd/LD/ld5.casl
deleted file mode 100644 (file)
index 2b40d74..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-; LDコマンド
-MAIN    START   BEGIN
-BEGIN   LAD     GR2,1
-        LD      GR1,A,GR2
-        RET
-A       DC      1
-B       DC      2
-        END
diff --git a/as/cmd/LD/ld_loop.casl b/as/cmd/LD/ld_loop.casl
deleted file mode 100644 (file)
index 5e21750..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-;;; ループを使い、連続でGR1にデータを転送する
-MAIN    START
-        LAD     GR2,0
-MLOOP   CPA     GR2,LEN
-        JZE     MEND
-        LD      GR1,DATA,GR2
-        LAD     GR2,1,GR2
-        JUMP    MLOOP
-MEND    RET
-DATA    DC      #9600,#F000,#A400
-LEN     DC      3
-        END
index 362bc6c..6facee4 100644 (file)
@@ -1,3 +1,4 @@
+;;; NOP
 MAIN    START
         NOP
         NOP
@@ -10,4 +11,3 @@ MAIN    START
         NOP
         RET
         END
-        
\ No newline at end of file
diff --git a/as/cmd/OR/or0.casl b/as/cmd/OR/or0.casl
new file mode 100644 (file)
index 0000000..d23f8c2
--- /dev/null
@@ -0,0 +1,8 @@
+;;; OR r,adr
+MAIN    START
+        LD      GR1,A
+        OR      GR1,B
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
diff --git a/as/cmd/OR/or0_s.casl b/as/cmd/OR/or0_s.casl
new file mode 100644 (file)
index 0000000..7c29667
--- /dev/null
@@ -0,0 +1,8 @@
+;;; OR r,adr 演算結果の符号が負
+MAIN    START
+        LD      GR1,A
+        OR      GR1,B
+        RET
+A       DC      #8000
+B       DC      #FFFF
+        END
diff --git a/as/cmd/OR/or0_z.casl b/as/cmd/OR/or0_z.casl
new file mode 100644 (file)
index 0000000..d4843e8
--- /dev/null
@@ -0,0 +1,8 @@
+;;; OR r,adr 演算結果が零
+MAIN    START
+        LD      GR1,A
+        OR      GR1,B
+        RET
+A       DC      #0001
+B       DC      #FFFE
+        END
diff --git a/as/cmd/OR/or1.casl b/as/cmd/OR/or1.casl
new file mode 100644 (file)
index 0000000..1067c46
--- /dev/null
@@ -0,0 +1,8 @@
+;;; OR r,adr
+MAIN    START
+        LD      GR1,A
+        OR      GR1,1,A
+        RET
+A       DC      #3000
+        DC      #4FFF
+        END
diff --git a/as/cmd/OR/or2.casl b/as/cmd/OR/or2.casl
new file mode 100644 (file)
index 0000000..63be2ca
--- /dev/null
@@ -0,0 +1,9 @@
+;;; OR r1,r2
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        OR      GR1,GR2
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
similarity index 92%
rename from as/cmd/OUT/out1.casl
rename to as/cmd/OUT/out.casl
index 851ef6c..2a491fe 100644 (file)
@@ -1,5 +1,5 @@
-;;; OUTの使用例
-OTEST   START
+;;; OUT buf.len
+MAIN    START
         OUT     BUF1,L1
         OUT     BUF2,L2
         OUT     BUF3,L3
diff --git a/as/cmd/OUT/out0.casl b/as/cmd/OUT/out0.casl
deleted file mode 100644 (file)
index 4f046e3..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MAIN     START
-         OUT    BUF,LEN
-         RET
-BUF      DC     '0'
-LEN      DC     1
-         END
diff --git a/as/cmd/POP/push_pop_0.casl b/as/cmd/POP/push_pop_0.casl
new file mode 100644 (file)
index 0000000..cdf1a64
--- /dev/null
@@ -0,0 +1,27 @@
+;;; PUSH / POP 値の復元
+MAIN    START
+        LD      GR1,A
+        LD      GR1,0,GR7
+        LD      GR2,1,GR7
+        LD      GR3,2,GR7
+        LD      GR4,3,GR7
+        LD      GR5,4,GR7
+        LD      GR6,5,GR7
+        LD      GR7,6,GR7
+        PUSH    0,GR1
+        PUSH    0,GR2
+        PUSH    0,GR3
+        PUSH    0,GR4
+        PUSH    0,GR5
+        PUSH    0,GR6
+        PUSH    0,GR7
+        POP     GR7
+        POP     GR6
+        POP     GR5
+        POP     GR4
+        POP     GR3
+        POP     GR2
+        POP     GR1
+        RET
+A       DC      1,2,3,4,5,6,7
+        END
diff --git a/as/cmd/POP/push_pop_1.casl b/as/cmd/POP/push_pop_1.casl
new file mode 100644 (file)
index 0000000..08f4c43
--- /dev/null
@@ -0,0 +1,27 @@
+;;; PUSH / POP 値の交換
+MAIN    START
+        LD      GR1,A
+        LD      GR1,0,GR7
+        LD      GR2,1,GR7
+        LD      GR3,2,GR7
+        LD      GR4,3,GR7
+        LD      GR5,4,GR7
+        LD      GR6,5,GR7
+        LD      GR7,6,GR7
+        PUSH    0,GR1
+        PUSH    0,GR2
+        PUSH    0,GR3
+        PUSH    0,GR4
+        PUSH    0,GR5
+        PUSH    0,GR6
+        PUSH    0,GR7
+        POP     GR1
+        POP     GR2
+        POP     GR3
+        POP     GR4
+        POP     GR5
+        POP     GR6
+        POP     GR7
+        RET
+A       DC      1,2,3,4,5,6,7
+        END
diff --git a/as/cmd/PUSH/README b/as/cmd/PUSH/README
new file mode 100644 (file)
index 0000000..f6733a3
--- /dev/null
@@ -0,0 +1 @@
+see POP
diff --git a/as/cmd/PUSH/pushpop.casl b/as/cmd/PUSH/pushpop.casl
deleted file mode 100644 (file)
index f8c8d33..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-PUSHPOP START
-        LAD     GR1,1
-        LAD     GR2,2
-        PUSH    0,GR1
-        PUSH    0,GR2
-        LAD     GR1,0
-        LAD     GR2,0
-        POP     GR2
-        POP     GR1
-        RET
-        END
diff --git a/as/cmd/RET/README b/as/cmd/RET/README
new file mode 100644 (file)
index 0000000..aa33c9c
--- /dev/null
@@ -0,0 +1 @@
+see CALL
diff --git a/as/cmd/RPOP/rpop.casl b/as/cmd/RPOP/rpop.casl
new file mode 100644 (file)
index 0000000..c6c31bd
--- /dev/null
@@ -0,0 +1,21 @@
+;;; RPOP 値の復元
+MAIN    START
+        LD      GR1,A
+        LD      GR1,0,GR7
+        LD      GR2,1,GR7
+        LD      GR3,2,GR7
+        LD      GR4,3,GR7
+        LD      GR5,4,GR7
+        LD      GR6,5,GR7
+        LD      GR7,6,GR7
+        PUSH    0,GR1
+        PUSH    0,GR2
+        PUSH    0,GR3
+        PUSH    0,GR4
+        PUSH    0,GR5
+        PUSH    0,GR6
+        PUSH    0,GR7
+        RPOP
+        RET
+A       DC      1,2,3,4,5,6,7
+        END
diff --git a/as/cmd/RPUSH/rpush.casl b/as/cmd/RPUSH/rpush.casl
new file mode 100644 (file)
index 0000000..3a86ea2
--- /dev/null
@@ -0,0 +1,21 @@
+;;; PUSH / POP 値の復元
+MAIN    START
+        LD      GR1,A
+        LD      GR1,0,GR7
+        LD      GR2,1,GR7
+        LD      GR3,2,GR7
+        LD      GR4,3,GR7
+        LD      GR5,4,GR7
+        LD      GR6,5,GR7
+        LD      GR7,6,GR7
+        RPUSH
+        POP     GR7
+        POP     GR6
+        POP     GR5
+        POP     GR4
+        POP     GR3
+        POP     GR2
+        POP     GR1
+        RET
+A       DC      1,2,3,4,5,6,7
+        END
diff --git a/as/cmd/SLA/sla_1.casl b/as/cmd/SLA/sla_1.casl
new file mode 100644 (file)
index 0000000..51bc045
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,3
+        SLA     GR1,2
+        RET
+        END
diff --git a/as/cmd/SLA/sla_2.casl b/as/cmd/SLA/sla_2.casl
new file mode 100644 (file)
index 0000000..1a5e0c3
--- /dev/null
@@ -0,0 +1,5 @@
+SLA2    START   BEGIN
+BEGIN   LAD     GR1,#FFFD
+        SLA     GR1,2
+        RET
+        END
diff --git a/as/cmd/SLA/sla_m.casl b/as/cmd/SLA/sla_m.casl
new file mode 100644 (file)
index 0000000..1a5e0c3
--- /dev/null
@@ -0,0 +1,5 @@
+SLA2    START   BEGIN
+BEGIN   LAD     GR1,#FFFD
+        SLA     GR1,2
+        RET
+        END
diff --git a/as/cmd/SLA/sla_o.casl b/as/cmd/SLA/sla_o.casl
new file mode 100644 (file)
index 0000000..ab7aac9
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#4000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SLA/sla_ov.casl b/as/cmd/SLA/sla_ov.casl
new file mode 100644 (file)
index 0000000..d5aee00
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#C000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SLA/sla_s.casl b/as/cmd/SLA/sla_s.casl
new file mode 100644 (file)
index 0000000..440cacc
--- /dev/null
@@ -0,0 +1,5 @@
+SLA2    START   BEGIN
+BEGIN   LAD     GR1,#8000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SLA/sla_so.casl b/as/cmd/SLA/sla_so.casl
new file mode 100644 (file)
index 0000000..d5aee00
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#C000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SRA/sra_1.casl b/as/cmd/SRA/sra_1.casl
new file mode 100644 (file)
index 0000000..ce1fee4
--- /dev/null
@@ -0,0 +1,6 @@
+;;; SRA r,adr
+MAIN    START
+        LAD     GR1,12
+        SRA     GR1,2
+        RET
+        END
diff --git a/as/cmd/SRA/sra_m.casl b/as/cmd/SRA/sra_m.casl
new file mode 100644 (file)
index 0000000..1a5e0c3
--- /dev/null
@@ -0,0 +1,5 @@
+SLA2    START   BEGIN
+BEGIN   LAD     GR1,#FFFD
+        SLA     GR1,2
+        RET
+        END
diff --git a/as/cmd/SRA/sra_o.casl b/as/cmd/SRA/sra_o.casl
new file mode 100644 (file)
index 0000000..ab7aac9
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#4000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SRA/sra_ov.casl b/as/cmd/SRA/sra_ov.casl
new file mode 100644 (file)
index 0000000..d5aee00
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#C000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SRA/sra_s.casl b/as/cmd/SRA/sra_s.casl
new file mode 100644 (file)
index 0000000..440cacc
--- /dev/null
@@ -0,0 +1,5 @@
+SLA2    START   BEGIN
+BEGIN   LAD     GR1,#8000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/SRA/sra_so.casl b/as/cmd/SRA/sra_so.casl
new file mode 100644 (file)
index 0000000..d5aee00
--- /dev/null
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,#C000
+        SLA     GR1,1
+        RET
+        END
diff --git a/as/cmd/XOR/literal_spc.casl b/as/cmd/XOR/literal_spc.casl
deleted file mode 100644 (file)
index 7c98d7b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-; リテラルに「=' '」を指定
-MAIN    START
-        LD      GR1,=' '
-        ST      GR1,BUF
-        OUT     BUF,LEN
-        RET
-BUF     DS      1
-LEN     DC      1
-        END
index ced17dd..1896735 100644 (file)
@@ -1,8 +1,8 @@
-MAIN   START
-BEGIN  LD      GR1,A
-       LD      GR2,A
-       XOR     GR1,GR2
-    RET
-A      DC      #8001
-B      DC      #3521
-       END
+;;; XOR r,adr
+MAIN    START
+        LD      GR1,A
+        XOR     GR1,B
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
diff --git a/as/cmd/XOR/xor0_s.casl b/as/cmd/XOR/xor0_s.casl
new file mode 100644 (file)
index 0000000..31ccb2a
--- /dev/null
@@ -0,0 +1,8 @@
+;;; XOR r,adr 演算結果の符号が負
+MAIN    START
+        LD      GR1,A
+        XOR     GR1,B
+        RET
+A       DC      #8000
+B       DC      #FFFF
+        END
diff --git a/as/cmd/XOR/xor0_z.casl b/as/cmd/XOR/xor0_z.casl
new file mode 100644 (file)
index 0000000..5a747bd
--- /dev/null
@@ -0,0 +1,8 @@
+;;; XOR r,adr 演算結果が零
+MAIN    START
+        LD      GR1,A
+        XOR     GR1,B
+        RET
+A       DC      #0001
+B       DC      #FFFE
+        END
index a587fab..dc52edd 100644 (file)
@@ -1,7 +1,8 @@
-MAIN   START
-BEGIN  LAD     GR0,#3444
-       LD      GR1,A
-       XOR     GR0,A
-    RET
-A      DC      #00DD
-       END
+;;; XOR r,adr
+MAIN    START
+        LD      GR1,A
+        XOR     GR1,1,A
+        RET
+A       DC      #3000
+        DC      #4FFF
+        END
diff --git a/as/cmd/XOR/xor2.casl b/as/cmd/XOR/xor2.casl
new file mode 100644 (file)
index 0000000..fc95b85
--- /dev/null
@@ -0,0 +1,9 @@
+;;; XOR r1,r2
+MAIN    START
+        LD      GR1,A
+        LD      GR2,B
+        XOR     GR1,GR2
+        RET
+A       DC      #3000
+B       DC      #4FFF
+        END
similarity index 56%
rename from as/cmd/XOR/xor5.casl
rename to as/cmd/XOR/xor2_clear.casl
index 0d5e346..ff454dd 100644 (file)
@@ -1,7 +1,7 @@
+;;; XOR r,r rの内容をクリア
 MAIN    START
 BEGIN   LD      GR1,A
-        XOR     GR1,B
+        XOR     GR1,GR1
         RET
 A       DC      3
-B       DC      #FFFF
         END
diff --git a/as/cmd/XOR/xor3.casl b/as/cmd/XOR/xor3.casl
deleted file mode 100644 (file)
index 7b6e7cd..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-MAIN    START
-BEGIN   LAD     GR0,#3444
-        LD      GR1,A
-        XOR     GR0,A
-        RET
-A       DC      #00DD
-        END
diff --git a/as/cmd/XOR/xor4.casl b/as/cmd/XOR/xor4.casl
deleted file mode 100644 (file)
index 845043d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-;;; XORで、GR1の内容をクリア
-MAIN    START
-BEGIN   XOR     GR2,GR2
-LOOP    CPA     GR2,LEN
-        JZE     FIN
-        LD      GR1,A,GR2
-        XOR     GR1,GR1
-        LAD     GR2,1,GR2
-        JUMP    LOOP
-FIN     RET
-A       DC      #8001,#8000,#FFFF,#51,#7FFF
-LEN     DC      5
-        END
similarity index 100%
rename from as/cmd/IN/in_out.casl
rename to as/misc/in_out.casl
index 54ebf3f..2757a7b 100644 (file)
@@ -6,7 +6,7 @@ OPD *opdtok(const char *str)
 {
     OPD *opd = malloc(sizeof(OPD));
     char *p, *q, *sepp;
-    int sepc = ',', len;
+    int sepc = ',', len = 0;
     bool quoting = false;
 
     opd->opdc = 0;
@@ -15,7 +15,6 @@ OPD *opdtok(const char *str)
     }
     p = q = strdup(str);
     do {
-        len = 0;
         /* オペランド数が多すぎる場合はエラー */
         if(opd->opdc >= OPDSIZE) {
             setcerr(117, str);    /* operand is too many */
index 711c1da..fd2ff24 100644 (file)
@@ -6,5 +6,4 @@ Assemble ../../../../as/ERR/cmd_err0.casl (0)
 ../../../../as/ERR/cmd_err0.casl:    3:        LAD     GR2,2
 ../../../../as/ERR/cmd_err0.casl:    4:        LEA     GR1,GR2
 Assemble error - 109: LEA: not command of operand "r1,r2"
- ../../../../as/ERR/cmd_err0.casl:4:         LEA     GR1,GR2
-
+../../../../as/ERR/cmd_err0.casl:    4:        LEA     GR1,GR2
index 0c5569a..56921a4 100644 (file)
@@ -4,5 +4,4 @@ Assemble ../../../../as/ERR/cmd_err1.casl (0)
 ../../../../as/ERR/cmd_err1.casl:    1:MAIN    START   BEGIN
 ../../../../as/ERR/cmd_err1.casl:    2:BEGIN   LEA     GR1,A
 Assemble error - 110: LEA: not command of operand "r,adr[,x]"
- ../../../../as/ERR/cmd_err1.casl:2: BEGIN   LEA     GR1,A
-
+../../../../as/ERR/cmd_err1.casl:    2:BEGIN   LEA     GR1,A
diff --git a/test/integration/casl2/ds_err/0.txt b/test/integration/casl2/ds_err/0.txt
new file mode 100644 (file)
index 0000000..211dc12
--- /dev/null
@@ -0,0 +1,9 @@
+../../../../casl2 -slatd ../../../../as/ERR/ds_err.casl
+
+Assemble ../../../../as/ERR/ds_err.casl (0)
+../../../../as/ERR/ds_err.casl:    1:MAIN    START
+../../../../as/ERR/ds_err.casl:    2:        LAD     GR0,=10
+../../../../as/ERR/ds_err.casl:    3:        ST      GR0,A
+../../../../as/ERR/ds_err.casl:    4:A       DS
+Assemble error - 106: operand count mismatch
+../../../../as/ERR/ds_err.casl:    4:A       DS
index ea2931f..9725887 100644 (file)
@@ -8,5 +8,4 @@ Assemble ../../../../as/ERR/labeldup_err.casl (0)
 ../../../../as/ERR/labeldup_err.casl:    5:A       DC      3
 ../../../../as/ERR/labeldup_err.casl:    6:A       DC      1
 Assemble error - 101: A: label already defined
- ../../../../as/ERR/labeldup_err.casl:6: A       DC      1
-
+../../../../as/ERR/labeldup_err.casl:    6:A       DC      1
index 755d174..d84ce53 100644 (file)
@@ -2,5 +2,4 @@
 
 Assemble ../../../../as/ERR/literalstr_err.casl (0)
 Assemble error - 124: 'abcdeABCDE': more than one character in literal
- ../../../../as/ERR/literalstr_err.casl:2:         LAD     GR1,='abcdeABCDE'
-
+../../../../as/ERR/literalstr_err.casl:    2:        LAD     GR1,='abcdeABCDE'
index e1a99b5..fca7140 100644 (file)
@@ -4,5 +4,4 @@ Assemble ../../../../as/ERR/opdspc_err.casl (0)
 ../../../../as/ERR/opdspc_err.casl:    1:MAIN    START   BEGIN
 ../../../../as/ERR/opdspc_err.casl:    2:BEGIN   LD      GR1, A
 Assemble error - 121: cannot get operand token
- ../../../../as/ERR/opdspc_err.casl:2: BEGIN   LD      GR1, A
-
+../../../../as/ERR/opdspc_err.casl:    2:BEGIN   LD      GR1, A
index 8c19446..53e03fe 100644 (file)
@@ -2,5 +2,4 @@
 
 Assemble ../../../../as/ERR/quoteend_err.casl (0)
 Assemble error - 123: 'Hello, World!: unclosed quote
- ../../../../as/ERR/quoteend_err.casl:4: BUF      DC     'Hello, World!
-
+../../../../as/ERR/quoteend_err.casl:    4:BUF      DC     'Hello, World!