Alterar o Layout do Teclado

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

Alterar o Layout do Teclado

Mensagempor xsea1 » 24 Ago 2007 16:26

:?: Praticamente ainda não sei nada de assembly, porém já surgiu-me um problema, preciso alterar ou criar nova, a interrupção responsável pelo envio do valor das teclas. :?:
Explicando melhor, é como se eu quisesse refazer o layout do teclado, trocando as teclas de lugar.

Desde já fico muitíssimo grato a quem puder me auxiliar. :P
xsea1
Bit
 
Mensagens: 6
Registrado em: 22 Ago 2007 13:22

Mensagempor fabim » 24 Ago 2007 16:31

seja bem vindo ao forum.

xsea1

no forum, tem locais especificos para você postar suas dúvidas.

Por exemplo . Nesta sua dúvida sobre assembly e interrupção, é para qual uControlador.

Pic ??

Post sua dúvida dentro da área uC PIC.

Desta forma fica mais facil do pessoal te ajudar. E antes de postar uma dúvida, formule uma breve descrição do que seu circuito fáz como funciona e o que voce quer fazer.

Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Layout do Teclado

Mensagempor xsea1 » 25 Ago 2007 08:48

Olá Fabim, muito obrigado pelo interesse.

Sobre controlador ou Pic, não sei se preciso mexer com isso, o que
estou querendo é remapear o teclado, alterando a posição de algumas teclas,
e inserindo outras, que representarão outros valores, que me são necessários.

Preciso substituir o teclado para todos os programas do DOS, e me disseram
que pra isso é necessário alterar o vetor da INT 9 (IRQ1) e INT 16h
(int da bios) na IVT, só que não sei nem por onde começar. Se realmente
preciso postar minha dúvida dentro de Pic é o que farei, porém preciso
de uma luz de como começar. :?:

Um abraço. :)
xsea1
Bit
 
Mensagens: 6
Registrado em: 22 Ago 2007 13:22

Mensagempor chipselect » 25 Ago 2007 12:32

xsea1

Acho que o local mais adequado para seu post seria no "Intel x86", uma vez que é referente ao PC e à cpu 8086 (x86).

Supondo que você está trabalhando com o extinto MSDOS (até a versão 6) ou seus equivalentes, você pode tentar usar as funcionalidades do KEYB.COM e carregar um KEYBOARD.SYS customizado por você (você teria que fazer um), tudo devidamente colocado no arquivo autoexec.bat. Sinseramente não faço idéia de como é esse KEYBOARD.SYS, mas provavelmente é o método mais fácil para fazer o que você quer.

No pior caso, você pode fazer um driver de teclado seu customizado, tudo do zero também.
Para começar a estudar:
http://www.assembly.happycodings.com/code9.html

Eu faria assim:
->Criaria um programa tipo TSR (Terminate and stay resident).
->Colocaria ele no autoexec.bat ou chamaria ele para "detonar" o teclado.

Como seria esse TSR:
-> ele teria as rotinas em c ou assembly para tratar o presssionamento e a liberação de teclas do teclado como peças básicas.
-> Escreveria uma rotina em c ou assembly para substituir a função da int9 (irq1 que é a irq do teclado) e a int16 (serviços da bios para teclado).
-> de posse do "endereço" dessas rotinas, eu chamaria o serviço do dos (int21) pedindo para substituir os handlers de interrupções desejados pelas rotinas criadas.
-> chamaria os serviços do DOS de novo para terminar e manter residente o programa.

A IRQ1 é chamada pelo hw toda vez que ocorre um evento no teclado, quer seja de liberação ou pressionamento de uma tecla (qualquer tecla).

A INT16 é chamada pelo dos e determinados aplicativos para ler informações do teclado ou escrever as config tipo capslook ativado/desativado...

Será preciso também construir o "mapa" das teclas do teclado, para que você possa mapeá-las corretamente.

Os parâmetros para as ints são passados através dos registradores AX, Bx, Cx, DX e talvez DS e/ou ES também.

O DOS fornece "serviços" pela INT21, onde o serviço é escolhido pelo valor do registrador AH, parâmetros adicionais em AL e talves demais registradores.
Consulte:
http://www.o3one.org/hwdocs/bios_doc/dosref22.html

Não é uma tarefa tão trivial, boa sorte.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

chipselect

Mensagempor xsea1 » 25 Ago 2007 14:34

Obrigado pelas dicas. Valeu mesmo, e pode ter certeza de que vou me empenhar ao máximo naquilo tudo que colocaste afim de sanar os
meus problemas.

Um abraço.
xsea1
Bit
 
Mensagens: 6
Registrado em: 22 Ago 2007 13:22

chipselect

Mensagempor xsea1 » 25 Ago 2007 14:36

Obrigado pelas dicas. Valeu mesmo, e pode ter certeza de que vou me empenhar ao máximo naquilo tudo que colocaste afim de sanar os
meus problemas.

Um abraço.
xsea1
Bit
 
Mensagens: 6
Registrado em: 22 Ago 2007 13:22


Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x