?login_element?

Subversion Repositories NedoOS

Rev

Rev 2088 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. printRTC
  2.         ld de, 0x0600;0x040f
  3.         SETCOLOR_
  4.     ld de, 0074
  5.         MYSETXY
  6.         ld hl, stringTime
  7.     call printZ
  8.        
  9.         call cmdcalccurxy
  10.         MYSETXY
  11.  
  12.     call readTime      
  13.         ld a, (oldminutes)
  14.         ld d,a
  15.         ld a, (minutes)
  16.         cp d                                    ; Update only if minutes changed
  17.         ret z
  18.  
  19.         ld (oldminutes), a
  20.         ld h,0
  21.         ld a,(hours) ;часы
  22.         ld l,a
  23.         call toDecimal
  24.         ld hl,decimalS+3
  25.     ld de, stringTime    
  26.     call strcopy;nv_strcopy_hltode
  27.     dec de
  28.     ld a,':'
  29.     ld (de),a
  30.        
  31.     ld h,0
  32.         ld a,(minutes) ;минуты
  33.         ld l,a
  34.         call toDecimal
  35.         ld hl,decimalS+3
  36.     ld de, stringTime+3    
  37.     call strcopy;nv_strcopy_hltode
  38.         ;dec de
  39.     ;ld a,']'
  40.     ;ld (de),a
  41.         ret
  42.  
  43. toDecimal               ;конвертирует 2 байта в 5 десятичных цифр
  44.                                 ;на входе в HL число
  45.         ld de,10000 ;десятки тысяч
  46.         ld a,255
  47. toDecimal10k                   
  48.         and a
  49.         sbc hl,de
  50.         inc a
  51.         jr nc,toDecimal10k
  52.         add hl,de
  53.         add a,48
  54.         ld (decimalS),a
  55.         ld de,1000 ;тысячи
  56.         ld a,255
  57. toDecimal1k                    
  58.         and a
  59.         sbc hl,de
  60.         inc a
  61.         jr nc,toDecimal1k
  62.         add hl,de
  63.         add a,48
  64.         ld (decimalS+1),a
  65.         ld de,100 ;сотни
  66.         ld a,255
  67. toDecimal01k                   
  68.         and a
  69.         sbc hl,de
  70.         inc a
  71.         jr nc,toDecimal01k
  72.         add hl,de
  73.         add a,48
  74.         ld (decimalS+2),a
  75.         ld de,10 ;десятки
  76.         ld a,255
  77. toDecimal001k                  
  78.         and a
  79.         sbc hl,de
  80.         inc a
  81.         jr nc,toDecimal001k
  82.         add hl,de
  83.         add a,48
  84.         ld (decimalS+3),a
  85.         ld de,1 ;единицы
  86.         ld a,255
  87. toDecimal0001k                 
  88.         and a
  89.         sbc hl,de
  90.         inc a
  91.         jr nc,toDecimal0001k
  92.         add hl,de
  93.         add a,48
  94.         ld (decimalS+4),a
  95.     xor a
  96.     ld (decimalS+5),a                          
  97.         ret
  98.  
  99. printZ
  100.         ld a,(hl)
  101.         or a
  102.         ret z
  103.         inc hl
  104.         push hl
  105.     MYPRCHAR
  106.         pop hl
  107.         jr printZ
  108.  
  109.  
  110. readTime
  111.     OS_GETTIME;out: ix=date, hl=time
  112.         di
  113.         push ix
  114.         pop bc
  115.         ei
  116.  
  117.         push hl
  118.         pop de
  119.         ld a,e
  120.     add a,a
  121.     and 63      ;seconds
  122.         ld (seconds),a
  123.        
  124.         ld a,d
  125.     rra
  126.     rra
  127.     rra
  128.     and 31              ;hours
  129.         ld (hours),a
  130.  
  131.     ex de,hl
  132.     add hl,hl
  133.     add hl,hl
  134.     add hl,hl
  135.     ex de,hl
  136.     ld a,d
  137.     and 63       ;minutes
  138.         ld (minutes),a
  139.         ret
  140.  
  141. hours
  142.         db 0
  143. minutes
  144.         db 0
  145. seconds
  146.         db 0
  147. decimalS        ds 7 ;десятичные цифры
  148. stringTime
  149.     db "33:33",0
  150. oldminutes              ; не убирать под услоаие
  151.         db 255