;
;         "net_extdi.txt"   
;                /
;                
;
;  
;      Yh:Yl   
;     Y
;      tmp0   
;    netpak
;   net_buf   net_cnt  
;
;   USART
;UCSRA   
;UCSRB 1<<RXCIE 1<<TXCIE  -   
;UCSRB 1<<RXEN = Receiver Enable
;UCSRB 1<<TXEN = Transmitter Enable
;UCSRC (1<<USBS | 1<<UCSZ1 | 1<<UCSZ0)
;UBRRL=103
;------------------------------------------------
;     
;       
;
irq_qtend:
   reti
;
;------------------------------------------------
;
;
irq_network:
    sbrc dp_flags,netdbu ; ,    
   rjmp fix_net ;   
;         
;   irq_network -  USART     
;
    in how_sreg_n,SREG
    push Yh
    push Yl
    push tmp1
    push tmp0 ;     
    sbrs dp_flags,netpak ;  netpak=1   pacus
     rjmp net_txqui ;    
                ;  net_txqui
 pacus:
    lds yl,net_fsr ;   
    lds yh,(net_fsr+1) ;  
    lds tmp0,net_cnt ;    
    in tmp1,UDR ;     tmp1
    st y+,tmp1 ;      
    dec tmp0 ;    -1
    brne ovremap ;      ovremap
    ldi tmp1,(1<<netdbu) ; netdbu=1
    or dp_flags,tmp1 ;  "   "
loh_rxd:
    ldwi y,net_buf ;    
    ldi tmp0,8 ;     
    ldi tmp1,(0xFF - (1<<netpak))
    and dp_flags,tmp1 ; netpak=0   " "
ovremap:
    sts net_fsr,yl ;   
    sts (net_fsr+1),yh
    sts net_cnt,tmp0 ;   
   rjmp net_rxret ;    
;------------------------------------------------
net_txqui:
     in tmp0,UDR ;   
     clr tmp0 ;     
     out UDR,tmp0
     ldi tmp0,(1<<netpak)
    or dp_flags,tmp0 ; set dp_flags.netpak=1
net_rxret:
     pop tmp0 ;    
     pop tmp1
     pop Yl
     pop Yh
  out SREG,how_sreg_n
   reti ;    
;------------------------------------------------
fix_net:
   in how_sreg_n,UDR ;   
   reti ;      how_sreg_n
;