; Orange programmer module v3.3 ; (c) 2001-2002 Valery Fomin,CnCLab ; CHIP=M6M80011,64x16 ; CHIP=M6M80021,128x16 ; CHIP=M6M80041,256x16 ;Tested! SOCKET=2 ;"MW" PINO=SCK,0 PINO=DI,1 PINO=CS,2 PINO=RES,3 PINO=RDI,4 PINI=DO,1 CDELAY=6 ; one set delay [INIT] RES=1 RDI=1 ;chip output! CS=1,SCK=1,RES=0,P=100 [READ] CS=0 R0=10101000B LOOP=(7,0){DI=R0[I],SCK=0,SCK=1} ; READ instr LOOP=(0,7){DI=ADR[I],SCK=0,SCK=1} ; out address DI=1 ; High-Z LOOP=(0,15){SCK=0,DATA[I]=DO,SCK=1} ; read data CS=1 [WRITEINIT] CS=0 R0=1010001100000000B LOOP=(15,0){DI=R0[I],SCK=0,SCK=1} ; EWEN instr CS=1 [WRITE] CS=0 R0=10100100B LOOP=(7,0){DI=R0[I],SCK=0,SCK=1} ; PROGRAM instr LOOP=(0,7){DI=ADR[I],SCK=0,SCK=1} ; out address LOOP=(0,15){DI=DATA[I],SCK=0,SCK=1} ; write data P=30000 CS=1