X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fchipcon%2Fchipcon.c;h=c2b783809d6e7c540468a66252dd8f4005747e71;hp=d2f70ac9cb1d920b6d9ca7950e86f2a2a0c9fc42;hb=200cf8b44b4f39dfb975bac6fae35543b2c9c51a;hpb=042a155324ef5b76951e0194f61ab28c1c0521ce diff --git a/firmware/apps/chipcon/chipcon.c b/firmware/apps/chipcon/chipcon.c index d2f70ac..c2b7838 100644 --- a/firmware/apps/chipcon/chipcon.c +++ b/firmware/apps/chipcon/chipcon.c @@ -148,6 +148,7 @@ void cchandle(unsigned char app, //Might hurt too. //ccdebuginit(); long i; + int blocklen, blockadr; switch(verb){ //CC_PEEK and CC_POKE will come later. @@ -187,6 +188,7 @@ void cchandle(unsigned char app, //Micro commands! case CC_CHIP_ERASE: + case CC_MASS_ERASE_FLASH: cc_chip_erase(); txdata(app,verb,1); break; @@ -244,9 +246,18 @@ void cchandle(unsigned char app, txdata(app,verb,1); break; case CC_READ_XDATA_MEMORY: - cmddata[0]=cc_peekdatabyte(cmddataword[0]); + //Read the length. + blocklen=1; + if(len>2) + blocklen=cmddataword[1]; + blockadr=cmddataword[0]; + + //Return that many bytes. + for(i=0;i