introducing mom view
rename source to vool and instruction to risc
This commit is contained in:
parent
88e49afb60
commit
ce0bdc46a9
@ -15,20 +15,24 @@ body
|
|||||||
.classes
|
.classes
|
||||||
@include span(12%)
|
@include span(12%)
|
||||||
|
|
||||||
.source_view
|
.vool_view
|
||||||
@include span(24%)
|
@include span(18%)
|
||||||
|
|
||||||
|
.mom_view
|
||||||
|
@include span(18%)
|
||||||
|
|
||||||
.instruction_view
|
.risc_view
|
||||||
@include span(30%)
|
@include span(18%)
|
||||||
|
|
||||||
|
|
||||||
.status_view
|
.status_view
|
||||||
@include span(15%)
|
@include span(14%)
|
||||||
line-height : 1.25em
|
line-height : 1.25em
|
||||||
.header_state
|
.header_state
|
||||||
color: #53a5ff
|
color: #53a5ff
|
||||||
|
|
||||||
|
.vool_view , .mom_view , .risc_view , .status_view
|
||||||
|
margin-left: 0%
|
||||||
|
|
||||||
.labels_view
|
.labels_view
|
||||||
@include span(1)
|
@include span(1)
|
||||||
margin-right: span(1)
|
margin-right: span(1)
|
||||||
@ -41,8 +45,6 @@ body
|
|||||||
@include gallery(1)
|
@include gallery(1)
|
||||||
margin-top: 10px
|
margin-top: 10px
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.field
|
.field
|
||||||
@include span(5)
|
@include span(5)
|
||||||
|
|
||||||
|
@ -16,8 +16,9 @@ require "base/list_view"
|
|||||||
# each seperate view is in it's own class.
|
# each seperate view is in it's own class.
|
||||||
require "views/left_view"
|
require "views/left_view"
|
||||||
require "views/status_view"
|
require "views/status_view"
|
||||||
require "views/source_view"
|
require "views/vool_view"
|
||||||
require "views/instruction_view"
|
require "views/mom_view"
|
||||||
|
require "views/risc_view"
|
||||||
require "views/registers_view"
|
require "views/registers_view"
|
||||||
class Bignum
|
class Bignum
|
||||||
end
|
end
|
||||||
@ -43,8 +44,9 @@ class MainView < ListView
|
|||||||
Risc.machine.boot
|
Risc.machine.boot
|
||||||
@interpreter = Risc::Interpreter.new
|
@interpreter = Risc::Interpreter.new
|
||||||
super( [LeftView.new(@interpreter) ,
|
super( [LeftView.new(@interpreter) ,
|
||||||
SourceView.new(@interpreter) ,
|
VoolView.new(@interpreter) ,
|
||||||
InstructionView.new(@interpreter) ,
|
MomView.new(@interpreter) ,
|
||||||
|
RiscView.new(@interpreter) ,
|
||||||
StatusView.new(@interpreter) ,
|
StatusView.new(@interpreter) ,
|
||||||
RegistersView.new(@interpreter) ] )
|
RegistersView.new(@interpreter) ] )
|
||||||
end
|
end
|
||||||
|
42
lib/views/mom_view.rb
Normal file
42
lib/views/mom_view.rb
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
require "base/constant_view"
|
||||||
|
require "base/list_view"
|
||||||
|
|
||||||
|
class MomView < ListView
|
||||||
|
|
||||||
|
def initialize interpreter
|
||||||
|
@interpreter = interpreter
|
||||||
|
@current = nil
|
||||||
|
super([start_view])
|
||||||
|
@interpreter.register_event(:instruction_changed, self)
|
||||||
|
@interpreter.register_event(:state_changed, self)
|
||||||
|
end
|
||||||
|
|
||||||
|
def start_view
|
||||||
|
ConstantView.new( "span.bright" , "starting" )
|
||||||
|
end
|
||||||
|
|
||||||
|
def instruction_changed
|
||||||
|
i = @interpreter.instruction
|
||||||
|
return unless i && i.source.is_a?(Mom::Instruction)
|
||||||
|
@element.at_css(".mom_bright").remove_class("mom_bright")
|
||||||
|
instruction_text = i.source.to_s
|
||||||
|
instruction = append_view( ConstantView.new( "span.mom_bright" , instruction_text ) )
|
||||||
|
wrap_node_with( instruction , div )
|
||||||
|
remove_first if( @elements.length > 6)
|
||||||
|
end
|
||||||
|
|
||||||
|
def draw
|
||||||
|
super()
|
||||||
|
wrap_node_with @elements.first , div
|
||||||
|
wrap_element div(".mom_view") << div("h4" ,"Mom::Instruction")
|
||||||
|
@element
|
||||||
|
end
|
||||||
|
|
||||||
|
def state_changed(old , new_s)
|
||||||
|
return unless new_s == :running
|
||||||
|
clear_view
|
||||||
|
@current = nil
|
||||||
|
append_view start_view
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -1,7 +1,7 @@
|
|||||||
require "base/constant_view"
|
require "base/constant_view"
|
||||||
require "base/list_view"
|
require "base/list_view"
|
||||||
|
|
||||||
class InstructionView < ListView
|
class RiscView < ListView
|
||||||
|
|
||||||
def initialize interpreter
|
def initialize interpreter
|
||||||
@interpreter = interpreter
|
@interpreter = interpreter
|
||||||
@ -24,7 +24,7 @@ class InstructionView < ListView
|
|||||||
def draw
|
def draw
|
||||||
super()
|
super()
|
||||||
wrap_node_with @elements.first , div
|
wrap_node_with @elements.first , div
|
||||||
wrap_element div(".instruction_view") << div("h4" ,"Register Machine Instruction")
|
wrap_element div(".risc_view") << div("h4" ,"Register Machine Instruction")
|
||||||
@element
|
@element
|
||||||
end
|
end
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
require_relative "html_converter"
|
require_relative "html_converter"
|
||||||
|
|
||||||
class SourceView < ElementView
|
class VoolView < ElementView
|
||||||
|
|
||||||
def initialize interpreter
|
def initialize interpreter
|
||||||
@interpreter = interpreter
|
@interpreter = interpreter
|
||||||
@ -10,7 +10,7 @@ class SourceView < ElementView
|
|||||||
def draw
|
def draw
|
||||||
@text = div(".text")
|
@text = div(".text")
|
||||||
@ticker = div(".ticker")
|
@ticker = div(".ticker")
|
||||||
@element = div(".source_view") << div("h4.source" , "Class.Method") << @ticker << @text
|
@element = div(".vool_view") << div("h4.source" , "Class.Method") << @ticker << @text
|
||||||
@element
|
@element
|
||||||
end
|
end
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user