Dropped ugly 'blocks' kludge for a 16-bit length field.
[goodfet] / firmware / include / command.h
index 5855699..fe3beb1 100644 (file)
@@ -1,7 +1,17 @@
-// Command handling functions.
+/*! \file command.h
+  \author Travis Goodspeed
+  \brief Command codes and buffers.
+*/
 
 //! Global data buffer.
-extern unsigned char cmddata[256];
+
+#ifndef CMDDATALEN
+#define CMDDATALEN 0x200
+#endif
+
+extern unsigned char cmddata[CMDDATALEN];
+extern unsigned char silent;
+
 #define cmddataword ((unsigned int*) cmddata)
 #define cmddatalong ((unsigned long*) cmddata)
 #define memorybyte ((unsigned char*) 0)
@@ -18,11 +28,24 @@ extern unsigned char cmddata[256];
 #define NOK   0x7E
 #define OK    0x7F
 
+#define DEBUGSTR 0xFF
+
 // Monitor Commands
 #define MONITOR_CHANGE_BAUD 0x80
 #define MONITOR_RAM_PATTERN 0x90
 #define MONITOR_RAM_DEPTH 0x91
 
+#define MONITOR_DIR 0xA0
+#define MONITOR_OUT 0xA1
+#define MONITOR_IN  0xA2
+
+#define MONITOR_SILENT 0xB0
+
+#define MONITOR_READBUF 0xC0
+#define MONITOR_WRITEBUF 0xC1
+#define MONITOR_SIZEBUF 0xC2
+
+
 //CHIPCON commands
 #define CC_CHIP_ERASE 0x80
 #define CC_WR_CONFIG 0x81
@@ -79,29 +102,45 @@ extern unsigned char cmddata[256];
 //! Handle a command.  Defined in goodfet.c
 void handle(unsigned char app,
            unsigned char verb,
-           unsigned  char len);
-
+           unsigned long len);
+//! Transmit a header.
+void txhead(unsigned char app,
+           unsigned char verb,
+           unsigned long len);
 //! Transmit data.
 void txdata(unsigned char app,
            unsigned char verb,
-           unsigned char len);
+           unsigned long len);
 //! Transmit a string.
 void txstring(unsigned char app,
              unsigned char verb,
              const char *str);
 
-//! Delay
+//! Receive a long.
+unsigned long rxlong();
+//! Receive a word.
+unsigned int rxword();
+
+//! Transmit a long.
+void txlong(unsigned long l);
+//! Transmit a word.
+void txword(unsigned int l);
+
+//! Transmit a debug string.
+void debugstr(const char *str);
+
+//! Delay for a count.
 void delay(unsigned int count);
 //! MSDelay
 void msdelay(unsigned int ms);
 
 
-void monitorhandle(unsigned char, unsigned char, unsigned char);
-void spihandle(unsigned char, unsigned char, unsigned char);
-void i2chandle(unsigned char, unsigned char, unsigned char);
-void cchandle(unsigned char, unsigned char, unsigned char);
-void jtaghandle(unsigned char, unsigned char, unsigned char);
-void jtag430handle(unsigned char, unsigned char, unsigned char);
+void monitorhandle(unsigned char, unsigned char, unsigned long);
+void spihandle(unsigned char, unsigned char, unsigned long);
+void i2chandle(unsigned char, unsigned char, unsigned long);
+void cchandle(unsigned char, unsigned char, unsigned long);
+void jtaghandle(unsigned char, unsigned char, unsigned long);
+void jtag430handle(unsigned char, unsigned char, unsigned long);
 void jtag430x2handle(unsigned char app, unsigned char verb,
-                    unsigned char len);
+                    unsigned long len);