; Orange programmer module v1.4 ; (c) 2005 CnCLab ; CHIP=S29590,1024x16,S29690.HPL ; CHIP=S29690,2048x16,S29690.HPL ; READ tested! SOCKET=2 ;"MW" PINO=CLK,0 PINO=DI,1 PINO=CS,2 PINO=TEST,3 PINO=NC,4 PINI=DO,1 CDELAY=4 ; one set delay [_WAITWR] LOOP=(0,10000){ DO?1{BREAK} P=10 } [INIT] TEST=0 CLK=0 CS=0 [READ] CS=0 CLK=0 CS=1 R0=11000b LOOP=(4,0){DI=R0[I],CLK=1,CLK=0} ; read instr. LOOP=(10,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 [WRITEINIT] CS=0 CLK=0 CS=1 R0=10011b LOOP=(4,0){DI=R0[I],CLK=1,CLK=0} ; PEN instr. R0=0 LOOP=(10,0){DI=R0[I],CLK=1,CLK=0} ; out dummy adr CS=0 [WRITE] CS=0 CLK=0 CS=1 R0=11100b LOOP=(4,0){DI=R0[I],CLK=1,CLK=0} ; wr instr. LOOP=(10,0){DI=ADR[I],CLK=1,CLK=0} ; out adr LOOP=(15,0){DI=DATA[I],CLK=1,CLK=0} ; write data word CS=0,DI=1,CS=1 ; check status P=20000 ;_WAITWR ;DO?1 CS=0