This is a diff between the two versions I had available in my repo, so that I could patch my current working sources. I don't gaurantee it working, but it is a straight up diff between the old and the new:
Code:
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/ifi_utilities.c ./ifi_utilities.c
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/ifi_utilities.c Thu Jan 12 05:56:02 2006
+++ ./ifi_utilities.c Wed Jan 4 16:33:12 2006
@@ -27,7 +27,6 @@
int ifi_packet_num1 = 0;
int ifi_last_packet1 = 0;
-char ifi_printfBufr[80];
unsigned char *ptr;
unsigned char ifi_count;
unsigned char ifi_analog_channels;
@@ -88,33 +87,6 @@ void PrintWord(unsigned int odata)
TXREG = 13; /* add a carriage return */
Wait4TXEmpty();
}
-
-
-/*******************************************************************************
-* FUNCTION NAME: PrintString
-* PURPOSE: Prints a string to the serial port.
-* CALLED FROM: anywhere
-* ARGUMENTS: none
-* Argument Type IO Description
-* -------- ------------- -- -----------
-* bufr pointer I word of data to be transmitted
-* RETURNS: void
-*******************************************************************************/
-void PrintString(char *bufr)
-{
- static int len,I;
-
- strcpypgm2ram (ifi_printfBufr,(rom char *) bufr); /*Move from flash to ram*/
- len = (int) strlen((const char *)ifi_printfBufr);
- if (len > 80) len = 80;
-
- for (I=0;I<len;I++)
- {
- TXREG = ifi_printfBufr[i];
- Wait4TXEmpty();
- }
-}
-
/*******************************************************************************
* FUNCTION NAME: DisplayBufr
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/ifi_utilities.h ./ifi_utilities.h
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/ifi_utilities.h Thu Jan 12 05:56:02 2006
+++ ./ifi_utilities.h Wed Jan 4 16:33:46 2006
@@ -74,7 +74,6 @@ void Generate_Pwms(unsigned char pwm_1,u
void Wait4TXEmpty(void);
void PrintByte(unsigned char odata);
void PrintWord(unsigned int odata);
-void PrintString(char *bufr);
void DisplayBufr(unsigned char *bufr);
void PacketNum_Check(void);
void Initialize_Serial_Comms (void);
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/readme.txt ./readme.txt
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/readme.txt Wed Dec 31 19:00:00 1969
+++ ./readme.txt Mon Oct 10 14:26:42 2005
@@ -0,0 +1,65 @@
+This directory contains the default code for the Innovation First 2006 Full-size Robot Controller.
+
+To compile this code you must have Microchip's MPLAB IDE (v7.2) with their C18 compiler (v2.4) installed on your system.
+
+If you wish to restore your Full-size Robot Controller to the default functionality as shipped from the factory, use the IFI Loader application to download the FRC_default.hex file to your Robot Controller.
+
+CAUTION: Do not relocate this FrcCode directory very deep in your directory tree. This is because the Microchip compiler has a 64 character path/filename limit. We suggest placing it in a directory named C:\mcc18\Projects\
+
+Notes:
+Use FRC_library.lib (default) if you plan to use the Generate_Pwms() function. This uses Timer0 to synchronize any PWM outputs generated by the User processor to make sure they avoid any SPI interrupts.
+If you want to use Timer0 yourself, then you can replace FRC_library.lib with FRC_alltimers.lib in the project.
+
+
+www.InnovationFirst.com
+10/10/2005
+- Added a checksum to the breaker panel packet
+- now using <stdio.h>, compiler needs -nw=2066 to suppress warnings (under project->build options->project->MPLAB C18->Use Alternate Settings)
+- Note: when using a 'printf' use a '\r' rather than a '\n' with the C18 compiler (v2.4 or later)
+
+11/12/2004
+- Added user_SerialDrv.c - device driver for the uart
+- Added code to handle packets from the breaker panel
+
+2/26/2004
+- ifi_aliases.h
+ Changed "competition_mode" alias to "disabled_mode" to be more accurate.
+ Added comment explaining that this bit is 1 when the RC is disabled.
+- ifi_default.h
+ Corrected comment regarding "disabled" bit. This bit is 1 when disabled.
+
+2/24/2004
+- user_routines_fast.c
+ Added interrupt enable check to interrupt service routine to ensure that disabled interrupts are not serviced.
+ Also all PWM and Relay outputs are initialized to neutral when entering Autonomous. This fixes a problem where the last PWM values are remembered and stuck throughout Autonomous mode when switching from Disabled to Autonomous.
+- ifi_aliases.h
+ Added aliases for the CCP pins (PWM OUTPUTS 13-16).
+ These can be used as digital outputs (not inputs) when properly configured.
+- README.txt (this file)
+ Added recommended directory for code placement.
+
+
+2/18/2004
+- ifi_aliases.h
+ Swapped relayX_fwd and relayX_rev aliases.
+ Added a note that the REV/FWD labels on the Robot Controller are incorrect.
+- FRC_default.hex
+ Recompiled to reflect the correct relay behavior (swapped FWD/REV).
+
+2/10/2004
+- user_routines_fast.c
+ Added Generate_Pwms() function call to User_Autonomous_Code.
+- 18f8520user.lkr
+ Removed debug section of program memory. Now User code can go all the way up to 0x7FFF.
+- FRC_library.lib and FRC_alltimers.lib
+ Now configure TTL Serial Port (USART2) RX2 pin as an input by default.
+
+1/29/2004
+- user_routines.c
+ Corrected Limit Switch section by removing NOT (!) from inputs.
+- ifi_aliases.h
+ Corrected User_Byte1 and User_Byte2 aliases.
+ Added TTL Serial Port aliases.
+
+1/8/2004
+- Initial Release
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports.c ./serial_ports.c
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports.c Thu Jan 12 05:56:02 2006
+++ ./serial_ports.c Wed Jan 11 22:10:44 2006
@@ -4,7 +4,7 @@
*
* VERSION: 0.4 (Beta)
*
-* DATE: 05-Jan-2006
+* DATE: 10-Jan-2006
*
* AUTHOR: R. Kevin Watson
* kevinw@jpl.nasa.gov
@@ -144,6 +144,8 @@
* 05-Feb-2005 0.3 RKW - Added _user_putc() interface to C18's new output
* stream capabilities. Updated documentation.
* 05-Jan-2006 0.4 RKW - Partial port to 18F8722. Updated documentation.
+* 10-Jan-2006 0.4 RKW - Modified the #pragma interruptlow line to also
+* save the .tmpdata section.
*
*******************************************************************************/
#include <p18f8722.h>
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports.h ./serial_ports.h
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports.h Thu Jan 12 05:56:02 2006
+++ ./serial_ports.h Tue Jan 10 21:22:08 2006
@@ -4,7 +4,7 @@
*
* VERSION: 0.4 (Beta)
*
-* DATE: 05-Jan-2006
+* DATE: 10-Jan-2006
*
* AUTHOR: R. Kevin Watson
* kevinw@jpl.nasa.gov
@@ -29,6 +29,8 @@
* 05-Feb-2005 0.3 RKW - Added _user_putc() interface to C18's new output
* stream capabilities. Updated documentation.
* 05-Jan-2006 0.4 RKW - Partial port to 18F8722. Updated documentation.
+* 10-Jan-2006 0.4 RKW - Modified the #pragma interruptlow line to also
+* save the .tmpdata section.
*
*******************************************************************************/
#ifndef _SERIAL_PORTS_H
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports_readme.txt ./serial_ports_readme.txt
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/serial_ports_readme.txt Thu Jan 12 05:56:02 2006
+++ ./serial_ports_readme.txt Tue Jan 10 21:17:20 2006
@@ -16,9 +16,10 @@ on-board serial ports. This software is
designed to work with the output stream functions included
with Microchip's C18 C compiler version 2.4
-The source code in serial_ports.c/.h will work with the
-Robovation (A/K/A EDU-RC) robot controller and the FIRST
-Robotics robot controller without modification.
+This source code will work with the PIC18F8520-based FIRST
+Robotics robot controller, the PIC18F8722-based FIRST Robotics
+robot controller, and the Robovation (A/K/A EDU-RC) robot
+controller.
Because you can now easily receive data from another computer,
you can interact with your nifty IFI robot controller in real-
@@ -137,7 +138,7 @@ correctly:
1a) FRC-RC: As this software is intended to replace IFI's
serial port driver, the call to Serial_Driver_Initialize()
in user_routines.c / User_Initialization() should be
- removed or commented out. In addition, all references to
+ removed or commented out. In addition, all references to
"user_Serialdrv.c" and "user_Serialdrv.h" must be removed
from the project and all project source files.
@@ -211,7 +212,7 @@ correctly:
This serial port driver can send output stream data to either
of the serial ports by setting the value of the global variable
stdout_serial_port before calling output stream functions like
-printf(). Setting the value to "SERIAL_PORT_ONE" will send the
+printf(). Setting the value to "SERIAL_PORT_ONE" will send the
output to serial port one. Likewise, setting the value to
"SERIAL_PORT_TWO" will send the output to serial port two.
Setting the value to "NUL" will send the output to the null
diff -urNp -x *FRC* -x .svn* -x *.lkr -x *.hex ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/user_routines_fast.c ./user_routines_fast.c
--- ./../FIRST/tags/FRC-StandardCode-2006-[Kevin_Watson Camera]/user_routines_fast.c Thu Jan 12 05:56:02 2006
+++ ./user_routines_fast.c Tue Jan 10 21:47:04 2006
@@ -55,7 +55,7 @@ void InterruptVectorLow (void)
* RETURNS: void
*******************************************************************************/
#pragma code
-#pragma interruptlow InterruptHandlerLow save=PROD /* You may want to save additional symbols. */
+#pragma interruptlow InterruptHandlerLow save=PROD,section(".tmpdata")
void InterruptHandlerLow ()
{