Class: Mos6502::Memory

Inherits:
Object
  • Object
show all
Defined in:
lib/mos6502/memory.rb

Instance Method Summary collapse

Constructor Details

#initialize(image = nil) ⇒ Memory

Returns a new instance of Memory.



9
10
11
# File 'lib/mos6502/memory.rb', line 9

def initialize(image = nil)
  load!(image)
end

Instance Method Details

#dump(start, length) ⇒ Object



37
38
39
# File 'lib/mos6502/memory.rb', line 37

def dump(start, length)
  (start...(start + length)).reduce([]) { |acc, i| acc << get(i) }
end

#get(address) ⇒ Object



17
18
19
# File 'lib/mos6502/memory.rb', line 17

def get(address)
  @memory[address] || 0x00
end

#get_word(address) ⇒ Object



21
22
23
# File 'lib/mos6502/memory.rb', line 21

def get_word(address)
  get(address) + (get(address + 1) << 8)
end

#load(image, start = 0) ⇒ Object



25
26
27
28
29
30
# File 'lib/mos6502/memory.rb', line 25

def load(image, start = 0)
  return if image.nil?

  image = image.bytes if image.respond_to?(:bytes)
  @memory[start, image.length] = image
end

#load!(image, start = 0) ⇒ Object



32
33
34
35
# File 'lib/mos6502/memory.rb', line 32

def load!(image, start = 0)
  @memory = []
  load(image, start)
end

#set(address, value) ⇒ Object



13
14
15
# File 'lib/mos6502/memory.rb', line 13

def set(address, value)
  @memory[address] = (value & 0xff)
end