;
;         "kasdis_c.txt"      
;   NJU6432BF/KS0035P (   500)
;  ,     
;
;---------------------------------------------------------------------
;         
;  :      52   
;   4-      
;   
;       
;       .
;                        *********
;       UDATA_SHR
;          
;        ,  
;        
;                        *********
;
;    prepare  w_ksda
;        
;    tmp_a, tmp_b, tmp_c, tmp_d   tmp_e
;
;
;----------------------------------------------------------------------
;
; ------------  ------------
;
; bblok            (2   )
; L_INH           /INH ( 4:1.7)
; L_DN            DN ( 4:1.5)
; L_SCL           SCL ( 4:1.3)
; L_CE            CE ( 4:1.1)
; port_ksd      
; s_ter0      equ 0b00010000 ;     0
;        0b00110000 for ks0035p, 0b00010000 for nju6432bf
;  0b00110000    ks0035p   nju6432bf
; s_ter1      equ 0b10010000 ;     1
; s_mask      equ 0x0F ;   /  
; ------------  ------------
;
;    kd_flags
;c_tmp             1
;ksdd_w       -  / 
;ksdd_sf            /
;                 ;     
;
; ------------  ------------
;
;kd_flags      
;kd_cnt_bit    
;kd_cnt_byt     
;
;d_blok0     0
;ub_bl0        0
;d_blok1     1
;ub_bl1        1
;
;kd_tmp_fsr     fsr     kd_
;       pclath   
;kd_strn_h      
;kd_strn_l      
;
; -----   -----
;
KD     CODE
;
w_ksda
    movf FSR,w
    movwf kd_tmp_fsr
    banksel port_ksd
    bsf port_ksd,L_CE
     movlw d_blok0
     movwf FSR
    call tr_blok
;--------------------------------------
; for ks0035p    nju6432bf
;    L_DN   0
;  0
   bcf port_ksd,L_CE
   movlw 3
   movwf kd_cnt_bit
kd_lt
    decfsz kd_cnt_bit,f
    goto kd_lt
   bsf port_ksd,L_CE
;--------------------------------------
     movlw d_blok1
     movwf FSR
    call tr_blok
     bcf port_ksd,L_DN
     nop
     bcf port_ksd,L_CE
     movf kd_tmp_fsr,w
     movwf FSR
   return
;-------------------------------
tr_blok
     movlw 7
     movwf kd_cnt_byt
lop_tb0
      movlw 8
      movwf kd_cnt_bit
      movf INDF,w
      movwf tmp_e ;    
lop_tb1
       rrf tmp_e,f
        btfss STATUS,C
        goto tb_p0
         bsf port_ksd,L_DN
        goto tb_p1
tb_p0
       bcf port_ksd,L_DN
tb_p1
      nop
      nop
     bsf port_ksd,L_SCL
     nop
     nop
     bcf port_ksd,L_SCL
     nop
    decfsz kd_cnt_bit,f
    goto lop_tb1
   incf FSR,f
   decfsz kd_cnt_byt,f
   goto lop_tb0
  return
;
;-------------------------------------------------
;       
;   10 ,   
;    temps
; !  !    tmp_6  tmp_d !
;
prepare
     movf FSR,w
    movwf kd_tmp_fsr ;   FSR
     movlw .4 ;  4  ( )
     movwf kd_cnt_bit
lp_prep
      movlw .8 ;     +  (7-)   
      movwf kd_cnt_byt
      movlw ub_bl0 ;  (7-)   
      movwf FSR
lp_prep1
      rlf INDF,f
      incf FSR,f
      decfsz kd_cnt_byt,f
      goto lp_prep1
      decfsz kd_cnt_bit,f ;   7,8,9  10   4  
      goto lp_prep
    swapf ub_bl0,f ;   0bxxxxnnnn  nnnn   .7
    movlw s_mask
    andwf ub_bl0,f
    andwf ub_bl1,f
    movlw s_ter0
    iorwf ub_bl0,f ;     ub_bl0
    movlw s_ter1
    iorwf ub_bl1,f ;     ub_bl
  movf kd_tmp_fsr,w
   movwf FSR ;   FSR
  return
;
;
;-------------------------------------------------
;
;     temps
;
tst_strs
     movf FSR,w
    movwf kd_tmp_fsr ;   FSR
     movlw tmp_0
     movwf FSR
     movlw .16
     movwf kd_cnt_byt
     clrf kd_cnt_bit
boot
    movf kd_cnt_bit,w
    call kaznak
    movwf INDF
    incf FSR,f
    incf kd_cnt_bit,f
    decfsz kd_cnt_byt,f
    goto boot
  movf kd_tmp_fsr,w
   movwf FSR ;   FSR
  return
;
;
;-------------------------------------------------
;
;  
;      
;  kd_strn_h:kd_strn_l
prints
    movf PCLATH,w
    movwf kd_tmp_fsr ;   PCLATH
    clrf kd_pos1
    clrf kd_pos2
    clrf kd_pos3
    clrf kd_pos4
    clrf kd_pos5
    clrf kd_pos6
    clrf kd_pos7
    clrf kd_pos8
    clrf kd_pos9
    clrf kd_pos10 ;      
    movf kd_strn_h,w
    movwf PCLATH
    movf kd_strn_l,w
    movwf PCL ;      
reprint     ;       (goto reprint)
    movf kd_tmp_fsr,w
    movwf PCLATH ;  PCLATH
   return ;    ( prepare  w_ksda !!!)
;