From a38d8153cd56481f44cb223c239e869f09e142d6 Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Sat, 9 Nov 2019 13:42:14 -0800 Subject: [PATCH] That works nicely, again. --- thun/compiler.markII.pl | 10 +++++----- thun/joy_asmii.bin | Bin 0 -> 344 bytes 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 thun/joy_asmii.bin diff --git a/thun/compiler.markII.pl b/thun/compiler.markII.pl index 11e6f68..eed8062 100644 --- a/thun/compiler.markII.pl +++ b/thun/compiler.markII.pl @@ -44,14 +44,12 @@ Mark II mov_imm(TERM, 0), store_word(TOS, SP, 0), % RAM[SP] := 0 - label(Main), + label(Main)], - % if_zero(EXPR_addr, HALT), - sub_imm(EXPR_addr, EXPR_addr, 0), - eq_offset(HALT), + ⟐(if_zero(EXPR_addr, HALT)), % deref(EXPR_addr, EXPR), - load_word(EXPR, EXPR_addr, 0), % Load expr pair record into EXPR + [load_word(EXPR, EXPR_addr, 0), % Load expr pair record into EXPR % At this point EXPR holds the record word of the expression. @@ -195,6 +193,8 @@ language. ⟐([]) --> []. ⟐([Term|Terms]) --> ⟐(Term), ⟐(Terms). +⟐(if_zero(Reg, Label)) --> [sub_imm(Reg, Reg, 0), eq_offset(Label)]. + do :- compile_program(Binary), diff --git a/thun/joy_asmii.bin b/thun/joy_asmii.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae95e039af6dda50e65b9f3f7188b60f69d9428a GIT binary patch literal 344 zcmY+8KT88a5XFDDp37a8Y$<{mkznl?@a{Cr9axB!w&4g#na=L~6V$X~lTK1u`YrMm z(guql_#M_+77iSEFmL9~dvh7l)-G&Y^1sQ1e$XYmh{&Zc1m}V!?B)Bgf$mI^4-D4> zvD`%5h~3qbA-9I14YRS<5FK!86}4buWB74rjGPY8`o4^#STEkA+c3+_eBA4W+*+5i9m literal 0 HcmV?d00001