+}
+
+int main(void)
+{
+ int fd_in, fd_out;
+ int ct;
+
+ fd_in = fileno(stdin);
+ fd_out = fileno(stdout);
+
+ //Register signal handler
+ if(signal(SIGINT, killHandler) == SIG_ERR){
+ die("Couldn't register signal handler...\n");
+ }
+ if(signal(SIGTERM, killHandler) == SIG_ERR){
+ die("Couldn't register signal handler...\n");
+ }
+
+ while(true){
+ //Check for new tasks
+ if(input_available(fd_in)){
+ read_message(fd_in, fd_out);
+ }
+ //Run tasks
+ for(ct = 0; ct<MAXTASKS; ct++){
+ if(!tasks_used[ct]){
+ debug("Task %d not implemented\n", ct);
+ continue;
+ }
+ debug("Going to execute task %d\n", ct);
+ run_task(tasks[ct]);
+ exit(1);
+ }
+// exit(1);
+ usleep(10);
+ }
+
+/* //Read program
+ pc = 0;
+ while ((c = getchar()) != EOF && pc < PROGRAMSIZE)
+ program[pc++] = c;
+ if (pc >= PROGRAMSIZE)
+ die("Max program size: %d\n", PROGRAMSIZE);
+ pl = pc;
+ debug("Done reading, program length: %d\n", pl);
+
+ //Evaluate program
+ //Reset program counter and stack counter
+ pc = 0;
+ sp = 0;
+ while(pc != pl){
+ }
+*/