;
;         "kasdis_b.txt"      
;   NJU6432BF/KS0035P (   500)
;
;---------------------------------------------------------------------
;         
;  :      52   
;   4-      
;   
;       
;       .
;
;----------------------------------------------------------------------
;
; ------------  ------------
;
; 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_
;
; -----   -----
;
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
;
;-------------------------------------------------
;        
;     
;   (D1)  0
;
step_tst
     movf FSR,w
    movwf kd_tmp_fsr
    movlw d_blok0
    movwf FSR
    bcf kd_flags,c_tmp
    call l_tst
     movlw s_mask
     andwf ub_bl0,f
     movlw s_ter0
     iorwf ub_bl0,f
    movlw d_blok1
    movwf FSR
    call l_tst
    movlw s_mask
    andwf ub_bl1,f
    movlw s_ter1
    iorwf ub_bl1,f
  movf kd_tmp_fsr,w
   movwf FSR
  return
;--------------------------------
l_tst
    movlw 7
    movwf kd_cnt_byt
    rrf kd_flags,w
lp_tst0
    rlf INDF,f
    incf FSR,f
    decfsz kd_cnt_byt,f
    goto lp_tst0
    swapf ub_bl0,w
    movwf kd_cnt_bit
    rrf kd_flags,f
    rrf kd_cnt_bit,f
    rlf kd_flags,f
  return
;
;-------------------------------------------------
;       
;   10 ,   
;    temps
;
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
;