Method: Gruesome::Z::Machine#execute

Defined in:
lib/gruesome/z/machine.rb

#executeObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/gruesome/z/machine.rb', line 43

def execute
  while true do
    i = @decoder.fetch
#          var = @memory.readv(0)
#          if var != nil
#            puts "var %00 = " + sprintf("%04x", var)
#            @memory.writev(0, var)
#          end
#          var = @memory.readv(1)
#          if var != nil
#            puts "var %01 = " + sprintf("%04x", @memory.readv(0x01))
#          end
#          puts "at $" + sprintf("%04x", @memory.program_counter) + ": " + i.to_s(@header.version)
    @memory.program_counter += i.length

    if i.opcode == Opcode::QUIT
      break
    end

    begin
      @processor.execute(i)
    rescue RuntimeError => fuh
      puts "error at $" + sprintf("%04x", @memory.program_counter) + ": " + i.to_s(@header.version)
    end
  end
end