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



19
20
21
# File 'lib/n65/directives/org.rb', line 19

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



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

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



24
25
26
# File 'lib/n65/directives/org.rb', line 24

def exec(assembler)
  assembler.program_counter = address
end

#to_sObject

Display



29
30
31
32
33
34
35
# File 'lib/n65/directives/org.rb', line 29

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