;
;         -  has_r.txt
;
;   
;  8   "  "
;   tmp0 - tmp7
;    -   VRAM     
; (    1)
; tmp0 - tmp7 ;  
; .equ hasmask1 = 0b000000001 ;    ( tmp0)
; .equ hasmask2 = 0b010000000 ;    ( tmp3)
; npm2 ;      (    
     ;      )
; X	 ;    


;       
step_has:
  ldiw X,vram ;  VRAM thass
  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
;               
;       
 pt08:
  ldi Xl,hasmask1 ;    
  ldi Xh,hasmask2 ;    
  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,vram ;  VRAM thass
  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 ;          ,   !


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