¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Subforo oficial del Sinclair QL: realiza aquí las consultas relativas a tu QL.

Moderador: Sir Cilve Sinclair

¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor programandala.net el Mar Feb 22, 2011 3:32 pm

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
Ultima edición por programandala.net el Vie Feb 25, 2011 3:21 pm, editado 2 veces en total
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 206
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor speccy el Jue Feb 24, 2011 9:56 pm

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...
speccy
Manic Miner
 
Mensajes: 272
Registrado: Jue Sep 06, 2007 4:20 pm

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor programandala.net el Vie Feb 25, 2011 3:17 pm

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)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 206
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor speccy el Jue Mar 03, 2011 5:44 pm

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... ;)
speccy
Manic Miner
 
Mensajes: 272
Registrado: Jue Sep 06, 2007 4:20 pm

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor qlave el Mar Mar 22, 2011 12:20 pm

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'.
Avatar de Usuario
qlave
rst 0
 
Mensajes: 6
Registrado: Lun Feb 11, 2008 11:51 am
Ubicación: Fuengirola

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor programandala.net el Mar Mar 22, 2011 8:02 pm

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)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 206
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor afx el Sab Mar 26, 2011 12:27 am

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).
afx
Sabreman
 
Mensajes: 396
Registrado: Dom Feb 24, 2008 11:56 pm

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor programandala.net el Sab Mar 26, 2011 11:40 pm

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)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 206
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: ¿Mapa de teclado ISO 8859-1 para SMSQ/E imposible?

Notapor afx el Dom Mar 27, 2011 7:55 pm

Hoop, no había visto esa página tuya. Retomaré el asunto por ahí.

Gracias.
afx
Sabreman
 
Mensajes: 396
Registrado: Dom Feb 24, 2008 11:56 pm


Volver a Sinclair QL

¿Quién está conectado?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron