Puts the character ``char`` into the char_buffer.
		Special characters:
			
		"\n"
			cursor[0] += 1
			cursor[1] = 0
		"\r"
			cursor[1] = 0
		"\t"
			cursor[1] += 8
		0
			equals " "

def put_char(self, char, r, g, b):
		"""
		Puts the character ``char`` into the char_buffer.
		Special characters:
			
		"\n"
			cursor[0] += 1
			cursor[1] = 0
		"\r"
			cursor[1] = 0
		"\t"
			cursor[1] += 8
		0
			equals " "
		"""
		r, g, b = r & 0xff, g & 0xff, b & 0xff
		if(char == 0):
			char = " "

		if(char == "\r"):
			self.cursor[1] = 0
			return
		if(char == "\t"):
			for i in range(8):
				self.put_char(" ", r, g, b)
			return
		
		if(self.max_chars_per_col > self.cursor[0]):
			if(char == "\n"):
				self.cursor[1] = 0
				self.cursor[0] += 1
				return

			if(self.max_chars_per_line > self.cursor[1]):
				self.char_buffer[self.cursor[0]][self.cursor[1]] = (char, r, g, b)
				self.cursor[1] += 1
			else:
				self.cursor[0] += 1
				self.cursor[1] = 0
				self.char_buffer[self.cursor[0]][self.cursor[1]] = (char, r, g, b)
				self.cursor[1] += 1
			self.draw_char_screen()
		else:
			self.char_buffer.append([(" ", 0xff, 0xff, 0xff) for i in range(self.max_chars_per_line)])
			self.cursor[0] -= 1
			self.put_char(char, r, g, b)