/** asmb - aka tolower(), maybe more than strlen(). * * unsigned char *asmb(unsigned char *s) * { * unsigned long i; * for (i=0; s[i]; i++) * { * unsigned char c = s[i]; * c += (c >= 'A' && c <= 'Z') ? 'a'-'A' : 0; * s[i] = c; * } * return s; * } */ /* AMD64 Little Endian byte order * p[0] c0 c1 c2 c3 c4 c5 c6 c7 * p[1] c1 c2 c3 c4 c5 c6 c7 c8 * p[1] * 256 00 c1 c2 c3 c4 c5 c6 c7 * p[0] - 256 * p[1] c0 */ /* WISHLIST signed!? */ struct f end; method asmb() var p := this; while p.f - (256 * (p--1).f) do var c := p.f - (256 * (p--1).f); /* add 'a'-'A' iff 'A' <= c <= 'Z' */ if 0x40 < c then if c < 0x5B then c := c--0x20; end; end; p.f := (256 * (p--1).f)-(0-c); p := p--1; end; return this; end;