From 1dd2335295d411a7965a936e7c8535ea86fcd877 Mon Sep 17 00:00:00 2001
From: "adam@algroup.co.uk"
 <adam@algroup.co.uk@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Date: Sun, 12 Jul 2009 10:02:57 +0000
Subject: [PATCH] compile clean and flasher targets

---
 armsrc/Makefile.linux |   4 +-
 armsrc/appmain.c      |  12 ++--
 winsrc/command.cpp    | 132 +++++++++++++++++++++---------------------
 3 files changed, 75 insertions(+), 73 deletions(-)

diff --git a/armsrc/Makefile.linux b/armsrc/Makefile.linux
index baf4adb1..897a6b12 100644
--- a/armsrc/Makefile.linux
+++ b/armsrc/Makefile.linux
@@ -74,13 +74,15 @@ $(OBJFAST): $(OBJDIR)/%.o : %.c
 $(OBJCOMMON): $(OBJDIR)/%.o : ../common/%.c
 	$(CC) $(CFLAGS) $< -o $@
 
-# Those do not work on the current firmware !
+flash-both: flash flash-fpga
+
 flash-fpga: fpgaimage.s19
 	../linux/flasher fpga fpgaimage.s19
 
 flash: osimage.s19
 	../linux/flasher os osimage.s19
 
+# Those do not work on the current firmware !
 jtag-flash-full: fullimage.s19
 	../../OpenOCD/openocd -c "halt; flash write_image fullimage.s19 0x00100000; halt; reset; resume; poll; exit"
 
diff --git a/armsrc/appmain.c b/armsrc/appmain.c
index c8462649..77bbbbc4 100644
--- a/armsrc/appmain.c
+++ b/armsrc/appmain.c
@@ -144,7 +144,7 @@ void ModThenAcquireRawAdcSamples125k(int delay_off,int period_0,int period_1,BYT
 	BOOL at134khz;
 
 	// see if 'h' was specified
-	if(command[strlen(command) - 1] == 'h')
+	if(command[strlen((char *) command) - 1] == 'h')
 		at134khz= TRUE;
 	else
 		at134khz= FALSE;
@@ -241,7 +241,7 @@ static int AvgAdc(int ch)
 void SweepLFrange()
 {
 	BYTE *dest = (BYTE *)BigBuf;
-	BYTE dummy[12];
+	char dummy[12];
 	int i, peak= 0, ptr= 0;
 	double freq;
 
@@ -939,8 +939,8 @@ void SpinDelay(int ms)
 // listen for external reader 
 void ListenReaderField(int limit)
 {
-	int lf_av, lf_av_new, lf_baseline= -1, lf_count= 0;
-	int hf_av, hf_av_new,  hf_baseline= -1, hf_count= 0;
+	int lf_av, lf_av_new, lf_baseline= 0, lf_count= 0;
+	int hf_av, hf_av_new,  hf_baseline= 0, hf_count= 0;
 
 #define LF_ONLY		1
 #define HF_ONLY		2
@@ -952,7 +952,7 @@ void ListenReaderField(int limit)
 
 	lf_av= ReadAdc(ADC_CHAN_LF);
 
-	if(limit != HF_ONLY && lf_baseline ==  -1) 
+	if(limit != HF_ONLY) 
 		{
 		DbpString("LF 125/134 Baseline:");
 		DbpIntegers(lf_av,0,0);
@@ -962,7 +962,7 @@ void ListenReaderField(int limit)
 	hf_av= ReadAdc(ADC_CHAN_HF);
 
 
-	if (limit != LF_ONLY && hf_baseline == -1) 
+	if (limit != LF_ONLY) 
 		{
 		DbpString("HF 13.56 Baseline:");
 		DbpIntegers(hf_av,0,0);
diff --git a/winsrc/command.cpp b/winsrc/command.cpp
index b5d3e3d7..349ede69 100644
--- a/winsrc/command.cpp
+++ b/winsrc/command.cpp
@@ -701,7 +701,7 @@ static void CmdLoCommandRead(char *str)
 	
 	UsbCommand c;
 	c.cmd = CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K;
-	sscanf(str, "%i %i %i %s %s", &c.ext1, &c.ext2, &c.ext3, &c.d.asBytes,&dummy+1);
+	sscanf(str, "%i %i %i %s %s", &c.ext1, &c.ext2, &c.ext3, (char *) &c.d.asBytes,(char *) &dummy+1);
 	// in case they specified 'h'
 	strcpy((char *)&c.d.asBytes + strlen((char *)c.d.asBytes), dummy);
 	SendCommand(&c, FALSE);
@@ -2580,71 +2580,71 @@ static struct {
 	int		offline;  // 1 if the command can be used when in offline mode
 	char		*docString;
 } CommandTable[] = {
-	"askdemod",			Cmdaskdemod,1,		"<samples per bit> <0|1> -- Attempt to demodulate simple ASK tags",
-	"autocorr",			CmdAutoCorr,1,		"<window length> -- Autocorrelation over window",
-	"bitsamples",		CmdBitsamples,0,	"    Get raw samples as bitstring",
-	"bitstream",		Cmdbitstream,1,		"[clock rate] -- Convert waveform into a bitstream",
-	"buffclear",		CmdBuffClear,0,		"    Clear sample buffer and graph window",
-	"dec",				CmdDec,1,		"    Decimate samples",
-	"detectclock",		Cmddetectclockrate,1, "    Detect clock rate",
-	"detectreader",		CmdDetectReader,0, "['l'|'h'] -- Detect external reader field (option 'l' or 'h' to limit to LF or HF)",
-	"em410xsim",		CmdEM410xsim,1,		"<UID> -- Simulate EM410x tag",
-	"em410xread",		CmdEM410xread,1,	"[clock rate] -- Extract ID from EM410x tag",
-	"em410xwatch",		CmdEM410xwatch,0,	"    Watches for EM410x tags",
-	"em4x50read",		CmdEM4x50read,1,	"    Extract data from EM4x50 tag",
-	"exit",				CmdQuit,1,			"    Exit program",
-	"flexdemod",		CmdFlexdemod,1,		"    Demodulate samples for FlexPass",
-	"fpgaoff",			CmdFPGAOff,0,		"    Set FPGA off",							// ## FPGA Control
-	"hexsamples",		CmdHexsamples,0,	"<blocks> -- Dump big buffer as hex bytes",
-	"hi14alist",		CmdHi14alist,0,		"    List ISO 14443a history",				// ## New list command
-	"hi14areader",		CmdHi14areader,0,	"    Act like an ISO14443 Type A reader",	// ## New reader command
-	"hi14asim",			CmdHi14asim,0,		"<UID> -- Fake ISO 14443a tag",					// ## Simulate 14443a tag
-	"hi14asnoop",		CmdHi14asnoop,0,	"    Eavesdrop ISO 14443 Type A",			// ## New snoop command
-	"hi14bdemod",		CmdHi14bdemod,1,	"    Demodulate ISO14443 Type B from tag",
-	"hi14list",			CmdHi14list,0,		"    List ISO 14443 history",
-	"hi14read",			CmdHi14read,0,		"    Read HF tag (ISO 14443)",
-	"hi14sim",			CmdHi14sim,0,		"    Fake ISO 14443 tag",
-	"hi14snoop",		CmdHi14snoop,0,		"    Eavesdrop ISO 14443",
-	"hi15demod",		CmdHi15demod,1,		"    Demodulate ISO15693 from tag",
-	"hi15read",			CmdHi15read,0,		"    Read HF tag (ISO 15693)",
-	"hi15reader",		CmdHi15reader,0,	"    Act like an ISO15693 reader", // new command greg
-	"hi15sim",			CmdHi15tag,0,		"    Fake an ISO15693 tag", // new command greg
-	"hiddemod",			CmdHiddemod,1,		"    Demodulate HID Prox Card II (not optimal)",
-	"hide",				CmdHide,1,		"    Hide graph window",
-	"hidfskdemod",		CmdHIDdemodFSK,0,	"    Realtime HID FSK demodulator",
-	"hidsimtag",		CmdHIDsimTAG,0,		"<ID> -- HID tag simulator",
-	"higet",			CmdHi14read_sim,0,	"<samples> -- Get samples HF, 'analog'",
-	"hisamples",		CmdHisamples,0,		"    Get raw samples for HF tag",
-	"hisampless",		CmdHisampless,0,	"<samples> -- Get signed raw samples, HF tag",
-	"hisamplest",		CmdHi14readt,0,		"    Get samples HF, for testing",
-	"hisimlisten",		CmdHisimlisten,0,	"    Get HF samples as fake tag",
-	"hpf",				CmdHpf,1,		"    Remove DC offset from trace",
-    	"indalademod",		CmdIndalademod,0,         "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)",
-	"lcd",				CmdLcd,0,			"<HEX command> <count> -- Send command/data to LCD",
-	"lcdreset",			CmdLcdReset,0,		"    Hardware reset LCD",
-	"load",				CmdLoad,1,		"<filename> -- Load trace (to graph window",
-	"locomread",			CmdLoCommandRead,0,		"<off period> <'0' period> <'1' period> <command> ['h'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'h' for 134)",
-	"loread",			CmdLoread,0,		"['h'] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134)",
-	"losamples",		CmdLosamples,0,		"[128 - 16000] -- Get raw samples for LF tag",
-	"losim",			CmdLosim,0,		"    Simulate LF tag",
-	"ltrim",			CmdLtrim,1,		"<samples> -- Trim samples from left of trace",
-	"mandemod",			Cmdmanchesterdemod,1,	"[i] [clock rate] -- Manchester demodulate binary stream (option 'i' to invert output)",
-	"manmod",			Cmdmanchestermod,1,	"[clock rate] -- Manchester modulate a binary stream",
-	"norm",				CmdNorm,1,		"    Normalize max/min to +/-500",
-	"plot",				CmdPlot,1,		"    Show graph window",
-	"quit",				CmdQuit,1,			"    Quit program",
-	"reset",			CmdReset,0,			"    Reset the Proxmark3",
-	"save",				CmdSave,1,		"<filename> -- Save trace (from graph window)",
-	"scale",			CmdScale,1,		"<int> -- Set cursor display scale",
-	"setlfdivisor",		CmdSetDivisor,0,	"<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)",
-	"sri512read",		CmdSri512read,0,	"<int> -- Read contents of a SRI512 tag",
-	"sweeplf",			CmdSweepLF,0,		"    Sweep through LF freq range and store results in buffer",
-	"tibits",			CmdTibits,0,		"    Get raw bits for TI-type LF tag",
-	"tidemod",			CmdTidemod,0,		"    Demodulate raw bits for TI-type LF tag",
-	"tiread",			CmdTiread,0,		"    Read a TI-type 134 kHz tag",
-	"tune",				CmdTune,0,		"    Measure antenna tuning",
-	"vchdemod",			CmdVchdemod,0,		"['clone'] -- Demodulate samples for VeriChip",
-	"zerocrossings",	CmdZerocrossings,1,	"    Count time between zero-crossings",
+	{"askdemod",			Cmdaskdemod,1,		"<samples per bit> <0|1> -- Attempt to demodulate simple ASK tags"},
+	{"autocorr",			CmdAutoCorr,1,		"<window length> -- Autocorrelation over window"},
+	{"bitsamples",		CmdBitsamples,0,	"    Get raw samples as bitstring"},
+	{"bitstream",		Cmdbitstream,1,		"[clock rate] -- Convert waveform into a bitstream"},
+	{"buffclear",		CmdBuffClear,0,		"    Clear sample buffer and graph window"},
+	{"dec",				CmdDec,1,		"    Decimate samples"},
+	{"detectclock",		Cmddetectclockrate,1, "    Detect clock rate"},
+	{"detectreader",		CmdDetectReader,0, "['l'|'h'] -- Detect external reader field (option 'l' or 'h' to limit to LF or HF)"},
+	{"em410xsim",		CmdEM410xsim,1,		"<UID> -- Simulate EM410x tag"},
+	{"em410xread",		CmdEM410xread,1,	"[clock rate] -- Extract ID from EM410x tag"},
+	{"em410xwatch",		CmdEM410xwatch,0,	"    Watches for EM410x tags"},
+	{"em4x50read",		CmdEM4x50read,1,	"    Extract data from EM4x50 tag"},
+	{"exit",				CmdQuit,1,			"    Exit program"},
+	{"flexdemod",		CmdFlexdemod,1,		"    Demodulate samples for FlexPass"},
+	{"fpgaoff",			CmdFPGAOff,0,		"    Set FPGA off"},							// ## FPGA Control
+	{"hexsamples",		CmdHexsamples,0,	"<blocks> -- Dump big buffer as hex bytes"},
+	{"hi14alist",		CmdHi14alist,0,		"    List ISO 14443a history"},				// ## New list command
+	{"hi14areader",		CmdHi14areader,0,	"    Act like an ISO14443 Type A reader"},	// ## New reader command
+	{"hi14asim",			CmdHi14asim,0,		"<UID> -- Fake ISO 14443a tag"},					// ## Simulate 14443a tag
+	{"hi14asnoop",		CmdHi14asnoop,0,	"    Eavesdrop ISO 14443 Type A"},			// ## New snoop command
+	{"hi14bdemod",		CmdHi14bdemod,1,	"    Demodulate ISO14443 Type B from tag"},
+	{"hi14list",			CmdHi14list,0,		"    List ISO 14443 history"},
+	{"hi14read",			CmdHi14read,0,		"    Read HF tag (ISO 14443)"},
+	{"hi14sim",			CmdHi14sim,0,		"    Fake ISO 14443 tag"},
+	{"hi14snoop",		CmdHi14snoop,0,		"    Eavesdrop ISO 14443"},
+	{"hi15demod",		CmdHi15demod,1,		"    Demodulate ISO15693 from tag"},
+	{"hi15read",			CmdHi15read,0,		"    Read HF tag (ISO 15693)"},
+	{"hi15reader",		CmdHi15reader,0,	"    Act like an ISO15693 reader"}, // new command greg
+	{"hi15sim",			CmdHi15tag,0,		"    Fake an ISO15693 tag"}, // new command greg
+	{"hiddemod",			CmdHiddemod,1,		"    Demodulate HID Prox Card II (not optimal)"},
+	{"hide",				CmdHide,1,		"    Hide graph window"},
+	{"hidfskdemod",		CmdHIDdemodFSK,0,	"    Realtime HID FSK demodulator"},
+	{"hidsimtag",		CmdHIDsimTAG,0,		"<ID> -- HID tag simulator"},
+	{"higet",			CmdHi14read_sim,0,	"<samples> -- Get samples HF, 'analog'"},
+	{"hisamples",		CmdHisamples,0,		"    Get raw samples for HF tag"},
+	{"hisampless",		CmdHisampless,0,	"<samples> -- Get signed raw samples, HF tag"},
+	{"hisamplest",		CmdHi14readt,0,		"    Get samples HF, for testing"},
+	{"hisimlisten",		CmdHisimlisten,0,	"    Get HF samples as fake tag"},
+	{"hpf",				CmdHpf,1,		"    Remove DC offset from trace"},
+    	{"indalademod",		CmdIndalademod,0,         "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},
+	{"lcd",				CmdLcd,0,			"<HEX command> <count> -- Send command/data to LCD"},
+	{"lcdreset",			CmdLcdReset,0,		"    Hardware reset LCD"},
+	{"load",				CmdLoad,1,		"<filename> -- Load trace (to graph window"},
+	{"locomread",			CmdLoCommandRead,0,		"<off period> <'0' period> <'1' period> <command> ['h'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'h' for 134)"},
+	{"loread",			CmdLoread,0,		"['h'] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134)"},
+	{"losamples",		CmdLosamples,0,		"[128 - 16000] -- Get raw samples for LF tag"},
+	{"losim",			CmdLosim,0,		"    Simulate LF tag"},
+	{"ltrim",			CmdLtrim,1,		"<samples> -- Trim samples from left of trace"},
+	{"mandemod",			Cmdmanchesterdemod,1,	"[i] [clock rate] -- Manchester demodulate binary stream (option 'i' to invert output)"},
+	{"manmod",			Cmdmanchestermod,1,	"[clock rate] -- Manchester modulate a binary stream"},
+	{"norm",				CmdNorm,1,		"    Normalize max/min to +/-500"},
+	{"plot",				CmdPlot,1,		"    Show graph window"},
+	{"quit",				CmdQuit,1,			"    Quit program"},
+	{"reset",			CmdReset,0,			"    Reset the Proxmark3"},
+	{"save",				CmdSave,1,		"<filename> -- Save trace (from graph window)"},
+	{"scale",			CmdScale,1,		"<int> -- Set cursor display scale"},
+	{"setlfdivisor",		CmdSetDivisor,0,	"<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"},
+	{"sri512read",		CmdSri512read,0,	"<int> -- Read contents of a SRI512 tag"},
+	{"sweeplf",			CmdSweepLF,0,		"    Sweep through LF freq range and store results in buffer"},
+	{"tibits",			CmdTibits,0,		"    Get raw bits for TI-type LF tag"},
+	{"tidemod",			CmdTidemod,0,		"    Demodulate raw bits for TI-type LF tag"},
+	{"tiread",			CmdTiread,0,		"    Read a TI-type 134 kHz tag"},
+	{"tune",				CmdTune,0,		"    Measure antenna tuning"},
+	{"vchdemod",			CmdVchdemod,0,		"['clone'] -- Demodulate samples for VeriChip"},
+	{"zerocrossings",	CmdZerocrossings,1,	"    Count time between zero-crossings"},
 };
 
 
-- 
2.39.5