<<Jacques: I would call your function like this:
Cardin := Card( Digits, sizeof(TDigits) ); or Cardin := Card( Digits, 2 );
Which means that size is the size in bytes (not in bits) occupied by the variable. >>
The first call format is right, never the second! And yes, the size is in bytes. There are no part-byte asddresses on the x86 architecture!
PhR