• Jueves 14 de Noviembre de 2024, 23:14

Autor Tema:  Error Bioscom en Borland C++ 5.02  (Leído 1518 veces)

jamoncito

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Error Bioscom en Borland C++ 5.02
« en: Martes 8 de Marzo de 2011, 10:20 »
0
Buenas, tengo este código de aqui y me da un error de: "Error: unresolved external '_biosocom', a ver si me podeis decir algo. Gracias.

Código: C++
  1.  
  2. #include <bios.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <dos.h>
  6. #include <stdlib.h>
  7. #include <mem.h>
  8. #include <windows.h>
  9.  
  10. #define BAUD2400    0
  11. #define BIT7PAR     0               /* 7 bits paridad PAR */
  12.  
  13. int     lin,status;
  14.  
  15. long    precio,peso;
  16. char    tx[11],indmen;
  17. char    rx[21];
  18. char    aux[6];
  19. char    recibi;
  20. unsigned char    lrc,errorp;
  21.  
  22. #define COM1    0              /* 0-COM1     1-COM2 */
  23. #define CR      0x0d
  24. #define LF      0x0a
  25.  
  26. #define TRUE    1
  27.  
  28.  
  29. #define FALSE   0
  30.  
  31. #define DATA_READY  0x100
  32. #define PARI_ERROR  0x400
  33. #define FRAM_ERROR  0x800
  34.  
  35. char    mensaje     (void);
  36.  
  37. int main(void)
  38. {
  39.    int  i;
  40.    unsigned int nerror,ntx,nrx;
  41.    char vez,error,tecla;
  42.  
  43.    vez = 0;
  44.    nerror = 0;
  45.    ntx = 0;
  46.    nrx = 0;
  47.    recibi = 0;
  48.    clrscr();
  49.    lin = 1;
  50. #if BAUD2400
  51.   bioscom(0,0xa0 | 0x03 | 0x00 | 0x00,COM1);  /* 2400, 8 datos, 1 stop */
  52. #else
  53.   #if BIT7PAR
  54.   bioscom(0,0xe0 | 0x02 | 0x18 | 0x00,COM1);  /* 9600, 7 datos, par, 1 stop */
  55.   #else
  56.   bioscom(0,0xe0 | 0x03 | 0x00 | 0x00,COM1);  /* 9600, 8 datos, 1 stop */
  57. /*   bioscom(0,0xe0 | 0x03 | 0x00 | 0x00,COM1);   9600, 8 datos, 1 stop */
  58.   #endif
  59. #endif
  60.    while (1)
  61.      {
  62.      if (vez == 0)
  63.        {
  64.        gotoxy( 2,lin); cprintf("Precio = ");
  65.        gotoxy(11,lin); scanf("%05ld",&precio);
  66.        vez = 1;
  67.        }
  68.  
  69.      if (kbhit() != 0)                 /* Cualquier tecla para salir */
  70.        {
  71.        if ((tecla = getch()) != 0x20)
  72.      break;
  73.        }
  74.      error = 0;
  75.  
  76.      if (tecla == 0x20)
  77.        {
  78.        tecla = 0x00;
  79.  
  80.        precio++;
  81.        sprintf(tx,"98%05ld",precio);
  82.  
  83.        lrc = 0x00;
  84.        for (i=0;i<7;i++)
  85.      lrc ^= tx[i];
  86.  
  87.        tx[7] = lrc;
  88.        tx[8] = CR;
  89.        tx[9] = LF;
  90.  
  91.        for (i=0;i<10;i++)               /*  Enviar tx */
  92.         // bioscom(1,tx[i],COM1);
  93.        ntx++;
  94.  
  95.        indmen = 0;
  96.        }
  97.      while (mensaje() == FALSE)
  98.        {
  99.        if (kbhit() != 0)
  100.      break;
  101.        }
  102.      if (recibi == TRUE)
  103.        {
  104.        indmen = 0;
  105.        recibi = FALSE;
  106.        nrx++;
  107.        memmove(aux,&rx[3],5);
  108.        aux[5] = 0x00;
  109.        peso = atol(aux);
  110.  
  111.        gotoxy( 2,lin); cprintf("Precio = ");
  112.        gotoxy(11,lin); cprintf("%05ld",precio);
  113.  
  114.        gotoxy(20,lin); cprintf("Peso = %.1s %.5s",&rx[2],&rx[3]);
  115.        gotoxy(40,lin); cprintf("Imp. = %.1s %.6s",&rx[8],&rx[9]);
  116.        if (rx[0] != '9'  ||  rx[1] != '9')
  117.          error = 1;
  118.  
  119.        lrc = 0x00;
  120.        for (i=0;i<15;i++)
  121.          lrc ^= rx[i];
  122.        if (lrc != rx[15])
  123.          error = 1;
  124.        if (error == 1)
  125.      {
  126.      nerror++;
  127.      gotoxy(58,lin); cprintf("ERROR");
  128.      }
  129.        if (errorp == 1)         /* Error de paridad */
  130.      {
  131.      gotoxy(67,lin);
  132.      cprintf("ERROR");
  133.      errorp = 0;
  134.      }
  135.        gotoxy(1,22); cprintf("NTX = %drnNRX = %drnERR = %d",ntx,nrx,nerror);
  136.        lin++;
  137.        if (lin > 20)
  138.      {
  139.      clrscr();
  140.      lin = 1;
  141.      }
  142.        }
  143.      Sleep(100);
  144.      }
  145. }
  146.  
  147. char mensaje(void)
  148. {
  149.    int i;
  150.  
  151.    status = bioscom(3,0,COM1);
  152.    if (status & DATA_READY)
  153.       {
  154.       if (status & PARI_ERROR)
  155.     errorp = 1;
  156.       i = bioscom(2,0,COM1);            /* Recibir dato */
  157.       }
  158.    else
  159.      return(FALSE);
  160.  
  161.    rx[indmen++] = i;
  162.    if (i == 'n')
  163.      {
  164.      recibi = TRUE;
  165.      return(TRUE);
  166.      }
  167.    recibi = FALSE;
  168.    return(FALSE);
  169. }
  170.  
  171.