;
;         "clocker.txt" ;     /
;         
;
g_clock:    ;    /2  
     clr TF2 ;    
     setb trig ;      (0,05S)
     djnz too_clk2,endp_gc ;      
     mov too_clk2,#mark_r ;    
    push PSW ;  PSW  
    push ACC ;    
	  setb RS0
	  setb RS1 ;  RB3
	  .using 3 ;   "  RB3"
     mov a,#low(g_tpi0)
     push ACC
     mov a,#high(g_tpi0)
     push ACC ;       
 endp_gc:
    reti ;     
;------------------------------------------------------------------
;
;       (  RB3)
;
 g_tpi0:
	 setb s_ovf ;     
	  jnb esmpf,g_tpi ;    ""
		 setb smpf ;  / 1-   - ""
 g_tpi:
	 inc r4 ;   +1
	 cjne r4,#mask60,of_clock ;    - 
	 mov r4,#0 ; -  = 0
	 setb m_ovf ;     
	 inc r5 ;   +1
	 cjne r5,#mask60,of_clock ;    - 
	 mov r5,#0 ; -  = 0
	 setb h_ovf ;     
	 inc r6 ;   +1
	 cjne r6,#mask24,of_clock ;    - 
	 mov r6,#0 ;   = 0
	 setb d_ovf ;     
 of_clock:
   jnb fnvs,g_tp0 ;      
   clr fnvs ;  
   mov RCAP2H,corsek+1
   mov RCAP2L,corsek
 g_tp0:
   mov r7,ovftrg ;   OVFTRG  
                     ;      
                     ;       
                     ;   
      jb egcprt,ptr_gclk ;       egcprt=1
       ajmp noprtc
 ptr_gclk:    ;     / 
             ;  
      mov a,#0b00001100 ;  - 
      acall wrslus
      acall wait_wrt
      mov a,#0b00000100 ;    entry mode set = 0b00000100
                      ;      
      acall wrslus
      acall wait_wrt
      mov a,asgclk ;      
			              ; (  asgclk)
      setb ACC.7
      acall wrslus
      acall wait_wrt
      jbc gclkrl,pt_rwr0 ; gclkrl=1  gclkrl  0 
      sjmp noptrwr
  pt_rwr0:
      mov r7,#0b00001110 ;     
                        ;  
   noptrwr:    ;      (r4-r5-r6) 
    jb egsptr,g_tp4 ;  ,  
       mov a,#0x20 ;    3  
        acall wrdat ;      
        acall wait_wrt
        acall wrdat
        acall wait_wrt
        acall wrdat ;       
        acall wait_wrt ;   
    sjmp g_tp1
  g_tp4:
    mov a,r4
    acall binodec
    mov r1,a
    anl a,#0x0f
    orl a,#0x30 ;    
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,#0xf0
    anl a,r1
    swap a
    orl a,#0x30 ;    
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,#0x3A ;     (    1 )
     acall wrdat ;    ddram wh1602
      acall wait_wrt
  g_tp1:
    mov a,r7
    jnb ACC.1,g_pt2 ;   
		               ;    
    mov a,r5
    acall binodec
    mov r1,a
    anl a,#0x0f
    orl a,#0x30 ;    
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,#0xf0
    anl a,r1
    swap a
    orl a,#0x30 ;    
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,#0x3A ;     (    1 )
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,r7
    jnb ACC.2,g_pt2 ;   
		               ;     
    mov a,r6
    acall binodec
    mov r1,a
    anl a,#0x0f
    orl a,#0x30 ;    
     acall wrdat ;    ddram wh1602
      acall wait_wrt
    mov a,#0xf0
    anl a,r1
    swap a
    orl a,#0x30
    cjne a,#0x30,g_pt3
    mov a,#0x20 ;     
  g_pt3:
    acall wrdat ;    ddram wh1602
     acall wait_wrt
  g_pt2:
    mov r7,#0 ;    
    mov a,ovftrg
    anl a,eovfir
    jz noprtc ;        - 
    setb prwf ;     
 noprtc:
    pop ACC ;     -
    pop PSW
      .using 0 ;   "  RB0"
;
;
;
  ;      
  ;      
;
;
;
	ret ;    /1 
;------------------------------------------------------------------
;