; Orange programmer module v1.9 ; (c) 2000-2010 CnCLab ; CHIP=NMC9306 (16x16) with dummy bit (like Ford's 7002MN010) SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINI=DO,1 CDELAY=8 ; one set delay [READ] CS=0 CLK=0 DI=0 CS=1 R0=011000B LOOP=(5,0){DI=R0[I],CLK=1,CLK=0} ; READ instruction LOOP=(3,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=0 CLK=0 DI=0 CS=1 R0=0100110000B ; EWEN instruction LOOP=(9,0){DI=R0[I],CLK=1,CLK=0} CS=0 DI=0 CLK=0 CS=1 R0=011100B ; ERASE instr LOOP=(5,0){DI=R0[I],CLK=1,CLK=0} LOOP=(3,0){DI=ADR[I],CLK=1,CLK=0} ; out adr CS=0 P=20000 DI=0 CLK=0 CS=1 R0=010100B ; WRITE instr LOOP=(5,0){DI=R0[I],CLK=1,CLK=0} LOOP=(3,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 P=20000 [WRITEEND] CLK=0 DI=0 CS=1 R0=0100000000B ; EWDS instr LOOP=(9,0){DI=R0[I],CLK=1,CLK=0} CS=0