| [ELSE] 0 1 cells 1- times c, [THEN] |
[ELSE] 0 1 cells 1- times c, [THEN] |
| $1fffffff constant lcount-mask |
$1fffffff constant lcount-mask |
| 1 bits/char 3 - lshift 1 - |
1 bits/char 3 - lshift 1 - |
| -1 cells allot bigendian [IF] c, $FF 1 cells 1- times |
-1 cells allot bigendian [IF] c, -1 1 cells 1- times |
| [ELSE] $FF 1 cells 1- times c, [THEN] |
[ELSE] -1 1 cells 1- times c, [THEN] |
| |
|
| \ higher level parts of find |
\ higher level parts of find |
| |
|
| $25 cell do ( cfa ) |
$25 cell do ( cfa ) |
| dup i - dup @ [ alias-mask lcount-mask or ] literal |
dup i - dup @ [ alias-mask lcount-mask or ] literal |
| [ 1 bits/char 3 - lshift 1 - 1 bits/char 1 - lshift or |
[ 1 bits/char 3 - lshift 1 - 1 bits/char 1 - lshift or |
| -1 cells allot bigendian [IF] c, $FF 1 cells 1- times |
-1 cells allot bigendian [IF] c, -1 1 cells 1- times |
| [ELSE] $FF 1 cells 1- times c, [THEN] ] |
[ELSE] -1 1 cells 1- times c, [THEN] ] |
| and ( cfa len|alias ) |
and ( cfa len|alias ) |
| swap + cell + cfaligned over alias-mask + = |
swap + cell + cfaligned over alias-mask + = |
| if ( cfa ) |
if ( cfa ) |
| $25 cell do ( cfa ) |
$25 cell do ( cfa ) |
| dup i - dup @ [ alias-mask lcount-mask or ] literal |
dup i - dup @ [ alias-mask lcount-mask or ] literal |
| [ 1 bits/char 3 - lshift 1 - 1 bits/char 1 - lshift or |
[ 1 bits/char 3 - lshift 1 - 1 bits/char 1 - lshift or |
| -1 cells allot bigendian [IF] c, $FF 1 cells 1- times |
-1 cells allot bigendian [IF] c, -1 1 cells 1- times |
| [ELSE] $FF 1 cells 1- times c, [THEN] ] |
[ELSE] -1 1 cells 1- times c, [THEN] ] |
| and ( cfa len|alias ) |
and ( cfa len|alias ) |
| swap + cell + cfaligned over alias-mask + = |
swap + cell + cfaligned over alias-mask + = |
| if ( cfa ) i - cell - unloop exit |
if ( cfa ) i - cell - unloop exit |