en:pfw:dlshift_drshift
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:pfw:dlshift_drshift [2024-04-04 23:20] – [Possibly a problem] albert | en:pfw:dlshift_drshift [2024-04-09 14:41] (current) – [Test results (noForth t)] albert | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Shifting doubles, DLSHIFT and DRSHIFT ===== | + | ===== Shifting doubles: DLSHIFT and DRSHIFT ===== |
| an.02apr2024 | an.02apr2024 | ||
| Line 11: | Line 11: | ||
| decimal | decimal | ||
| : DLSHIFT ( lo hi n -- lo' hi' ) \ n in [0,32*2] | : DLSHIFT ( lo hi n -- lo' hi' ) \ n in [0,32*2] | ||
| - | tuck lshift >r \ hi' | + | tuck lshift >r \ hi' |
| - | 2dup 32 - negate rshift | + | 2dup 32 - |
| - | | + | 2dup |
| - | lshift | + | |
| - | 2r> r> or or ; | + | lshift |
| + | 2r> r> or or ; | ||
| + | |||
| : 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 | + | tuck 2dup rshift >r |
| - | | + | 32 - |
| - | | + | 2dup |
| - | rshift 2r> or or \ build lo' | + | |
| - | r> ; \ hi' | + | rshift 2r> or or \ compose |
| + | r> ; \ hi' | ||
| </ | </ | ||
| ===== Possibly a problem ===== | ===== Possibly a problem ===== | ||
| Line 38: | 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* 3 + -2 | + | 32 2* 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 48: | Line 50: | ||
| ===== Test results (noForth t) ===== | ===== Test results (noForth t) ===== | ||
| < | < | ||
| - | :)test1 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF | + | @)test1 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF |
| #shifts dlshift--------- drshift--------- | #shifts dlshift--------- drshift--------- | ||
| -2 0000000000000000 0000000000000000 | -2 0000000000000000 0000000000000000 | ||
| Line 134: | Line 136: | ||
| 40 0000000000000000 0000000000000000 | 40 0000000000000000 0000000000000000 | ||
| - | 41 0000000000000000 0000000000000000 | + | 41 0000000000000000 0000000000000000 OK.0 |
| - | 42 0000000000000000 0000000000000000 | + | |
| </ | </ | ||
| < | < | ||
| - | + | @)test2 0000000000000001 8000000000000000 | |
| - | :)test2 0000000000000001 8000000000000000 | + | |
| #shifts dlshift--------- drshift--------- | #shifts dlshift--------- drshift--------- | ||
| -2 0000000000000000 0000000000000000 | -2 0000000000000000 0000000000000000 | ||
| Line 225: | Line 225: | ||
| 40 0000000000000000 0000000000000000 | 40 0000000000000000 0000000000000000 | ||
| - | | + | 41 0000000000000000 0000000000000000 |
| - | | + | |
| </ | </ | ||
| ===== Contributions ===== | ===== Contributions ===== | ||
en/pfw/dlshift_drshift.1712265646.txt.gz · Last modified: 2024-04-04 23:20 by albert