; Orange programmer module v3.1 ; (c) 2000-2001 Gennadi K.,Victor Filipyev,Valery Fomin, Alex Plusov ; CHIP=NMC9306,NMC9307 (16x16), ; NMC9345,NMC9346,NMC9314 (64x16) National Semiconductor ; Microwire with dummy bit and force erase ; Ford's 7002MN010 ; Samsung KM93c46 SOCKET=2 PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINI=DO,1 PINO=ORG,3 TESTMASK=11110000 CDELAY=5 ; one set delay [INIT] CS=0 ORG=1 CLK=0 DI=0 [READ] CS=1 R0=0110B LOOP=(3,0){DI=R0[I],CLK=1,CLK=0} ; READ instr LOOP=(5,0){DI=ADR[I],CLK=1,CLK=0} ; out adr DI=1 LOOP=(15,0){CLK=1,CLK=0,DATA[I]=DO} ; read data word CS=0 [WRITE] CS=1 R0=0100110000B LOOP=(9,0){DI=R0[I],CLK=1,CLK=0} ; EWEN instr CS=0,DI=0,CLK=0,CS=1 R0=0111B LOOP=(3,0){DI=R0[I],CLK=1,CLK=0} ; ERASE instr LOOP=(5,0){DI=ADR[I],CLK=1,CLK=0} ; out adr CS=0 P=25000 DI=0,CLK=0,CS=1 R0=0101B LOOP=(3,0){DI=R0[I],CLK=1,CLK=0} ; WRITE instr LOOP=(5,0){DI=ADR[I],CLK=1,CLK=0} ; out adr LOOP=(15,0){CLK=0,DI=DATA[I],CLK=1} ; write data word CS=0 CLK=0 P=25000 [WRITEEND] CLK=0,DI=0,CS=1 R0=0100000000B LOOP=(9,0){DI=R0[I],CLK=1,CLK=0} ; EWDS instr CS=0