From 9cf0030fe82530c9404c37ca4c40cddbcfb578b0 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 19 Mar 2021 13:28:03 +0000 Subject: [PATCH] - fixed jasm to use with ruby > v1.9 git-svn-id: http://moon:8086/svn/vhdl/trunk@1392 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/JCpu/tools/jasm.rb | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/CPUs/JCpu/tools/jasm.rb b/lib/CPUs/JCpu/tools/jasm.rb index 0959ba9..a933779 100644 --- a/lib/CPUs/JCpu/tools/jasm.rb +++ b/lib/CPUs/JCpu/tools/jasm.rb @@ -33,7 +33,7 @@ XROM_MAX_SIZE = 256 XROM_DATA_TYPE = "dmem_data_t" XROM_ADDR_TYPE = "dmem_addr_t" XROM_ENTITY_NAME = "xrom" -OPC_LIST_NAME = "/cygdrive/w/vhdl/lib/CPUs/JCpu/tools/opc.list" +OPC_LIST_NAME = "opc.list" # -------------------------------------------------------- class Parser @@ -179,6 +179,7 @@ file.each do |raw_line| end token = iline_member[mc] + mcnt = iline_member.count{|x| !x.nil?} if token token = token.upcase end @@ -209,7 +210,7 @@ file.each do |raw_line| exit 1 end if 0 == (iline_member[mc+1] =~ /\d+/) - curr_addr = format("0x%2.2X",eval(iline_member[mc+1..iline_member.nitems].to_s)) + curr_addr = format("0x%2.2X",eval(iline_member[mc+1..mcnt][0].to_s)) else curr_addr = iline_member[mc+1] end @@ -218,7 +219,7 @@ file.each do |raw_line| STDERR.puts format("Error in line %d: %s needs argument!", lc, token) exit 1 end - offset = eval(iline_member[mc+1..iline_member.nitems].to_s) + offset = eval(iline_member[mc+1..mcnt][0].to_s) case obj.curr_segment when "CODE" obj.pc = offset @@ -261,11 +262,10 @@ file.each do |raw_line| str = item.delete("\"") puts item for nn in (0..str.length-1) - if str[nn] > 31 - obj.put_xmem(str[nn], lc); - puts "S: " + str[nn].to_s - len += 1 - end + value = str[nn].to_i(16) + obj.put_xmem(value, lc); + puts "S: " + value.to_s + len += 1 end; else argument = item @@ -307,7 +307,7 @@ file.each do |raw_line| exit 1 end - op_line = iline_member[mc+1..iline_member.nitems].to_s + op_line = iline_member[mc+1..mcnt][0].to_s curr_addr = format("0x%3.3X",obj.pc) opc = token if iline_member[mc+1] != nil @@ -383,7 +383,7 @@ end # -------------------------------------------------------- # Open file # -------------------------------------------------------- -filename = arg.to_s +filename = arg[0].to_s if !File.exists?(filename) STDERR.puts "#{filename} does not exist" exit 1 @@ -743,10 +743,10 @@ if num_errors == 0 file.puts format("\tconstant xmem_rom : xmem_rom_t :=\n") file.puts format("\t(\n"); for i in (0..XROM_MAX_SIZE-2) - file.puts format("\t\tX\"%2.2X\", -- 0x%2.2X\n", first_pass.xmem[i], i) + file.puts format("\t\tX\"%2.2X\", -- 0x%2.2X\n", first_pass.xmem[i].to_i(), i) end; i = XROM_MAX_SIZE-1 - file.puts format("\t\tX\"%2.2X\" -- 0x%2.2X\n", first_pass.xmem[i], i) + file.puts format("\t\tX\"%2.2X\" -- 0x%2.2X\n", first_pass.xmem[i].to_i(), i) file.puts format("\t);\n") file.puts format("\n") file.puts format("begin") @@ -772,10 +772,10 @@ if num_errors == 0 file.puts format("\tsignal xmem_rom : xmem_rom_t :=\n") file.puts format("\t(\n"); for i in (0..XROM_MAX_SIZE-2) - file.puts format("\t\tX\"%2.2X\", -- 0x%2.2X\n", first_pass.xmem[i], i) + file.puts format("\t\tX\"%2.2X\", -- 0x%2.2X\n", first_pass.xmem[i].to_i(), i) end; i = XROM_MAX_SIZE-1 - file.puts format("\t\tX\"%2.2X\" -- 0x%2.2X\n", first_pass.xmem[i], i) + file.puts format("\t\tX\"%2.2X\" -- 0x%2.2X\n", first_pass.xmem[i].to_i(), i) file.puts format("\t);\n") puts format("X-ROM (loadable) file written to \"%s\"\n",filename) file.close