?login_element?

Subversion Repositories NedoOS

Rev

Rev 2093 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. printRTC                                        ;Получение и отображение времени из RTC
  2.         ld hl,displaytimer
  3.         dec (hl)
  4.         ret nz                                  ; Обновляем время с интервалом 155 опросов клавиатуры (порядка 3х секунд).
  5.  
  6. printRTCnow                                     ; Если нужно отобразить часы сдесь и сейчас.
  7.         ld hl,displaytimer
  8.         ld a,155
  9.         ld (hl),a
  10.  
  11.         ld de, 0x0600
  12.         SETCOLOR_
  13.     ld de, 0074
  14.         MYSETXY
  15.         ld hl, stringTime
  16.     call printZ
  17.        
  18.         call cmdcalccurxy               ; Восстановим положение курсора для командной строки.
  19.         MYSETXY
  20.  
  21.     call readTime                       ; Получить время из RTC
  22.  
  23.         ld a, (oldminutes)
  24.         ld d,a
  25.         ld a, (minutes)
  26.         cp d                                    ; Запускаем конвертацию в текст только если поменялась минута
  27.         ret z
  28.  
  29.         ld (oldminutes), a
  30.  
  31.         ld h,0                                  ; Конвертация времени в текст
  32.         ld a,(hours) ;часы
  33.         ld l,a
  34.         ld bc, decimalS
  35.         call prword_hl_tobc ;для печати в буфер ;hl=num bc=buf
  36.  
  37.         ld hl,decimalS+3
  38.     ld de, stringTime    
  39.     call strcopy;nv_strcopy_hltode
  40.     dec de
  41.     ld a,':'
  42.     ld (de),a
  43.        
  44.     ld h,0
  45.         ld a,(minutes) ;минуты
  46.         ld l,a
  47.         ld bc, decimalS
  48.         call prword_hl_tobc ;для печати в буфер ;hl=num bc=buf
  49.         ld hl,decimalS+3
  50.     ld de, stringTime+3    
  51.     call strcopy;nv_strcopy_hltode
  52.         ret
  53.  
  54. printZ
  55.         ld a,(hl)
  56.         or a
  57.         ret z
  58.         cp 32
  59.         call z,pintZ0
  60.         inc hl
  61.         push hl
  62.     MYPRCHAR
  63.         pop hl
  64.         jr printZ
  65. pintZ0
  66.         ld a,'0'
  67.         ret
  68.  
  69. readTime        ; получение  из OS даты и времени и конвертация из DOS-time
  70.     OS_GETTIME;out: ix=date, hl=time
  71.         di
  72.         push ix
  73.         pop bc
  74.         ei
  75.  
  76.         push hl
  77.         pop de
  78.        
  79.         ld a,d
  80.     rra
  81.     rra
  82.     rra
  83.     and 31              ;hours
  84.         ld (hours),a
  85.  
  86.     ex de,hl
  87.     add hl,hl
  88.     add hl,hl
  89.     add hl,hl
  90.     ex de,hl
  91.     ld a,d
  92.     and 63       ;minutes
  93.         ld (minutes),a
  94.         ret
  95.  
  96. hours
  97.         db 0
  98. minutes
  99.         db 0
  100. decimalS
  101.         ds 7 ;десятичные цифры
  102. stringTime
  103.     db "00:00",0
  104. oldminutes
  105.         db 255
  106. displaytimer
  107.         db 1