¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Moderador: Sir Cilve Sinclair
- programandala.net
- Manic Miner
- Mensajes: 210
- Registrado: Mié Ago 04, 2010 9:20 pm
- Ubicación: España
- Contactar:
¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Al fin he podido ponerme con el proyecto de un mapa de teclado en español para un juego de caracteres ISO 8859-1 y un teclado de PC. Tras hacer muchas pruebas estos días, lo he dejado por imposible. El motivo es algo que sospechaba desde el principio: el juego de caracteres original de la QL usa muchas de las posiciones a partir de la 191 como caracteres de control durante la entrada de textos. Por tanto, no se pueden reasignar porque durante la entrada de textos el sistema operativo las interpreta como caracteres de control.
A pesar de ello, aún sería posible escribir programas que usen una fuente estándar, pero no podremos usar el editor incorporado en SBASIC para editarlos, sino un editor externo; y tendremos que escribir nuestras propias rutinas de entrada de textos para el programa, si necesitamos caracteres que no sean ASCII. Publico mis conclusiones sobre ello y el programa que he escrito para crear la frustrada tabla de teclado, por si a alguien se le ocurre algo:
http://programandala.net/es.programa.transkeyer
A pesar de ello, aún sería posible escribir programas que usen una fuente estándar, pero no podremos usar el editor incorporado en SBASIC para editarlos, sino un editor externo; y tendremos que escribir nuestras propias rutinas de entrada de textos para el programa, si necesitamos caracteres que no sean ASCII. Publico mis conclusiones sobre ello y el programa que he escrito para crear la frustrada tabla de teclado, por si a alguien se le ocurre algo:
http://programandala.net/es.programa.transkeyer
Última edición por programandala.net el Vie Feb 25, 2011 2:21 pm, editado 2 veces en total.
Marcos Cruz (programandala.net)
-
- Sabreman
- Mensajes: 353
- Registrado: Jue Sep 06, 2007 4:20 pm
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Mmmmmm... a ver si me acuerdo como me las apañe yo para que mi QL imprimiese el texto con acentos y en condiciones en mi impresora epson alla por 1994...
- programandala.net
- Manic Miner
- Mensajes: 210
- Registrado: Mié Ago 04, 2010 9:20 pm
- Ubicación: España
- Contactar:
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
speccy escribió:Mmmmmm... a ver si me acuerdo como me las apañe yo para que mi QL imprimiese el texto con acentos y en condiciones en mi impresora epson alla por 1994...
Cualquier idea puede ser una pista, gracias.
Imprimir en la pantalla con un juego de caracteres estándar no es problema, basta crearlo, cargarlo y asociarlo con CHAR_USE. Eso ya lo hice. Traducir los caracteres enviados a la impresora, aunque actualmente no lo necesito, también era posible, aunque no sin quebraderos de cabeza, desactivando TRA y creando una rutina propia, o usando algún programa que había para ello, como Overdrive, si no recuerdo mal.
El problema es el teclado: cómo puentear en las rutinas de entrada de teclado los caracteres de control del juego de caracteres original. Quizá haya alguna tabla en algún lugar de las variables del sistema, pero no tengo ni idea. Preguntaré en la lista y en el foro ingleses.
Marcos Cruz (programandala.net)
-
- Sabreman
- Mensajes: 353
- Registrado: Jue Sep 06, 2007 4:20 pm
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Ya me acuerdo.
Hice una tabla con todas las teclas, y debajo de cada una puse sus diferentes valores con las teclas de control y alt pulsadas. Programé mi impresora con la tabla de codigos PC 437 (la estándar) y luego con la PC 830, e imprimí una copia de cada. Al final creo que me quedé con la 830 y lo que hacia después de escribir textos (y comprobar que no tuvieran faltas) era buscar con el Quill los caracteres y sustituirlos.
Y anda que no iba rápida la impresora imprimiendo...
Algo parecido hice con el Tasword en mi Plus 2, y tenia uno personalizado para mi con todas las funciones de mi impresora... Eso si, no era wysiwyg...
Hice una tabla con todas las teclas, y debajo de cada una puse sus diferentes valores con las teclas de control y alt pulsadas. Programé mi impresora con la tabla de codigos PC 437 (la estándar) y luego con la PC 830, e imprimí una copia de cada. Al final creo que me quedé con la 830 y lo que hacia después de escribir textos (y comprobar que no tuvieran faltas) era buscar con el Quill los caracteres y sustituirlos.
Y anda que no iba rápida la impresora imprimiendo...
Algo parecido hice con el Tasword en mi Plus 2, y tenia uno personalizado para mi con todas las funciones de mi impresora... Eso si, no era wysiwyg...
- qlave
- rst 0
- Mensajes: 6
- Registrado: Lun Feb 11, 2008 10:51 am
- Ubicación: Fuengirola
- Contactar:
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Marcos, quizás puedas encontrar una solución estudiando el código fuente de varias soluciones a diferentes teclados para el sistema operativo MINERVA, puedes encontrarlo en http://www.speccy.org/sinclairql/utilid ... inerva.zip , y el manual de Minerva en http://www.speccy.org/sinclairql/archiv ... _Guide.pdf .
Por poner un ejemplo Minerva para introducir por el teclado la letra â se teclea CTRL+ENTER, y luego, a, y ^. Eso sí, esas facilidades de MINERVA, no creo que estén disponibles en SMSQ/E, pero son fáciles de implementar en un editor de linea como el que yo usaba en mi lenguaje MERINO TIL escrito en 'C'.
Por poner un ejemplo Minerva para introducir por el teclado la letra â se teclea CTRL+ENTER, y luego, a, y ^. Eso sí, esas facilidades de MINERVA, no creo que estén disponibles en SMSQ/E, pero son fáciles de implementar en un editor de linea como el que yo usaba en mi lenguaje MERINO TIL escrito en 'C'.
- programandala.net
- Manic Miner
- Mensajes: 210
- Registrado: Mié Ago 04, 2010 9:20 pm
- Ubicación: España
- Contactar:
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
qlave escribió:Marcos, quizás puedas encontrar una solución estudiando el código fuente de varias soluciones a diferentes teclados para el sistema operativo MINERVA
Gracias Salvador, me alegra verte por aquí. Echaré un vistazo. Conocía la solución de Minerva y me parece práctica. Pero para hacer algo similar en SMSQ/E habría que tocar el sistema, y eso está fuera de mi alcance. En un nivel superior, el de tabla de teclado, ya he visto que no hay nada que hacer. La última solución es la otra que dices, en la que estoy trabajando y de hecho no tiene ninguna dificultad: hacer una rutina de entrada propia en SBASIC. Es posible detectar cualquier pulsación de tecla e imprimir cualquir caracter también, sin que los caracteres de control incordien, así que no hay limitaciones. Por supuesto uno mismo tiene que escribirse los comandos de edición como borrar o desplazar el cursor por el texto.
Este es el estado, aún incompleto, de una rutina así que estoy escribiendo para un programa que usa una fuente ISO 8859-1 sin problemas:
Código: Seleccionar todo
deffn accept$
local output$,key$,key
let output$=""
cursen #iw
cls #iw
rep wait_for_key
let key$=inkey$(#iw,-1)
let key=code(key$)
rem print #dw,key:rem debug!!!
sel on key
=0:rem no key pressed, not used yet!!!, useful for some tasks
=10:exit wait_for_key:rem enter
=32:if len(output$):if output$(len(output$))<>" ":type key$
=65 to 90:type chr$(key+32)
=97 to 122:type key$
=131,163:type chr$(233) : rem e/E with acute
=135,167:type chr$(252) : rem u/U with diaeresis
=137,169:type chr$(241) : rem n/N with tilde
=140:type chr$(225) : rem a with acute
=147:type chr$(237) : rem i with acute
=150:type chr$(243) : rem o with acute
=153:type chr$(250) : rem u with acute
=192:rem cursor left
=194
if len(output$):untype:rem back space
=200:rem cursor rigth
=202
if len(output$):untype:rem delete
=208:rem cursor up
=216:rem cursor down
endsel
endrep wait_for_key
curdis #iw
ret trim$(output$)
enddef
Debido a los requisitos del programa para el que la estoy escribiendo, la función está escrita sólo para aceptar los caracteres ASCII, los ISO castellanos y poco más, y además lo pasa todo a minúsculas. Pero es trivial hacerlo para que acepte todos los caracteres de QL que tengan equivalente en ISO 8859-1, e incluso detectar combinaciones de teclas especiales que produzcan caracteres ISO no disponibles en el juego original de QL.
Marcos Cruz (programandala.net)
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Yo aún estoy atascado un par de pasos por detrás. Aún no he logrado configurar ta teórica tabla de teclado para que SMSQ/E reconozca la ñ en mi teclado QL (MGE).
El manual pone cosas como LANG_USE 34 y KBD_TABLE 34 para configurar el teclado en castellano, pero hay que tocar esa tabla de teclado con la que me "atasqué" en su día. A ver si vuelvo a retomar el tema y consigo algo. Mi objetivo es más modesto, sólo quiero que el teclado de mi QL en SMSQ/E se comporte como en QDOS (la ñ y vocales acentuadas con sus teclas correspondientes).
El manual pone cosas como LANG_USE 34 y KBD_TABLE 34 para configurar el teclado en castellano, pero hay que tocar esa tabla de teclado con la que me "atasqué" en su día. A ver si vuelvo a retomar el tema y consigo algo. Mi objetivo es más modesto, sólo quiero que el teclado de mi QL en SMSQ/E se comporte como en QDOS (la ñ y vocales acentuadas con sus teclas correspondientes).
- programandala.net
- Manic Miner
- Mensajes: 210
- Registrado: Mié Ago 04, 2010 9:20 pm
- Ubicación: España
- Contactar:
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
afx escribió:Yo aún estoy atascado un par de pasos por detrás. Aún no he logrado configurar ta teórica tabla de teclado para que SMSQ/E reconozca la ñ en mi teclado QL (MGE).
¡¿Cómo?!
En mi página tienes todo lo que necesitas, que en realidad es un fichero. Acabo de añadir un ejemplo de uso, al final de la sección de listados, para que se vea más claro. El trabajo lo hizo todo Pedro Reina en 1995, yo solamente hice unos retoques. Yo usé esa tabla con SMSQ en QXL y la uso ahora con SMSQ/E en QPC2.
Marcos Cruz (programandala.net)
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?
Hoop, no había visto esa página tuya. Retomaré el asunto por ahí.
Gracias.
Gracias.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 25 invitados