User Tools

Site Tools


en:pfw:dlshift_drshift

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:pfw:dlshift_drshift [2024-04-09 14:28] – [Coded with LSHIFT and RSHIFT] alberten:pfw:dlshift_drshift [2024-04-09 14:41] (current) – [Test results (noForth t)] albert
Line 13: Line 13:
     tuck lshift >r          \ hi'     tuck lshift >r          \ hi'
     2dup 32 -      2dup 32 - 
-    2dup lshift >r          \ lower lo to upper hi+    2dup   lshift >r        \ lower lo to upper hi
     negate rshift >r        \ upper lo to lower hi     negate rshift >r        \ upper lo to lower hi
     lshift                  \ lo'     lshift                  \ lo'
-    2r> r> or or   ;        \ build hi'+    2r> r> or or   ;        \ compose hi'
          
 : DRSHIFT ( lo hi n -- lo' hi' )    \ n in [0,32*2] : DRSHIFT ( lo hi n -- lo' hi' )    \ n in [0,32*2]
     tuck 2dup rshift >r     \ hi'     tuck 2dup rshift >r     \ hi'
     32 -     32 -
-    2dup rshift >r          \ upper hi to lower lo+    2dup   rshift >r        \ upper hi to lower lo
     negate lshift >r        \ lower hi to upper lo     negate lshift >r        \ lower hi to upper lo
-    rshift 2r> or or        \ build lo'+    rshift 2r> or or        \ compose lo'
     r> ;                    \ hi'     r> ;                    \ hi'
 </code> </code>
Line 40: Line 40:
 : (TEST) ( ud ud -- ) 2over 2over du.hex du.hex : (TEST) ( ud ud -- ) 2over 2over du.hex du.hex
     cr ." #shifts dlshift--------- drshift---------"     cr ." #shifts dlshift--------- drshift---------"
-    32 2* +   -2+    32 2* +   -2
     do cr i 3 and 0= if cr then i 7 .r space     do cr i 3 and 0= if cr then i 7 .r space
         2over 2over i dlshift du.hex i drshift du.hex         2over 2over i dlshift du.hex i drshift du.hex
Line 136: Line 136:
  
      40 0000000000000000 0000000000000000      40 0000000000000000 0000000000000000
-     41 0000000000000000 0000000000000000 +     41 0000000000000000 0000000000000000 OK.0
-     42 0000000000000000 0000000000000000  OK.0+
 </code> </code>
 <code> <code>
- 
 @)test2 0000000000000001 8000000000000000 @)test2 0000000000000001 8000000000000000
 #shifts dlshift--------- drshift--------- #shifts dlshift--------- drshift---------
Line 227: Line 225:
  
      40 0000000000000000 0000000000000000      40 0000000000000000 0000000000000000
-     41 0000000000000000 0000000000000000 +     41 0000000000000000 0000000000000000  OK.0
-     42 0000000000000000 0000000000000000  OK.0+
 </code> </code>
 ===== Contributions ===== ===== Contributions =====
en/pfw/dlshift_drshift.1712665705.txt.gz · Last modified: 2024-04-09 14:28 by albert