; Orange programmer module v1.0 ; (c) 2008 CnCLab ; CHIP=S29453,512x16,S29453.HPL ; NOT tested! SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINO=TEST,3 PINO=NC,4 PINI=DO,5 CDELAY=10 ; one set delay [_WAITWR] LOOP=(0,10000){ DO?1{BREAK} P=10 } [READ] CS=1 CLK=1 DI=0 CS=0 CLK=0 R0=1010100b LOOP=(6,0){DI=R0[I],CLK=1,CLK=0} ; read instr. LOOP=(8,0){DI=ADR[I],CLK=1,CLK=0} ; out adr LOOP=(15,0){CLK=1,DATA[I]=DO,CLK=0} ; read data word CS=0 [WRITEINIT] CS=1 CLK=1 DI=0 CS=0 CLK=0 R0=10100011b LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ; ;EWEN R0=0 LOOP=(7,0){DI=R0[I],CLK=1,CLK=0} ;;8 dummy CLK=1 CS=1 P=10 [WRITE] CS=1 CLK=1 DI=0 CS=0 CLK=0 R0=1010010b LOOP=(6,0){DI=R0[I],CLK=1,CLK=0} ; WR instr. LOOP=(8,0){DI=ADR[I],CLK=1,CLK=0} ; out adr LOOP=(15,0){DI=DATA[I],CLK=1,CLK=0} ; write data word CS=1 P=20000 CS=0 _WAITWR CS=1