; Orange programmer module v1.3 ; (c) 1999-2002 Victor Filipyev ; CHIP=TC89121 (128x8) SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINO=ORG,3 PINI=DO,1 CDELAY=30 ; one set delay [READ] ORG=1 CS=1 CLK=0 CS=0 LOOP=(0,7){DI=ADR[I],CLK=1,CLK=0} ; out adr R0=10000000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} DI=1 LOOP=(0,7){CLK=1,DATA[I]=DO,CLK=0} ; read data word CS=1 [WRITEINIT] ORG=1 CS=1 CLK=0 CS=0 R0=0 LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} R0=10010000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ; out EWEN CS=1 [WRITE] CS=1 CLK=0 CS=0 LOOP=(0,7){DI=ADR[I],CLK=1,CLK=0} ; out adr R0=01100000b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} LOOP=(0,7){CLK=0,DI=DATA[I],CLK=1} ; write data word ;CS=0,DI=1,CS=1 ; check status P=5000 ;DO?1 CS=1