;
;          bios_1.txt
;    
;
;----------------------------------------------
  .cseg
   org (restt+int_vectors_syze)  ;    
 init:
	mov r0,#ramend ;      (mcs51)
	clr a
 cleen:
	mov @r0,a
	djnz r0,cleen
	mov @r0,a
    mov SP,#0x60 ; only this test	
;	mov sp,#?? ;     
	      ;   
;
;----------------------------------------------
;
;   
;
 disbam_hint:
    acall clin_reg_s51 ;    (  )
      orl TMOD,#(1<<M1_0) ; /  C/T1
      setb ET1 ;   /1    
      setb PT1 ;   /1 
 reboot_init:
 			setb IT1 ;   
      setb PX1 ;    irq_INT1
			setb EX1 ;   irq_INT1 
;
;-----------------------------------------------------------------
;
;    
;
 disbam_sint:
    mov out_port,#0xF0
    nop
    setb out_port.MR_SH
    nop
    setb out_port.WR_ST
    nop
    clr out_port.WR_ST ;     
		mov r1,#seg_preram
		mov @r1,#(1<<sg_a || 1<<sg_b || 1<<sg_c || 1<<sg_d || 1<<sg_g) ; 3
		inc r1
		mov @r1,#(1<<sg_a || 1<<sg_b || 1<<sg_d || 1<<sg_e || 1<<sg_g) ; 2
		inc r1
		mov @r1,#(1<<sg_b || 1<<sg_c) ; 1
		inc r1 ;        seg_preram
    mov @r1,#(1<<sg_a || 1<<sg_b || 1<<sg_c || 1<<sg_d || 1<<sg_e || 1<<sg_f) ; 0
    inc r1 ;        seg_preram
    mov @r1,#0b11110000 ;      uri_preram (max)
    inc r1 ;        uri_preram
    mov @r1,#0b11110000
    inc r1
    mov @r1,#0b11110000
    inc r1
    mov @r1,#0b11110000
;
    mov cnt_clk0,#62
    mov cnt_clk1,#2 ;    
;
    setb new_graf ;     new_graf
    lcall kadr_a ;  lcall kadr    
     mov TH1,#high tm_lin3
     mov TL1,#low tm_lin3 ;     T/C1
    setb EA ;  
    setb TR1 ;  -   
;
;-----------------------------------------------------------------
;
 demo_mode:
        jbc kend_mark,dmm0
       sjmp demo_mode
  dmm0:
         djnz cnt_clk0,demo_mode
          mov cnt_clk0,#62
           djnz cnt_clk1,demo_mode
          mov cnt_clk1,#2
 shift:
        mov a,(uri_preram +3)
				add a,#16
				mov (uri_preram +3),a
				mov r2,a
				anl a,#0x0F
				acall znak
				mov (seg_preram +1),a
				mov a,#0xF0
				anl a,r2
				swap a
				acall znak
				mov (seg_preram +2),a
				setb new_graf
			sjmp demo_mode
;
;
;-----------------------------------------------------------------
;        
;
;               " "
;
 kontrol:
       clr EA ;  
       orl out_port,#0xF0 ;  1
 pars_clr:
       clr out_port.MR_SH
       nop
       setb out_port.MR_SH
       setb out_port.WR_ST
       nop
       clr out_port.WR_ST ;    
                    ;  
       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
 kp_ap:
			 setb P3.KEY_EA
       nop
       nop
       ljmp 0x0000
 kp_end:
      nop
      jb P3.IND_L,kp_end
      mov r3,#0xFF
  kp_pt0:
      mov r2,#0xFF
  kp_pt1:
      djnz r2,kp_pt1
       djnz r3,kp_pt0
      jb P3.IND_L,kp_end ;   0
  kp_pt2:
     jnb  P3.IND_L,kp_pt2 ;  
      mov r3,#0xFF
  kp_pt3:
      mov r2,#0xFF
  kp_pt4:
      djnz r2,kp_pt4
       djnz r3,kp_pt3
      jnb  P3.IND_L,kp_pt2 ;   1
  acall clin_reg_s51
    reti ;    key_proc
;
  clin_reg_s51:
     mov P1,#0xFF ;
    clr a ; 
     mov IE,a
     mov IP,a
     mov TCON,a
     mov TMOD,a
     mov SCON,a
     mov AUXR,a
     mov AUXR1,a
     mov PCON,a
     mov PSW,a ;   
     ret
;
