;
;          BAM 
;     
;                    bamsh_tm1l.txt
;   ()       
; (mark)    (skd_end)
;       ( <250) !!!
;   2  1     
;
 ;--------------------------------------------------------------------------------
diskan:
 in tmp_psw,sreg
 rjmp nev_kadr ;    
 ;--------------------------------------------------------------------------------
mark:
   in tmp_psw,sreg
   dec tmpd
   brbs SREG_Z,point0
skd_end:
   out sreg,tmp_psw
   reti ;      
   ;--------------------------------------------------------------------------------
 point0:
    lsl planka ;   
 point1:
    mov tmpd,planka ;    - (irq_t0)
     ; !!!    tmpd=0     
     ;        
     ;   irq_t0       !!!
    lsr dis_lev_0
    ror dato
    lsr dis_lev_1
    ror dato
    lsr dis_lev_2
    ror dato
    lsr dis_lev_3
    ror dato
		lsr dis_lev_4
    ror dato
    lsr dis_lev_5
    ror dato
    lsr dis_lev_6
    ror dato
    lsr dis_lev_7
    ror dato ;    
     ;  9-  dato = 0, ..  portb  0 !!!
    and dato,mask ;  
    ; com dato ;   = 0    
 ;--------------------------------------------------------------------------------
      ;        
      ;     6- 
 ;--------------------------------------------------------------------------------
   out portb,dato ;    
   dec cnt_step ;    ( ) BAM -1
   brbc SREG_Z,skd_end ;  cnt_step  0   skd_end
 string_end: ;      BAM 
   lsl mask ;   ( =1 ) 
   dec cnt_kadr ;     
   brbs SREG_Z,nev_kadr
 point2:
    push xl ;    Xl  
     ldi xl,low (bufot0) ; uv_tlevl
     ldi xh,high (bufot0) ; uv_tlevh    tmp_lev_0
 ;      
     ld dis_lev_0,x+ ;       
     ld dis_lev_1,x+
     ld dis_lev_2,x+
     ld dis_lev_3,x+
     ld dis_lev_4,x+
     ld dis_lev_5,x+
     ld dis_lev_6,x+
     ld dis_lev_7,x+
     pop xl ;    Xl
 point3:
		ldi cnt_step,allability
    ldi planka,bamini ;      
    rjmp point1 ; BAM    point1
 nev_kadr:
      ldi mask,maskas
      ldi cnt_kadr,num_mux
    sbrc flags,kadr_end ;   kadr_end   ,
		      ;   preparing       (kadr_end=1)
     rjmp point2 ;      BAM
    sbr flags,1<<kadr_end ;   " "
    push xl ;    Xl  
     ldi xl,low (tmp_lev_0) ; uv_tlevl
     ldi xh,high (tmp_lev_0) ; uv_tlevh    tmp_lev_0
 ;      
     ld dis_lev_0,x+ ;      
     ld dis_lev_1,x+
     ld dis_lev_2,x+
     ld dis_lev_3,x+
     ld dis_lev_4,x+
     ld dis_lev_5,x+
     ld dis_lev_6,x+
     ld dis_lev_7,x+
     ldi xl,low (bufot0) ; uv_tlevl
     ldi xh,high (bufot0) ; uv_tlevh    tmp_lev_0
     st x+,dis_lev_0 ;      
     st x+,dis_lev_1
     st x+,dis_lev_2
     st x+,dis_lev_3
     st x+,dis_lev_4
     st x+,dis_lev_5
     st x+,dis_lev_6
     st x+,dis_lev_7
     pop xl ;    Xl
  rjmp point3 ;      BAM