Sha256: 5a0e023c96e5e49f0779e968407e8026fe2148dc23e9fab788eb0253a050a575

Contents?: true

Size: 827 Bytes

Versions: 3

Compression:

Stored size: 827 Bytes

Contents

module Haxor
  module Vm
    module Cpu
    module Unit
      class Base
        attr_accessor :vm

        def register
          fail 'this method must be implemented.'
        end

        def bind_opcode(opcode, method)
          @vm.bind_opcode opcode, self, method
        end

        # TODO: BC
        def next_cell
          @vm.subsystem(:mem).next_word
        end

        # TODO: BC
        def fetch_cell(addr)
          @vm.subsystem(:mem).read addr
        end

        def dereference(addr)
          @vm.subsystem(:mem).read addr
        end

        # TODO: BC
        def replace_cell(addr, value)
          @vm.subsystem(:mem).write addr, value
        end

        def operand
          @vm.operand
        end

        def operands
          @vm.operands
        end
      end
    end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
haxor-0.3.0 lib/haxor/vm/cpu/unit/base.rb
haxor-0.2.0 lib/haxor/vm/cpu/unit/base.rb
haxor-0.1.0 lib/haxor/vm/cpu/unit/base.rb