int main(){ char *pm, *pc, *pb; unsigned n = 5; void printmem( char *, unsigned ); pm = my_malloc( n ); printmem( pm, n ); free( pm ); putchar( '\n' ); pc = my_calloc( n ); printmem( pc, n ); free( pc ); putchar( '\n' ); return 0; }
char* test_imprint_blocks() { sp_block *bl = NULL; sp_block *bl2 = NULL; sp_block_template tmpl; sp_block_template tmpl2; tmpl.flags.prohibits = PR_WALK | PR_FLY; tmpl.flags.type = BT_BLOCK; tmpl.flags.orient = OR_EAST; bl = new_block(&tmpl); printmem("tmpl", &tmpl, sp_block_template); printmem("block", bl, sp_block); mu_assert(bl, "block was allocated"); mu_assert(bl->flags.prohibits == (PR_WALK | PR_FLY), "block had flags set"); mu_assert(bl->qualities[0] == 0, "qualities nulled out"); bl->qualities[0] = B_QUALITY(Q_UNLOCKS, 1); bl->qualities[1] = B_QUALITY(56, 23); tmpl2.flags.prohibits = PR_ALL; tmpl2.flags.type = BT_PROP; tmpl2.flags.orient = OR_NONE; bl2 = new_block_init(&tmpl2, *bl); mu_assert(bl2, "block was allocated again"); mu_assert(bl2->flags.prohibits == PR_ALL, "block gets flags from new template"); mu_assert(bl2->qualities[1] == B_QUALITY(56, 23), "block gets qualities from proto"); SPFREE(bl); SPFREE(bl2); return NULL; }
static void locprint(FILE *fd, Loc *l, char spec) { spec = tolower(spec); assert(l->mode); switch (l->type) { case Loclitl: assert(spec == 'i' || spec == 'x' || spec == 'u'); fprintf(fd, "$%s", l->lbl); break; case Loclbl: assert(spec == 'm' || spec == 'v' || spec == 'x'); fprintf(fd, "%s", l->lbl); break; case Locreg: assert((spec == 'r' && isintmode(l->mode)) || (spec == 'f' && isfloatmode(l->mode)) || spec == 'v' || spec == 'x' || spec == 'u'); if (l->reg.colour == Rnone) fprintf(fd, "%%P.%zd%s", l->reg.id, modenames[l->mode]); else fprintf(fd, "%s", regnames[l->reg.colour]); break; case Locmem: case Locmeml: assert(spec == 'm' || spec == 'v' || spec == 'x'); printmem(fd, l, spec); break; case Loclit: assert(spec == 'i' || spec == 'x' || spec == 'u'); fprintf(fd, "$%ld", l->lit); break; case Locnone: die("Bad location in locprint()"); break; } }
static void run_round() { cbor_item_t *item; struct cbor_load_result res; size_t length = rand() % MAXLEN + 1; unsigned char * data = malloc(length); for (size_t i = 0; i < length; i++) { data[i] = rand() % 0xFF; } #ifdef CBOR_PRINT_FUZZ printmem(data, length); #endif item = cbor_load(data, length, &res); if (res.error.code == CBOR_ERR_NONE) cbor_decref(&item); /* Otherwise there should be nothing left behind by the decoder */ free(data); }
int main() { int i, proc_count = 0; char *cuname; char buf[_POSIX2_LINE_MAX]; const char *execf, *coref; static kvm_t *kd; struct kinfo_proc *kp; static int nproc; static struct kinfo_proc *plist; execf = NULL; coref = _PATH_DEVNULL; kd = kvm_openfiles(execf, coref, NULL, O_RDONLY, buf); plist = kvm_getprocs(kd, KERN_PROC_PROC, 0, &nproc); for (i = 0, kp = plist; i < nproc; i++, kp++) proc_count++; printf("\n"); printf("\033[1;31m ``` `\033[0;0m \n"); printf("\033[1;31m s` `.....---.......--.``` -/\033[0;0m "); printval("OS", "kern.ostype"); printf(" "); psysctl("hw.machine_arch"); printf("\n"); printf("\033[1;31m +o .--` /y:` +.\033[0;0m "); printval("Hostname", "kern.hostname"); printf("\n"); printf("\033[1;31m yo`:. :o `+-\033[0;0m "); printval("Kernel", "kern.osrelease"); printf("\n"); printf("\033[1;31m y/ -/` -o/\033[0;0m "); printuptime(); printf("\n"); printf("\033[1;31m .- ::/sy+:.\033[0;0m "); printf("\033[1;31mProcesses:\033[0;0m %d\n", proc_count); printf("\033[1;31m / `-- /\033[0;0m "); printmem(); printf("\n"); printf("\033[1;31m `: :`\033[0;0m "); printcpu(); printf("\n"); printf("\033[1;31m `: :`\033[0;0m "); printf("\033[1;31mShell:\033[0;0m ", proc_count); printshell(); printf("\n"); printf("\033[1;31m / /\033[0;0m \n"); printf("\033[1;31m .- -.\033[0;0m \n"); printf("\033[1;31m -- -.\033[0;0m \n"); printf("\033[1;31m `:` `:`\033[0;0m \n"); printf("\033[1;31m .-- `--.\033[0;0m \n"); printf("\033[1;31m .---.....----.\033[0;0m \n"); printf("\n"); return (0); }
int main() { check_isupper(); check_isLower(); puts("--------\nTest ft_puts:\n"); check_puts("great succes !"); check_puts(0); check_isDigit(); check_isAlpha(); check_isAlnum(); check_isAscii(); check_isprint(); check_tolower(); check_toupper(); int i = 0; srand( 42 ); printf( "--------\nTest ft_bzero:\n" ); char str_bezro[STR_MAX_SIZE]; char str_ft_bezro[STR_MAX_SIZE]; size_t len_bzero; for ( i = MIN; i < MAX; i++ ) { len_bzero = random_str( str_bezro ); len_bzero -= random( 0, len_bzero ); strcpy( str_ft_bezro, str_bezro ); ft_bzero( str_ft_bezro, len_bzero ); bzero( str_bezro, len_bzero ); if ( memcmp( str_ft_bezro, str_bezro, len_bzero ) != 0 ) { printf("result: \n%s\nexpected result: \n%s\n", str_ft_bezro, str_bezro ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); printf( "--------\nTest ft_strcat:\n" ); char str_strcat[STR_MAX_SIZE * 2]; char str_ft_strcat[STR_MAX_SIZE * 2]; char str_strcat_s2[STR_MAX_SIZE]; char *ret_strcat; char *ret_ft_strcat; size_t len_strcat; size_t len_strcat_s2; for ( i = MIN; i < MAX; i++ ) { len_strcat_s2 = random_str( str_strcat_s2 ); len_strcat = random_str( str_strcat ); strcpy( str_ft_strcat, str_strcat ); ret_ft_strcat = ft_strcat( str_ft_strcat, str_strcat_s2 ); ret_strcat = strcat( str_strcat, str_strcat_s2 ); if ( memcmp( str_strcat, str_ft_strcat, len_strcat + len_strcat_s2 ) != 0 ) { printmem( str_strcat, len_strcat ); printmem( str_ft_strcat, len_strcat ); printf("result: \n%s\nexpected result: \n%s\n", str_strcat, str_ft_strcat ); exit( 0 ); } if ( memcmp( ret_strcat, ret_ft_strcat, len_strcat + len_strcat_s2 ) != 0 ) { printmem( ret_strcat, len_strcat ); printmem( ret_ft_strcat, len_strcat ); printf("result: \n%s\nexpected result: \n%s\n", ret_strcat, ret_ft_strcat ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); check_strlen(); check_strchr(); check_strrchr(); printf( "--------\nTest ft_memset:\n" ); char str_memset[STR_MAX_SIZE]; char str_ft_memset[STR_MAX_SIZE]; size_t len_memset; for ( i = MIN; i < MAX; i++ ) { len_memset = random_str( str_memset ); len_memset -= random( 0, len_memset ); strcpy( str_ft_memset, str_memset ); ft_memset( str_ft_memset, i, len_memset ); memset( str_memset, i, len_memset ); if ( memcmp( str_ft_memset, str_memset, len_bzero ) != 0 ) { printf("result: \n%s\nexpected result: \n%s\n", str_ft_memset, str_memset ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); printf( "--------\nTest ft_memcpy:\n" ); char str_memcpy[STR_MAX_SIZE]; char str_ft_memcpy[STR_MAX_SIZE]; char str_memcpy_s2[STR_MAX_SIZE]; size_t len_memcpy; void *ret_memcpy; void *ret_ft_memcpy; for ( i = MIN; i < MAX; i++ ) { len_memcpy = random_str( str_memcpy_s2 ); ret_ft_memcpy = ft_memcpy( str_ft_memcpy, str_memcpy_s2, len_memcpy ); ret_memcpy = memcpy( str_memcpy, str_memcpy_s2, len_memcpy ); if ( memcmp( str_ft_memcpy, str_memcpy, len_memcpy ) != 0 ) { printf("result: \n%s\nexpected result: \n%s\n", str_ft_memcpy, str_memcpy ); exit( 0 ); } if ( ret_ft_memcpy != str_ft_memcpy ) { printf("result: \n%d\nexpected result: \n%d\n", (size_t)ret_ft_memcpy, (size_t)str_ft_memcpy ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); printf( "--------\nTest ft_strdup:\n" ); char str_strdup[STR_MAX_SIZE]; size_t len_strdup; char *ret_ft_strdup; char *ret_strdup; for ( i = MIN; i < MAX; i++ ) { len_strdup = random_str( str_strdup ); ret_ft_strdup = ft_strdup( str_strdup ); ret_strdup = strdup( str_strdup ); if ( memcmp( ret_ft_strdup, ret_strdup, len_strdup ) != 0 ) { printf("result: \n%s\nexpected result: \n%s\n", ret_ft_strdup, ret_strdup ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); printf( "--------\nTest ft_strcpy:\n" ); char str_ft_strcpy[STR_MAX_SIZE]; char str_strcpy[STR_MAX_SIZE]; char str_strcpy_s2[STR_MAX_SIZE]; char *ret_strcpy; char *ret_ft_strcpy; int len_strcpy; for ( i = MIN; i < MAX; i++ ) { len_strcpy = random_str( str_strcpy_s2 ); ret_strcpy = strcpy( str_strcpy, str_strcpy_s2 ); ret_ft_strcpy = ft_strcpy( str_ft_strcpy, str_strcpy_s2 ); if ( memcmp( str_ft_strcpy, str_strcpy, len_strcpy ) != 0 ) { printf("result: \n%s\n, expected result: \n%s\n", str_ft_strcpy, str_strcpy ); exit( 0 ); } if ( memcmp( ret_strcpy, ret_ft_strcpy, len_strcpy ) != 0 ) { printf("result: \n%s\n, expected result: \n%s\n", ret_strcpy, ret_ft_strcpy ); exit( 0 ); } } printf("\033[32mOk\n\033[0m"); printf( "--------\nTest ft_cat:\n" ); ft_cat( 4 ); ft_cat( 8 ); ft_cat( -4 ); ft_cat( open( "ft_bzero.s", O_RDONLY ) ); ft_cat( open( "Makefile", O_RDONLY ) ); return 0; }
int main() { int i, proc_count = 0; char *cuname; char buf[_POSIX2_LINE_MAX]; const char *execf, *coref; static kvm_t *kd; struct kinfo_proc *kp; static int nproc; static struct kinfo_proc *plist; execf = NULL; coref = _PATH_DEVNULL; kd = kvm_openfiles(execf, coref, NULL, O_RDONLY, buf); plist = kvm_getprocs(kd, KERN_PROC_PROC, 0, &nproc); for (i = 0, kp = plist; i < nproc; i++, kp++) proc_count++; printf("\n"); printf(" \033[0;0;0m \033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m \033[0;0;0m\033[38;5;16m00\033[0;0;0m \n"); printf("\033[38;5;52m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;95m1\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;102m1\033[0;0;0m\033[38;5;145m1\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;145m1\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;145m00\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;102m1\033[0;0;0m\033[38;5;102m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;131m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printval("OS", "kern.ostype"); printf(" "); psysctl("hw.machine_arch"); printf("\n"); printf("\033[38;5;88m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;167m1\033[0;0;0m\033[38;5;210m1\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;217m1\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;180m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;188m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m000\033[0;0;0m\033[38;5;231m00\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;187m0\033[0;0;0m\033[38;5;144m0\033[0;0;0m\033[38;5;144m1\033[0;0;0m\033[38;5;187m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;210m1\033[0;0;0m\033[38;5;167m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printval("Hostname", "kern.hostname"); printf("\n"); printf("\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;209m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m11\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m01\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;173m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;210m1\033[0;0;0m\033[38;5;167m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printval("Kernel", "kern.osrelease"); printf("\n"); printf("\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;230m0\033[0;0;0m\033[38;5;230m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;224m11\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;209m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;131m1\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m "); printuptime(); printf("\n"); printf("\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;230m0\033[0;0;0m\033[38;5;231m1\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;223m0\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;217m1\033[0;0;0m\033[38;5;217m1\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;173m1\033[0;0;0m\033[38;5;167m0\033[0;0;0m\033[38;5;203m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;131m1\033[0;0;0m\033[38;5;174m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printf("\033[1;31mProcesses:\033[0;0m %d\n", proc_count); printf("\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;181m1\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;223m0\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;230m0\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;230m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;223m0\033[0;0;0m\033[38;5;217m1\033[0;0;0m\033[38;5;216m0\033[0;0;0m\033[38;5;209m0\033[0;0;0m\033[38;5;203m0\033[0;0;0m\033[38;5;203m0\033[0;0;0m\033[38;5;202m1\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;131m1\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;138m1\033[0;0;0m\033[38;5;188m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printmem(); printf("\n"); printf("\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;223m0\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;231m0\033[0;0;0m\033[38;5;224m0\033[0;0;0m\033[38;5;216m0\033[0;0;0m\033[38;5;209m1\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;196m0\033[0;0;0m\033[38;5;196m1\033[0;0;0m\033[38;5;196m1\033[0;0;0m\033[38;5;196m0\033[0;0;0m\033[38;5;196m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;95m1\033[0;0;0m\033[38;5;95m1\033[0;0;0m\033[38;5;138m0\033[0;0;0m\033[38;5;188m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m"); printcpu(); printf("\n"); printf("\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;174m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;209m0\033[0;0;0m\033[38;5;215m1\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;209m0\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m11\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;130m0\033[0;0;0m\033[38;5;188m0\033[0;0;0m\033[38;5;102m1\033[0;0;0m "); printf("\033[1;31mShell:\033[0;0m ", proc_count); printshell(); printf("\n"); printf("\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;188m1\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m111\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;130m1\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;138m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m \n"); printf("\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;224m1\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1001\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;230m1\033[0;0;0m\033[38;5;102m1\033[0;0;0m \n"); printf("\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m00\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;173m0\033[0;0;0m\033[38;5;222m1\033[0;0;0m\033[38;5;229m1\033[0;0;0m\033[38;5;188m1\033[0;0;0m\033[38;5;16m0\033[0;0;0m \n"); printf(" \033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;145m1\033[0;0;0m\033[38;5;174m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;167m1\033[0;0;0m\033[38;5;215m1\033[0;0;0m\033[38;5;223m1\033[0;0;0m\033[38;5;188m0\033[0;0;0m\033[38;5;59m1\033[0;0;0m \n"); printf(" \033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;102m0\033[0;0;0m\033[38;5;181m0\033[0;0;0m\033[38;5;88m0\033[0;0;0m\033[38;5;88m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;173m0\033[0;0;0m\033[38;5;217m0\033[0;0;0m\033[38;5;145m1\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m \n"); printf(" \033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;145m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;124m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;202m1\033[0;0;0m\033[38;5;202m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;209m1\033[0;0;0m\033[38;5;216m1\033[0;0;0m\033[38;5;180m1\033[0;0;0m\033[38;5;59m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m \n"); printf(" \033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;95m1\033[0;0;0m\033[38;5;131m1\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;124m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;202m1\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;202m1\033[0;0;0m\033[38;5;208m0\033[0;0;0m\033[38;5;209m1\033[0;0;0m\033[38;5;180m1\033[0;0;0m\033[38;5;137m1\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\n"); printf(" \033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;16m1\033[0;0;0m\033[38;5;59m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;131m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m1\033[0;0;0m\033[38;5;160m0\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m1\033[0;0;0m\033[38;5;166m0\033[0;0;0m\033[38;5;202m0\033[0;0;0m\033[38;5;172m1\033[0;0;0m\033[38;5;172m0\033[0;0;0m\033[38;5;173m1\033[0;0;0m\033[38;5;137m0\033[0;0;0m\033[38;5;95m0\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\n"); printf(" \033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;52m1\033[0;0;0m\033[38;5;58m1\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;58m0\033[0;0;0m\033[38;5;52m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\033[38;5;16m0\033[0;0;0m\n"); printf("\n"); return (0); }
int main() { //allocate memory for registers and program data byte reg[16]; byte mem[4096]; //unsigned int offset = (unsigned int)mem - 0x200; word I = 0x200; int i; //printf("Hello World!\n"); //printf("Char size: %u\n",CHAR_BIT); //printf("Char min: %u\n",CHAR_MIN); //printf("Char max: %u\n",UCHAR_MAX); //printf("mem start: %p\n",mem); //printf("mem + 1: %p\n",mem+1); //fill registers to make the string "Hello World", //print it with printf, save it to memory, then //load it again seti(reg+0x0,0x48); seti(reg+0x1,0x65); seti(reg+0x2,0x6C); seti(reg+0x3,0x6C); seti(reg+0x4,0x6F); seti(reg+0x5,0x20); seti(reg+0x6,0x57); seti(reg+0x7,0x6F); seti(reg+0x8,0x72); seti(reg+0x9,0x6C); seti(reg+0xA,0x64); seti(reg+0xB,0x0); //print string printf("%s\n",reg); printf("Register contents after setting\n"); printregs(stdout,reg); printf("Memory contents before doing anythong\n"); printmem(stdout,mem,0x200,0x20F); //printf("Store register contents in memory"); stor(reg,0xB,mem,&I); //printmem(stdout,mem,0x200,0x20F); //zero all the registers memset(reg,0,REG_COUNT); printf("Memory after saving\n"); printmem(stdout,mem,0x200,0x20F); printf("Read memory as a string, line below should read \"Hello World\"\n"); printf("%s\n",mem+0x200); printf("Registers should all be 0\n"); printregs(stdout,reg); printf("Registers should now hold just the 2nd word\n"); I = 0x206; load(reg,0x5,mem,&I); //should load "World" printregs(stdout,reg); printf("%s\n",reg); //test the other opcodes printf("Clear registers\n"); memset(reg,0,REG_COUNT); printregs(stdout,reg); seti(reg+0x0,0x1); printf("set V0 to 1\n"); printregs(stdout,reg); set(reg+0x1,reg+0x0); printf("Set V1 to V0 (1)\n"); printregs(stdout,reg); addi(reg+0x0,0x2); printf("Added 2 to V0,should now be 3\n"); printregs(stdout,reg); add(reg+0x0,reg+0x1,reg+0xF); printf("Add V0 and V1, store answer in V0\n"); printregs(stdout,reg); addi(reg+0x2,0xFF); add(reg+0x0,reg+0x2,reg+0xF); printf("Testing carry flag, add 255 to V2 and add V2 to V0 (sets CF)\n"); printregs(stdout,reg); subyx(reg+0x0,reg+0x2,reg+0xF); printf("V0 - V2, V0 should be 0xFC, VF = 0\n"); printregs(stdout,reg); subxy(reg+0x1,reg+0x2,reg+0xF); printf("V2 (0xFF) - V1 (0x1) -> V1 (0xFE),VF = 1\n"); printregs(stdout,reg); }