home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FORTH / 4THPROG.ZIP / DAT-TIME.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-11-06  |  2.9 KB  |  143 lines

  1. NAME    DAVID
  2.  
  3. ;    DAVID'S MS-FORTRAN Runtime DOS INTERFACE.
  4. ;
  5. ;    MACRO DEFINITIONS
  6. SET_DTA MACRO  BUFFER
  7.         MOV     DX,OFFSET DGROUP:BUFFER
  8.         MOV     AH,1AH
  9.         INT     33
  10.         ENDM
  11. SEARCH_FIRST MACRO  FCB
  12.              MOV  DX,OFFSET DGROUP:FCB
  13.              MOV  AH,11H
  14.              INT  33
  15.              ENDM
  16. DISPLAY  MACRO  STRING
  17.          MOV  DX,OFFSET DGROUP:STRING
  18.          MOV  AH,09H
  19.          INT  33
  20.          ENDM
  21. SEARCH_NEXT MACRO FCB
  22.             MOV  DX,OFFSET DGROUP:FCB
  23.             MOV  AH,12H
  24.             INT  33
  25.             ENDM
  26. CONVERT  MACRO   VALUE,BASE,DEST
  27.          LOCAL  TABLE,START
  28.          JMP   START
  29. TABLE    DB  "0123456789ABCDEF"
  30. START:   MOV  AL,VALUE
  31.          XOR  AH,AH
  32.          XOR  BX,BX
  33.          DIV  BASE
  34.          MOV  BL,AL
  35.          MOV  AL,CS:TABLE[BX]
  36.          MOV  DEST,AL
  37.          MOV  BL,AH
  38.          MOV  AL,CS:TABLE[BX]
  39.          MOV  DEST[1],AL
  40.          ENDM
  41. GET_TIME MACRO
  42.          MOV AH,2CH
  43.          INT 33
  44.          ENDM
  45. GET_DATE MACRO
  46.          MOV  AH,2AH
  47.          INT  33
  48.          ENDM
  49. PAGE +
  50. ;
  51. ;       DGROUP, DATA   segment    class DATA
  52. ;
  53. DATA    SEGMENT PUBLIC 'DATA'
  54.     TIME  DB  "00:00:00.00",13,10,"$"
  55.     TEN   DB  10
  56. DATA    ENDS
  57.  
  58. DGROUP  GROUP   DATA
  59. CODE    SEGMENT 'CODE'
  60.         ASSUME  CS:CODE,DS:DGROUP,SS:DGROUP
  61. PUBLIC  SHWTIM,GHOURS,GMINUT,GSECON,G100S,GDAYOW,GMONTH,GETDAY
  62. ;DOSFN:  Call DOS Operating System
  63. ;
  64. GHOURS  PROC    FAR
  65.         PUSH    BP
  66.         GET_TIME
  67.         XOR  AH,AH
  68.         MOV  AL,CH
  69.         POP  BP
  70.         RET  4
  71. GHOURS  ENDP
  72. ;
  73. GMINUT  PROC   FAR
  74.         PUSH    BP
  75.         GET_TIME
  76.         XOR   AH,AH
  77.         MOV   AL,CL
  78.         POP   BP
  79.         RET   4
  80. GMINUT  ENDP
  81. ;
  82. GSECON  PROC    FAR
  83.         PUSH    BP
  84.         GET_TIME
  85.         XOR  AH,AH
  86.         MOV  AL,DH
  87.         POP   BP
  88.         RET   4
  89. GSECON  ENDP
  90. ;
  91. G100S   PROC   FAR
  92.         PUSH    BP
  93.         GET_TIME
  94.         XOR     AH,AH
  95.         MOV     AL,DL
  96.         POP     BP
  97.         RET     4
  98. G100S   ENDP
  99. ;
  100. SHWTIM  PROC    FAR
  101.         PUSH    BP
  102.         GET_TIME
  103.         CONVERT  CH,DS:TEN,DS:TIME
  104.         CONVERT  CL,DS:TEN,DS:TIME[3]
  105.         CONVERT  DH,DS:TEN,DS:TIME[6]
  106.         CONVERT  DL,DS:TEN,DS:TIME[9]
  107.         DISPLAY  TIME
  108.         POP     BP
  109.         RET
  110. SHWTIM  ENDP
  111. ;
  112. ;
  113. ;
  114. GMONTH  PROC   FAR
  115.         PUSH    BP
  116.         GET_DATE
  117.         XOR    AH,AH
  118.         MOV    AL,DH
  119.         POP    BP
  120.         RET    4
  121. GMONTH  ENDP
  122. ;
  123. GETDAY  PROC   FAR
  124.         PUSH    BP
  125.         GET_DATE
  126.         XOR    AH,AH
  127.         MOV    AL,DL
  128.         POP    BP
  129.         RET    4
  130. GETDAY  ENDP
  131. ;
  132. GDAYOW  PROC  FAR
  133.         PUSH  BP
  134.         GET_DATE
  135.         XOR   AH,AH
  136.         POP   BP
  137.         RET   4
  138. GDAYOW  ENDP
  139. ;
  140.  CODE    ENDS
  141.  
  142. END
  143.