OSDN Git Service

halt.
authorSimon Forman <sforman@hushmail.com>
Sun, 10 Nov 2019 18:58:47 +0000 (10:58 -0800)
committerSimon Forman <sforman@hushmail.com>
Sun, 10 Nov 2019 18:58:47 +0000 (10:58 -0800)
thun/compiler.markII.pl

index 77838f4..af80bbf 100644 (file)
@@ -77,13 +77,11 @@ Mark II
 
     label(Done),
     store_word(TOS, SP, 0),   % RAM[SP] := TOS
-    do_offset(Main),
+    do_offset(Main)
 
-    label(HALT),  % This is a HALT loop, the emulator detects and traps
-    do_offset(HALT)  % on this "10 goto 10" instruction.
+    ],⟐([
 
-% ======================================
-],⟐([
+    halt(HALT),  % ======================================
 
     definition(Cons),  % Let's cons.
 
@@ -147,6 +145,9 @@ language.
 
 ⟐(jump(To)) --> [do_offset(To)].  % Pass through.
 
+⟐(halt(Halt)) --> [label(Halt), do_offset(Halt)].
+% This is a HALT loop, the emulator detects and traps on this "10 goto 10" instruction.
+
 ⟐(incr(SP)) --> [sub_imm(SP, SP, 4)].  % SP -= 1 (word, not byte).
 
 ⟐(if_literal(TERM, Push, TEMP)) -->