pc.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:3k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. // Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved.
  2. // in/out not protyped anywhere for debug builds.  Do it here.
  3. #ifdef DEBUG
  4. int __cdecl _inp(unsigned short);
  5. unsigned short __cdecl _inpw(unsigned short);
  6. unsigned long __cdecl _inpd(unsigned short);
  7. int __cdecl _outp(unsigned short, int);
  8. unsigned short __cdecl _outpw(unsigned short, unsigned short);
  9. unsigned long __cdecl _outpd(unsigned short, unsigned long);
  10. #endif
  11. // We assume the presence of 8254.  undefine this if you have an 8253
  12. #define ASSUME_8254 1
  13. // Defines for PC Platform control registers
  14. #define CEPC_EXTRA_RAM_START    0x81000000  // 16MB is default top of RAM
  15. #define CEPC_EXTRA_RAM_SIZE     0x01000000  // Potentially add another 16MB
  16. VOID PICEnableInterrupt(UCHAR ucInterrupt, BOOL bEnabled);
  17. #define INTR_TIMER0         0
  18. #define INTR_KEYBOARD       1
  19. #define INTR_PIC2           2
  20. #define INTR_FLOPPY         6
  21. #define INTR_RTC            8
  22. #define INTR_MOUSE          12
  23. #define INTR_COPROC         13
  24. #define INTR_MAXIMUM        15
  25. #define PCINTR_RTCSHORT     (SYSINTR_FIRMWARE+0)
  26. // Define the varios CMOS parameters used for RTC
  27. #define CMOS_ADDR     0x70
  28. #define CMOS_DATA     0x71
  29. #define RTC_ADDR_MASK 0x80
  30. #define RTC_SECOND    0x00
  31. #define RTC_ALRM_SECOND    0x01
  32. #define RTC_MINUTE    0x02
  33. #define RTC_ALRM_MINUTE    0x03
  34. #define RTC_HOUR      0x04
  35. #define RTC_ALRM_HOUR      0x05
  36. #define RTC_DO_WEEK   0x06
  37. #define RTC_DO_MONTH  0x07
  38. #define RTC_MONTH     0x08
  39. #define RTC_YEAR      0x09
  40. #define RTC_STATUS_A  0x0A
  41. #define RTC_SRA_UIP   0x80
  42. #define RTC_SRA_BASE  0x70
  43. #define RTC_SRA_RATE  0x0F
  44. #define RTC_STATUS_B  0x0B
  45. #define RTC_SRB_UPDT  0x80  // Update - 0=enable, 1=disable
  46. #define RTC_SRB_PI    0x40
  47. #define RTC_SRB_AI    0x20
  48. #define RTC_SRB_UI    0x10
  49. #define RTC_SRB_SQU   0x08
  50. #define RTC_SRB_DM    0x04   // Data Mode - 1=binary, 0=BCD
  51. #define RTC_SRB_24HR  0x02
  52. #define RTC_SRB_DLS   0x01
  53. #define RTC_STATUS_C  0x0C
  54. #define RTC_SRC_IRQ   0x80
  55. #define RTC_SRC_PS    0x40
  56. #define RTC_SRC_AS    0x20
  57. #define RTC_SRC_US    0x10
  58. #define RTC_SRC_RSVD  0x0F
  59. #define DECODE_BCD(b)  ((b>>4)*10 + (b & 0xF))
  60. #define CREATE_BCD(b)  ( (((UCHAR)b/10)<<4) | ((UCHAR)b%10) )
  61. // Some Serial port defines used for the debug serial routines
  62. #define COM1_BASE           0x03F8
  63. #define COM2_BASE           0x02F8
  64. #define COM3_BASE           0x03E8
  65. #define COM4_BASE           0x02E8
  66. #define comTxBuffer         0x00
  67. #define comRxBuffer         0x00
  68. #define comDivisorLow       0x00
  69. #define comDivisorHigh      0x01
  70. #define comIntEnable        0x01
  71. #define comIntId            0x02
  72. #define comFIFOControl      0x02
  73. #define comLineControl      0x03
  74. #define comModemControl     0x04
  75. #define comLineStatus       0x05
  76. #define comModemStatus      0x06
  77. // For the PC, we have some common routines for reading/writing the RTC.
  78. BYTE ReadCMOSTimeReg(BYTE bAddr, BYTE bCmosOffset);
  79. void GetRealTimeFromCMOS(SYSTEMTIME *pst);