; Orange programmer module v1.3 ; (c) 1999 Alex Plusov ; CHIP=PDH001 (16x16) Pioneer ; Software RECALL,STORE ; биты данных 0-15 ; Tested SOCKET=2 PINO=SK,0 PINO=DI,1 PINO=CE,2 PINO=RECALL,3 PINO=STORE,4 PINI=DO,1 CDELAY=5 ; one set delay [INIT] STORE=1 RECALL=1 CE=0 SK=0 RECALL=0,P=10 RECALL=1,P=5000 $VERSION=&0xFFFF,$VERSION?<0x128{EXIT} ;old version [READ] CE=0 SK=0 CE=1 DI=1,SK=1,SK=0 ; LOOP=(3,0){DI=ADR[I],SK=1,SK=0} ; out adr DI=1,SK=1,SK=0 ; \ read instruction DI=1,SK=1,SK=0 ; / DI=1,SK=1,SK=0 ; x DI=1 LOOP=(0,15){DATA[I]=DO,SK=1,SK=0} ; read data word CE=0 [WRITEINIT] CE=0 SK=0 [WRITE] CE=1 R0=10000100b LOOP=(7,0){DI=R0[I],SK=1,SK=0} ; out WREN CE=0 DI=0,SK=1,SK=0 CE=1 DI=1,SK=1,SK=0 LOOP=(3,0){DI=ADR[I],SK=1,SK=0} ; out adr DI=0,SK=1,SK=0 ; \ write instruction DI=1,SK=1,SK=0 ; / DI=1,SK=1,SK=0 ; x LOOP=(0,15){DI=DATA[I],SK=0,SK=1,SK=0} ; write data word CE=0 CE=1 R0=10000001b LOOP=(7,0){DI=R0[I],SK=1,SK=0} ; out soft STO CE=0 DI=0,SK=1,SK=0 P=10000 CE=1 R0=10000101b LOOP=(7,0){DI=R0[I],SK=1,SK=0} ; out soft RECALL CE=0 DI=0,SK=1,SK=0 P=5000