; Orange programmer module v1.5 ; (c) 2005 Gennadi K., CnCLab ; CHIP=X24C00 Xicor ! (16x8) ; Tested ! SOCKET=1 ;"I2C" PING=SCL,0 PING=SDA,1 PINO=A0, 3 PINO=A1, 4 PINO=A2, 5 TESTMASK=00001100 CDELAY = 4 ; one set delay [INIT] A0=0,A1=0,A2=0 [READ] SDA=1,SCL=1,SDA=0,SCL=0 ;start R0=10b LOOP=(1,0) {SDA=R0[I],SCL=P} ; out 2 control bits LOOP=(3,0) {SDA=ADR[I],SCL=P} ; out 4 adress bits R0=00b LOOP=(1,0){SDA=R0[I],SCL=P} ; out 2 dummy bits LOOP=(7,0){SDA=1,SCL=1,DATA[I]=SDA,SCL=0} ;read 8 bits SCL=0,SCL=1,SDA=1 ;stop [WRITE] P=10 SDA=1,SCL=1,SDA=0,SCL=0 ;start R0=01b LOOP=(1,0){SDA=R0[I],SCL=P} ; out 2 control bits LOOP=(3,0){SDA=ADR[I],SCL=P} ; out 4 adress bits R0=00b LOOP=(1,0){SDA=R0[I],SCL=P} ; out 2 dummy bits LOOP=(7,0){SDA=DATA[I],SCL=P} ; write 8 bits SCL=0,SCL=1,SDA=1 ;stop P=25000