Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

El expediente X que nadie pidió
eNigma
La cuadratura del píxel
Portando desde Spectrum
Inexorable

Últimos comentarios

Habi
NoSupoResolverLaFuncion
Edu
Habi
EnriqueGG

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Abj dice: No es matrimonial, pero lo será. Esta vez me planto. 
 

Termografía barata

Habi - 11/01/2009 0:35:58 - Chorradas

Alguna vez me ha parecido raro el tipo de papel que daban los cajeros automáticos y los tiques (aunque parezca mentira es una palabra reconocida por la R.A.E.) de ciertos sitios. Me refiero a esos papeles finos, satinados y brillantes.

Pero ahí quedó la cosa. Sin embargo, hoy por accidente he descubierto qué tipo de papel es:

Es papel térmico, utilizan impresoras térmicas. Por si os interesan los patrones, diré que el tique estaba completamente estirado sobre una superficie plana (mi encimera de granito pulido) uniforme a temperatura constante. Sobre él puse un plato de fondo liso con una pizza caliente. Interesante la forma de propagación del calor, no todos los días puede verse en acción una solución explícita de la ecuación del calor (E.D.P.) bidimensional.

Hice otras pruebas, como acercarlo a una lámpara sujetando con un dedo, y vi como se ponía negro excepto donde se encontraba el dedo (se absorbía parte del calor), y como se marcaban las huellas dactilares en el borde (condiciones de contorno casi fractales).

En fin... nunca te acostarás... sin abrir la cama.

4


Adiós, Floppy, adiós

Habi - 10/01/2009 2:18:13 - Tecnoesoterismo

Finalmente he decidido quitar la disquetera de mi ordenador, y poner un lector de tarjetas en su lugar. Como despedida, este post.

No os hablaré de la vida y milagros de Alan Shugart, pero sí diré que al tipo de interfaz de disco que se encuentra en los PCs se le llama Shugart. Aunque tiene un poco de modificación con respecto al interfaz SA400 original como ahora veremos, es prácticamente la misma cosa.

Originalmente, en la norma había provisión para 4 unidades de disco, y el cable era una cinta plana de 34 conectores, con todos sus conectores IDC. La unidad lógica de cada unidad de disco se elegía con unos puentes en la propia unidad. IBM en su implementación redujo el número de unidades a 2, separó la señal del motor para cada unidad y dispuso las líneas pares de forma que si se invirtiesen (cruzando parte del cable, pines 10-16) se seleccionase el disco sin tener que hacer puentes.

Por eso vienen todos los discos configurados por defecto como DS1 (unidad B), y para que sean DS0 (unidad A) deben ser conectados al extremo tras el cruce. Como cultura general añadiré que todas las líneas impares están conectadas a masa, como en un cable ATA de 80 pines (existe un mecanismo para detectar unidades con los pines 3 y 5, pero en la práctica casi nunca se ha usado).

Diferencias:

Pin

SA400

IBM

6 DS3 Nada (o ED, 2.88 MB)
10 DS0 Motor DS0
12 DS1 DS1
14 DS2 DS0
16 Motor (¡todas!) Motor DS1

Ahora llega la frikada; la hice hace algún tiempo, antes de las fiestas. Esta vez no hay fotos, pero es fácil de seguir. Hay par de pines interesantes, son el 30 (los datos tal cual los lee la unidad) y el 8 (marca índice). Esos pines son que usa el autor del Disk2FDI para hacer su cable, con el cual se pueden leer ambos a través del puerto de la impresora. No obstante, no todo puerto paralelo vale para eso, y bajo Windows o Linux es imposible al no ser SOs en tiempo real.

La idea es esta: hacemos una operación de lectura, pero pasamos de los datos (o fallos) que nos dé el controlador de disco. Lo que hacemos es capturar a una determinada frecuencia los datos a través del puerto de la impresora, y luego tranquilamente según sea la modulación separar los datos de la señal de los de reloj y listo. Pista leída a bajo nivel. Después resta leer el formato lógico de la pista, localizar sectores, volcar información de cada uno, etc.

Yo pensé hacer una interfaz Shugart completa controlada por un PIC y que volcase los datos vía USB, pero al final fui más cutre: usé los 3 puertos B, C y D de un 16F877A como un contador, para generar las direcciones A0-A23 de una memoria (usadas realmente A0-A19); usé una memoria estática de 100ns que tenía, una DS1265W, convirtiendo a 3.3V usando 2 resistencias como divisor de tensión, y conectando I0 así a la salida de datos la disquetera (tras pasar por un 1N4148, y lo conecto también al PIC; de esa forma puedo leer luego los resultados). Desperdicia 7 bits de cada byte, pero es muy simple. También para simplificar leo desde el PIC hasta llenar el Mb (independientemente de la velocidad a la que leo o de si la disquetera ha dejado de leer) e ignoro (ni conecté) la señal de índice.

Después basta usar de nuevo el PIC para mandar los datos por el puerto serie (software, puerto A; el UART hardware está en el puerto C, conectado a la memoria) y listo.

Dado lo cutre del invento, los resultados fueron bastante buenos. Pude leer los datos en crudo y vi que se correspondían a los datos que debería tener esa pista del disco (si bien al final no hice ningún programa que separase los datos leídos de la señal de reloj y reconstruyese la estructura del disco).

Y es que YA hay al menos un programa que hace eso; y que los disquetes están obsoletos; y que tengo proyectos más interesantes (bajo mi punto de vista). Supongo que esa es la lección de este post.

0


Reyezuelos

Habi - 07/01/2009 13:22:23 - Chorradas

Con todos ustedes, el regalo estrella de este año:

^____^


Por otro lado, parece que este blog ha recibido también un regalo de reyes. El día 5 detecté un nuevo lector, o al menos algo parecido.

Ese día me dio el punto y miré los logs de los accesos que había habido desde el último reset, y localicé una araña que no conocía. Se identificaba como "Bloglines/3.1 (http://www.bloglines.com; 1 subscriber)".

Tras ir a bloglines y ver que es un sitio de seguimiento (tipo la página personalizada de Google, menos bonito pero más poderoso), localicé la ficha que tenían del blog, y a partir de ahí quién me tenía añadido; llamémosle Y.

Mirando su lista de suscripciones, mirado los blogs con menos suscriptores para simplificar y aumentar la posibilidad de comentarios y buscando éstos a su nombre, pude localizar su propio blog (llamémoslo NSE) en Blogspot y por tanto su perfil (señorita barcelonesa), coherente con el lenguaje de algunos comentarios, y con el IP de acceso que tengo registrado en el blog (Telefónica de Barcelona, usando Opera/9.23 (Windows NT 5.1; U; es-es) (léase: Windows XP, navegador configurado en castellano), siendo el primer acceso y añadido a Bloglines el 16-11-08 a las 12:17, si no me equivoco. De reyes poco, pero puede valer.

Hay algo que me asusta: ver un enlace a mi blog entre enlaces a BULMA, Microsiervos, Geek in love, Kirai, Pixel y Dixel, Tecnorantes, ...

NOTA: Si lees esto, Y, no te asustes; es mi forma de decir "Hola".

5


Malkari

Habi - 06/01/2009 3:15:04 - Tecnoesoterismo

Hace poco descubrí un juego antiguo de estrategia espacial para Windows que no conocía: el Malkari; así que me dispuse a probarlo de inmediato.

(NOTA: Esto no es lo que parece... no es una reseña.)

No obstante, este juego no funciona en Vista, ni con modos de compatibilidad ni nada, así que me puse a experimentar con él. Haciendo pruebas, comprobé que tampoco era posible hacerlo funcionar en XP, y claro está tampoco en 2000. Sin embargo, en 98 y ME iba perfecto.

¿Por qué no funcionaba en núcleos NT? ¿Qué operación no válida era la que causaba su cierre?

Movido por la curiosidad, le metí un depurador. Cuando se produjo el error vi exactamente qué estaba ocurriendo: estaba accediendo (escribiendo) a una dirección de memoria en el proceso un poco más allá de 0x000B0000.

Por si no lo saben, el Windows mantiene cada proceso en un espacio de direcciones separado. Lo normal es que por la parte baja estén algunas tablas del SO, la aplicación empiece sobre los 16MB y de los 2GB (3GB si se usa cierta opción) en adelante esté el monitor de Windows, con gran parte del código y datos compartidos entre todos los procesos.

Una diferencia fundamental y poco conocida entre los núcleos 9x y NT es que los primeros además mapean la mayor parte de la memoria DOS por debajo del primer MB, compartida además entre todos los procesos. Así es más fácil y exacta la emulación del DOS y además proporciona una cierta capa de compatibilidad para aplicaciones de 16 bits y algunas de 32 antiguas. Por eso este acceso a la memoria no falla en núcleos 9x.

¿Y qué hay en esas direcciones? Pues ese el rango de direcciones de la memoria de video de texto monocromo, una MDA, para la cual no hay drivers de Windows y por tanto los accesos no se virtualizan; ni tampoco se bloquean, por estar mapeada la memoria.

En los tiempos del DOS era una práctica común usar una MDA junto con otra tarjeta gráfica para depurar una aplicación, ya que el rango de monocromo era siempre ignorado por la misma y quedaba libre para el depurador. Es la primera vez que veo esto en Windows, por parte de una aplicación, para sacar sus mensajes de depuración; con lo simple que es usar OutputDebugString o escribir los resultados a un fichero.

La solución es trivial, bien parchear el ejecutable o crear un lanzador que tras crear suspendido el hilo primario del proceso mapee la memoria con VirtualAllocEx. Sigue fallando tras eso por otras causas triviales y fácilmente corregibles, pero eso... es otra historia, como bien dijo el narrador de Conan.

0


PocketLoom

Habi - 01/01/2009 23:35:08 - Chorradas

Última hoja del... digo... primer post del año.

La historia de hoy es simple; alguien me ha regalado una PDA / teléfono. Pero no una de última generación, ni siquiera una normalita. Es un ladrillo enorme de telefónica (TSM400 = QTek 1010), sin Bluetooth, sin GPS, sin Wi-Fi, y cutre hasta decir basta.

Y como no soy partidario de tirar cosas que funcionan, aunque sean inútiles, algo tenía que hacer con ella:

Nota: Esta versión del ScummVM está obsoleta y plagada de bugs; a ver si localizo un buen IDE para PocketPC.

 


 

Actualización:

...

H: y por otro lado, ayer me puse con la PDA esta
H:
Z: surprise
Z: ya montaste el detonador atómico wifi?
H: 1) descubrí que el scummvm tenía compilados específicos para ppc2002, que NUNCA han aparecido en las descargas oficiales
H: con los que funcionaba PERFECTAMENTE, y hasta la 8.2, porque los 9.x en adelante ya los integraban en wince
Z: frown
H: 2) el port wince DEBERÍA funcionar... si no fuera porque usan la ***MIERDA*** del SDL
Z: laughlaugh
H: se equivocaba y decía que era PPC2003 (ozone) y claro, cascaba por el api
H: 3) después de tecnomagia arcana de 7º nivel, le he puesto a esta pda un Windows Mobile 2003
H: 4) ahora rula el scummvm 12 ^____^
H: (es más lento, por las optimizaciones en tamaño perjudicando velocidad, y tengo que cambiar la prioridad del thread de audio de la ***MIERDA*** del SDL para que el sonido no se interrumpa a sí mismo)
H: pero va bien, tocando dos tonteridas
H: y es una v12!
H: actual!
H: [ APLAUSOS ]
Z: oh dios frown
Z: y ahora lo usarás?
H: posiblemente... no
H: pero mola!
Z: laugh
Z: has gastado un tiempo precioso
Z: en solucionarle la vida a una tecnología retro que nunca usarás
Z:
H: cool
H: así soy yo, ya sabes
Z: otro vicioso del menú "opciones"
Z: ayh

...

0


Más felices fiestas

Habi - 19/12/2008 1:56:56 - Posts lúcidos

3


Webcomics

Habi - 30/11/2008 18:50:59 - Chorradas

...o cómo sobrevivir en el curro.

http://www.giantitp.com/comics/oots0001.html

http://drmcninja.com/archive.html

http://www.lfgcomic.com/page/1

http://www.webcomicsnation.com/spike/Templar/series.php?view=single&ID=422

http://www.nuklearpower.com/daily.php?date=010302

http://www.sluggy.com/daily.php?date=970825&&mode=weekly

http://www.webcomicsnation.com/ct/faust/series.php?view=single&ID=14418

http://www.gpf-comics.com/archive.php?d=19981102

http://www.webcomicsnation.com/ct/dictator/series.php?view=single&ID=11386

http://comics.cyberneticevilstudios.com/

 

Y para los amantes del manga...

http://www.onemanga.com/

 

^___^

6


403

Habi - 17/11/2008 11:27:16 - Chorradas

Cuando creía que lo había visto todo en errores, me encuentro con esto:

Indescriptible.

0


Paridad vs parida

Habi - 15/11/2008 17:08:27 - Posts lúcidos

Por si alguien no se había dado cuenta debo decir que este blog no es del todo caótico sino neutral. En él imperan ciertas leyes no escritas, si bien son pocas y no son las usuales.

Pues bien, una de ellas es la de paridad. Hace poco alguien me llamó la atención: demasiados posts técnicos; y debo decir que tiene razón, y que por eso no he escrito nada desde entonces.

Así que de momento, y mientas no se demuestre lo contrario, nada de tecnofriquismo esotérico. Pasaré de contar las cosas que he descubierto en cierto juego de estrategia antiguo, pasaré de contar mis aventuras con una disquetera y discos de Amiga, pasaré de contar aventuras con el hardware obsoleto, y pasaré de contar tantas otras cosas que he estado haciendo.

Habiéndome desintoxicado ya de tanta tecnocracia, y considerando ya por fin el resto de cosas al nivel que deben estar, muevo ficha.

5


Hércules

Habi - 22/10/2008 12:20:01 - Tecnoesoterismo

Antes de empezar el post de hoy, debo corregirme en el de la CGA. Dije que el retardo de la señal respecto a los sincronismos se debía a las puertas y eso no es correcto.

Veamos una pequeña demostración; si una línea de barrido en NTSC son 15,75Khz = 15750hz, es decir 1/15750 = 6,349·10-6s = 63492ns, y suponemos unos... 640px, digamos 700 con sincronismos, esos nos da más de 90ns por cada punto; y en TTL tanto la familia SL como la HC (tal y como lo tengo ahora, para ahorrar energía) retardan unos 10ns. ¡Es que ni un pixel de retardo!

No obstante, la solución es la misma. Retardar o ajustar el sincronismo en la TV. Es la tarjeta, que es así.

El post de hoy tiene que ver con el modo MDA / Hércules de la tarjeta. Me dió curiosidad el ver si podía ser soportado, así que decidí probar el modo Hércules. Aunque sin mucha fe, ya que la frecuencia horizontal se nos sube a 18,425Khz (y la vertical nos baja a 50hz). En teoría, la luminosidad se inyecta por el mismo pin (el I de la CGA), así que debería verse en negro / gris. No obstante, le sigo diciendo en los jumpers que el monitor es color. Veamos qué pasó:

Varias cosas:

  1. Funciona. Hay cierto parpadeo mínimo pero es por el entrelazado del televisor, que al tener una resolución vertical respetable (350px) los campos se montan. La frecuencia se aguanta bien.
  2. Se inyecta el video no sólo por I sino por G; bien hecho, por haberle dicho lo del monitor color, y hace que la imagen se vea en verde claro sobre negro en la pantalla. No me disgusta en absoluto, al contrario, me encanta el aire retro.
  3. El retardo de la señal es bastante menor, entra bien en pantalla.

Y otra cosa retrofriki; a ver si para la próxima leemos disquetes en un PC a muy bajo nivel (por debajo del NEC765), incluyendo de Amiga y C64.

9


Reglas del 10:
10 últimos   10 después   10 antes   10 primeros