#include #include "mem.h" struct mem_st mem = { .pos = 0, .arr={0}}; int mem_pos(){ return mem.pos; } int mem_inc(){ mem.arr[mem.pos]++; return mem.arr[mem.pos]; } int mem_dec(){ mem.arr[mem.pos]--; return mem.arr[mem.pos]; } int mem_left(){ if (mem.pos <= 0) { mem.pos = MEM_SIZE-1; } else { mem.pos--; } return mem.pos; } int mem_right(){ if (mem.pos >= MEM_SIZE-1) { mem.pos = 0; } else { mem.pos++; } return mem.pos; } int mem_get(){ return mem.arr[mem.pos]; } int mem_set(char v){ mem.arr[mem.pos] = v; return v; } void mem_printDebug(){ if (mem.pos+9 >= MEM_SIZE) printf("index: %d mem [%d .. %d]:", mem.pos, mem.pos, mem.pos-MEM_SIZE+9); printf("index: %d mem [%d .. %d]:", mem.pos, mem.pos, mem.pos+9); for (int i = 0; i < 10; ++i) { if (mem.pos+i >= MEM_SIZE) { printf("% d", mem.arr[mem.pos-MEM_SIZE+i]); } else { printf("% d", mem.arr[mem.pos+i]); } } printf("\n"); }