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
|
||||
@include span(12%)
|
||||
|
||||
.source_view
|
||||
@include span(24%)
|
||||
.vool_view
|
||||
@include span(18%)
|
||||
|
||||
.mom_view
|
||||
@include span(18%)
|
||||
|
||||
.instruction_view
|
||||
@include span(30%)
|
||||
|
||||
.risc_view
|
||||
@include span(18%)
|
||||
|
||||
.status_view
|
||||
@include span(15%)
|
||||
@include span(14%)
|
||||
line-height : 1.25em
|
||||
.header_state
|
||||
color: #53a5ff
|
||||
|
||||
.vool_view , .mom_view , .risc_view , .status_view
|
||||
margin-left: 0%
|
||||
|
||||
.labels_view
|
||||
@include span(1)
|
||||
margin-right: span(1)
|
||||
@ -41,8 +45,6 @@ body
|
||||
@include gallery(1)
|
||||
margin-top: 10px
|
||||
|
||||
|
||||
|
||||
.field
|
||||
@include span(5)
|
||||
|
||||
|
@ -16,8 +16,9 @@ require "base/list_view"
|
||||
# each seperate view is in it's own class.
|
||||
require "views/left_view"
|
||||
require "views/status_view"
|
||||
require "views/source_view"
|
||||
require "views/instruction_view"
|
||||
require "views/vool_view"
|
||||
require "views/mom_view"
|
||||
require "views/risc_view"
|
||||
require "views/registers_view"
|
||||
class Bignum
|
||||
end
|
||||
@ -43,8 +44,9 @@ class MainView < ListView
|
||||
Risc.machine.boot
|
||||
@interpreter = Risc::Interpreter.new
|
||||
super( [LeftView.new(@interpreter) ,
|
||||
SourceView.new(@interpreter) ,
|
||||
InstructionView.new(@interpreter) ,
|
||||
VoolView.new(@interpreter) ,
|
||||
MomView.new(@interpreter) ,
|
||||
RiscView.new(@interpreter) ,
|
||||
StatusView.new(@interpreter) ,
|
||||
RegistersView.new(@interpreter) ] )
|
||||
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/list_view"
|
||||
|
||||
class InstructionView < ListView
|
||||
class RiscView < ListView
|
||||
|
||||
def initialize interpreter
|
||||
@interpreter = interpreter
|
||||
@ -24,7 +24,7 @@ class InstructionView < ListView
|
||||
def draw
|
||||
super()
|
||||
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
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative "html_converter"
|
||||
|
||||
class SourceView < ElementView
|
||||
class VoolView < ElementView
|
||||
|
||||
def initialize interpreter
|
||||
@interpreter = interpreter
|
||||
@ -10,7 +10,7 @@ class SourceView < ElementView
|
||||
def draw
|
||||
@text = div(".text")
|
||||
@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
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user