Adjunto el texto que mande a la placa por si alguien quiere compararlo viendolo en DOS o algun editor de texto que soporte el juego de caracteres.
Para que se vea sin fantasmas lo que hice fue entrar al sintonizador por s-video, conectando la salida de video compuesto de la placa a la entrada de luminancia, dejando sin conectar la entrada de color. De este modo se ve una imagen monocromo perfecta sin bordes de colores inventados por el sintonizador. Asi tambien habia hecho con la salida de video compuesto monocromo de 80 columnas de la C128.
Con respecto a los otros proyectos de video, estuve investigando mucho antes de elegir este, por supuesto que mi objetivo era una salida con bitmap de alrededor de 320x240, en lo posible 256 colores (o 16 minimo) con salida VGA, y tambien algun modo de 80 columnas de 16 colores o monocromo, para correr soft mas serio. Investigue los chips nuevos y no servian para lo que pretendia, ya que ahora todo esta hecho para manejar LCDs de forma directa (como para celulares o reproductores de musica o video) y con aceleracion 2D o 3D, ademas de ser inmanejables desde el punto de vista electronico (son SMD y extremadamente dificiles de soldar), mas aptos para comprarlos en placas armadas con un kit de desarrollo conectable a la PC. Ademas todo eso se suele programar en alto nivel, perdiendose la gracia de entender como funciona. Despues mire que se podia implementar con chips programables, descarte las FPGA porque son una solucion exagerada, justificable solamente para hacer una maquina entera, no un simple chip de video. Termine entonces buscando DSPs y microcontroladores, y me encontre con que los microcontroladores estaban al limite de lo necesario para generar el video que pretendia. La velocidad permite generar VGA en 320x240 y 256 colores, pero no para uso general sino al estilo Atari 2600, donde el programa esta escrito para generar de forma directa el video y no puede funcionar una cosa separada de la otra. Dado que lo necesitaba lo mas generico posible, me tuve que resignar a bajar las especificaciones a una salida de video compuesto, con lo cual ya el proceso necesario es menor y permite dedicar tiempo completo a la generacion de video.
Por ahora ese va a ser mi punto de partida, ya que si esperamos a tener todo lo que queremos nunca vamos a hacer nada, en el futuro se iran logrando soluciones mejores, con mas resolucion y colores, o salida VGA. Si se escribe una BIOS y se trata de no hacer acceso directo al hard, no habra problema mas adelante en cambiar el chip por otro totalmente distinto.
En cuanto al programador, no tuve tiempo de ponerme a buscar lo que publicaste de como grabar el micro, aunque no me acuerdo si lo publicaste o se lo pasaste por privado a los que te lo pidieron. Por suerte en los scripts de grabacion del AVRDude que ponen a disposicion la gente que hizo el TellyMate pude ver los valores de los bytes alto y bajo de los fusibles de programacion, asi que mirando la hoja de datos y las opciones del programador deduje como iban (es confuso que hay que chequear un bit en el programador para ponerlo en 0), y grabando exclusivamente los fusibles esos el micro empezo a andar (ya habia grabado el codigo antes).
Me olvidaba, el principio de funcionamiento de este proyecto, igual que el implementado con un PIC18, es mas o menos el mismo que yo habia pensado utilizar en mi propio chip, que es basicamente tener una memoria de video de caracteres en los registros, una fila detras de otra, y cargar los datos de los caracteres en memoria de codigo, almacenando un byte por grupo horizontal de 8 pixels. Todo tiene que estar almacenado de forma tal que se pueda con dos coordenadas acceder con dos tablas de saltos a la linea horizontal actual a mostrar en pantalla. Lo que hace el programa es usar un puerto serie por hard programado a la velocidad adecuada para la generacion de video (bastante al limite del maximo permitido), de forma tal que se obtenga un grupo de 8 pixels desde la memoria de programa (que hace de ROM de caracteres) y se de la orden al registro de desplazamiento para empezar a enviar los pixels, mientras se busca el siguiente byte en las tablas. El margen de tiempo para hacer todo eso es tan estrecho que es imposible utilizar interrupciones, y se debe implementar la lectura del puerto RS232 de forma coordinada con la generacion de video. En el PIC18 se esta mas limitado porque no da la velocidad que tiene el ATMega8 de 16MHz (corriendo internamente a 32MHz), ya que si bien el PIC soporta la misma velocidad, su ciclo de ejecucion tarda casi el doble que el del ATMega8.
Como comentario al margen, pense que podia encadenar varios chips monocromaticos generando cada uno un plano de bits para dar una imagen en colores, esto requeriria 4 micros para 16 colores, 8 para lograr 256, pero es realmente una locura. Tal vez precisamente por eso algun dia lo implemente.
;D ;D