Author: jquelin
Date: Fri Jan  9 01:51:26 2009
New Revision: 35260

Modified:
   trunk/languages/befunge/befunge.pir
   trunk/languages/befunge/maths.pir

Log:
instruction - implemented (substraction)


Modified: trunk/languages/befunge/befunge.pir
==============================================================================
--- trunk/languages/befunge/befunge.pir (original)
+++ trunk/languages/befunge/befunge.pir Fri Jan  9 01:51:26 2009
@@ -93,6 +93,7 @@
     if char == '|' goto FLOW_IF_VERTICAL
     
     # math functions
+    if char == '-' goto MATHS_SUB
     if char == '!' goto MATHS_NOT
     
     # stack operations
@@ -121,7 +122,7 @@
 
         # Math functions.
         eq S0, "+", MATHS_ADD
-        eq S0, "-", MATHS_SUB
+        #eq S0, "-", MATHS_SUB
         eq S0, "*", MATHS_MUL
         eq S0, "/", MATHS_DIV
         eq S0, "%", MATHS_MOD
@@ -183,10 +184,12 @@
   MATHS_NOT:
     maths__not()
     goto MOVE_PC
-    
   MATHS_PUSH_NUMBER:
     maths__push_number()
     goto MOVE_PC
+  MATHS_SUB:
+    maths__sub()
+    goto MOVE_PC
     
     # stack operations
   STACK_DUP:

Modified: trunk/languages/befunge/maths.pir
==============================================================================
--- trunk/languages/befunge/maths.pir   (original)
+++ trunk/languages/befunge/maths.pir   Fri Jan  9 01:51:26 2009
@@ -29,6 +29,22 @@
 .end
 
 
+#
+# maths__sub()
+#
+# substraction.
+# befunge stack:
+#   before:     ... a b
+#   after:      ... a-b
+#
+.sub "maths__sub"
+    $I1 = stack__pop()
+    $I0 = stack__pop()
+    $I2 = $I0 - $I1
+    stack__push($I2)
+.end
+
+
 =pod
 
 # Create a pseudo-random number.
@@ -68,23 +84,6 @@
     push P2, I12
     branch MOVE_PC
 
-# Substraction.
-# Befunge Stack:
-#   before:     ... a b
-#   after:      ... a-b
-MATHS_SUB:
-    set I11, P2
-    unless I11, MATHS_SUB_POP_1
-    pop I11, P2
-MATHS_SUB_POP_1:
-    set I10, P2
-    unless I10, MATHS_SUB_POP_2
-    pop I10, P2
-MATHS_SUB_POP_2:
-    sub I12, I10, I11
-    push P2, I12
-    branch MOVE_PC
-
 # Multiplication.
 # Befunge Stack:
 #   before:     ... a b

Reply via email to