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

Pascua antes de Reyes
One more time
:/
Aventuras vectoriales
PCW en color

Últimos comentarios

hyoenmadan
Habi
enrique
kachorro
Bionic

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Hamelín dice: venga, uno más y te dejo tranquila

Pascua antes de Reyes

Habi - 04/01/2021 20:35:55 - Posts lúcidos

Feliz año nuevo, felices fiestas, y cosas de esas.

Últimamente he estado liado con la emulación del PcW16. Hace tiempo saqué una versión muy alfa de su emulador, basada en la que tenía por aquel entonces del emulador de PCW.

Como este último ha avanzado mucho desde entonces me he decidido a empezar de nuevo, tomando como base de nuevo el actual. Prácticamente está listo, a falta de evaluar si merece la pena implementarle un mapeo de directorio o no, así que es posible que publique una beta decente en breve.

Quizás le cambie el icono. Quizás.

Pero el caso es que depurando el emulador he tenido que analizar parte del código del sistema operativo, y ahí he vuelto a ver el "mensaje" que está almacenado cerca del principio de la Flash del PcW16, dentro de las primeras 64 KB (bloque de arranque, protegido por seguridad):

Y el caso es que su desplazamiento está incluido en la tabla de saltos del propio sistema de arranque:

Siempre he sospechado que era un huevo de pascua, visible desde algún lugar del sistema operativo bajo las circunstancias oportunas. Pues bien, estas sospechas se han confirmado hoy:

Más claro, agua; así que vamos a investigarlo.

- 0 -

Lo primero es localizar el lugar donde se hace referencia a esto último; dado el funcionamiento del SO lo más probable es que se encuentre en la misma página (16 KB), la número 4 de la Flash (página dedicada al puerto paralelo en general, al LocoLink y la impresión en particular).

Desensamblando a mano donde parece haber código y haciendo referencias cruzadas encontramos la rutina que imprime el diálogo propiamente dicho, junto con otra la cual es la única rutina que llama a la anterior. Y esa rutina es en sí misma la del huevo de pascua, con sonido inicial incorporado.

Desgraciadamente, aquí se pierde la pista: nadie la llama en dicha página.

- O -

Una particularidad del Z80 es que tanto los saltos "lejanos" como las llamadas a subrutinas son absolutas; y además ocurre que el API de llamadas "largas" (24 bits) de este SO también lo es, como es lógico.

Así pues, vamos a hacer una búsqueda binaria con dicha dirección:

Y bingo; porque justo por delante tenemos el código de un RST $30 (FarCall) y por detrás la página en la que se halla, con lo que en efecto se confirma que hay llamada desde ahí.

Toca desensamblar por tanto la página 9: el escritorio, rutinas en coma flotante y sistema de ayuda. Y justamente en ese último lugar encontramos la llamada.

Tirando hacia arriba, vemos que se llama desde la página de ayuda cada vez que se pulsa una tecla, y que los hace coincidir con una lista de caracteres “encriptada” (dan igual mayúsculas y minúsculas). Y así obtenemos la contraseña, que por otro lado era bastante obvia: "Anne Team". Sin comillas y con el espacio, dan igual mayúsculas o minúsculas.

- ∅ -

Lo único que nos resta es arrancar el PcW16, irnos a la ayuda, y teclear dicha contraseña:

Todos los secretos serán revelados.


enrique - 17/01/2021 0:38:02

Que gusto volverte a leer.  
Y más con cosillas de estas.



Habi - 17/01/2021 1:16:41

¡Gracias! :)



hyoenmadan - 25/01/2021 22:46:08

Hacia tiempo que no publicabas aquí. Es bueno saber que estas perfecto. 2018... Como han cambiado las cosas :-).




Añadir comentario

Nombre:
Email:
Comentario:
Pregunta: Sea f(x)=8x2+8x+3. ¿Cuánto vale f(x) para x=2?
Respuesta: