Section courante

A propos

Section administrative du site

Voici une fonction permettant de connaitre les informations sur le pays courant du système d'exploitation :

  1. #include <DOS.H>
  2.  
  3. typedef unsigned char Byte;
  4. typedef unsigned int  Word;
  5.  
  6. typedef struct {
  7.                 Word CO_DATE;
  8.                 Byte CO_CURR[5];
  9.                 Byte CO_THSEP[2];
  10.                 Byte CO_DESEP[2];
  11.                 Byte CO_DTSEP[2];
  12.                 Byte CO_TMSEP[2];
  13.                 Byte CO_CURRSTYLE;
  14.                 Byte CO_DIGITS;
  15.                 Byte CO_TIME;
  16.                 Byte CO_DASEP[2];
  17.                }
  18.                CountryType;
  19.  
  20. void GetCurrCountry(CountryType *C){
  21.  Byte B[33];
  22.  Word S = FP_SEG(&B), O = FP_OFF(&B);
  23.  asm MOV AX,DS;
  24.  asm MOV ES,AX;
  25.  asm MOV DX,O;
  26.  asm MOV AX,S;
  27.  asm MOV DS,AX;
  28.  asm MOV AX,0x3800;
  29.  asm INT 0x21;
  30.  asm MOV AX,ES;
  31.  asm MOV DS,AX;
  32.  (*C).CO_DATE = ((B[1] << 8) + B[0]);
  33.  {
  34.   Byte I;
  35.   for(I = 0; B[I+2] != 0; I++);
  36.   (*C).CO_CURR[0] = I; 
  37.  }
  38.  (*C).CO_CURR[1] = B[2];
  39.  (*C).CO_CURR[2] = B[3];
  40.  (*C).CO_CURR[3] = B[4];
  41.  (*C).CO_CURR[4] = B[5];
  42.  (*C).CO_CURR[5] = B[6];
  43.  (*C).CO_THSEP[0] = (B[8] == 0 ? 1 : 2);
  44.  (*C).CO_THSEP[1] = B[7];
  45.  (*C).CO_THSEP[2] = B[8];
  46.  (*C).CO_DESEP[0] = (B[10] == 0 ? 1 : 2);
  47.  (*C).CO_DESEP[1] = B[9];
  48.  (*C).CO_DESEP[2] = B[10];
  49.  (*C).CO_DTSEP[0] = (B[12] == 0 ? 1 : 2);
  50.  (*C).CO_DTSEP[1] = B[11];
  51.  (*C).CO_DTSEP[2] = B[12];
  52.  (*C).CO_TMSEP[0] = (B[14] == 0 ? 1 : 2);
  53.  (*C).CO_TMSEP[1] = B[13];
  54.  (*C).CO_TMSEP[2] = B[14];
  55.  (*C).CO_CURRSTYLE = B[15];
  56.  (*C).CO_DIGITS = B[16];
  57.  (*C).CO_TIME = B[17];
  58.  (*C).CO_DASEP[0] = (B[23] == 0 ? 1 : 2);
  59.  (*C).CO_DASEP[1] = B[22];
  60.  (*C).CO_DASEP[2] = B[23];
  61. }


Dernière mise à jour : Dimanche, le 26 juillet 2015