
;_________________________________________________________________ 
;--------------------------MAIN CODE------------------------------ 
;_________________________________________________________________ 



brw_main: 
     mov sp,#64h 
     mov p1,#0ffh 
     mov ie,#00h 
     acall s9k_main 


;_________________________________________________________________ 
;--------------------FULL WRITE SUBROUTINE------------------------ 
;_________________________________________________________________ 



full_write: 
      setb ROLLOVER ;indicates memory write into 1st half 
      mov ADDRS,#00h 
      mov WTCMD,#10100000B 

full_write_loop1: 
      acall rx_main 
      acall tx_main 

      mov I2C_IN,a 
      acall WRITE_iic 
      inc ADDRS 
      mov a,ADDRS 
      cjne a,#0ffh,full_write_loop2 

      jnb ROLLOVER,overload 
      mov WTCMD,#10100010B 
      mov ADDRS,#00h 
      clr ROLLOVER ;indicates memory write into 2nd half 

      full_write_loop2: 
      mov a,I2C_IN 
      cjne a,#27,full_write_loop1 

      mov dptr,#disp_leadthrough_complete 
      acall disp_message 
      ;sjmp $ 
      sjmp full_read ;delete this n enable previous inst 


;_________________________________________________________________ 
;-----------------MEMORY OVERWRITE PREVENTION--------------------- 
;_________________________________________________________________ 



overload: 
    mov dptr,#disp_overload 
    acall disp_message 
    sjmp $ 


;_________________________________________________________________ 
;--------------------FULL READ SUBROUTINE------------------------ 
;_________________________________________________________________ 



full_read: 
   mov ADDRS,#00h 
   mov RDCMD,#10100001B 

   mov dptr, #disp_executing_task 
   acall disp_message 

full_read_loop1: 
   acall READ_iic 
   mov a,I2C_OUT 
   lcall tx_main 
   inc ADDRS 

    mov a,ADDRS 
    cjne a,#0ffh,full_read_loop2 

    mov RDCMD,#10100011B 
    mov ADDRS,#00h 

full_read_loop2: 
    mov a,I2C_OUT 
    cjne a,#27,full_read_loop1 

    mov dptr, #disp_finish_read 
    acall disp_message 


    SJMP FULL_WRITE 


end 
