; Orange programmer module v1.1 ; (c) 2002-2003 CnCLab ; Seiko EEPROM ; CHIP=S29190A,64x16 ; CHIP=S29290A,128x16 ; CHIP=S29390A,256x16 ; tested! SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINO=TEST,3 ;PINO=NC,4 PINI=DO,1 CDELAY=4 ; one set delay [INIT] CS=0 CLK=0 TEST=0 [READ] CS=1 R0=11000000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ;read instruction LOOP=(7,0){DI=ADR[I],CLK=1,CLK=0} ; out adr DI=1 LOOP=(15,0){CLK=1,DATA[I]=DO,CLK=0} ; read data word CS=0 [WRITEINIT] CS=1 R0=10011000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ; out EWEN R0=0 LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ; ... next 8 bit ? CS=0 [WRITE] CS=1 R0=10100000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ;read instruction LOOP=(7,0){DI=ADR[I],CLK=1,CLK=0} ; out adr LOOP=(15,0){DI=DATA[I],CLK=1,CLK=0} ; write data word CS=0,DI=1,CS=1 ; P=10000 ; Tpr CS=0