;
;
;          "prokos.txt"    
;     
;
;
;----------------------------------------------------
 gw_left:
    rcall pif1
     sbrs vars,warom
      rjmp stp_left ;  warom=0    
      tst accl
      brbc SREG_Z,ltp10 ;   ,  0 
          ;     
          ;    0,   =   
          ;   (  left_bph:left_bpl)
      movw zl,fsbl ;   
      adiw zl,left_bp ;     
  oll_shift:
         lsl zl
         rol zh ;    
          lpm butl,z+
          lpm buth,z ;     buth:butl
      movw zl,butl ;   Z
      ijmp ;  
    ;------------------------
 stp_left:
      tst accl
      brbc SREG_Z,ltp10 ;    0,     
      ldi accl,16 ;      +1
  ltp10:
      dec accl
  shifts:
      rcall pimb1 ;      kursadr
       sbrs vars,warom
        rjmp ltp20
      sbr accl,(1<<7)
       rcall wr_wus ;      
        rcall wait_wrt ; 
         rjmp step3 ;     (tp_snsel4)
  ltp20:
       printb frame1 ; printb  
                  ;     
      rjmp step3 ;     (tp_snsel4)
 ;----------------------------------------------------
 gw_rait:
     rcall pif1
     sbrs vars,warom
     rjmp stp_rait ;  warom=0    
     tst accl
      brbc SREG_Z,stp_rait ;   ,  0 
          ;    0,   =   
          ;   (  right_bph:right_bpl)
      movw zl,fsbl ;   
      adiw zl,right_bp ;     
			rjmp oll_shift ;   - 
  stp_rait:
       cpi accl,15
        brne ltp11
         ldi accl,0xFF
   ltp11:
       inc accl
     rjmp shifts ;     
 ;----------------------------------------------------
 gw_plus:
      rcall pif1
       mov yl,accl ;     yl
       tst accl
       brbc SREG_Z,gw_stp10 ;    0 
       ;    0,   =    
       ;     (  targeth:targetl)
    movw zl,fsbl ;   
    adiw zl,target_bp ;     
		rjmp oll_shift ;  
  gw_stp10:
      rcall lddptr1
       tst accl
       brbc SREG_Z,gw_stp11
        rjmp step3 ;     (mask=0) (tp_snsel4)
  gw_stp11:
      sbrc accl,7 ;    (0x80)
      rjmp retksn ;    napcom
  napcom:
      clr yh
      ldwi tmph,tmpl,bufos_0
      add yl,tmpl
      adc yh,tmph ;    
      ld tmpl,y ;   
      inc tmpl
      cpse tmpl,accl
      rjmp gw_stp12 ;       
                    ;   gw_stp12
      ldi tmpl,0x30 ;    0
  gw_stp12:
      st y,tmpl ;    
      mov accl,acch ;   
      rjmp ltp20 ;   ltp20
 ;----------------------------------------------------
 gw_maines:
     rcall pif1
     mov yl,accl ;     yl
       tst accl
       brbc SREG_Z,gw_stp0 ;    0 
      ;    0,   =    
       ;    (  retter+1:retter)
    movw zl,fsbl ;   
    adiw zl,retter_bp ;     
		rjmp oll_shift ;  
  gw_stp0:
      rcall lddptr1
       tst accl
       brbc SREG_Z,gw_stp01
        rjmp step3 ;     (mask=0) (tp_snsel4)
 gw_stp01:
       sbrs accl,7 ;    (0x80)
       rjmp ndown
    sbr vars,(1<<downf) ;      ...
 retksn:
     movw zl,fsbl ;    
     adiw zl,tabl_bp ;     
      lsl zl
      rol zh ;    
       lpm butl,z+
       lpm buth,z ;     buth:butl
      mov zl,yl ;     yl
     sbr zl,(1<<6) ;     
     clr zh
     add zl,butl
     adc zh,buth ;   
     lsl zl
     rol zh ;    
      lpm butl,z+
       lpm buth,z ;    buth:butl
        movw zl,butl ;    Z
        ijmp ;      
             ;   (   tabl_bph:tabl_bpl)
            ; ...   yl ...
  ndown:
      clr yh
      ldwi tmph,tmpl,bufos_0
      add yl,tmpl
      adc yh,tmph ;    
      ld tmpl,y ;   
      ldi tmph,0x2F
      dec tmpl
      cpse tmpl,tmph
      rjmp gw_stp12 ;       
                    ;   gw_stp12
      mov tmpl,accl ;
      dec tmpl ;    -1
      rjmp gw_stp12 ;   gw_stp12
;----------------------------------------------------------------
;   -
;   0 =  "" = enter   ,  ""  bksp
;       , 
; masktbl0 + (prefekt+  pimb1) /     frame/
; 0 =   
; 0x3N =     /
; 0x80 =   (apcom/downcom)
;----------------------------------------------------------------
;     accl    
;      (0-15)
 lddptr1:
      mov cntxl,accl
      inc cntxl ;   
      movw zl,fsbl
      adiw zl,prefekt_bp
      lsl zl
      rol zh ;    
      lpm butl,z+
      lpm buth,z ;     buth:butl
      ldwi zh,zl,masktbl0 ;     
                  ;    masktbl0
      add zl,butl ;     prefekt
      adc zh,buth
      lsl zl
      rol zh ;      
 rep_load:
     lpm accl,z+ ;        accl
     dec cntxl ;    
     brne rep_load
   ret
;----------------------------------------------------------------