Karoshi MSX Community
05 de Julio de 2021, 07:04:57 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2] 3
  Imprimir  
Autor Tema: Ayudita con las rutinas de decodificacion del teclado please.  (Leído 19472 veces)
0 Usuarios y 1 Visitante están viendo este tema.
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #15 : 19 de Mayo de 2011, 11:52:02 am »

LLamadme cazuro, pero sigo pensando que si el MSX que esta emulando no tiene el dibujito de la Ñ en la BIOS para que esta la copie a VRAM, por mas que cambie el codigo VHDL, no va a salirle una Ñ.  Roll Eyes

Si utiliza la BIOS de un HB-F9S, entiendo que ya incorpora el tileset International, que debería tener la Ñ(164 minus, 165 mayus.) y la Ç (135 minus, 128 mayus.), no?

El problema parece que este más relacionado con la emulación del PPI...
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
SapphiRe_MSX
Visitante
« Respuesta #16 : 19 de Mayo de 2011, 12:24:36 pm »

Si utiliza la BIOS de un HB-F9S, entiendo que ya incorpora el tileset International, que debería tener la Ñ(164 minus, 165 mayus.) y la Ç (135 minus, 128 mayus.), no?

El problema parece que este más relacionado con la emulación del PPI...

No, el problema es que en la matriz de teclado del MSX no existe una tecla que contenga la Ñ de forma explícita, por lo que no hay ninguna forma de sacar la Ñ salvo retocando las rutinas que la BIOS usa para obtener el código ASCII de las teclas pulsadas. Si mal no recuerdo, es con CODE + N como se saca la Ñ en un teclado de MSX no español, ¿no es así? La pena es que no se puede emular la pulsación de varias teclas salvo en el caso de SHIFT o CTRL, si no, sería pan comido.
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #17 : 19 de Mayo de 2011, 03:25:04 pm »

Vamos a ver que esta mañana he posteado casi sin tiempo porque tenía que irme al curro y no he podido decir todo lo que quería Smiley

Lo primero que quería decir esta mañana es que sí, que lo que hay que modificar es el archivo keymap.vhd, respecto a los índices lo que dices también es correcto SapphiRe. Pero ese array de 1024 bytes que hay en keymap.vhd NO contiene scan codes, el MSX no entiende lo que es un scan code de un teclado PS/2, esos bytes representan códigos Key Matrix del sistema MSX. Ya se que tu no has dicho que sean scan codes pero quería dejarlo claro por si acaso Smiley

Otra aclaración es que el juego de carácteres del MSX es de 7 bits, y el octavo bit o más alto es el que indica si estamos pulsando Shift o no. Este byte resultante es el que se coloca en el índice correspondiente a cada tecla.

Ahora bien, ha de haber una tabla de conversión por algún lado, ya que existen diferentes regiones que usan distintos símbolos. Ésta tabla de conversión está codificada en la BIOS del MSX, y dependiendo de la BIOS, ésta hará la conversión partiendo de una tabla u otra, os pongo unos ejemplos.

BIOS internacional:

Que yo sepa sí que hay modelos MSX con su tecla Ñ la cual sale de forma explícita sin tener que pulsar CODE, creo que son todos los modelos españoles y argentinos Smiley
BIOS española/argentina, que es exactamente igual que el internacional exceptuando las filas 1 y 2:

Y ahora la BIOS del Sony HB-F9S+:

¿Veis lo que no cuadra ahora? el símbolo 'Ç' debería ser 'Ñ'.

Por supuesto que un MSX2+ en español no existe, este modelo lo saqué del blueMSX, y yo juraría que es un F9S upgradeado a 2+ por los chicos de blueMSX, aunque no estoy seguro. Lo que sí es cierto es que es el modelo que más cercano está de ser un MSX2+ en español, aunque sólo exista en un emulador.

Luego por supuesto también que el bitmap de la 'Ñ' está includído en la bios, si encendeis el blueMSX y probáis la máquina de la que estamos hablando lo veréis:


Para finalizar he de decir que NO con cualquier BIOS se muestran exactamente los mismos carácteres en pantalla, ni aún modificando el keymap.vhd, ojalá fuera tan fácil jejeje.

El source del OCM está bien, la verdad es que no hay que tocar nada ni hacer experimentos extraños, tan sólo hay que cambiar algunos bytes en un array y ya está, eso es lo primero que hice.

Hace unos días estube hablando con caro por mail y me dijo que la única forma de solucionar esto era parcheando la BIOS reemplazando el decodificador del teclado por el de una BIOS española.

Es por eso que os preguntaba en mi primer post si alguien sabía como funcionaba el RST#38 respecto a la decodificación del teclado y si sabíais donde podía localizar exactamente esa rutina para intentar cambiar la 'Ç' por la 'Ñ', que es lo único que de momento me falla. Los sources del ocm no hay que tocarlos, ya he echo todo lo que tenía que hacer ahí, los tiros van por la BIOS Smiley

Siento haberme alargado tanto jeje, un saludete y a ver si me pongo y escaneo el segundo libro que me falta por subir que se que hay alguno que lo está esperando Wink

Muchas gracias a todos por vuestro tiempo y ayuda Smiley
« Última modificación: 19 de Mayo de 2011, 03:31:29 pm por DRomero » En línea
SapphiRe_MSX
Visitante
« Respuesta #18 : 19 de Mayo de 2011, 03:32:27 pm »

Bien, pero a lo que yo iba es a lo siguiente:

Ahora mismo el paréntesis abierto se consigue pulsando SHIFT + 9, pero los teclados de PC en español tienen el paréntesis en el SHIFT + 8 y eso sí es posible cambiarlo modificando el keymap.vhd.

La idea sería buscar el scan code ps/2 de la tecla 8 y en la tabla donde se pulsa SHIFT cambiar el valor de ese índice (los índices a la tabla son los scan codes de las teclas del PC) para que simule una pulsación de la tecla 9. Con esa idea ya podríamos recolocar la mayoría de los símbolos para adecuarlos al teclado en español de pc y con eso ya tendríamos muchísimo ganado, pues sería independiente de la BIOS.

Obviamente, la Ñ y los acentos son los que nos van a dar problemas y ahí ya habría que entrar en la BIOS, pero hasta ese punto ya tenemos un campo en el que trabajar para usar un teclado en español en el 1chipMSX.
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #19 : 19 de Mayo de 2011, 04:00:52 pm »

Efectivamente SapphiRe, es posible arreglar el tema de los paréntesis tan sólo cambiando de lugar un par de bytes en el keymap.vhd, la misma solución es aplicable a unos pocos símbolos más que están descolocados. Todo esto sin necesidad de cambiar de BIOS.

El problema está en que el key matrix internacional (no confundir con la tabla de carácteres o bitmaps) no dispone de la 'Ñ', es necesario una BIOS española para mostrarla.

De echo ya lo tengo todo arreglado y en su lugar, todo funciona, acentos abiertos, acentos cerrados, todos los símbolos están en la posición que deben ocupar, excepto la dichosa Ñ.

Voy a ver si me pongo y le hago un dissasm a la BIOS aunque estoy muy pez con el ensamblador la verdad.
En línea
SapphiRe_MSX
Visitante
« Respuesta #20 : 19 de Mayo de 2011, 04:14:57 pm »

Efectivamente SapphiRe, es posible arreglar el tema de los paréntesis tan sólo cambiando de lugar un par de bytes en el keymap.vhd, la misma solución es aplicable a unos pocos símbolos más que están descolocados. Todo esto sin necesidad de cambiar de BIOS.

Eso es lo que yo decía que se podía cambiar sin tocar la BIOS.

Citar
El problema está en que el key matrix internacional (no confundir con la tabla de carácteres o bitmaps) no dispone de la 'Ñ', es necesario una BIOS española para mostrarla.

De echo ya lo tengo todo arreglado y en su lugar, todo funciona, acentos abiertos, acentos cerrados, todos los símbolos están en la posición que deben ocupar, excepto la dichosa Ñ.

Bien, pero yo no le daría más vueltas al asunto. La Ñ no la vamos a utilizar salvo si nos conectamos a internet o utilizamos el MSX como un procesador de textos, no le veo suficiente recompensa a todo el esfuerzo que habría que hacer para poder obtener la Ñ.

Pero ese keymap en español sí que resulta interesante, ya que aquí somos unos cuantos con el 1chipMSX. ¿Lo has probado en el original o en la placa DE1?
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #21 : 19 de Mayo de 2011, 04:38:30 pm »

No tengo el original, las pruebas son sobre Altera DE1, de echo no se siquiera ni que región usa el OCM original, quizás habría que cambiar algun byte de lugar, no lo sep.

Si me decís que región usa puedo compilarlo yo mismo usando exactamente los mismos parámetros que usa KdL. La verdad es que sin cambiar la BIOS no tiene mucho misterio, cualquiera lo puede hacer, me extraña que nadie lo haya echo antes, más que nada por comodidad a la hora de manejar el teclado en basic o msx-dos por ejemplo Smiley
En línea
SapphiRe_MSX
Visitante
« Respuesta #22 : 19 de Mayo de 2011, 04:42:27 pm »

No tengo el original, las pruebas son sobre Altera DE1, de echo no se siquiera ni que región usa el OCM original, quizás habría que cambiar algun byte de lugar, no lo sep.

Si me decís que región usa puedo compilarlo yo mismo usando exactamente los mismos parámetros que usa KdL.

¿Región? Huh Huh

Citar
La verdad es que sin cambiar la BIOS no tiene mucho misterio, cualquiera lo puede hacer, me extraña que nadie lo haya echo antes, más que nada por comodidad a la hora de manejar el teclado en basic o msx-dos por ejemplo Smiley

Yo porque no tengo el compilador de vhdl y jamás he hecho nada con ese lenguaje, pero lo de cambiar el teclado lo llevo años pensando y comentando a gente, pero hasta ahora nadie se había animado.
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #23 : 19 de Mayo de 2011, 04:57:10 pm »

Joer me acabo de dar cuenta de que KdL ha actualizado el OCM, ahora es un MSX2+ Smiley

Voy a bajar los sources y a ver si puedo hacer algo.
En línea
SapphiRe_MSX
Visitante
« Respuesta #24 : 19 de Mayo de 2011, 05:30:35 pm »

Joer me acabo de dar cuenta de que KdL ha actualizado el OCM, ahora es un MSX2+ Smiley

Voy a bajar los sources y a ver si puedo hacer algo.

Los sources del firm 3.0 (MSX2+) no están disponibles aún. Los que sí están disponibles son los de la 2.4 (MSX2). Si puedes recompilarlos con un teclado en español (y de paso enviarles el keymap para que lo incluyan en futuras versiones) podríamos probarlo Cheesy
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #25 : 19 de Mayo de 2011, 05:35:17 pm »

Ya están también los sources Smiley

Voy a hacer primero unas pruebas y luego cuelgo la versión compilada. Respecto a enviarles el keymap yo paso, después de estár pidiendo ayuda u orientación por allí nadie se ha dignado siquiera en contestarme en dos semanas. Si se lo quereis enviar vosotros no tengo problema por eso Smiley

Tampoco quiero llevarme yo el crédito, total, es cambiar unos cuantos bytes de sitio, que se lo envíe otro jejeje.
« Última modificación: 19 de Mayo de 2011, 05:42:42 pm por DRomero » En línea
SapphiRe_MSX
Visitante
« Respuesta #26 : 19 de Mayo de 2011, 05:44:05 pm »

¡WOW! Esta mañana aún no estaban... Pues nada, me salto la actualización 2.4 prevista para este finde y voy directamente a por la 3.0 Cheesy
En línea
SapphiRe_MSX
Visitante
« Respuesta #27 : 19 de Mayo de 2011, 10:03:51 pm »

Me acabo de bajar el Quartus II v11.0, que es con el que se ha compilado el firmware del 1chipMSX. A ver si soy capaz de compilar los sources y obtener el mismo PLD que se distribuye en el paquete y el siguiente paso será cambiar el Keymap (Dromero, si me mandas el archivo que tengas te lo agradezco) y luego a ver qué sucede Cheesy
En línea
DRomero
Karoshi Newbie
*
Mensajes: 24


Email
« Respuesta #28 : 19 de Mayo de 2011, 10:18:44 pm »

Ya está modificado el keymap del ocm de KdL, no he tocado la BIOS y me las he apañado como he podido para relocalizar algunas teclas y que quepa todo el key matrix Smiley

Cuelgo una fotillo de como quedará la versión final del mapa para si quereis o veis que debería cambiar alguna tecla de lugar me lo digáis antes de compilarlo, a ver que os parece, la verdad es que no se me ha ocurrido forma mejor de hacerlo:

« Última modificación: 19 de Mayo de 2011, 11:17:48 pm por DRomero » En línea
SapphiRe_MSX
Visitante
« Respuesta #29 : 19 de Mayo de 2011, 10:48:16 pm »

Mola mucho el mapa. Creo que están ya todos los símbolos necesarios del teclado de MSX. ¿Vas a compilarlo para el 1chip original o para el DE1?
En línea
Páginas: 1 [2] 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!