;
;  8     4
;    ( )
;       0,000016 
;     8000000 
;    255
;       1
;
outport ;   
tmpd ;         
tmpa ;    a ( )
tmpb ;    b (a+4)

scnt ;   ""
pcnt ;     
lcnt ;    

ptra ;       a
ptrb ;       b
fnptr ;     

vram ;      

isf ;        

;    () 
;        
;  A   B (A+4)

point:

;    tmpd  outport
;(  )

; scnt++   

;     255 (   -   127)
;       () endpoint


;   tmpd     :
;  tmpa < scnt   tmpd.pcnt
;  tmpb < scnt   tmpd.(pcnt+4)

endspl:
;   isf
;      ()


endpoint:
;     ()

; pcnt++
;  pcnt = 5    fnptr  darkslot
;    endspl

;    
; ptra++ ptrb++
;     spmask<<1 ( RL-)

linstart:
;    
; tmpa = *ptra  tmpb = *ptrb
;      
;        
;  tmpa   0   tmpd.pcnt = 1
;  tmpb   0   tmpd.pcnt = 1
; scnt = 1
;     endspl


; " "  

darkslot:
;  
outport = zero
 spmask = spmaskdat
;     fnptr  point
; pcnt = 0
; ptra = vram ptrb = vram+4

;     vram
;      
;     lcnt

;   linstart



;-------------------------------------------------------------
;
;    outport
;       
;   = 0,   = 1

outport = 0
DDRB = 0xFF

;-------------------------------------------------------------
;
;    
;  0   CTC     OCR0A

tmdiv ;   OCR0A  0,000016  = 128

;  CLKPR    1 :
;  CLKPR = 1<<CLKPSE
;  CLKPR = 0

;   0
;  TCCR0A = 1<<WGM01  TCCR0B   
;    OCR0A = tmdiv
;       
ISR_time:
;    isf = 1  reti

;  darkslot

;     TCCR0B = 1<<CS00

;     isf
;       ,
;     fnptr


;--------------------------------------------------------------------

;   
;  8   "  "
;   tmp0 - tmp7
;    -   VRAM     
; (    1)
tmp0 - tmp7 ;  
mask1 ;   
mask2 ;   
npm2 ;      (    
     ;      )
X	 ;    


;       
 step_has:
  ldiw X,thass ;  VRAM
  ld tmp0,X+
  ld tmp1,X+
  ld tmp2,X+
  ld tmp3,X+
  ld tmp4,X+
  ld tmp5,X+
  ld tmp6,X+
  ld tmp7,X+
  ;ld nftcl,X+ ;     
  ;ld nftch,X  ;
 hass_wan:
  ser Xl;   
  tst tmp0
  brbc SREG_Z,pt00
  cbr Xl,1<<0
 pt00:
  tst tmp1
  brbc SREG_Z,pt01
  cbr Xl,1<<1
 pt01:
  tst tmp2
  brbc SREG_Z,pt02
  cbr Xl,1<<2
 pt02:
  tst tmp3
  brbc 1,pt03
  cbr Xl,1<<3
 pt03:
  tst tmp4
  brbc SREG_Z,pt04
  cbr Xl,1<<4
 pt04:
  tst tmp5
  brbc SREG_Z,pt05
  cbr Xl,1<<5
 pt05:
  tst tmp6
  brbc SREG_Z,pt06
  cbr Xl,1<<6
 pt06:
  tst tmp7
  brbc SREG_Z,pt07
  cbr Xl,1<<7
 pt07:
  tst Xl
  brbc SREG_Z,pt08
  ser tmp0
  ser tmp1
  movw tmp2,tmp0
  movw tmp4,tmp0
  movw tmp6,tmp0
  ;ser tmp2
  ;ser tmp3
  ;ser tmp4
  ;ser tmp5
  ;ser tmp6
  ;ser tmp7
;               
;       
 pt08:
  ldi Xl,mask1 ;    
  ldi Xh,mask2 ;    
  and Xl,tmp0 ;   
  brbs SREG_Z,pt09
  ser Xl
 pt09:
  and Xh,tmp2 ;   
  brbs SREG_Z,pt10
  ser Xh
 pt10:
  eor Xl,Xh ;   
  ror Xl ;   CY 
 step_hs:
  ror tmp7
  ror tmp6
  ror tmp5
  ror tmp4
  ror tmp3
  ror tmp2
  ror tmp1
  ror tmp0 ;     
  ;      
  ldiw X,thass ;  VRAM
  st X+,tmp0
  st X+,tmp1
  st X+,tmp2
  st X+,tmp3
  st X+,tmp4
  st X+,tmp5
  st X+,tmp6
  st X,tmp7
  ret


;-----------------------------------------------------