home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / languages / c / oslib / Examples / p2-636 < prev    next >
Text File  |  1994-09-22  |  1KB  |  57 lines

  1. #include "econet.h"
  2. #include "os.h"
  3.  
  4. extern byte Buffer [40];
  5. static os_error *print_version (byte *);
  6.  
  7. os_error *report_station_version (byte station, byte net)
  8.  
  9. {  os_error *error = NULL;
  10.    int status;
  11.  
  12.    static os_error Error;
  13.  
  14.    if ((error = xeconet_do_immediate (econet_IMMEDIATE_MACHINE_PEEK,
  15.          SKIP, station, net, Buffer, sizeof Buffer, 40, 5, &status,
  16.          NULL)) != NULL)
  17.       goto finish;
  18.  
  19.    if (status == econet_STATUS_TRANSMITTED)
  20.       print_version (Buffer);
  21.    else if (status == econet_STATUS_NOT_LISTENING)
  22.       status = econet_STATUS_NOT_PRESENT;
  23.  
  24.    if ((error = xeconet_convert_status_to_error (status, &Error,
  25.          sizeof Error, station, net)) != NULL)
  26.       goto finish;
  27.    error = &Error;
  28.  
  29. finish:
  30.    return error;
  31. }
  32.  
  33. os_error *print_version (byte *buf)
  34.  
  35. {  os_error *error = NULL;
  36.  
  37.    if ((error = xos_convert_hex2 (buf [3], (char *) Buffer, sizeof Buffer,
  38.          NULL)) != NULL)
  39.       goto finish;
  40.  
  41.    if ((error = xos_write0 ((char *) Buffer)) != NULL)
  42.       goto finish;
  43.  
  44.    if ((error = xos_writec ('.')) != NULL)
  45.       goto finish;
  46.  
  47.    if ((error = xos_convert_hex2 (buf [2], (char *) Buffer, sizeof Buffer,
  48.          NULL)) != NULL)
  49.       goto finish;
  50.  
  51.    if ((error = xos_write0 ((char *) Buffer)) != NULL)
  52.       goto finish;
  53.  
  54. finish:
  55.    return error;
  56. }
  57.