Browse Source

changes V and K to match orcaJS, fixes #48

master
Nicola Pisanti 6 years ago
parent
commit
65908306ef
  1. 24
      sim.c

24
sim.c

@ -542,10 +542,10 @@ BEGIN_OPERATOR(konkat)
for (Isz i = 0; i < len; ++i) { for (Isz i = 0; i < len; ++i) {
PORT(0, i + 1, IN); PORT(0, i + 1, IN);
Glyph var = PEEK(0, i + 1); Glyph var = PEEK(0, i + 1);
Usz var_idx = safe_index_of(var); if (var != '.') {
if (var_idx != 0) { Usz var_idx = safe_index_of(var);
Glyph result = extra_params->vars_slots[var_idx]; if (var_idx != 0) {
if (result != '.') { Glyph result = extra_params->vars_slots[var_idx];
PORT(1, i + 1, OUT); PORT(1, i + 1, OUT);
POKE(1, i + 1, result); POKE(1, i + 1, result);
} }
@ -719,22 +719,16 @@ BEGIN_OPERATOR(variable)
PORT(0, 1, IN | PARAM); PORT(0, 1, IN | PARAM);
Glyph left = PEEK(0, -1); Glyph left = PEEK(0, -1);
Glyph right = PEEK(0, 1); Glyph right = PEEK(0, 1);
if (right == '.') { if (left != '.') {
PORT(1, 0, OUT); // Write
return; Usz var_idx = safe_index_of(left);
} extra_params->vars_slots[var_idx] = right;
if (left == '.') { } else if (right != '.') {
// Read // Read
PORT(1, 0, OUT); PORT(1, 0, OUT);
Usz var_idx = safe_index_of(right); Usz var_idx = safe_index_of(right);
Glyph result = extra_params->vars_slots[var_idx]; Glyph result = extra_params->vars_slots[var_idx];
if (result == '.')
return;
POKE(1, 0, result); POKE(1, 0, result);
} else {
// Write
Usz var_idx = safe_index_of(left);
extra_params->vars_slots[var_idx] = right;
} }
END_OPERATOR END_OPERATOR

Loading…
Cancel
Save