Accèder aux leds du clavier.

0/5 (6 avis)

Snippet vu 4 177 fois - Téléchargée 30 fois

Contenu du snippet

les lompes : Num et Caps et Scoll , on haut du clavier numérique peuvent être allumées et éteintes par un programme.

Source / Exemple :


#include <stdio.h>
#include <dos.h>
#include <bios.h>
/* ---------------------------------------------------  */
#define  SCRL  16
#define  NUML  32
#define  CAPL  64
#define  INS   128
typedef  unsigned  char  BYTE;
typedef  unsigned  int   WORD;
typedef  union  vel  far  *VP; /* pointeur sur la RAM-CLAVIER  */

struct  velb
  { BYTE  caractere,
          attribut;
   };
struct  velw
  { WORD  contenu;
   };
union   vel
  { struct  velb  h;
    struct  velw  x;
   };
/*   *****************************************************************  */
   VP  vptr ;  unsigned int clav  ;
/*  ***************************************************************************************  */ /* ****************************************************************************************  */
 void ADR_ECRAN(void)     /* donne l'@ de base du CLAVIER_RAM */
  { 
     vptr =(VP)(((unsigned long)( 0x40  ))<<16 | ( 0x17 ));

  }
/* **********************************************************************  */
 void sauvegarder(void)
   { clav = vptr -> x.contenu ;      }
 void restorer ( unsigned int clavi)
   { vptr -> x.contenu = clavi ;      }
/* --------------------------------------------------  */
void  set_flag ( unsigned  flag  )
  {
    union  REGS  regs ;
    unsigned  z ;

      z = vptr -> x.contenu ;
      z  |= flag ;
     vptr -> x.contenu  = z ;
     regs.h.ah = 1 ;
     int86(0x16 , &regs ,&regs );
   }
/*  -------------------------------------------------   */
 void  clr_flag ( unsigned  flag   )
   {
    union  REGS  regs ;
    unsigned  z ;

      z = vptr -> x.contenu ;
      z  &= flag ;
     vptr -> x.contenu  = z ;

      regs.h.ah  = 1 ;
      int86( 0x16 ,&regs  ,&regs);
    }
/*  ---------------------------------------------------  */

 void main(void)
   {
    unsigned int    i  ;
    unsigned int  fifa ;

    printf ( "\n\n    REGARDE LES LEDs (LUMIERES) DE VOTRE CLAVIER \n\n\n           " );
    ADR_ECRAN() ;
    sauvegarder() ;
     for (i=0 ; i<65 ; ++i)
       {
	 set_flag( CAPL);
	 delay(54);
	 clr_flag(CAPL);
	  set_flag(NUML);
	 delay(54);
	 clr_flag(NUML);
	  set_flag(SCRL);
	 delay(55);
	 clr_flag(SCRL);
	  delay(55);
	}
	    printf("    Attention le clavier vas c'‚xploser dans 5 secandes \n\n") ;
	  for (i=0 ; i<60 ; ++i)
	  { clr_flag(!SCRL | !NUML | !CAPL);
	    delay(54);
	    set_flag(SCRL|NUML|CAPL);
	    delay(55);
	   }
      clr_flag(!SCRL | NUML | !CAPL);  delay(54); set_flag(NUML);

      restorer ( clav ) ;

     printf("       Fin du programme \n\n") ;

    }
 /*  ------------------------------------------   */

Conclusion :


c'est un programme pour débutants.
Compiler avec le turboC 7.0

A voir également

Ajouter un commentaire Commentaires
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Tu le compile avec Turbo C++ 1.0 de Borland que tu télécharge gratuitement et légalement !
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Désolé mais c'est "accéder" et non acc*der (je ne veux pas mettre la faute volontaine ou non ce monsieur)
Messages postés
4
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
26 avril 2004

Salut, moi non plus, je ne trouve pas de Bios.h, ni avec VC++ ni avec Dev ! Il paraitrait que ce n'est pas un truc officiel. Ou peu t'on le trouver ??

merci d'avance !!
Messages postés
65
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
11 septembre 2004

YES!
un code pas plin de MFC ou choses bizard comme ca :-)
merci :-)
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
où trouver bios.h stp ?
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.