/* AneoEngine 64-bit entropic value generator. AneoC source file */ #include //TDs TD U C U8; TD U S U16; TD U INT U32; TD ULL U64; //Kernel externs extern VD printx(U32 x); extern VD printint(U INT n); extern U8 color; extern VD print(CC *s); extern VD putc(C c); extern VD nosound(VD); extern VD sleep(U INT ms); //logic SC inline U64 rdtsc() {//main IN for rdtsc U32 low, high; __asm__ volatile ("rdtsc" : "=a"(low), "=d"(high)); return ((U64)high << 32) | low; } SC inline U32 PRNG_32() {//32-bit entropic value generator. U32 xorshift = (U32)rdtsc(); xorshift ^= xorshift << 13; xorshift ^= xorshift >> 17; xorshift ^= xorshift << 5; xorshift ^= (U32)rdtsc(); xorshift += 0x9E3779B9; return xorshift; } VD entropy(VD) {//main U index; U32 high = PRNG_32(); for(index = 0; index < 1000; index++); U32 low = PRNG_32(); U8 oldcolor = color; color = 0x1A; printx(high); printx(low); color = oldcolor; putc(' '); }