try this, (standalone for testing)
Code:
#include <acknex.h>
#include <default.c>

TEXT* txt_log = {
	layer = 10;
	strings = 10;
	flags = SHOW;
}

void logger(STRING* str){

	int i = 0;
	str_cpy((txt_log.pstring)[0], str);
	
	for(i = 0; i < txt_log.strings-1; i++){
		str_cpy((txt_log.pstring)[i],(txt_log.pstring)[i+1]);
	}
	
	if(str){
		str_cpy((txt_log.pstring)[txt_log.strings-1],str);
	}else{
		str_cpy((txt_log.pstring)[0],"");
	}
}

#define waiter -0.5
void logger_startup(){
	
	int i;
	for(i = 0; i < txt_log.strings; i++){
		(txt_log.pstring)[i] = str_create("");
	}
	
	wait(waiter);
	logger("THIS");
	wait(waiter);
	logger("IS");
	wait(waiter);
	logger("HOW");
	wait(waiter);
	logger("IT");
	wait(waiter);
	logger("WORKS");
	wait(waiter);
	
	logger("JUST");
	wait(waiter);
	logger("KEEP");
	wait(waiter);
	logger("SENDING");
	wait(waiter);
	logger("logger(\"input\")");
	wait(waiter);
	logger("UNTIL");
	wait(waiter);
	logger("YOU");
	wait(waiter);
	logger("GET");
	wait(waiter);
	logger("BORED");
	wait(waiter);
	logger(":)");
	wait(waiter);
}


hope this helps