-
La chiave HW ha sicuramente i driver solo per i sistemi a 32 bit, quelli a 64 bit non esistevano neanche quando è stata progettata, i driver tra le due versioni non sono compatibili.
Gli adattatori LPT - USB inoltre danno svariati problemi, l'unico scenario che mi viene in mente è un P2V ovvero Phisical to Virtual.
Prendi l'HDD del sistema e lo copi dentro un file VHD (o similare a seconda del software di virtualizzazione scelto)
Colleghi l'adattatore LPT-USB alla macchina host e lo mappi sulla macchina virtuale con accesso esclusivo, a questo punto la macchina virtuale dovrebbe partire con il vecchio sistema operativo e dovrebbe rilevare il dongle HW sulla porta LPT virtuale via USB...
Scenario complesso ma potrebbe essere l'unico modo per fare funzionare il tutto.
In questo modo hai:
HW e Sistema Operativo Host moderni e affidabili
Il vecchio software che lavora nel suo ambiente originale senza dover reinstallare nulla
La macchina originale che può essere usata come backup perché non viene modificata in alcun modo...
-
questa della virtualizzazione è ovviamente una via di uscita da provare, in quanto la meno dolorosa e finalizzabile nel minor tempo possibile; credo purtroppo che anche questo scenario, imo, risulterà alla fine difficilmente percorribile.
Il motivo è presto detto: dipenderà tutto dal linguaggio con cui è stato scritto il programma e relativamente anche e soprattutto il driver da virtualizzare :yeah
Siccome mi sembra di aver capito che è un programma a quanto pare vecchiotto, si dovrà sperare che il codice sorgente non sia stato scritto, ad esempio, in VB.
Di certo in questa eventualità, virtualizzare ulteriormente la porta parallela (una prima virtualizzazione è predisposta in qualche modo già a livello hardware sul bridge LPT <-> USB) non porterà assolutamente ad alcun risultato.
Le DLL usualmente prese in considerazione all'epoca da questo linguaggio per dialogare con i dispositivi di I/O quali parallele e seriali (INOUT32 etc. etc.) non permetteranno in alcun modo di finalizzare compiutamente il collegamento con il dispositivo reale.
Questo perché, qualora dovesse passare attraverso, diciamo, delle redirezioni, implementate per raggiungere degli IRQ ben specifici, così come dei range di intervalli di I/O, particolari, non riuscirà a mapparli direttamente :yeah
Anche ammettendo che l'applicazione possa essere stata sviluppata in altri linguaggi dell'epoca, tutto potrà in qualche modo dipendere dal compilatore utilizzato per creare l'eseguibile.
Sono infatti loro (i compilatori) che vanno a creare poi i riferimenti al range di indirizzi utilizzati e potrebbero non riconoscere quelli della parallela, poiché effettivamente traslati già a monte, per poi poter essere adeguatamente reindirizzati all'ambiente virtualizzato ;)