Merge branch 'master' into build64
[pforth] / fth / misc2.fth
index 17edf0c..c0791da 100644 (file)
@@ -2,7 +2,7 @@
 \ Utilities for PForth extracted from HMSL
 \
 \ Author: Phil Burk
 \ Utilities for PForth extracted from HMSL
 \
 \ Author: Phil Burk
-\ Copyright 1994 3DO, Phil Burk, Larry Polansky, Devid Rosenboom
+\ Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
 \
 \ The pForth software code is dedicated to the public domain,
 \ and any third party may reproduce, distribute and modify
 \
 \ The pForth software code is dedicated to the public domain,
 \ and any third party may reproduce, distribute and modify
@@ -41,6 +41,10 @@ anew task-misc2.fth
 
 variable if-debug
 
 
 variable if-debug
 
+: ? ( address -- , fatch from address and print value )
+    @ .
+;
+
 decimal
 create msec-delay 10000 ,  ( default for SUN )
 : (MSEC) ( #msecs -- )
 decimal
 create msec-delay 10000 ,  ( default for SUN )
 : (MSEC) ( #msecs -- )
@@ -118,18 +122,18 @@ variable rand-seed here rand-seed !
 : B->S ( c -- c' , sign extend byte )
     dup $ 80 and
     IF
 : B->S ( c -- c' , sign extend byte )
     dup $ 80 and
     IF
-        $ FFFFFF00 or
+        [ $ 0FF invert ] literal or
     ELSE
     ELSE
-        $ 000000FF and
+        $ 0FF and
     THEN
 ;
     THEN
 ;
-: W->S ( 16bit-signed -- 32bit-signed )
+: W->S ( 16bit-signed -- cell-signed )
     dup $ 8000 and
     dup $ 8000 and
-    if
-        $ FFFF0000 or
+    IF
+        [ $ 0FFFF invert ] literal or
     ELSE
     ELSE
-        $ 0000FFFF and
-    then
+        $ 0FFFF and
+    THEN
 ;
 
 : WITHIN { n1 n2 n3 -- flag }
 ;
 
 : WITHIN { n1 n2 n3 -- flag }