home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / CLOCK / CLKDATA.INC next >
Text File  |  1995-04-14  |  4KB  |  130 lines

  1. ;*DDK*************************************************************************/
  2. ;
  3. ; COPYRIGHT    Copyright (C) 1995 IBM Corporation
  4. ;
  5. ;    The following IBM OS/2 WARP source code is provided to you solely for
  6. ;    the purpose of assisting you in your development of OS/2 WARP device
  7. ;    drivers. You may use this code in accordance with the IBM License
  8. ;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
  9. ;    Copyright statement may not be removed.;
  10. ;*****************************************************************************/
  11. ;SCCSID = @(#)clkdata.inc    6.3 91/04/29
  12.  
  13. BREAK <Clock Device Driver Data Declarations>
  14.  
  15. ;
  16. ; segment 40: definitions for RTC functions INT 15, 83 86
  17. ;
  18. BIOS_SEG        equ     040h            ; BIOS SEGMENT address (tiled)
  19.  
  20. USER_FLAG       equ     word ptr [098h] ; address of user byte (low)
  21. USER_FLAG_SEG   equ     word ptr [09ah] ; address of user byte (high)
  22. RTC_LOW         equ     word ptr [09ch] ; low word of timeout
  23. RTC_HIGH        equ     word ptr [09eh] ; high word of timeout
  24. RTC_WAIT_FLAG   equ     byte ptr [0a0h] ; timer interlock flag
  25.  
  26. ; PTIMER EQUATES (fsPTFlags)
  27.  
  28. PTF_OWNT0       EQU     01h             ; ptimer owns T0
  29. PTF_OWNT2       EQU     02h             ; ptimer owns T2
  30. PTF_TICKENABLE  EQU     04h             ; enable vtimer ticks
  31. PTF_DIRECTACC   EQU     08h             ; vtimer has direct access
  32.  
  33.  
  34. RW_BYTES        EQU     6               ; number of bytes to Read / Write
  35.  
  36. BRKADR          EQU     6CH             ; 006C   BREAK VECTOR ADDRESS
  37.  
  38. SECP12          EQU     43200           ; Seconds in 12 hours
  39. DAYS1           EQU      3652           ; Days 1-1-1970 through 12-31-79
  40. DAYSINYR        EQU       365           ; days in a normal year
  41. DAYSIN4YR       EQU      1461           ; days in a 4 year period
  42.  
  43. ERRDNR          EQU     02H             ; Device Not Ready error code
  44. ERRCMD          EQU     03H             ; unknown Command error code
  45. ERRGFAIL        EQU     0CH             ; General Failure error code
  46.  
  47. RTCHZINIT       EQU     32      ; Initial frequency of RTC periodic interrupt
  48. RTCIRQ          EQU     008H    ; Clock is IRQ 8
  49. RTCBit          EQU     001H    ; Bit in mask for IRQ 0 (RTC)
  50.  
  51. sizeof_lockhandle_s equ 12      ;BUGBUG vmdevhlp.c describes DevHlp_VMLock,
  52.                                 ;which takes: struct lockhandle_s *phlock
  53.                                 ;There is no easy way to get an equ to the
  54.                                 ;sizeof(struct lockhandle_s). Assume 96 bits.
  55.  
  56.  
  57. BREAK <Binary Conversion Routines>
  58. ;********************** START OF SPECIFICATIONS *********************
  59. ;*
  60. ;* MODULE NAME:  BCD2BN
  61. ;*
  62. ;* DESCRIPTIVE NAME:  Convert BCD value to binary
  63. ;*
  64. ;* FUNCTION:
  65. ;*      Converts 2 digit BCD to 8 bit binary (00 - FFh) in AL.
  66. ;*
  67. ;* ENTRY POINT:  BCD2BN
  68. ;*    LINKAGE:   NEAR
  69. ;*
  70. ;* USES:  Preserves all registers except AL
  71. ;*
  72. ;* INPUT: AL = 2 digit BCD number to convert
  73. ;*
  74. ;* OUTPUT: AX = Binary equivalent (all in AL)
  75. ;*
  76. ;* EXIT-NORMAL:  AL = binary value of BCD input
  77. ;*
  78. ;* EXIT-ERROR:  none
  79. ;*
  80. ;* INTERNAL REFERENCES:
  81. ;*    ROUTINES: none
  82. ;*
  83. ;* EXTERNAL REFERENCES:
  84. ;*    ROUTINES: none
  85. ;*
  86. ;*********************** END OF SPECIFICATIONS **********************
  87. BCD2BN  macro
  88.         xor     ah,ah
  89.         rol     ax,4
  90.         ror     al,4
  91.         aad
  92. endm
  93.  
  94. BREAK
  95. ;********************** START OF SPECIFICATIONS *********************
  96. ;*
  97. ;* MODULE NAME:  BN2BCD
  98. ;*
  99. ;* DESCRIPTIVE NAME:  Convert binary value to BCD
  100. ;*
  101. ;* FUNCTION:
  102. ;*      Converts 8 bit binary (00 - FFh) in AL to 2 digit BCD.
  103. ;*
  104. ;* ENTRY POINT:  BN2BCD
  105. ;*    LINKAGE:   NEAR
  106. ;*
  107. ;* USES:  Preserves all registers except AX
  108. ;*
  109. ;* INPUT: AL = binary number to convert to 2 digit BCD
  110. ;*
  111. ;* OUTPUT: AX = 2 digit BCD in [AL], [AH] = 00
  112. ;*
  113. ;* EXIT-NORMAL:  AL =  BCD value
  114. ;*
  115. ;* EXIT-ERROR:  none
  116. ;*
  117. ;* INTERNAL REFERENCES:
  118. ;*    ROUTINES: none
  119. ;*
  120. ;* EXTERNAL REFERENCES:
  121. ;*    ROUTINES: none
  122. ;*
  123. ;*********************** END OF SPECIFICATIONS **********************
  124. BN2BCD  macro
  125.         xor     ah,ah
  126.         aam
  127.         rol     al,4
  128.         ror     ax,4
  129. endm
  130.