fields ee_iiccode ee_chipcode ee_halfcode ee_adr endfields ------------------------------------ -- ( sckpin , sdapin , )ee.init ------------------------------------ function ee.init begin )iic.init )iic.slow $A0 ->ee_iiccode return load from(iic.mpo) *iic.init *iic.slow ------------------------------------ -- ( chipcode )ee.setchip ------------------------------------ function ee.setchip begin <<1 ->ee_chipcode return --------------------------------- -- ( ladr )ee.setadress --------------------------------- function ee.setadress begin <<2 ->ee_adr >>16 <<3 ->ee_halfcode return ------------------------------------ -- )ee.read ----------------------------------- function ee.read -epr codes a begin )iic.start ( ee_iiccode |ee_chipcode |ee_halfcode ->codes )iic.send )iic.wack ( ee_adr >>8 &255 )iic.send )iic.wack ( ee_adr &255 )iic.send )iic.wack )iic.start ( codes |1 )iic.send )iic.wack )iic.rec <<24 ->a )iic.ack )iic.rec <<16 |a ->a )iic.ack )iic.rec <<8 |a ->a )iic.ack )iic.rec |a ->a )iic.wack )iic.stop +4,ee_adr< a return load from (iic.mpo) *iic.start *iic.send *iic.rec *iic.wack *iic.ack *iic.stop --------------------------------- -- ( data )ee.write --------------------------------- function ee.write -epw dt = 400000 x begin ->x )iic.start ( ee_iiccode |ee_chipcode |ee_halfcode )iic.send )iic.wack ( ee_adr >>8 &255 )iic.send )iic.wack ( ee_adr &255 )iic.send )iic.wack ( x N>>24 &255 )iic.send )iic.wack ( x >>16 &255 )iic.send )iic.wack ( x >>8 &255 )iic.send )iic.wack ( x &255 )iic.send )iic.wack )iic.stop +4,ee_adr< dt wait return load from(iic.mpo) *iic.start *iic.send *iic.wack *iic.stop --------------------------------- -- )ee.writepage -- write content in global array ee[32] -- use setadr to set adress. -- data are written to the page that -- contains the adress --------------------------------- function ee.pagewrite -pwr i dt = 80000 begin )iic.start ( ee_iiccode |ee_chipcode |ee_halfcode )iic.send )iic.wack ( ee_adr >>8 &255 )iic.send )iic.wack ( ee_adr &128 )iic.send )iic.wack 0 ->i :loop ( [i] ee )iic.send +1,i< if(i <128){ )iic.wack A:loop } )iic.stop dt wait return load from(iic.mpo) *iic.start *iic.send *iic.wack *iic.stop