From ceb0b74bd0b368124679378ebfb2cf316deb2e39 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 5 Jul 2016 17:25:10 +0200 Subject: Added Machine as module level --- ABC/Machine/Driver.icl | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 ABC/Machine/Driver.icl (limited to 'ABC/Machine/Driver.icl') diff --git a/ABC/Machine/Driver.icl b/ABC/Machine/Driver.icl new file mode 100644 index 0000000..29b42ca --- /dev/null +++ b/ABC/Machine/Driver.icl @@ -0,0 +1,25 @@ +implementation module ABC.Machine.Driver + +import StdEnv + +import ABC.Machine + +boot :: ([Instruction], [Desc]) -> State +boot (prog,descs) + = { astack = as_init + , bstack = bs_init + , cstack = cs_init + , graphstore = gs_init + , descstore = ds_init descs + , pc = pc_init + , program = ps_init prog + , io = io_init + } + +fetch_cycle :: State -> State +fetch_cycle st=:{pc,program} +| pc_end pc = st +| otherwise = fetch_cycle (currinstr {st & pc=pc`}) +where + pc` = pc_next pc + currinstr = ps_get pc program -- cgit v1.2.3