home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / OSBORNE / EXTIME89.LBR / EXTIME.ZZ0 / EXTIME.Z80
Text File  |  2000-06-30  |  3KB  |  157 lines

  1. ;
  2. ;17 June 1985   W. vanRiper
  3. ;
  4. ;extime.z80 - sets time in SCB for Osborne Executive
  5. ;uses R. Conn's SYSLIB vers 2.X or 3.X for display routines
  6. ;
  7.     extrn    bin,print,crlf,cath
  8. ;
  9. months    equ    0f8f4h
  10. hours    equ    0f8f6h
  11. mins    equ    0f8f7h
  12. temp    ds    1
  13. tempm    ds    2
  14. tempd    ds    2
  15. mcnt    ds    1
  16. ;
  17.     call    getday
  18. ;
  19. ;
  20.     call    crlf
  21.     call    print
  22.     db    '       hour: ',0
  23. ;
  24.     call    bin        ;get first ascii digit
  25.     call    cath        ;convert it to hex
  26.     ld    (temp),a    ;store it in (temp)
  27.     call    bin        ;get second digit in a
  28.     call    cath
  29. ;
  30.     ld    hl,temp        ;memory location for RLD swap
  31.     rld            ;memory now has packed BCD number
  32.     ld    a,(hl)        ;put it in a
  33.     ld    hl,hours
  34.     ld    (hl),a        ;set the hours
  35. ;
  36.     call    crlf
  37.     call    print
  38.     db    '     minute: ',0
  39. ;
  40.     call    bin        ;get first ascii digit
  41.     call    cath        ;convert it to hex
  42.     ld    (temp),a    ;store it in (temp)
  43.     call    bin        ;get second digit in a
  44.     call    cath
  45. ;
  46.     ld    hl,temp        ;memory location for RLD swap
  47.     rld            ;memory now has packed BCD number
  48.     ld    a,(hl)        ;put it in a
  49.     ld    hl,mins
  50.     ld    (hl),a        ;set the minutes
  51.     call    crlf
  52. ;
  53.     ret
  54. ;
  55. ;
  56. ;
  57. getday    call    crlf
  58.     call    print
  59.     db    'enter month: ',0
  60. ;
  61.     call    bin        ;get first ascii digit
  62.     call    cath        ;convert it to hex
  63.     rlca            ;multiply by 10
  64.     ld    b,a        ;save 2*a in b temporarily
  65.     rlca
  66.     rlca
  67.     add    a,b        ;add 8*a and 2*a = 10*a
  68.     ld    (mcnt),a    ;store it in (mcnt)
  69. ;
  70. ;
  71.     call    bin        ;get second digit in a
  72.     call    cath
  73. ;
  74.     ld    hl,mcnt        ;add it to number in (mcnt)
  75.     add    a,(hl)
  76.     ld    (mcnt),a    ;store result in (mcnt)
  77.     ld    l,a        ;also store result in (tempm)
  78.     ld    h,0
  79.     ld    (tempm),hl
  80. ;
  81. ;
  82.     call    crlf
  83.     call    print
  84.     db    '        day: ',0
  85. ;
  86.     call    bin        ;get first ascii digit
  87.     call    cath        ;convert it to hex
  88.     rlca            ;multiply by 10
  89.     ld    b,a        ;2*a temporarily in b
  90.     rlca
  91.     rlca
  92.     add    a,b
  93.     ld    (temp),a    ;store it in (temp)
  94. ;
  95.     call    bin        ;get second digit in a
  96.     call    cath
  97.     ld    hl,temp        ;add it to number in (temp)
  98.     add    a,(hl)
  99.     ld    l,a        ;put result in (tempd)
  100.     ld    h,0
  101.     ld    (tempd),hl
  102. ;
  103.     ld    hl,0        ;clear out hl
  104.     ld    de,table    ;get start of table
  105.     ld    a,(mcnt)    ;put month count in a
  106.     ld    b,a        ; and then in b
  107.     ld    a,0        ;clear out a
  108. loop0    ld    a,(de)        ;get number of days
  109.     push    de
  110.     ld    e,a        ;put number of days in de
  111.     ld    d,0    
  112.     add    hl,de        ;add to total in hl
  113.     pop    de        ;get back original address
  114.     inc    de        ;move it along
  115.     djnz    loop0        
  116. ;
  117.     ld    de,(tempd)    ;get day of month in de
  118.     add    hl,de        ;add to day total from months
  119.     ld    de,9fdh        ;offset to 1985
  120.     add    hl,de
  121. ;
  122. ;    
  123.     ld    (months),hl
  124.     ret
  125. ;
  126. table    db    0
  127.     db    31
  128.     db    28
  129.     db    31
  130.     db    30
  131.     db    31
  132.     db    30
  133.     db    31
  134.     db    31
  135.     db    30
  136.     db    31
  137.     db    30
  138.     db    31
  139. ;
  140. ;
  141. hl
  142.     ret
  143. ;
  144. table    db    0
  145.     db    31
  146.     db    28
  147.     db    31
  148.     db    30
  149.     db    31
  150.     db    30
  151.     db    31
  152.     db    31
  153.     db    30
  154.     db    31
  155.     db    30
  156.     db    31
  157. ;