Showcmos.c
Upload User: dq031136
Upload Date: 2022-08-08
Package Size: 802k
Code Size: 2k
Development Platform:

C++ Builder

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4. void main(void)
  5.  {
  6.    struct CMOS 
  7.    {
  8.      unsigned char current_second;
  9.      unsigned char alarm_second;
  10.      unsigned char current_minute;
  11.      unsigned char alarm_minute;
  12.      unsigned char current_hour;
  13.      unsigned char alarm_hour;
  14.      unsigned char current_day_of_week;
  15.      unsigned char current_day;
  16.      unsigned char current_month;
  17.      unsigned char current_year;
  18.      unsigned char status_registers[4];
  19.      unsigned char diagnostic_status;
  20.      unsigned char shutdown_code;
  21.      unsigned char drive_types;
  22.      unsigned char reserved_x;
  23.      unsigned char disk_1_type;
  24.      unsigned char reserved;
  25.      unsigned char equipment;
  26.      unsigned char lo_mem_base;
  27.      unsigned char hi_mem_base;
  28.      unsigned char hi_exp_base;
  29.      unsigned char lo_exp_base;
  30.      unsigned char fdisk_0_type;
  31.      unsigned char fdisk_1_type;
  32.      unsigned char reserved_2[19];
  33.      unsigned char hi_check_sum;
  34.      unsigned char lo_check_sum;
  35.      unsigned char lo_actual_exp;
  36.      unsigned char hi_actual_exp;
  37.      unsigned char century;
  38.      unsigned char information;
  39.      unsigned char reserved3[12];
  40.    } cmos;
  41.    char i;
  42.    char *pointer;
  43.    char byte;
  44.    pointer = (char *) &cmos;
  45.    for (i = 0; i < 0x34; i++)
  46.     {
  47.       outportb(0x70, i);
  48.       byte = inportb(0x71);         
  49.       *pointer++ = byte;
  50.     }
  51.    printf("Current date %d/%d/%dn", cmos.current_month,
  52.      cmos.current_day, cmos.current_year);
  53.    printf("Current time %d:%d:%dn", cmos.current_hour,
  54.      cmos.current_minute, cmos.current_second);
  55.    printf("Hard disk type %dn", cmos.fdisk_0_type);
  56.   }