PDA

View Full Version : Programmazione vecchi drivers DOS


magonirico
19-09-2006, 22:54
Salve a tutti!
Sono nuovo di queste parti e premetto che non so programmare in altro linguaggio che non sia il buon vecchio BASIC.
Il mio problema è che ho un vecchissimo driver che controlla una periferica collegata alla porta parallela. Questa periferica a livello circuitale è delle più semplici che si possa immaginare e, non ci crederete, viene usata come vera e propria scheda audio esterna, capace di emettere suoni perfettamente intelligibili con solo l'utilizzo di semplici transistor e resistenze, cosa che mi fa sospettare che sia proprio dalla porta parallela che giunga il suono, e che la periferica non sia altro che un sistema di rettifica e amplificazione del suono...
Cmq sia, il mio vero problema è che il driver è danneggiato e non riesco più a far funzionare il dispositivo. Il driver originale inoltre è stato sviluppato molti anni fa (circa 12) e penso sarebbe follìa cercarlo adesso da qualche parte su Internet... :(
Indi per cui, premesso che:

1- Non sono un programmatore ne in C, ne in Pascal, ne in Visual Basic, ne in nessun'altro linguaggio di programmazione moderno.
2- NON SO in quale linguaggio sia stato programmato il driver originale
3- Non posso nemmeno scoprirlo ne inviare righe di codice in quanto ovviamente il programma è crittato.

la mia domanda è, come posso fare per decrittarlo e scoprire come fa a comandare, tramite la sola porta parallela, un apparecchio che riproduce file sonori senza alcun tipo di chip sofisticato e con solo relativamente poche righe di codice?

Aggiungo che si tratta di un driver che deve essere caricato in dos, è costituito da un solo file, senza librerie o altre parti separate e ha estensione ".com"

Ringrazio anticipatamente tutti quelli che vorranno aiutarmi. :D

71104
20-09-2006, 10:01
se ha estensione .com è binario puro, ti basterà disassemblarlo. prova con NDISASM, il disassemblatore fornito con NASM (http://sourceforge.net/projects/nasm) .

magonirico
20-09-2006, 13:08
Grazie moltissime!!
Il programma funziona in modo eccellente ed è velocissimo! :D

C'è solo un problema... sia la versione DOS che Windows lavorano tutte in dos e non so come salvare il file dopo che è stato decrittato.

Oltretutto ho scoperto che quel file così apparentemente piccolo come sembrava da crittato è in realtà una lista lunghissima di istruzioni per me incomprensibili :cry:
Vabbè, tanto ormai ci ho già rinunciato, anche perchè se non so programmare in visual basic figurati se so come lavorare su un file in binario.. :doh: (...anche'io, che domande faccio!).

Sentite, non è che per caso, ma proprio PER CASO ci sarebbe modo di programmare un driver con la stessa funzione ma in BASIC? :D
EHeheh! ...ahem.. ...ehm.. :stordita:
Meglio ancora, non ci sarebbe modo di trovare un convertitore di qualsiasi tipo che traduca da binario a un altro linguaggio più semplice, cosicchè possa provare a imparare via via a concludere qualcosa entro l'anno? ;)

Beh, se non è possibile fa lo stesso dai, grazie comunque! ^_^

71104
20-09-2006, 15:38
ehm, drivers in BASIC la vedo dura... :huh:
se tu volessi creare un driver per quell'affare dovresti conoscere le specifiche hardware (quali pin hanno quale significato nella comunicazione sulla parallela); le conosci?

comunque per salvare su file l'output di ndisasm puoi usare il simbolo maggiore (">") seguito dal nome di un file: la shell di testo ti permette di redirigere su file l'output di un programma. esempio:

C:\percorso_di_nasm\>ndisasm.exe filedadisassemblare.com > C:\driver.txt

dopodiché ti vai a leggere il file C:\driver.txt e ci trovi il codice del driver :P