Class: PSX::RAM
- Inherits:
-
Object
- Object
- PSX::RAM
- Defined in:
- lib/psx/ram.rb
Constant Summary collapse
- SIZE =
2 MB
2 * 1024 * 1024
- MASK =
SIZE - 1
Instance Method Summary collapse
-
#initialize ⇒ RAM
constructor
A new instance of RAM.
- #read16(offset) ⇒ Object
- #read32(offset) ⇒ Object
- #read8(offset) ⇒ Object
- #write16(offset, value) ⇒ Object
- #write32(offset, value) ⇒ Object
- #write8(offset, value) ⇒ Object
Constructor Details
Instance Method Details
#read16(offset) ⇒ Object
16 17 18 19 |
# File 'lib/psx/ram.rb', line 16 def read16(offset) offset &= MASK @data.getbyte(offset) | (@data.getbyte(offset + 1) << 8) end |
#read32(offset) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/psx/ram.rb', line 21 def read32(offset) offset &= MASK @data.getbyte(offset) | (@data.getbyte(offset + 1) << 8) | (@data.getbyte(offset + 2) << 16) | (@data.getbyte(offset + 3) << 24) end |
#read8(offset) ⇒ Object
12 13 14 |
# File 'lib/psx/ram.rb', line 12 def read8(offset) @data.getbyte(offset & MASK) end |
#write16(offset, value) ⇒ Object
33 34 35 36 37 |
# File 'lib/psx/ram.rb', line 33 def write16(offset, value) offset &= MASK @data.setbyte(offset, value & 0xFF) @data.setbyte(offset + 1, (value >> 8) & 0xFF) end |
#write32(offset, value) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/psx/ram.rb', line 39 def write32(offset, value) offset &= MASK @data.setbyte(offset, value & 0xFF) @data.setbyte(offset + 1, (value >> 8) & 0xFF) @data.setbyte(offset + 2, (value >> 16) & 0xFF) @data.setbyte(offset + 3, (value >> 24) & 0xFF) end |
#write8(offset, value) ⇒ Object
29 30 31 |
# File 'lib/psx/ram.rb', line 29 def write8(offset, value) @data.setbyte(offset & MASK, value & 0xFF) end |