From 407e5a05be482800b551d770637daf79f8ebc9f3 Mon Sep 17 00:00:00 2001 From: j8takagi Date: Thu, 18 Jun 2026 18:57:31 +0900 Subject: [PATCH] =?utf8?q?casl2rev=E3=81=AA=E3=81=A9=E3=81=AE=E9=80=86?= =?utf8?q?=E3=82=A2=E3=82=BB=E3=83=B3=E3=83=96=E3=83=AB=E3=81=A7=E3=80=81D?= =?utf8?q?C/DS=E3=81=AE=E8=A1=A8=E7=A4=BA=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/disassemble.c | 6 +- test/system/casl2rev/dc/0.txt | 7 ++ test/system/casl2rev/dc/Makefile | 7 ++ test/system/casl2rev/dc/cmd | 1 + test/system/casl2rev/dc/dc.casl | 7 ++ test/system/casl2rev/dc/desc.txt | 1 + test/system/casl2rev/ds/0.txt | 11 +++ test/system/casl2rev/ds/Makefile | 7 ++ test/system/casl2rev/ds/cmd | 1 + test/system/casl2rev/ds/desc.txt | 1 + test/system/casl2rev/ds/ds.casl | 4 + test/system/casl2rev/io/0.txt | 126 +++++++++++++++---------------- 12 files changed, 113 insertions(+), 66 deletions(-) create mode 100644 test/system/casl2rev/dc/0.txt create mode 100644 test/system/casl2rev/dc/Makefile create mode 100755 test/system/casl2rev/dc/cmd create mode 100644 test/system/casl2rev/dc/dc.casl create mode 100644 test/system/casl2rev/dc/desc.txt create mode 100644 test/system/casl2rev/ds/0.txt create mode 100644 test/system/casl2rev/ds/Makefile create mode 100755 test/system/casl2rev/ds/cmd create mode 100644 test/system/casl2rev/ds/desc.txt create mode 100644 test/system/casl2rev/ds/ds.casl diff --git a/src/disassemble.c b/src/disassemble.c index 3f5a815..2fcc604 100644 --- a/src/disassemble.c +++ b/src/disassemble.c @@ -137,9 +137,9 @@ void disassemble_ds(WORD wcnt, WORD pradr) cnt = fprintf(stdout, " DS %-5d ", wcnt); disassemble_puts_code(cnt, pradr, 1, (WORD []){0}); - for(int i = 0; i < wcnt - 1; i++) { + for(int i = 1; i < wcnt; i++) { fprintf(stdout, "\n"); - disassemble_puts_code(0, pradr+1, 1, (WORD []){0}); + disassemble_puts_code(0, pradr+i, 1, (WORD []){0}); } } @@ -207,7 +207,7 @@ bool disassemble_file(const char *file) i += zcnt - 1; } } - } else if(cmd == 0) { + } else if(cmd == 0 || cmdname ==NULL) { disassemble_dc(word, i); } else { if(cmdtype == R_ADR_X || cmdtype == ADR_X) { diff --git a/test/system/casl2rev/dc/0.txt b/test/system/casl2rev/dc/0.txt new file mode 100644 index 0000000..f6f40f7 --- /dev/null +++ b/test/system/casl2rev/dc/0.txt @@ -0,0 +1,7 @@ +MAIN START + RET ; #0000: #8100 + DC 0 ; #0001: #0000 :: 0 = #0000 = 0000000000000000 + DC 1 ; #0002: #0001 :: 1 = #0001 = 0000000000000001 + DC 65535 ; #0003: #FFFF :: 65535 = #FFFF = 1111111111111111 + DC 65535 ; #0004: #FFFF :: 65535 = #FFFF = 1111111111111111 + END diff --git a/test/system/casl2rev/dc/Makefile b/test/system/casl2rev/dc/Makefile new file mode 100644 index 0000000..ced7c64 --- /dev/null +++ b/test/system/casl2rev/dc/Makefile @@ -0,0 +1,7 @@ +include ../Define.mk +include ../Test.mk + +cmd: io.o + +io.o: ../../../../as/misc/io.casl + ../../../../casl2 -O$@ $< diff --git a/test/system/casl2rev/dc/cmd b/test/system/casl2rev/dc/cmd new file mode 100755 index 0000000..2db90c2 --- /dev/null +++ b/test/system/casl2rev/dc/cmd @@ -0,0 +1 @@ +../../../../casl2rev dc.o diff --git a/test/system/casl2rev/dc/dc.casl b/test/system/casl2rev/dc/dc.casl new file mode 100644 index 0000000..5d14428 --- /dev/null +++ b/test/system/casl2rev/dc/dc.casl @@ -0,0 +1,7 @@ +MAIN START + RET + DC 0 + DC 1 + DC 65535 + DC #FFFF + END diff --git a/test/system/casl2rev/dc/desc.txt b/test/system/casl2rev/dc/desc.txt new file mode 100644 index 0000000..d13a44b --- /dev/null +++ b/test/system/casl2rev/dc/desc.txt @@ -0,0 +1 @@ +DCを用いたプログラムを逆アセンブル diff --git a/test/system/casl2rev/ds/0.txt b/test/system/casl2rev/ds/0.txt new file mode 100644 index 0000000..d343d0a --- /dev/null +++ b/test/system/casl2rev/ds/0.txt @@ -0,0 +1,11 @@ +MAIN START + RET ; #0000: #8100 + DS 8 ; #0001: #0000 + ; #0002: #0000 + ; #0003: #0000 + ; #0004: #0000 + ; #0005: #0000 + ; #0006: #0000 + ; #0007: #0000 + ; #0008: #0000 + END diff --git a/test/system/casl2rev/ds/Makefile b/test/system/casl2rev/ds/Makefile new file mode 100644 index 0000000..ced7c64 --- /dev/null +++ b/test/system/casl2rev/ds/Makefile @@ -0,0 +1,7 @@ +include ../Define.mk +include ../Test.mk + +cmd: io.o + +io.o: ../../../../as/misc/io.casl + ../../../../casl2 -O$@ $< diff --git a/test/system/casl2rev/ds/cmd b/test/system/casl2rev/ds/cmd new file mode 100755 index 0000000..da4efe3 --- /dev/null +++ b/test/system/casl2rev/ds/cmd @@ -0,0 +1 @@ +../../../../casl2rev ds.o diff --git a/test/system/casl2rev/ds/desc.txt b/test/system/casl2rev/ds/desc.txt new file mode 100644 index 0000000..acaf760 --- /dev/null +++ b/test/system/casl2rev/ds/desc.txt @@ -0,0 +1 @@ +DSを用いたプログラムを逆アセンブル diff --git a/test/system/casl2rev/ds/ds.casl b/test/system/casl2rev/ds/ds.casl new file mode 100644 index 0000000..a6be58b --- /dev/null +++ b/test/system/casl2rev/ds/ds.casl @@ -0,0 +1,4 @@ +MAIN START + RET + DS 8 + END diff --git a/test/system/casl2rev/io/0.txt b/test/system/casl2rev/io/0.txt index 2b6dd98..b3d8edf 100644 --- a/test/system/casl2rev/io/0.txt +++ b/test/system/casl2rev/io/0.txt @@ -96,69 +96,69 @@ MAIN START DC 12 ; #0086: #000C :: 12 = #000C = 0000000000001100 DS 65 ; #0087: #0000 ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 - ; #0088: #0000 + ; #0089: #0000 + ; #008A: #0000 + ; #008B: #0000 + ; #008C: #0000 + ; #008D: #0000 + ; #008E: #0000 + ; #008F: #0000 + ; #0090: #0000 + ; #0091: #0000 + ; #0092: #0000 + ; #0093: #0000 + ; #0094: #0000 + ; #0095: #0000 + ; #0096: #0000 + ; #0097: #0000 + ; #0098: #0000 + ; #0099: #0000 + ; #009A: #0000 + ; #009B: #0000 + ; #009C: #0000 + ; #009D: #0000 + ; #009E: #0000 + ; #009F: #0000 + ; #00A0: #0000 + ; #00A1: #0000 + ; #00A2: #0000 + ; #00A3: #0000 + ; #00A4: #0000 + ; #00A5: #0000 + ; #00A6: #0000 + ; #00A7: #0000 + ; #00A8: #0000 + ; #00A9: #0000 + ; #00AA: #0000 + ; #00AB: #0000 + ; #00AC: #0000 + ; #00AD: #0000 + ; #00AE: #0000 + ; #00AF: #0000 + ; #00B0: #0000 + ; #00B1: #0000 + ; #00B2: #0000 + ; #00B3: #0000 + ; #00B4: #0000 + ; #00B5: #0000 + ; #00B6: #0000 + ; #00B7: #0000 + ; #00B8: #0000 + ; #00B9: #0000 + ; #00BA: #0000 + ; #00BB: #0000 + ; #00BC: #0000 + ; #00BD: #0000 + ; #00BE: #0000 + ; #00BF: #0000 + ; #00C0: #0000 + ; #00C1: #0000 + ; #00C2: #0000 + ; #00C3: #0000 + ; #00C4: #0000 + ; #00C5: #0000 + ; #00C6: #0000 + ; #00C7: #0000 DC 10 ; #00C8: #000A :: 10 = #000A = 0000000000001010 = '\n' DC 1 ; #00C9: #0001 :: 1 = #0001 = 0000000000000001 DC 10 ; #00CA: #000A :: 10 = #000A = 0000000000001010 = '\n' -- 2.47.3