home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol078 / time.asm < prev    next >
Assembly Source File  |  1984-04-29  |  1KB  |  91 lines

  1. .TITLE    'Print time and date on console'
  2. ;
  3. base    =    50H    ; base port address
  4. clkcmd    =    base+10    ; clock command
  5. clkdta    =    base+11    ; clock data
  6. bdos    =    5    ; CP/M
  7. read    =    10H
  8. write    =    20H
  9. hold    =    40H    ; hold bit
  10. ;
  11. ; Sign on message
  12. ;
  13. start:    lxi    d,signon
  14.     call    pmsg        ; say HI
  15. ;
  16. ; edit and print time and date
  17. ;
  18. clkprt:    lxi    h,atable
  19.     call    print2        ; first 2 digits
  20.     mvi    a,':'
  21.     call    pchar
  22.     call    print2
  23.     mvi    a,':'
  24.     call    pchar
  25.     call    print2
  26.     mvi    a,' '
  27.     push    psw
  28.     call    pchar
  29.     pop    psw
  30.     call    pchar        ; print 2 spaces
  31.     call    print2
  32.     mvi    a,'/'
  33.     call    pchar
  34.     call    print2
  35.     mvi    a,'/'
  36.     call    pchar
  37.     call    print2        ; print last 2 digits
  38.     ret
  39. ;
  40. ; print two digits from clock
  41. ;
  42. print2:    mov    a,m
  43.     call    rddgt
  44.     adi    30H        ; ascii convers
  45.     call    pchar
  46.     inx    h
  47.     mov    a,m
  48.     call    rddgt
  49.     adi    30H
  50.     call    pchar
  51.     inx    h
  52.     ret
  53. ;
  54. ; read clock and mask bits
  55. ;
  56. rddgt:    adi    read        ; set read bit
  57.     out    clkcmd
  58.     cpi    read+5        ; hours 10 digit
  59.     in    clkdta        ; get digit
  60.     rnz            ; ..not so done
  61.     sui    08H
  62.     ret
  63. ;
  64. ; CP/M interface
  65. ;
  66. pchar:    push    d
  67.     mov    e,a
  68.     mvi    c,2
  69.     push    h
  70.     call    bdos
  71.     pop    h
  72.     pop    d
  73.     ret
  74. ;
  75. pmsg:    push    h
  76.     mvi    c,9
  77.     call    bdos
  78.     pop    h
  79.     ret
  80. ;
  81. ; message texts
  82. ;
  83. signon:
  84.     .ascii    'The time and date are: $'
  85. ;
  86. ; digit address table
  87. ;
  88. atable:    .byte    5,4,3,2,1,0,8,7,0AH,9,0CH,0BH
  89. ;
  90.     .end    start
  91.