;
;
;            intwork_b52m.txt
;       
;        
;      (  
; /   )
;
;  .cseg
;
;------------------------------------------
;
;     
;    
; R2  
; R3   
;   
;
   .org (restt+int_vectors_syze)  ;    
 sys_clock:
    djnz cnts1,endd_tic
     mov cnts1,#sys_clc2 ;   0,01 
     setb sys_tic1
      jnb en_wtm1,endd_tic
    djnz wtm1,endd_tic
    setb wtm1_tic ;    
     ;  wtm1   
     ; ,     en_wtm1
 endd_tic:
   reti
;
;----------------------------------------------
;
;  IRQ 
;
;        bottle  mason_2
;     RI   
;    step_ptr+1:step_ptr
;
 trs_ir:
    jbc TI,step1 ;  TI=0,
		    ;   
		    ;    
    mov tmp_rx,SBUF ;  
    clr RI ; RI=0
    mov a,step_ptr
    push ACC
    mov a,step_ptr+1 ;    step_ptr
    push ACC ;   
   reti ;   
 step1:
    jb eof_txd,sstep1 ;    
                ;   
    acall proc_txd ;   
 sstep1:
   reti ;     TI
;
;------------------------------------------
;
;  /
;       
;  ,   S_RBT (IND_L)
;
 soft_reset:
       clr EA ;  
       mov dptr,#key_proc ;   
			               ;    DPTR
       push DPL
       push DPH ;    
			 mov r2,#((kp_end - kp_ap)+1)
			 mov r0,#0
 wr_rebs:
       mov a,r0
       acall reed_kode
       movx @dptr,a
       inc r0
       inc dptr
       djnz r2,wr_rebs
       sjmp kp_end
 reed_kode:
        inc a
        movc a,@a+pc
        ret
;--------------------------------------------------
;        
;           key_proc = 0xFFF0
 kp_ap:
       mov P1,#0xFF
       mov P3,#0xFF ;   " "
       nop ;
       nop
       ljmp 0x0000 ;     -
;--------------------------------------------------
 kp_end:
      nop
      jb P3.S_RBT,kp_end
      mov r3,#0xFF
  kp_pt0:
      mov r2,#0xFF
  kp_pt1:
      djnz r2,kp_pt1
       djnz r3,kp_pt0
      jb P3.S_RBT,kp_end ;   0
  kp_pt2:
     jnb  P3.S_RBT,kp_pt2 ;  
      mov r3,#0xFF
  kp_pt3:
      mov r2,#0xFF
  kp_pt4:
      djnz r2,kp_pt4
       djnz r3,kp_pt3
      jnb  P3.S_RBT,kp_pt2 ;   1
  acall clin_rubbish
    reti ;    key_proc
;--------------------------------------------------
;      (  hot_init)
;
 clin_rubbish:
     clr a
     mov PSW,a
     mov IE,a ; 
     mov IP,a ;   
     mov TCON,a ;  "" 
     mov TMOD,a ;      0
     mov T2CON,a
     mov T2MOD,a
     mov TL0,a
     mov TH0,a
     mov TL1,a
     mov TH1,a
     mov TL2,a
     mov TH2,a
     mov RCAP2L,a
     mov RCAP2H,a
     mov SCON,a
     mov AUXR1,a
     mov step_ptr,#LOW(zero_ri) ;       
     mov step_ptr+1,#HIGH(zero_ri) ; ,   step_ptr+1:step_ptr
 zero_ri:
    ret ;    ret
;--------------------------------------------------
;
;     
;
set_vect_tbl:
  clr EA ;  
  mov a,#0x32
  mov dptr,#redir_INT0 ; redir_INT0 = reti = 0x32
  movx @dptr,a
  mov dptr,#redir_TF0 ; redir_TF0 = reti = 0x32
  movx @dptr,a
  mov dptr,#redir_TexF2 ; redir_TexF2 = reti = 0x32
  movx @dptr,a
  mov dptr,#redir_INT1 ; redir_INT1 = ljmp soft reset
  mov a,#0x02 ; ljmp = 0x02
  movx @dptr,a
  mov a,#high(soft_reset) ; soft_reset H
  inc dptr
  movx @dptr,a
  mov a,#low(soft_reset) ; soft reset L
  inc dptr
  movx @dptr,a
  setb EA ;  
 ret
;----------------------------------------------------
;