eseguire input a bassissimo livello

Stato
Discussione chiusa ad ulteriori risposte.

kr1pn0$

Utente Silver
14 Ottobre 2008
69
5
0
70
salve,
io ultimamente mi sto dedicando un po' alla creazione di un sistema operativoin C e ASM
su un x86...
per adesso sono ai livelli che bootando appare:
Codice:
Sistema operativo in fase di realizzazione
                                            by kr1pn05
e per spegnere mi tocca staccare la spina...
ma io volevo riuscire a prendere l'input dalla tastiera,ma il problema e che non potendo usare scanf e company volevo chiedere:
qualcuno di voi sa come eseguire l'input a un livello cosi basso?
per adesso output e' basato sul indirizzo 0xb8000
 
kr1pnos, il tuo problema si verifica quando si eseguono molti copia incolla senza saperne il significato
 
Dai un'occhiata al sorgente del mio keylogger postato da qualche parte sul forum...
Fondamentalmente l'I/O a basso livello da tastiera consiste nella lettura in polling dei due registri della tastiera (status e data register), che sono su due indirizzi di I/O come tutti gli altri. Quando il registro di status "avvisa" che c'è un nuovo carattere nel buffer, ovvero il data register è stato rinnovato, allora il codice deve andare a leggere il data register e, in base alla mappatura della tastiera, convertire il dato lì contenuto in un carattere ASCII/Unicode. Questo ovviamente nel caso di un sistema monoprogrammato. Se il sistema deve anche essere multitasking, dovrai gestire il tuo piccolo driver anche con dei lock e un monitor per garantire l'accesso sincronizzato alla risorsa.

@Predator: lol
 
Predator ha detto:
kr1pnos, il tuo problema si verifica quando si eseguono molti copia incolla senza saperne il significato
appunto mi ero dimenticato di dire che ho visto i sorgenti di WizardOS,
comunque non è proprio uguale, comunque adesso mi guardo i sorgenti di kernel.org...
comunque black adesso lo cerco..
 
kr1pn0$ ha detto:
Predator ha detto:
kr1pnos, il tuo problema si verifica quando si eseguono molti copia incolla senza saperne il significato
appunto mi ero dimenticato di dire che ho visto i sorgenti di WizardOS,
comunque non è proprio uguale, comunque adesso mi guardo i sorgenti di kernel.org...
comunque black adesso lo cerco..

http://www.infernet-x.com/-c-linux-keylogger-t-6622.html
 
Stato
Discussione chiusa ad ulteriori risposte.