Class: N65::Org

Inherits:
InstructionBase show all
Defined in:
lib/n65/directives/org.rb

Overview

This is an .org directive

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from InstructionBase

#unresolved_symbols?

Constructor Details

#initialize(address) ⇒ Org

Initialized with address to switch to



22
23
24
# File 'lib/n65/directives/org.rb', line 22

def initialize(address)
  @address = address
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



8
9
10
# File 'lib/n65/directives/org.rb', line 8

def address
  @address
end

Class Method Details

.parse(line) ⇒ Object

Try to parse an .org statement



12
13
14
15
16
17
# File 'lib/n65/directives/org.rb', line 12

def self.parse(line)
  match_data = line.match(/^\.org\s+\$([0-9A-Fa-f]{4})$/)
  return nil if match_data.nil?
  address = match_data[1].to_i(16)
  Org.new(address)
end

Instance Method Details

#exec(assembler) ⇒ Object

Exec this directive on the assembler



29
30
31
# File 'lib/n65/directives/org.rb', line 29

def exec(assembler)
  assembler.program_counter = address
end

#to_sObject

Display



36
37
38
39
40
41
42
# File 'lib/n65/directives/org.rb', line 36

def to_s
  if @address <= 0xff
    ".org $%2.X" % @address
  else
    ".org $%4.X" % @address
  end
end