Class: Mos6502::Memory
- Inherits:
-
Object
- Object
- Mos6502::Memory
- Defined in:
- lib/mos6502/memory.rb
Instance Method Summary collapse
- #dump(start, length) ⇒ Object
- #get(address) ⇒ Object
- #get_word(address) ⇒ Object
-
#initialize(image = nil) ⇒ Memory
constructor
A new instance of Memory.
- #load(image, start = 0) ⇒ Object
- #load!(image, start = 0) ⇒ Object
- #set(address, value) ⇒ Object
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 |