diff os9/os9disass.c @ 8:96a067cf4c4f

level2 rom done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 05 Jul 2018 12:07:06 +0900
parents 3c736a81b886
children 111e5defb8ab
line wrap: on
line diff
--- a/os9/os9disass.c	Thu Jul 05 02:00:14 2018 +0900
+++ b/os9/os9disass.c	Thu Jul 05 12:07:06 2018 +0900
@@ -1110,7 +1110,7 @@
   int offset;
 
   offset = prog[pc+1];
-  fprintf(fp,"%0.2X %0.2X       %s%s       $%0.2X",
+  fprintf(fp,"%0.2X %0.2X       %s%s       <$%0.2X",
 	code, offset, suffix, op->name, offset);
   return op->bytes;
 }
@@ -1307,14 +1307,14 @@
 		offset = (prog[pc+2]+pc+3) & 0xFFFF;
 		s = "<";
 		fprintf(fp,"%0.2X %0.2X %0.2X    %s%s       %s$%0.2X,PCR",
-				  code, postbyte, prog[pc+2], suffix, op->name, s, pc+3+offset+adoffset);
+				  code, postbyte, prog[pc+2], suffix, op->name, s, offset+adoffset);
 		extrabytes = 1;
 		break;
 	 case 0x0d :
 		offset = (prog[pc+2] * 256 + prog[pc+3]+pc+4) & 0xFFFF;
 		s = ">";
 		fprintf(fp,"%0.2X %0.2X %0.2X %0.2X %s%s       %s$%0.4X,PCR",
-				  code, postbyte, prog[pc+2], prog[pc+3], suffix, op->name, s, offset+pc+4+adoffset);
+				  code, postbyte, prog[pc+2], prog[pc+3], suffix, op->name, s, offset+adoffset);
 		extrabytes = 2;
 		break;
 	 case 0x0e :
@@ -1387,14 +1387,14 @@
 		offset = (prog[pc+2]+pc+3) & 0xFFFF;
 		s = "<";
 		fprintf(fp,"%0.2X %0.2X %0.2X    %s%s       [%s$%0.2X,PCR]",
-				  code, postbyte, prog[pc+2], suffix, op->name, s, offset+pc+2+adoffset);
+				  code, postbyte, prog[pc+2], suffix, op->name, s, offset+adoffset);
 		extrabytes = 1;
 		break;
 	 case 0x1d :
 		offset = (prog[pc+2] * 256 + prog[pc+3]+pc+4) & 0xFFFF;
 		s = ">";
 		fprintf(fp,"%0.2X %0.2X %0.2X %0.2X %s%s       [%s$%0.4X,PCR]",
-				  code, postbyte, prog[pc+2], prog[pc+3], suffix, op->name, s, offset+pc+3+adoffset);
+				  code, postbyte, prog[pc+2], prog[pc+3], suffix, op->name, s, offset+adoffset);
 		extrabytes = 2;
 		break;
 	 case 0x1e :
@@ -1639,7 +1639,8 @@
   }
 
   sscanf(argv[2],"%x",&start); start -= adoffset;
-  sscanf(argv[3],"%x",&end); end -= adoffset;
+  sscanf(argv[3],"%x",&end); end     -= adoffset;
+  printf("disass %x - %x\n",start,end);
 
   fp = stdout;