; Orange programmer module v1.3 ; (c) 1999-2002 Victor Filipyev,Valery Fomin ; CHIP=TC89101P (64x16), TC89102P (128x16) SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINO=ORG,3 PINI=DO,1 CDELAY=5 ; one set delay [READ] ORG=1,CS=1,CLK=1 CS=0 LOOP=(0,6){CLK=0,DI=ADR[I],CLK=1} ; out adr CLK=0,DI=0,CLK=1 R0=10000000B LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; READ instr DI=1 LOOP=(0,15){CLK=0,CLK=1,DATA[I]=DO} ; read data word CS=1,CLK=1 [WRITEINIT] ORG=1,CS=1,CLK=1,CS=0 R0=255 LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; Dimmy R0=10010000B LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; E/W Enable CS=1,CLK=1 [WRITE] CS=0 LOOP=(0,6){CLK=0,DI=ADR[I],CLK=1} ; out adr DI=0,CLK=0,CLK=1 R0=01100000B LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; PROGRAM instr LOOP=(0,15){CLK=0,DI=DATA[I],CLK=1} ; write data word CS=1 P=40000 [WRITEEND] CLK=1,CS=0 R0=255 LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; Dimmy R0=11010000B LOOP=(7,0){CLK=0,DI=R0[I],CLK=1} ; E/W Disable CS=1,CLK=1