From 84a4ce4f7aab51c82b94f32f6b1e678b35f7b907 Mon Sep 17 00:00:00 2001 From: cancel Date: Wed, 28 Nov 2018 18:14:39 +0900 Subject: [PATCH] Add 'F' --- sim.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sim.c b/sim.c index df3d7f9..0e98e20 100644 --- a/sim.c +++ b/sim.c @@ -260,6 +260,7 @@ Usz UCLAMP(Usz val, Usz min, Usz max) { _('W', 'w', west) \ _('Z', 'z', southeast) \ _('A', 'a', add) \ + _('F', 'f', if) \ _('G', 'g', generator) \ _('H', 'h', halt) \ _('I', 'i', increment) \ @@ -299,6 +300,22 @@ BEGIN_DUAL_PHASE_1(add) POKE(1, 0, glyphs_add(PEEK(0, 1), PEEK(0, 2))); END_PHASE +BEGIN_DUAL_PHASE_0(if) + REALIZE_DUAL; + BEGIN_DUAL_PORTS + PORT(0, 1, IN); + PORT(0, 2, IN); + PORT(1, 0, OUT); + END_PORTS +END_PHASE +BEGIN_DUAL_PHASE_1(if) + REALIZE_DUAL; + STOP_IF_DUAL_INACTIVE; + Glyph g0 = PEEK(0, 1); + Glyph g1 = PEEK(0, 2); + POKE(1, 0, g0 == g1 ? '1' : '0'); +END_PHASE + BEGIN_DUAL_PHASE_0(generator) REALIZE_DUAL; BEGIN_DUAL_PORTS