Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C++/ASM] Comando Porta Parallela

    Ciao..

    Ho un problema voglio comandare la porta parallela con un programma orientato agli oggetti fatto in C++ (compilatore Borland C++ Builder 6 per intenderci). Ho fatto una ricerca ma non ho trovato nessun comando che permetta questo anche perche c'e il problema che nei windows 2000/XP non si puo accedere direttamente alla parallela...

    Conosco i comandi Outportb e Inportb, li avevo già usati per fare un programma in DOS con turbo C della Borland e funzionava e ora voglio rifarlo che giri in windows con le finestre, i bottoni, etc. ma negli ultimi compilatori come quello che uso io li hanno tolti per via della compatibilità.

    Ho trovato questo codice in assembly che permette di accedere alla palallela e l'ho messo nel codice sorgente del mio programma fatto in C++:
    codice:
    ....
    asm{
    MOV DX,378H
    OUT DX,AL
    }
    Non ho ben chiaro come funzioni pero compilando il programma mi da errore 'privileged Instruction' da quello che ho capito non ho il privilegio di comunicare con la parallela...

    Come posso fare? non c'è per caso un componente aggiuntivo? e come posso fare per potergli accedere tramite assembly?

    Grazie..
    Il linguaggio migliore e quello che ti crei da solo...

  2. #2


    UP!

    Il linguaggio migliore e quello che ti crei da solo...

  3. #3
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Io nn l'ho mai fatto ma la sintassi x inserire codice assembler nn è quella che usi tu ma:

    codice:
    asm istruzione ;
    quindi prova con:

    codice:
    asm mov dx,378h ;
    asm out dx,al ;

  4. #4
    Ho provato come mi hai detto tu, mi compila tutto ma mi da sempre lo stesso errore di privilegio....

    Ho provato su windows XP...

    Grazie Mille Comunque per la risposta..

    Ciao aspetto atri aiuti..
    Il linguaggio migliore e quello che ti crei da solo...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    63
    parlo da semi-ignorante in materia assembly,

    la sintassi

    asm{
    ...
    }
    è corretta, ho fatto funzionare un 8255 e andava,
    il problema vero e proprio credo riguardi , come hai peraltro già detto, il fatto che winxp/2k si arrabbi leggermente se qualcuno va ai livelli bassi :gren:

    se qualcuno puo' contraddirmi, ben venga , alcune cose le avrei fatte volentieri in asm...
    Il sesso sicuro è importante, non fate mai l'amore su un'impalcatura.
    Against TCPA: Against Palladium

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Io non capisco nulla di assembler, sorry ...ma so far funzionare la parallela su xp/2000 (uso una dll esterna). Se ti serve ancora fai un fischio.

    Ciao.
    Un nuovo cms/framework... vuoi collaborare al progetto?

  7. #7
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    Il problema è che con il codice che hai creato tu vuoi interagire direttamente con la porta parallela, tramite un processo in esecuzione in modo utente e questo non è permesso dalla maggior parte dei sistemi operativi. In generale sia IN che OUT sono istruzioni privilegiate che possono essere eseguite solo da processi del sistema operativo!

    Con le dll, che si usano per esempio anche col vb6, il problema non si pone perchè la gestione della comunicazione diretta è passata al sistema operativo e se ne occupa lui.


  8. #8
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Infatti la comunicazione è decisamente più lenta... ma funziona.
    Un nuovo cms/framework... vuoi collaborare al progetto?

  9. #9
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415

    Beh però se proprio ti serve usarle direttamente ad ogni costo, se usi linux, puoi mettere le mani nel kernel e permettere al tuo programmino di usare queste istruzioni previlegiate. Auguri!!

  10. #10
    Bhe sono in windows..

    Comunque sono interressato alle DLL.. Dove le posso trovare? e nel sorgente che comandi uso?

    Basta solo copiarla nella directory di sistema? perchè il programma che voglio fare vorrei fosse abbastanza portabile e semplice da installare...

    Grazie Per le Info..
    Il linguaggio migliore e quello che ti crei da solo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.