dumpwordコマンドを追加
authorj8takagi <j8takagi@nifty.com>
Thu, 21 Jan 2010 14:18:23 +0000 (23:18 +0900)
committerj8takagi <j8takagi@nifty.com>
Thu, 21 Jan 2010 14:20:50 +0000 (23:20 +0900)
dumpwordは、16進数値を10進/2進数値として表示する

include/casl2.h
include/exec.h
src/Makefile
src/casl2.c
src/dump.c
src/exec.c

index 47461dc..65d2870 100644 (file)
@@ -155,3 +155,12 @@ void freecerr();
 
 /* 指定されたファイルにアセンブル結果を書込 */
 void outassemble(char *file);
+
+/* WORD値を2進数表記に変換 */
+char *word2bit(const WORD word);
+
+/* COMET IIのメモリを表示 */
+void dumpmemory();
+
+/* COMET IIのレジスタを表示 */
+void dspregister();
index 529702c..c06929f 100644 (file)
@@ -52,12 +52,3 @@ void reset();
 
 /* コードの実行 */
 void exec();
-
-/* WORD値を2進数表記に変換 */
-char *word2bit(const WORD word);
-
-/* COMET IIのメモリを表示 */
-void dumpmemory();
-
-/* COMET IIのレジスタを表示 */
-void dspregister();
index eab8363..0ff70c2 100644 (file)
@@ -1,23 +1,23 @@
 INCLUDE = ../include
 CC = gcc
-CFLAGS = -g -Wall -I $(INCLUDE)
-COMMONSRC = struct.o cmd.o cerr.o
+CFLAGS = -Wall -I $(INCLUDE)
+COMMONSRC = struct.o cmd.o cerr.o dump.o
 ASSRC = assemble.o token.o label.o macro.o
-EXECSRC = exec.o dump.o
+EXECSRC = exec.o
 .PHPNY: all clean
-all: ../casl2 ../comet2 TAGS
+all: ../casl2 ../comet2 ../dumpword TAGS
 ../casl2: casl2.o $(COMMONSRC) $(ASSRC) $(EXECSRC)
        $(CC) $(CFLAGS) -o $@ $^
 ../comet2: comet2.o $(COMMONSRC) $(EXECSRC)
        $(CC) $(CFLAGS) -o $@ $^
+../dumpword: dumpword.o $(COMMONSRC)
+       $(CC) $(CFLAGS) -o $@ $^
 %.o: %.c
        $(CC) -c $(CFLAGS) $<
 casl2.o comet2.o $(COMMONSRC) $(ASSRC) $(EXECSRC): $(INCLUDE)/casl2.h
 casl2.o $(ASSRC): $(INCLUDE)/assemble.h
-comet2.c $(EXECSRC): $(INCLUDE)/exec.h
+comet2.o $(EXECSRC): $(INCLUDE)/exec.h
 TAGS: $(INCLUDE)/*.h *.c
-       @if test `which etags`; then \
-      etags $^; \
-    fi
+       @if test `which etags`; then etags $^; fi
 clean:
        @rm -f *.o
index f4c8f88..ad07960 100644 (file)
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
         }
     }
     if(argv[optind] == NULL) {
-       fprintf(stderr, "source file is not specified\n");
+        fprintf(stderr, "source file is not specified\n");
         exit(-1);
     }
     /* ソースファイルが指定されていない場合は終了 */
index 2c77520..d07c40f 100644 (file)
@@ -1,5 +1,4 @@
 #include "casl2.h"
-#include "exec.h"
 
 /* WORD値を2進数表記に変換 */
 char *word2bit(const WORD word)
@@ -8,8 +7,8 @@ char *word2bit(const WORD word)
     char *bit, *p;
     bit = malloc(16 + 1);
     p = bit;
-       while(mask > 0){
-           if((word & mask) == 0) {
+        while(mask > 0){
+            if((word & mask) == 0) {
             *p++ = '0';
         } else {
             *p++ = '1';
@@ -32,7 +31,7 @@ void dumpmemory()
     }
     fprintf(stdout, "\n");
     /* Memory */
-    for(i = 0; i < MEMSIZE; i++) {
+    for(i = 0; i < memsize; i++) {
         if(i % col == 0) {
             fprintf(stdout, "#%04X: %04X: ", PR, i);
         }
index 25d6c38..4b3ed78 100644 (file)
@@ -42,7 +42,8 @@ void svcout()
         }
         /* 「文字の組」の符号表に記載された文字と、改行(CR)/タブを表示
            それ以外の文字は、「.」で表す */
-        if(((c = (char)(memory[GR[1]+i])) >= 0x20 && c <= 0x7E) || c == 0xA || c == '\t') {
+        if(((c = (char)(memory[GR[1]+i])) >= 0x20 && c <= 0x7E) || c == 0xA || c == '\t')
+        {
             putchar(c);
         } else {
             putchar('.');