aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AT91SAM7S256/Resource/MENUES/IconNos.txt8
-rw-r--r--AT91SAM7S256/Resource/MENUES/Icons.bmpbin9086 -> 9278 bytes
-rw-r--r--AT91SAM7S256/Resource/MENUES/Mainmenu.txt16
-rw-r--r--AT91SAM7S256/Resource/MENUES/Submenu04.txt18
-rw-r--r--AT91SAM7S256/Resource/TEXT/Ui.txt10
-rw-r--r--AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.h2
-rw-r--r--AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.r79bin1149147 -> 1203693 bytes
-rw-r--r--AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.h9
-rw-r--r--AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.r79bin0 -> 1153133 bytes
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/LMS_ARM.dep3986
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewd1139
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewp1193
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl4
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.cspy.bat32
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dbgdt14
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dni21
-rw-r--r--AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.wsdt36
-rw-r--r--AT91SAM7S256/Source/BtTest.inc12
-rw-r--r--AT91SAM7S256/Source/Functions.inl45
-rw-r--r--AT91SAM7S256/Source/Ui.txt17
-rw-r--r--AT91SAM7S256/Source/c_cmd.c2558
-rw-r--r--AT91SAM7S256/Source/c_cmd.h71
-rw-r--r--AT91SAM7S256/Source/c_cmd.iom55
-rw-r--r--AT91SAM7S256/Source/c_cmd_alternate.c108
-rw-r--r--AT91SAM7S256/Source/c_cmd_bytecodes.h76
-rw-r--r--AT91SAM7S256/Source/c_cmd_drawing.inc1713
-rw-r--r--AT91SAM7S256/Source/c_comm.c89
-rw-r--r--AT91SAM7S256/Source/c_comm.iom61
-rw-r--r--AT91SAM7S256/Source/c_display.c237
-rw-r--r--AT91SAM7S256/Source/c_display.iom72
-rw-r--r--AT91SAM7S256/Source/c_input.c284
-rw-r--r--AT91SAM7S256/Source/c_loader.c240
-rw-r--r--AT91SAM7S256/Source/c_loader.h3
-rw-r--r--AT91SAM7S256/Source/c_loader.iom22
-rw-r--r--AT91SAM7S256/Source/c_lowspeed.c228
-rw-r--r--AT91SAM7S256/Source/c_lowspeed.iom15
-rw-r--r--AT91SAM7S256/Source/c_output.c152
-rw-r--r--AT91SAM7S256/Source/c_output.iom7
-rw-r--r--AT91SAM7S256/Source/c_ui.c46
-rw-r--r--AT91SAM7S256/Source/c_ui.h2
-rw-r--r--AT91SAM7S256/Source/c_ui.iom2
-rw-r--r--AT91SAM7S256/Source/d_bt.c4
-rw-r--r--AT91SAM7S256/Source/d_bt.h2
-rw-r--r--AT91SAM7S256/Source/d_bt.r19
-rw-r--r--AT91SAM7S256/Source/d_button.r31
-rw-r--r--AT91SAM7S256/Source/d_display.c4
-rw-r--r--AT91SAM7S256/Source/d_display.h2
-rw-r--r--AT91SAM7S256/Source/d_display.r4
-rw-r--r--AT91SAM7S256/Source/d_display2.r388
-rw-r--r--AT91SAM7S256/Source/d_hispeed.c24
-rw-r--r--AT91SAM7S256/Source/d_hispeed.h2
-rw-r--r--AT91SAM7S256/Source/d_hispeed.r25
-rw-r--r--AT91SAM7S256/Source/d_input.h2
-rw-r--r--AT91SAM7S256/Source/d_input.r2
-rw-r--r--AT91SAM7S256/Source/d_loader.c70
-rw-r--r--AT91SAM7S256/Source/d_loader.h15
-rw-r--r--AT91SAM7S256/Source/d_lowspeed.c4
-rw-r--r--AT91SAM7S256/Source/d_lowspeed.h2
-rw-r--r--AT91SAM7S256/Source/d_lowspeed.r743
-rw-r--r--AT91SAM7S256/Source/d_output.c897
-rw-r--r--AT91SAM7S256/Source/d_output.h18
-rw-r--r--AT91SAM7S256/Source/d_output.r76
-rw-r--r--AT91SAM7S256/Source/modules.h3
63 files changed, 10941 insertions, 3999 deletions
diff --git a/AT91SAM7S256/Resource/MENUES/IconNos.txt b/AT91SAM7S256/Resource/MENUES/IconNos.txt
index 50d12bf..0937da3 100644
--- a/AT91SAM7S256/Resource/MENUES/IconNos.txt
+++ b/AT91SAM7S256/Resource/MENUES/IconNos.txt
@@ -15,9 +15,9 @@ Index Current file New file Comments
0C UltrasonicCm (SensorUltrasonicCm)
0D TempC (SensorTempC)
0E TempF (SensorTempF)
-0F IicTempC
-10 IicTempF
-11 Color
+0F
+10
+11
12 Port1 Ports
13 Port2
14 Port3
@@ -94,3 +94,5 @@ Index Current file New file Comments
5B Invisibel (Invisible)
5C BTOn
5D BTOff
+5E
+5F \ No newline at end of file
diff --git a/AT91SAM7S256/Resource/MENUES/Icons.bmp b/AT91SAM7S256/Resource/MENUES/Icons.bmp
index c844c7b..795170d 100644
--- a/AT91SAM7S256/Resource/MENUES/Icons.bmp
+++ b/AT91SAM7S256/Resource/MENUES/Icons.bmp
Binary files differ
diff --git a/AT91SAM7S256/Resource/MENUES/Mainmenu.txt b/AT91SAM7S256/Resource/MENUES/Mainmenu.txt
index 33028ea..19394ee 100644
--- a/AT91SAM7S256/Resource/MENUES/Mainmenu.txt
+++ b/AT91SAM7S256/Resource/MENUES/Mainmenu.txt
@@ -8,13 +8,13 @@ Turn_off? Turn_off?
1 1
-00000011 00000021 00000031 00000041 00000051 00000061 00000071
-3B 3C 3D 3E 51 3F 40
-My_Files NXT_Program NXT_Datalog View Bluetooth Settings Try_Me
-01040000 01040000 01840000 01040000 01040000 01040000 01040000
-0 0 A E 0 0 0
-0 0 0 0 0 0 0
-1 2 3 4 7 5 6
-1 1 1 1 2 1 1
+00000011 00000021 00000031 00000041 00000051 00000061
+3B 3C 3E 51 3F 40
+My_Files NXT_Program View Bluetooth Settings Try_Me
+01040000 01040000 01040000 01040000 01040000 01040000
+0 0 0 0 0 0
+0 0 0 0 0 0
+1 2 4 7 5 6
+1 1 1 2 1 1
diff --git a/AT91SAM7S256/Resource/MENUES/Submenu04.txt b/AT91SAM7S256/Resource/MENUES/Submenu04.txt
index 0f86f7c..917be20 100644
--- a/AT91SAM7S256/Resource/MENUES/Submenu04.txt
+++ b/AT91SAM7S256/Resource/MENUES/Submenu04.txt
@@ -1,14 +1,14 @@
-00000001 00000002 00000003 00000004 00000005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C
-02 03 04 05 0F 10 09 08 07 0B 0C 11
-Sound_dB Sound_dBA Reflected_light Ambient_light Temperature_`C Temperature_`F Motor_rotations Motor_degrees Touch Ultrasonic_inch Ultrasonic_cm Color
-10000021 10000021 10000021 10000021 10000121 10000021 00000020 00000020 10000021 10000021 10000021 10000021
-E E E E E E E E E E E E
-2 3 4 5 B C 8 7 6 9 A D
-0 0 0 0 0 0 0 0 0 0 0 0
-1 1 1 1 1 1 1 1 1 1 1 1
+00000001 00000002 00000003 00000004 00000005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D
+02 03 04 05 06 0D 0E 0A 09 08 07 0B 0C
+Sound_dB Sound_dBA Reflected_light Ambient_light Light_Sensor* Temperature_`C* Temperature_`F* Rotation* Motor_rotations Motor_degrees Touch Ultrasonic_inch Ultrasonic_cm
+10000121 10000021 10000021 10000021 10000021 10000021 10000021 10000021 00000020 00000020 10000021 10000021 10000021
+E E E E E E E E E E E E E
+2 3 4 5 6 D E A 9 8 7 B C
+0 0 0 0 0 0 0 0 0 0 0 0 0
+1 1 1 1 1 1 1 1 1 1 1 1 1
-00000011 00000021 00000031 00000041 00000017 00000027 00000037 00000018 00000028 00000038
+00000011 00000021 00000031 00000041 00000019 00000029 00000039 0000001A 0000002A 0000003A
12 13 14 15 16 17 18 16 17 18
Port_1 Port_2 Port_3 Port_4 Port_A Port_B Port_C Port_A Port_B Port_C
00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020
diff --git a/AT91SAM7S256/Resource/TEXT/Ui.txt b/AT91SAM7S256/Resource/TEXT/Ui.txt
index b0ab7ea..98769e6 100644
--- a/AT91SAM7S256/Resource/TEXT/Ui.txt
+++ b/AT91SAM7S256/Resource/TEXT/Ui.txt
@@ -17,9 +17,6 @@ Memory full!
File saved
File exists
overwrite!
-Saved as
-File exist
-overwrite!
File deleted
Files
deleted
@@ -29,11 +26,6 @@ Done
File error!
Deleting all
%s files!
-Press Clear to
-stop DataLogging
-Port occupied!
-H:MM:SS:00
-HH:MM:SS
Sound
Software
NXT
@@ -56,6 +48,4 @@ BT store is
full error!
BT unknown
addr. error!
-Memory is
-full!
Never
diff --git a/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.h b/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.h
index 008dce6..25c78b9 100644
--- a/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.h
+++ b/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.h
@@ -1,5 +1,5 @@
/* Customer-specific DLib configuration. */
-/* Copyright (C) 2003 IAR Systems. All rights reserved. */
+/* Copyright (C) 2003-2005 IAR Systems. All rights reserved. */
#ifndef _DLIB_CONFIG_H
#define _DLIB_CONFIG_H
diff --git a/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.r79 b/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.r79
index 8403996..556c330 100644
--- a/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.r79
+++ b/AT91SAM7S256/SAM7S256/Lib/dl4tptinl8n.r79
Binary files differ
diff --git a/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.h b/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.h
new file mode 100644
index 0000000..25c78b9
--- /dev/null
+++ b/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.h
@@ -0,0 +1,9 @@
+/* Customer-specific DLib configuration. */
+/* Copyright (C) 2003-2005 IAR Systems. All rights reserved. */
+
+#ifndef _DLIB_CONFIG_H
+#define _DLIB_CONFIG_H
+
+/* No changes to the defaults. */
+
+#endif /* _DLIB_CONFIG_H */
diff --git a/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.r79 b/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.r79
new file mode 100644
index 0000000..87742c6
--- /dev/null
+++ b/AT91SAM7S256/SAM7S256/Lib/dl4tptnnl8n.r79
Binary files differ
diff --git a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.dep b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.dep
index 6f4e5e9..f63a772 100644
--- a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.dep
+++ b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.dep
@@ -1,169 +1,317 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<project>
- <fileVersion>1</fileVersion>
+ <fileVersion>2</fileVersion>
+ <fileChecksum>2103580747</fileChecksum>
<configuration>
- <name>Bin Output</name>
+ <name>Benchmark</name>
+ <outputs>
+ <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_button.pbi</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Port.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_5.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Cursor.txt</file>
+ <file>$TOOLKIT_DIR$\inc\yvals.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_14.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.c</file>
+ <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_input.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_sound.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_comm.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Devices.txt</file>
+ <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Info.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_8.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Connections.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_ui.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_input.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_cmd.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_button.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_display.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_6.txt</file>
+ <file>$TOOLKIT_DIR$\inc\ctype.h</file>
+ <file>$PROJ_DIR$\Benchmark\Exe\LMS_ARM.d79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_button.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_ui.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_display.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_usb.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_10.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_3.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdbool.h</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Fail.txt</file>
+ <file>$PROJ_DIR$\..\Lib\dl4tptinl8n.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_15.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Icons.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\LMS_ARM.pbd</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_7.txt</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_loader.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_hispeed.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_timer.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_sound.r79</file>
+ <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_ioctrl.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_4.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_cmd.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_bt.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_drawing.inc</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_output.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Threads.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_9.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_ioctrl.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_comm.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_13.txt</file>
+ <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_hispeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_sound.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_loader.pbi</file>
+ <file>$TOOLKIT_DIR$\inc\time.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Step.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_16.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_button.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_input.pbi</file>
+ <file>$TOOLKIT_DIR$\inc\stdio.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ui.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_12.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_loader.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\Cstartup_SAM7.pbi</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_timer.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_display.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
+ <file>$TOOLKIT_DIR$\inc\xtls.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_output.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_usb.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_loader.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\m_sched.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ok.txt</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_display.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\modules.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_bt.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\Cstartup_SAM7.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_sound.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_11.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\m_sched.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_output.r79</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\c_output.r79</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Wait.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.c</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Functions.inl</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.c</file>
+ <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
+ <file>$TOOLKIT_DIR$\inc\string.h</file>
+ <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\d_input.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file>$PROJ_DIR$\Benchmark\Obj\Cstartup.r79</file>
+ </outputs>
<file>
<name>[ROOT_NODE]</name>
<outputs>
<tool>
<name>XLINK</name>
- <file>$PROJ_DIR$\Bin Output\List\LMS_ARM.map</file>
- <file>$PROJ_DIR$\Bin Output\Exe\LMS_ARM.d79</file>
- <file>$PROJ_DIR$\Bin Output\Exe\LMS_ARM.a79</file>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.d79</file>
+ <file> 42</file>
</tool>
</outputs>
</file>
<file>
- <name>$PROJ_DIR$\Bin Output\Exe\LMS_ARM.d79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
<outputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\Bin Output\List\LMS_ARM.map</file>
- <file>$PROJ_DIR$\Bin Output\Exe\LMS_ARM.a79</file>
+ <name>ICCARM</name>
+ <file> 147</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 47</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\at91SAM7S256_Remap.xcl</file>
- <file>$PROJ_DIR$\Bin Output\Obj\Cstartup.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\Cstartup_SAM7.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_button.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_cmd.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_comm.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_display.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_input.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_ioctrl.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_led.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_loader.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_lowspeed.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_output.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_sound.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\c_ui.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_bt.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_button.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_display.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_hispeed.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_input.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_ioctrl.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_led.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_loader.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_lowspeed.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_output.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_sound.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_timer.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\d_usb.r79</file>
- <file>$PROJ_DIR$\Bin Output\Obj\m_sched.r79</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.r79</file>
+ <name>ICCARM</name>
+ <file> 192 11 155 57 122 90 95 17 193 148 77 9 32</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 192 11 155 122 90 95 17 193 148 77 9 32</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_comm.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_led.r79</file>
+ <file> 104</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 21</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file> 193 148 13 80 138 65 135 77 66 37 110 28 192 11 155 57 122 90 95 17 41 2 134 191 30 24 54 79 114 108</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 13 80 138 65 135 77 66 37 110 28 192 11 155 122 90 95 17 41 2 134 191 30 24 54 79 114 108</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
+ <name>$PROJ_DIR$\Benchmark\Obj\LMS_ARM.pbd</name>
+ <inputs>
+ <tool>
+ <name>BILINK</name>
+ <file> 128 36 34 21 47 119 127 113 137 140 112 31 87 1 39 109 18 118 126 83 93 20 76 48 157</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_ui.r79</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
- <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Startup.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Functions.inc</file>
- <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
- <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
- <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu03.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu10.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu11.rms</file>
+ <file> 44</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 36</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 193 148 35 130 196</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 35 130 196</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_display.r79</file>
+ <file> 86</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 34</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file> 193 148 135 0 141 80 65 165 130 77 13 55 43 125 145 120 11 155 57 122 90 95 17 192 30 92</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 135 0 141 80 65 165 130 77 13 55 43 125 145 120 11 155 122 90 95 17 192 30 92</file>
</tool>
</inputs>
</file>
@@ -172,18 +320,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_input.r79</file>
+ <file> 33</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 119</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file> 193 148 100 141 46 0</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 100 141 46 0</file>
</tool>
</inputs>
</file>
@@ -192,17 +343,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_ioctrl.r79</file>
+ <file> 102</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 127</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file> 193 148 138 97 75</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 138 97 75</file>
</tool>
</inputs>
</file>
@@ -211,18 +366,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_loader.r79</file>
+ <file> 71</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 113</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file> 193 148 80 138 123 68</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 80 138 123 68</file>
</tool>
</inputs>
</file>
@@ -231,17 +389,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_lowspeed.r79</file>
+ <file> 106</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 137</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file> 193 148 55 141 72 67</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 55 141 72 67</file>
</tool>
</inputs>
</file>
@@ -250,25 +412,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_output.r79</file>
+ <file> 162</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 140</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file> 120 11 155 57 122 90 95 17 52 193 148 0 91 64 77</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 120 11 155 122 90 95 17 52 193 148 0 91 64 77</file>
</tool>
</inputs>
</file>
@@ -277,96 +435,105 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_sound.r79</file>
+ <file> 78</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 112</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file> 30 11 155 57 122 90 95 17 192 193 148 165 80 73 29</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 30 11 155 122 90 95 17 192 193 148 165 80 73 29</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Include\Cstartup.s79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
<outputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\..\Object\Cstartup.r79</file>
+ <name>ICCARM</name>
+ <file> 45</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 31</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <name>ICCARM</name>
+ <file> 120 11 155 57 122 90 95 17 192 41 2 134 191 30 24 54 79 114 108 193 148 65 105 111 163 70 77 80 130 165 141 0 138 135 13 55 62 61 103 115 10 139 6 146 164 56 25 60 98 4 51 84 7 40 69 26 99 49 154 124 107 14 59 116 159 23 27 121 38 160 94 153 58 133 88 189 136 158 81</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 120 11 155 122 90 95 17 192 41 2 134 191 30 24 54 79 114 108 193 148 65 105 111 163 70 77 80 130 165 141 0 138 135 13 55 62 61 103 115 10 139 6 146 164 56 25 60 98 4 51 84 7 40 69 26 99 49 154 124 107 14 59 116 159 23 27 121 38 160 94 153 58 133 88 189 136 158 81</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.r79</file>
+ <file> 149</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 87</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file> 193 148 111 163 70 28 8 192 11 155 57 122 90 95 17</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 111 163 70 28 8 192 11 155 122 90 95 17</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
+ <name>$PROJ_DIR$\..\Include\Cstartup.s79</name>
<outputs>
<tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_bt.r79</file>
+ <name>AARM</name>
+ <file> 197</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <name>AARM</name>
+ <file> 96</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
+ <name>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_usb.r79</file>
+ <file> 150</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 128</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file> 194</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 194</file>
</tool>
</inputs>
</file>
@@ -375,18 +542,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_button.r79</file>
+ <file> 117</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 1</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file> 193 111 163 70 196 22</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 196 22</file>
</tool>
</inputs>
</file>
@@ -395,18 +565,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_display.r79</file>
+ <file> 131</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 39</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file> 193 111 163 70 32 15</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 192 11 155 122 90 95 17 32 15</file>
</tool>
</inputs>
</file>
@@ -415,18 +588,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_hispeed.r79</file>
+ <file> 74</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 109</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file> 193 111 163 70 110 85</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 110 85</file>
</tool>
</inputs>
</file>
@@ -435,39 +611,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_input.r79</file>
+ <file> 195</file>
</tool>
- </outputs>
- <inputs>
<tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
- <outputs>
- <tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_button.r79</file>
+ <name>BICOMP</name>
+ <file> 18</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file> 193 111 163 70 100 141 46 101</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 100 141 46 101</file>
</tool>
</inputs>
</file>
@@ -476,25 +634,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_ioctrl.r79</file>
+ <file> 82</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 118</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file> 192 11 155 57 122 90 95 17 193 111 163 70 75 50</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 192 11 155 122 90 95 17 193 111 163 70 75 50</file>
</tool>
</inputs>
</file>
@@ -503,36 +657,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_loader.r79</file>
+ <file> 143</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 126</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file> 193 148 111 163 70 123 12 192 11 155 57 122 90 95 17 41 2 134 191 30 24 54 79 114 108</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 111 163 70 123 12 192 11 155 122 90 95 17 41 2 134 191 30 24 54 79 114 108</file>
</tool>
</inputs>
</file>
@@ -541,18 +680,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_lowspeed.r79</file>
+ <file> 152</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 83</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file> 193 111 163 70 67 89</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 67 89</file>
</tool>
</inputs>
</file>
@@ -561,18 +703,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_output.r79</file>
+ <file> 161</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 93</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file> 193 111 163 70 64 3</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 64 3</file>
</tool>
</inputs>
</file>
@@ -581,18 +726,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_sound.r79</file>
+ <file> 151</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 20</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file> 193 111 163 70 29 19</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 29 19</file>
</tool>
</inputs>
</file>
@@ -601,38 +749,44 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_timer.r79</file>
+ <file> 129</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 76</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file> 193 111 163 70 145 156</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 145 156</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_led.r79</file>
+ <file> 142</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 48</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file> 193 111 163 70 37 132</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 111 163 70 37 132</file>
</tool>
</inputs>
</file>
@@ -641,71 +795,305 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\m_sched.r79</file>
+ <file> 144</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 157</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file> 193 148 111 163 70 53 66 100 141 35 130 68 73 9 72 91 43 125 135 97 105</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193 148 111 163 70 53 66 100 141 35 130 68 73 9 72 91 43 125 135 97 105</file>
</tool>
</inputs>
</file>
+ <forcedrebuild>
+ <name>[MULTI_TOOL]</name>
+ <tool>XLINK</tool>
+ </forcedrebuild>
+ <forcedrebuild>
+ <name>[REBUILD_ALL]</name>
+ </forcedrebuild>
+ </configuration>
+ <configuration>
+ <name>Bin Output</name>
+ <outputs>
+ <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Port.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_5.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Cursor.txt</file>
+ <file>$TOOLKIT_DIR$\inc\yvals.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_14.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.c</file>
+ <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Devices.txt</file>
+ <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Info.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_8.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Connections.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file>$TOOLKIT_DIR$\inc\math.h</file>
+ <file>$PROJ_DIR$\..\Object\d_ioctrl.pbi</file>
+ <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_6.txt</file>
+ <file>$TOOLKIT_DIR$\inc\ctype.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
+ <file>$PROJ_DIR$\..\Object\c_cmd.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_10.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_3.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdbool.h</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Fail.txt</file>
+ <file>$PROJ_DIR$\..\Lib\dl4tptinl8n.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_15.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Icons.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_7.txt</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_4.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_drawing.inc</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Threads.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_9.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_13.txt</file>
+ <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
+ <file>$TOOLKIT_DIR$\inc\time.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Step.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_16.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdio.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ui.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_12.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
+ <file>$TOOLKIT_DIR$\inc\xtls.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
+ <file>$PROJ_DIR$\..\Object\d_sound.s</file>
+ <file>$PROJ_DIR$\..\Object\c_input.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_button.r79</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.map</file>
+ <file>$PROJ_DIR$\..\Object\c_comm.s</file>
+ <file>$PROJ_DIR$\..\Object\d_sound.pbi</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_display.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_timer.s</file>
+ <file>$PROJ_DIR$\..\Object\d_hispeed.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_ioctrl.s</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
+ <file>$PROJ_DIR$\..\Object\m_sched.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_loader.s</file>
+ <file>$PROJ_DIR$\..\Object\d_button.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_display.s</file>
+ <file>$PROJ_DIR$\..\Object\d_sound.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_comm.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_ui.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_button.r79</file>
+ <file>$TOOLKIT_DIR$\inc\ymath.h</file>
+ <file>$PROJ_DIR$\..\Object\d_display.r79</file>
+ <file>$PROJ_DIR$\..\Object\m_sched.s</file>
+ <file>$PROJ_DIR$\..\Object\d_output.pbi</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.s</file>
+ <file>$PROJ_DIR$\..\Object\d_ioctrl.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_input.s</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.a79</file>
+ <file>$PROJ_DIR$\..\Object\c_output.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_display.s</file>
+ <file>$PROJ_DIR$\..\Object\c_led.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_output.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_input.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_button.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_led.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_usb.s</file>
+ <file>$PROJ_DIR$\..\Object\c_sound.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_bt.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound_adpcm.r</file>
+ <file>$PROJ_DIR$\..\Object\d_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_timer.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_output.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file>$PROJ_DIR$\..\Object\d_bt.s</file>
+ <file>$PROJ_DIR$\..\Object\d_usb.r79</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_ui.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_input.s</file>
+ <file>$PROJ_DIR$\..\Object\d_display.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_ui.s</file>
+ <file>$PROJ_DIR$\..\Object\c_button.s</file>
+ <file>$PROJ_DIR$\..\Object\d_button.s</file>
+ <file>$PROJ_DIR$\..\Object\d_timer.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_input.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_sound.s</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.c</file>
+ <file>$PROJ_DIR$\..\Object\c_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu03.rms</file>
+ <file>$PROJ_DIR$\..\Object\c_lowspeed.s</file>
+ <file>$PROJ_DIR$\at91SAM7S256_Remap.xcl</file>
+ <file>$PROJ_DIR$\..\Object\c_loader.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_comm.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_loader.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_output.s</file>
+ <file>$PROJ_DIR$\..\Object\d_bt.r79</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_sound.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.c</file>
+ <file>$PROJ_DIR$\..\Object\m_sched.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_display.r79</file>
+ <file>$PROJ_DIR$\..\Lib\dl4tptinl8n.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_cmd.s</file>
+ <file>$PROJ_DIR$\..\Object\c_loader.s</file>
+ <file>$PROJ_DIR$\..\Object\d_output.s</file>
+ <file>$PROJ_DIR$\..\Object\d_input.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_usb.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_hispeed.s</file>
+ <file>$PROJ_DIR$\..\Object\d_lowspeed.s</file>
+ <file>$PROJ_DIR$\..\Object\c_cmd.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file>$TOOLKIT_DIR$\inc\limits.h</file>
+ <file>$PROJ_DIR$\..\Object\c_ioctrl.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_loader.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_hispeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_loader.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_ioctrl.s</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.pbd</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ok.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\modules.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_11.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Wait.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.c</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Functions.inl</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.c</file>
+ <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
+ <file>$TOOLKIT_DIR$\inc\string.h</file>
+ <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.d79</file>
+ </outputs>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
+ <name>[ROOT_NODE]</name>
+ <outputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 239 105 130</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_cmd.r79</file>
+ <file> 175</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 109</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
+ <file> 235 10 201 46 92 70 74 16 236 198 62 8 29</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 235 10 201 92 70 74 16 236 198 62 8 29</file>
</tool>
</inputs>
</file>
@@ -714,229 +1102,331 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_comm.r79</file>
+ <file> 120</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 166</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file> 236 198 12 64 193 53 100 62 54 31 85 24 235 10 201 46 92 70 74 16 34 1 99 234 28 20 43 63 87 84</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 12 64 193 53 100 62 54 31 85 24 235 10 201 92 70 74 16 34 1 99 234 28 20 43 63 87 84</file>
</tool>
</inputs>
</file>
- <forcedrebuild>
- <name>[MULTI_TOOL]</name>
- <tool>XLINK</tool>
- </forcedrebuild>
- <forcedrebuild>
- <name>[REBUILD_ALL]</name>
- </forcedrebuild>
- </configuration>
- <configuration>
- <name>Flash Debug</name>
<file>
- <name>[ROOT_NODE]</name>
+ <name>$PROJ_DIR$\..\Object\d_sound.s</name>
<outputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.map</file>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.sim</file>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.d79</file>
+ <name>AARM</name>
+ <file> 119</file>
</tool>
</outputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Object\LMS_ARM.d79</name>
+ <name>$PROJ_DIR$\..\Object\c_comm.s</name>
<outputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.map</file>
- <file>$PROJ_DIR$\..\Object\LMS_ARM.sim</file>
+ <name>AARM</name>
+ <file> 120</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_timer.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 157</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_ioctrl.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 128</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_loader.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 167</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_display.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 124</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\m_sched.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 114</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\Cstartup_SAM7.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 170</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_input.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 103</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_display.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 175</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_usb.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 149</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_bt.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 169</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_input.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 180</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_ui.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 121</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_button.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 104</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_button.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 122</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_sound.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 172</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 133</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\at91SAM7S256_Remap.xcl</file>
- <file>$PROJ_DIR$\..\Object\Cstartup.r79</file>
- <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.r79</file>
- <file>$PROJ_DIR$\..\Object\c_button.r79</file>
- <file>$PROJ_DIR$\..\Object\c_cmd.r79</file>
- <file>$PROJ_DIR$\..\Object\c_comm.r79</file>
- <file>$PROJ_DIR$\..\Object\c_display.r79</file>
- <file>$PROJ_DIR$\..\Object\c_input.r79</file>
- <file>$PROJ_DIR$\..\Object\c_ioctrl.r79</file>
- <file>$PROJ_DIR$\..\Object\c_loader.r79</file>
- <file>$PROJ_DIR$\..\Object\c_lowspeed.r79</file>
- <file>$PROJ_DIR$\..\Object\c_output.r79</file>
- <file>$PROJ_DIR$\..\Object\c_sound.r79</file>
- <file>$PROJ_DIR$\..\Object\c_ui.r79</file>
- <file>$PROJ_DIR$\..\Object\d_bt.r79</file>
- <file>$PROJ_DIR$\..\Object\d_button.r79</file>
- <file>$PROJ_DIR$\..\Object\d_display.r79</file>
- <file>$PROJ_DIR$\..\Object\d_hispeed.r79</file>
- <file>$PROJ_DIR$\..\Object\d_input.r79</file>
- <file>$PROJ_DIR$\..\Object\d_ioctrl.r79</file>
- <file>$PROJ_DIR$\..\Object\d_loader.r79</file>
- <file>$PROJ_DIR$\..\Object\d_lowspeed.r79</file>
- <file>$PROJ_DIR$\..\Object\d_output.r79</file>
- <file>$PROJ_DIR$\..\Object\d_sound.r79</file>
- <file>$PROJ_DIR$\..\Object\d_timer.r79</file>
- <file>$PROJ_DIR$\..\Object\d_usb.r79</file>
- <file>$PROJ_DIR$\..\Object\m_sched.r79</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.r79</file>
+ <name>ICCARM</name>
+ <file> 236 198 113 146 147</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
+ <name>$PROJ_DIR$\..\Object\c_lowspeed.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 117</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_output.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 131</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_led.r79</file>
+ <file> 138</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file> 236 86 206 58 147 185</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
+ <name>$PROJ_DIR$\..\Object\c_cmd.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 184</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_loader.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 190</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_output.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 134</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_hispeed.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 189</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\d_lowspeed.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 143</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\c_ioctrl.s</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 187</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Object\LMS_ARM.pbd</name>
+ <inputs>
+ <tool>
+ <name>BILINK</name>
+ <file> 108 137 36 166 109 158 136 165 161 145 140 151 141 116 153 111 135 27 188 171 126 107 144 181 174</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_ui.r79</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
- <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Step.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Cursor.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Incomming.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Port.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Ok.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_1.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_2.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_3.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_4.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_5.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_6.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_7.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_8.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_9.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_10.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_11.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_12.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_13.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_14.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_15.txt</file>
- <file>$PROJ_DIR$\..\..\Source\RCXintro_16.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Ui.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu03.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Submenu10.rms</file>
- <file>$PROJ_DIR$\..\..\Source\Functions.inl</file>
- <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
- <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
- <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
+ <file> 104</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 137</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 236 198 30 96 238</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 30 96 238</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_display.r79</file>
+ <file> 184</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 36</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file> 236 198 100 0 195 64 53 208 96 62 12 44 86 206 58 35 95 196 90 10 201 46 92 70 74 16 235 28 26 123 186 72</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 100 0 195 64 53 208 96 62 12 44 86 206 58 35 95 196 90 10 201 92 70 74 16 235 28 26 123 186 72</file>
</tool>
</inputs>
</file>
@@ -945,18 +1435,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_input.r79</file>
+ <file> 103</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 158</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file> 236 198 79 195 37 0 64 235 10 201 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 79 195 37 0 64 235 10 201 92 70 74 16</file>
</tool>
</inputs>
</file>
@@ -965,17 +1458,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_ioctrl.r79</file>
+ <file> 187</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 136</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file> 236 198 193 76 61</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 193 76 61</file>
</tool>
</inputs>
</file>
@@ -984,18 +1481,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_loader.r79</file>
+ <file> 190</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 165</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file> 236 198 64 193 93 56 235 10 201 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 64 193 93 56 235 10 201 92 70 74 16</file>
</tool>
</inputs>
</file>
@@ -1004,18 +1504,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_lowspeed.r79</file>
+ <file> 117</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 161</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file> 236 198 44 195 59 55</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 44 195 59 55</file>
</tool>
</inputs>
</file>
@@ -1024,26 +1527,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_output.r79</file>
+ <file> 131</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 145</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\stdbool.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file> 90 10 201 46 92 70 74 16 41 236 198 0 71 52 62</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 90 10 201 92 70 74 16 41 236 198 0 71 52 62</file>
</tool>
</inputs>
</file>
@@ -1052,96 +1550,105 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_sound.r79</file>
+ <file> 172</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 140</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file> 28 10 201 46 92 70 74 16 235 236 198 208 64 60 25</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 28 10 201 92 70 74 16 235 236 198 208 64 60 25</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Include\Cstartup.s79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
<outputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\..\Object\Cstartup.r79</file>
+ <name>ICCARM</name>
+ <file> 121</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 151</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <name>ICCARM</name>
+ <file> 90 10 201 46 92 70 74 16 235 34 1 99 234 28 20 43 63 87 84 236 198 53 82 86 206 58 62 64 96 208 195 0 193 100 12 44 51 50 81 88 9 194 5 197 207 45 21 49 77 3 40 66 6 33 57 22 78 38 200 94 83 13 48 89 204 19 23 91 32 205 73 162 199 47 98 68 232 101 203 65</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 90 10 201 92 70 74 16 235 34 1 99 234 28 20 43 63 87 84 236 198 53 82 86 206 58 62 64 96 208 195 0 193 100 12 44 51 50 81 88 9 194 5 197 207 45 21 49 77 3 40 66 6 33 57 22 78 38 200 94 83 13 48 89 204 19 23 91 32 205 73 162 199 47 98 68 232 101 203 65</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.r79</file>
+ <file> 169</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 141</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file> 236 198 86 206 58 24 7 235 10 201 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 86 206 58 24 7 235 10 201 92 70 74 16</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
+ <name>$PROJ_DIR$\..\Include\Cstartup.s79</name>
<outputs>
<tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_bt.r79</file>
+ <name>AARM</name>
+ <file> 150</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <name>AARM</name>
+ <file> 75</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
+ <name>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_usb.r79</file>
+ <file> 170</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 108</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file> 237</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 237</file>
</tool>
</inputs>
</file>
@@ -1150,18 +1657,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_button.r79</file>
+ <file> 122</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 116</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file> 236 86 206 58 238 18</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 238 18</file>
</tool>
</inputs>
</file>
@@ -1170,18 +1680,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_display.r79</file>
+ <file> 124</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 153</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file> 236 86 206 58 29 14</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 29 14</file>
</tool>
</inputs>
</file>
@@ -1190,18 +1703,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_hispeed.r79</file>
+ <file> 189</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 111</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file> 236 86 206 58 85 67</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 85 67</file>
</tool>
</inputs>
</file>
@@ -1210,343 +1726,637 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_input.r79</file>
+ <file> 180</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 135</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
+ <file> 236 86 206 58 79 195 37 80</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 79 195 37 80</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_ioctrl.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_button.r79</file>
+ <file> 128</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 27</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file> 235 10 201 46 92 70 74 16 236 86 206 58 61 39</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 235 10 201 92 70 74 16 236 86 206 58 61 39</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_ioctrl.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_loader.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_ioctrl.r79</file>
+ <file> 167</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 188</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file> 236 198 86 206 58 93 11 235 10 201 46 92 70 74 16 34 1 99 234 28 20 43 63 87 84</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 86 206 58 93 11 235 10 201 92 70 74 16 34 1 99 234 28 20 43 63 87 84</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_loader.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_lowspeed.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_loader.r79</file>
+ <file> 143</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 171</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file> 236 86 206 58 55 69</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 55 69</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_lowspeed.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_output.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_lowspeed.r79</file>
+ <file> 134</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 126</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file> 236 86 206 58 52 2</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 52 2</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_output.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_sound.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_output.r79</file>
+ <file> 119</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 107</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file> 236 86 206 58 25 17 142</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 25 17 142</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_sound.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_timer.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_sound.r79</file>
+ <file> 157</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 144</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file> 236 86 206 58 196 202</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 196 202</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_timer.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_timer.r79</file>
+ <file> 149</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 181</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file> 236 86 206 58 31 97</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 86 206 58 31 97</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
+ <name>$PROJ_DIR$\..\..\Source\m_sched.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_led.r79</file>
+ <file> 114</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 174</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file> 236 198 86 206 58 42 54 79 195 30 96 56 60 8 59 71 35 95 100 76 82</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 236 198 86 206 58 42 54 79 195 30 96 56 60 8 59 71 35 95 100 76 82</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\m_sched.c</name>
+ <name>$PROJ_DIR$\..\Object\LMS_ARM.d79</name>
+ <outputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 105 130</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 164 150 170 104 184 120 175 103 187 190 117 131 172 121 169 122 124 189 180 128 167 143 134 119 157 149 114 176</file>
+ </tool>
+ </inputs>
+ </file>
+ </configuration>
+ <configuration>
+ <name>Flash Debug</name>
+ <outputs>
+ <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Port.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_5.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Cursor.txt</file>
+ <file>$TOOLKIT_DIR$\inc\yvals.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_14.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.c</file>
+ <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Devices.txt</file>
+ <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Info.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_8.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Connections.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file>$TOOLKIT_DIR$\inc\math.h</file>
+ <file>$PROJ_DIR$\..\Object\d_ioctrl.pbi</file>
+ <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_6.txt</file>
+ <file>$TOOLKIT_DIR$\inc\ctype.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
+ <file>$PROJ_DIR$\..\Object\c_cmd.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_10.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_3.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdbool.h</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Fail.txt</file>
+ <file>$PROJ_DIR$\..\Lib\dl4tptinl8n.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_15.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Icons.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_7.txt</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_4.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_drawing.inc</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Threads.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_9.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_13.txt</file>
+ <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
+ <file>$TOOLKIT_DIR$\inc\time.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Step.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_16.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdio.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ui.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_12.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
+ <file>$TOOLKIT_DIR$\inc\xtls.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
+ <file>$PROJ_DIR$\..\Object\c_input.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_button.r79</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.map</file>
+ <file>$PROJ_DIR$\..\Object\d_sound.pbi</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_display.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_hispeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
+ <file>$PROJ_DIR$\..\Object\m_sched.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_button.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_sound.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_comm.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_ui.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_button.r79</file>
+ <file>$TOOLKIT_DIR$\inc\ymath.h</file>
+ <file>$PROJ_DIR$\..\Object\d_display.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_output.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_ioctrl.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_output.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_led.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_output.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_input.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_button.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_led.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_sound.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_bt.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound_adpcm.r</file>
+ <file>$PROJ_DIR$\..\Object\d_lowspeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_timer.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_output.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file>$PROJ_DIR$\..\Object\d_usb.r79</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_ui.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_display.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_timer.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_input.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.c</file>
+ <file>$PROJ_DIR$\..\Object\c_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu03.rms</file>
+ <file>$PROJ_DIR$\at91SAM7S256_Remap.xcl</file>
+ <file>$PROJ_DIR$\..\Object\c_loader.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_comm.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_loader.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_bt.r79</file>
+ <file>$PROJ_DIR$\..\Object\Cstartup_SAM7.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_sound.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.c</file>
+ <file>$PROJ_DIR$\..\Object\m_sched.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_display.r79</file>
+ <file>$PROJ_DIR$\..\Lib\dl4tptinl8n.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_input.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_usb.pbi</file>
+ <file>$PROJ_DIR$\..\Object\c_cmd.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file>$TOOLKIT_DIR$\inc\limits.h</file>
+ <file>$PROJ_DIR$\..\Object\c_ioctrl.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_loader.pbi</file>
+ <file>$PROJ_DIR$\..\Object\d_hispeed.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_loader.r79</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.pbd</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.iom</file>
+ <file>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_bt.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_net.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_net.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_usb.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_hispeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_net.r</file>
+ <file>$PROJ_DIR$\..\Object\c_net.r79</file>
+ <file>$PROJ_DIR$\..\src\main.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_hispeed.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_bt.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.r</file>
+ <file>$PROJ_DIR$\..\Object\d_motor.r79</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.sim</file>
+ <file>$PROJ_DIR$\..\..\Source\d_avrcomm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.c</file>
+ <file>$PROJ_DIR$\..\..\include\lib_AT91SAM7S64.h</file>
+ <file>$PROJ_DIR$\..\Object\d_avrcomm.r79</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S64.h</file>
+ <file>$PROJ_DIR$\..\Object\c_sensor.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_avrcomm.r79</file>
+ <file>$PROJ_DIR$\..\Object\d_sensor.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_net.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_net.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
+ <file>$PROJ_DIR$\..\Object\d_net.r79</file>
+ <file>$PROJ_DIR$\..\Include\lib_AT91SAM7S64.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_usb.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.h</file>
+ <file>$PROJ_DIR$\..\..\Source\main.c</file>
+ <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_avrcomm.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.h</file>
+ <file>$PROJ_DIR$\SrcIAR\Board.h</file>
+ <file>$PROJ_DIR$\SrcIAR\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\Object\main.r79</file>
+ <file>$PROJ_DIR$\Flash_Debug\Obj\main.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_hispeed.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_avrcomm.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.iom</file>
+ <file>$PROJ_DIR$\..\Include\Board.h</file>
+ <file>$PROJ_DIR$\..\Object\c_motor.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.r</file>
+ <file>$PROJ_DIR$\..\..\include\AT91SAM7S64_inc.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_usb.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_bt.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_hispeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_avrcomm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_avrcomm.c</file>
+ <file>$PROJ_DIR$\..\Object\c_bt.r79</file>
+ <file>$PROJ_DIR$\..\Object\c_usb.r79</file>
+ <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup_SAM7.r79</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
+ <file>$PROJ_DIR$\..\..\include\AT91SAM7S64.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ok.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\modules.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_11.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Wait.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.c</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Functions.inl</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.c</file>
+ <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
+ <file>$TOOLKIT_DIR$\inc\string.h</file>
+ <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file>$PROJ_DIR$\..\Object\LMS_ARM.d79</file>
+ </outputs>
+ <file>
+ <name>[ROOT_NODE]</name>
+ <outputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 104 183 272</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\m_sched.r79</file>
+ <file> 155</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 107</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file> 268 10 234 46 92 70 74 16 269 231 62 8 29</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 268 10 234 92 70 74 16 269 231 62 8 29</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_comm.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 114</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 147</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 269 231 12 64 226 53 100 62 54 31 85 24 268 10 234 46 92 70 74 16 34 1 99 267 28 20 43 63 87 84</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 12 64 226 53 100 62 54 31 85 24 268 10 234 92 70 74 16 34 1 99 267 28 20 43 63 87 84</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_cmd.r79</file>
+ <file> 122</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
- <file>$TOOLKIT_DIR$\inc\stdio.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd_drawing.inc</file>
+ <file> 269 231 109 134 135</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\src\main.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\Flash_Debug\Obj\main.r79</file>
+ <file> 127</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\SrcIAR\Board.h</file>
- <file>$PROJ_DIR$\..\..\include\AT91SAM7S64.h</file>
- <file>$PROJ_DIR$\..\..\include\lib_AT91SAM7S64.h</file>
+ <file> 269 86 239 58 135 160</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_avrcomm.c</name>
+ <name>$PROJ_DIR$\..\Object\LMS_ARM.pbd</name>
+ <inputs>
+ <tool>
+ <name>BILINK</name>
+ <file> 106 126 36 147 107 141 125 146 143 133 128 138 129 111 139 108 124 27 163 151 119 105 132 158 154</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_avrcomm.r79</file>
+ <file> 223</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_avrcomm.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_avrcomm.h</file>
+ <file> 204 225 186</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\SrcIAR\Cstartup.s79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_bt.c</name>
<outputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup.r79</file>
+ <name>ICCARM</name>
+ <file> 221</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>AARM</name>
- <file>$PROJ_DIR$\..\..\include\AT91SAM7S64_inc.h</file>
+ <name>ICCARM</name>
+ <file> 269 231 217 180 24 100</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\main.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_net.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\main.r79</file>
+ <file> 176</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Include\Board.h</file>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S64.h</file>
- <file>$PROJ_DIR$\..\Include\lib_AT91SAM7S64.h</file>
+ <file> 269 170 194</file>
</tool>
</inputs>
</file>
@@ -1555,411 +2365,408 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_hispeed.r79</file>
+ <file> 208</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_hispeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
+ <file> 269 231 179 218 85</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_net.c</name>
+ <name>$PROJ_DIR$\..\src\main.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_net.r79</file>
+ <file> 207</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_net.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_net.r</file>
+ <file> 204 225 186</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_avrcomm.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_motor.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_avrcomm.r79</file>
+ <file> 182</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_avrcomm.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_avrcomm.r</file>
+ <file> 269 86 239 224 173 181</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_sensor.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup_SAM7.r79</file>
+ <file> 189</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\SrcIAR\Board.h</file>
- <file>$PROJ_DIR$\..\..\include\AT91SAM7S64.h</file>
- <file>$PROJ_DIR$\..\..\include\lib_AT91SAM7S64.h</file>
+ <file> 269 231 167 203 195</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_bt.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_sensor.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_bt.r79</file>
+ <file> 191</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_bt.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_bt.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
+ <file> 269 86 239 224 195 214</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_usb.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_net.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_usb.r79</file>
+ <file> 196</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_usb.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
+ <file> 269 86 239 224 194 175</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_net.c</name>
+ <name>$PROJ_DIR$\..\..\Source\main.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_net.r79</file>
+ <file> 206</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_net.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_net.h</file>
+ <file> 211 188 197</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_motor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_avrcomm.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_motor.r79</file>
+ <file> 187</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_motor.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_motor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
+ <file> 269 86 239 224 184 209</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\Flash_Debug\Exe\Basic.d79</name>
+ <name>$PROJ_DIR$\SrcIAR\Cstartup.s79</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 201</file>
+ </tool>
+ </outputs>
<inputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\at91SAM7S64_NoRemap.xcl</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup.r79</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup_SAM7.r79</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\main.r79</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.r79</file>
+ <name>AARM</name>
+ <file> 215</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_sensor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_motor.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_sensor.r79</file>
+ <file> 212</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sensor.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sensor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
+ <file> 269 231 210 199 173</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_motor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_usb.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_motor.r79</file>
+ <file> 222</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.r</file>
+ <file> 269 231 172 198 31</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_sensor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_avrcomm.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\d_sensor.r79</file>
+ <file> 190</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.r</file>
+ <file> 269 219 184</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\Flash_Debug\Exe\LMS_ARM.d79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 103</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 126</file>
+ </tool>
+ </outputs>
<inputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\at91SAM7S64_NoRemap.xcl</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup.r79</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\Cstartup_SAM7.r79</file>
- <file>$PROJ_DIR$\Flash_Debug\Obj\main.r79</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.r79</file>
+ <name>ICCARM</name>
+ <file> 269 231 30 96 271</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 30 96 271</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_comm.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Object\c_comm.r79</file>
+ <file> 159</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 36</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$TOOLKIT_DIR$\inc\string.h</file>
- <file>$TOOLKIT_DIR$\inc\yvals.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
- <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
- <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
- <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
- <file>$TOOLKIT_DIR$\inc\ctype.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
- <file>$TOOLKIT_DIR$\inc\xtls.h</file>
- <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
- <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
- <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
- <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
- <file>$TOOLKIT_DIR$\inc\time.h</file>
- <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file> 269 231 100 0 228 64 53 241 96 62 12 44 86 239 58 35 95 229 90 10 234 46 92 70 74 16 268 28 26 117 161 72</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 100 0 228 64 53 241 96 62 12 44 86 239 58 35 95 229 90 10 234 92 70 74 16 268 28 26 117 161 72</file>
</tool>
</inputs>
</file>
- </configuration>
- <configuration>
- <name>RAM_Debug</name>
<file>
- <name>[ROOT_NODE]</name>
+ <name>$PROJ_DIR$\..\..\Source\c_input.c</name>
<outputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\RAM_Debug\List\LMS_ARM.map</file>
- <file>$PROJ_DIR$\RAM_Debug\Exe\LMS_ARM.d79</file>
+ <name>ICCARM</name>
+ <file> 102</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 141</file>
</tool>
</outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 269 231 79 228 37 0 64 268 10 234 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 79 228 37 0 64 268 10 234 92 70 74 16</file>
+ </tool>
+ </inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\Include\sam7s256.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_ioctrl.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\sam7s256.r79</file>
+ <file> 162</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 125</file>
</tool>
</outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 269 231 226 76 61</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 226 76 61</file>
+ </tool>
+ </inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_loader.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_led.r79</file>
+ <file> 165</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 146</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file> 269 231 64 226 93 56 268 10 234 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 64 226 93 56 268 10 234 92 70 74 16</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_lowspeed.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_display.r79</file>
+ <file> 112</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 143</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file> 269 231 44 228 59 55</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 44 228 59 55</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_ioctrl.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_output.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_ioctrl.r79</file>
+ <file> 121</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 133</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file> 90 10 234 46 92 70 74 16 41 269 231 0 71 52 62</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 90 10 234 92 70 74 16 41 269 231 0 71 52 62</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_loader.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_sound.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_loader.r79</file>
+ <file> 152</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 128</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file> 28 10 234 46 92 70 74 16 268 269 231 241 64 60 25</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 28 10 234 92 70 74 16 268 269 231 241 64 60 25</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_lowspeed.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_lowspeed.r79</file>
+ <file> 115</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 138</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file> 90 10 234 46 92 70 74 16 268 34 1 99 267 28 20 43 63 87 84 269 231 53 82 86 239 58 62 64 96 241 228 0 226 100 12 44 51 50 81 88 9 227 5 230 240 45 21 49 77 3 40 66 6 33 57 22 78 38 233 94 83 13 48 89 237 19 23 91 32 238 73 144 232 47 98 68 265 101 236 65</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 90 10 234 92 70 74 16 268 34 1 99 267 28 20 43 63 87 84 269 231 53 82 86 239 58 62 64 96 241 228 0 226 100 12 44 51 50 81 88 9 227 5 230 240 45 21 49 77 3 40 66 6 33 57 22 78 38 233 94 83 13 48 89 237 19 23 91 32 238 73 144 232 47 98 68 265 101 236 65</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_sound.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_sound.r79</file>
+ <file> 149</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 129</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file> 269 231 86 239 58 24 7 268 10 234 46 92 70 74 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 86 239 58 24 7 268 10 234 92 70 74 16</file>
</tool>
</inputs>
</file>
@@ -1968,13 +2775,13 @@
<outputs>
<tool>
<name>AARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup.r79</file>
+ <file> 137</file>
</tool>
</outputs>
<inputs>
<tool>
<name>AARM</name>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S64_inc.h</file>
+ <file> 75</file>
</tool>
</inputs>
</file>
@@ -1983,174 +2790,205 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup_SAM7.r79</file>
+ <file> 150</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 106</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\Include\Board.h</file>
- <file>$PROJ_DIR$\..\Include\AT91SAM7S64.h</file>
- <file>$PROJ_DIR$\..\Include\lib_AT91SAM7S64.h</file>
+ <file> 270</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 270</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_button.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_bt.r79</file>
+ <file> 116</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 111</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <file> 269 86 239 58 271 18</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 271 18</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_display.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_usb.r79</file>
+ <file> 118</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 139</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file> 269 86 239 58 29 14</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 29 14</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_button.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_hispeed.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_button.r79</file>
+ <file> 164</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 108</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file> 269 86 239 58 85 67</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 85 67</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_display.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_input.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_display.r79</file>
+ <file> 157</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 124</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file> 269 86 239 58 79 228 37 80</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 79 228 37 80</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_hispeed.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_ioctrl.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_hispeed.r79</file>
+ <file> 120</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 27</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file> 268 10 234 46 92 70 74 16 269 86 239 58 61 39</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 268 10 234 92 70 74 16 269 86 239 58 61 39</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_loader.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_button.r79</file>
+ <file> 148</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 163</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
- <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ <file> 269 231 86 239 58 93 11 268 10 234 46 92 70 74 16 34 1 99 267 28 20 43 63 87 84</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 86 239 58 93 11 268 10 234 92 70 74 16 34 1 99 267 28 20 43 63 87 84</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_ioctrl.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_lowspeed.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_ioctrl.r79</file>
+ <file> 131</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 151</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file> 269 86 239 58 55 69</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 55 69</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_lowspeed.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_output.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_lowspeed.r79</file>
+ <file> 123</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 119</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file> 269 86 239 58 52 2</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 52 2</file>
</tool>
</inputs>
</file>
@@ -2159,18 +2997,21 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_sound.r79</file>
+ <file> 113</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 105</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file> 269 86 239 58 25 17 130</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 25 17 130</file>
</tool>
</inputs>
</file>
@@ -2179,38 +3020,44 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_timer.r79</file>
+ <file> 140</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 132</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file> 269 86 239 58 229 235</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 229 235</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
+ <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_led.r79</file>
+ <file> 136</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 158</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file> 269 86 239 58 31 97</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 86 239 58 31 97</file>
</tool>
</inputs>
</file>
@@ -2219,59 +3066,441 @@
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\m_sched.r79</file>
+ <file> 110</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 154</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sensor.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_motor.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
+ <file> 269 231 86 239 58 42 54 79 228 30 96 56 60 8 59 71 35 95 100 76 82</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 269 231 86 239 58 42 54 79 228 30 96 56 60 8 59 71 35 95 100 76 82</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
+ <name>$PROJ_DIR$\..\Object\LMS_ARM.d79</name>
+ <outputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 104 183</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 145 137 150 103 159 114 155 102 162 165 112 121 152 115 149 116 118 164 157 120 148 131 123 113 140 136 110 156</file>
+ </tool>
+ </inputs>
+ </file>
+ </configuration>
+ <configuration>
+ <name>RAM_Debug</name>
+ <outputs>
+ <file>$PROJ_DIR$\..\..\Source\c_output.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Port.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_5.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Cursor.txt</file>
+ <file>$TOOLKIT_DIR$\inc\yvals.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_14.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.c</file>
+ <file>$TOOLKIT_DIR$\inc\ysizet.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.r</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Devices.txt</file>
+ <file>$TOOLKIT_DIR$\inc\xlocaleuse.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Info.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_8.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Connections.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.h</file>
+ <file>$TOOLKIT_DIR$\inc\math.h</file>
+ <file>$TOOLKIT_DIR$\inc\stdlib.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Mainmenu.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_6.txt</file>
+ <file>$TOOLKIT_DIR$\inc\ctype.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_10.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.r</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_3.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdbool.h</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.c</file>
+ <file>$TOOLKIT_DIR$\inc\xlocale_c.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Fail.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu05.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_15.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Icons.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\LowBattery.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Display.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_7.txt</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_display.iom</file>
+ <file>$TOOLKIT_DIR$\inc\xtinfo.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Test2.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_4.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu07.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.r</file>
+ <file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_drawing.inc</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu02.rms</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Threads.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256_inc.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_9.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Font.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_13.txt</file>
+ <file>$TOOLKIT_DIR$\inc\wchar.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
+ <file>$TOOLKIT_DIR$\inc\time.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Step.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_16.txt</file>
+ <file>$TOOLKIT_DIR$\inc\stdio.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Ui.txt</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.h</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_12.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd_bytecodes.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu06.rms</file>
+ <file>$TOOLKIT_DIR$\inc\xtls.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\BtTest.inc</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
+ <file>$TOOLKIT_DIR$\inc\ymath.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound_adpcm.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_led.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu03.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_led.r</file>
+ <file>$TOOLKIT_DIR$\inc\limits.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.iom</file>
+ <file>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
+ <file>$PROJ_DIR$\..\src\main.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_motor.r</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.h</file>
+ <file>$PROJ_DIR$\..\..\Source\main.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sensor.h</file>
+ <file>$PROJ_DIR$\SrcIAR\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_motor.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sensor.r</file>
+ <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_button.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_display.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_input.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_output.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_output.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\Running.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.iom</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_cmd.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_sound.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup_SAM7.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_hispeed.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_led.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_loader.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_motor.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_sensor.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_display.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_ioctrl.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_ioctrl.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_loader.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_output.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_button.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_button.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\Ok.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\modules.h</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_input.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_display.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_sound.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_timer.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_loader.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_loader.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_comm.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_button.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\main.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_sound.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_bt.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_ui.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_ioctrl.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\sam7s256.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_lowspeed.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_input.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_usb.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_motor.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_sound.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_sensor.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_led.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_ui.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Exe\LMS_ARM.d79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_input.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_usb.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup_SAM7.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_output.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\LMS_ARM.pbd</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_display.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_timer.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_lowspeed.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_lowspeed.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\m_sched.pbi</file>
+ <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.h</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_hispeed.r79</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\d_bt.r79</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu04.rms</file>
+ <file>$PROJ_DIR$\..\..\Source\RCXintro_11.txt</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_comm.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\c_cmd.pbi</file>
+ <file>$PROJ_DIR$\RAM_Debug\Obj\m_sched.r79</file>
+ <file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.r</file>
+ <file>$PROJ_DIR$\..\..\Source\Test1.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Status.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\Submenu01.rms</file>
+ <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\Wait.txt</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.iom</file>
+ <file>$PROJ_DIR$\..\..\Source\c_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_cmd.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\c_ui.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_bt.c</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup.s79</file>
+ <file>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_display.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_hispeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_input.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_ioctrl.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_loader.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_lowspeed.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_output.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_sound.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_timer.c</file>
+ <file>$PROJ_DIR$\..\..\Source\d_usb.c</file>
+ <file>$PROJ_DIR$\..\..\Source\Functions.inl</file>
+ <file>$PROJ_DIR$\..\..\Source\m_sched.c</file>
+ <file>$TOOLKIT_DIR$\inc\xmtx.h</file>
+ <file>$TOOLKIT_DIR$\inc\string.h</file>
+ <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
+ <file>$PROJ_DIR$\..\Include\AT91SAM7S256.h</file>
+ <file>$PROJ_DIR$\..\..\Source\d_button.h</file>
+ </outputs>
+ <file>
+ <name>[ROOT_NODE]</name>
+ <outputs>
+ <tool>
+ <name>XLINK</name>
+ <file> 176</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_display.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_cmd.r79</file>
+ <file> 183</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 154</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_led.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_cmd.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_timer.h</file>
+ <file> 230 10 196 188 89 67 71 16 231 152 59 8 28</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 230 10 196 89 67 71 16 231 152 59 8 28</file>
</tool>
</inputs>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\Source\c_comm.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 159</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 193</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 12 61 131 50 97 59 51 30 82 24 230 10 196 188 89 67 71 16 33 1 96 229 27 20 41 60 84 81</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 12 61 131 50 97 59 51 30 82 24 230 10 196 89 67 71 16 33 1 96 229 27 20 41 60 84 81</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Include\sam7s256.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 166</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_led.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 139</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 99 102 103</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_led.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 174</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 125 103 107</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 179</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\src\main.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\main.r79</file>
+ <file> 161</file>
+ </tool>
+ </outputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_motor.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 171</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 125 111 114</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_sensor.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 143</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 109 120 117</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_sensor.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 173</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 125 117 124</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\main.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 161</file>
</tool>
</outputs>
</file>
@@ -2280,166 +3509,575 @@
<outputs>
<tool>
<name>AARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup.r79</file>
+ <file> 168</file>
</tool>
</outputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\main.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_motor.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\main.r79</file>
+ <file> 141</file>
</tool>
</outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 122 118 111</file>
+ </tool>
+ </inputs>
</file>
<file>
- <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>
+ <name>$PROJ_DIR$\RAM_Debug\Obj\LMS_ARM.pbd</name>
+ <inputs>
+ <tool>
+ <name>BILINK</name>
+ <file> 137 149 194 193 154 128 134 157 186 180 155 164 163 126 144 138 169 145 147 182 129 172 184 178 187</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_button.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup_SAM7.r79</file>
+ <file> 150</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 149</file>
</tool>
</outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 29 93 233</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 29 93 233</file>
+ </tool>
+ </inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_motor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_cmd.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_motor.r79</file>
+ <file> 135</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 194</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_motor.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_motor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
+ <file> 231 152 97 0 133 61 50 203 93 59 12 42 83 201 55 34 92 142 87 10 196 188 89 67 71 16 230 27 26 100 108 69</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 97 0 133 61 50 203 93 59 12 42 83 201 55 34 92 142 87 10 196 89 67 71 16 230 27 26 100 108 69</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_sensor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_input.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_sensor.r79</file>
+ <file> 153</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 128</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_sensor.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_sensor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
+ <file> 231 152 76 133 35 0 61 230 10 196 188 89 67 71 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 76 133 35 0 61 230 10 196 89 67 71 16</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_motor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_ioctrl.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 146</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 134</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 131 73 58</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 131 73 58</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_loader.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_motor.r79</file>
+ <file> 158</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 157</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_motor.r</file>
+ <file> 231 152 61 131 90 53 230 10 196 188 89 67 71 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 61 131 90 53 230 10 196 89 67 71 16</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\d_sensor.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_lowspeed.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_sensor.r79</file>
+ <file> 185</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 186</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\m_sched.h</file>
- <file>$PROJ_DIR$\..\Include\sam7s256.h</file>
- <file>$PROJ_DIR$\..\Include\ioat91sam7s64.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_sensor.r</file>
+ <file> 231 152 42 133 56 52</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 42 133 56 52</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\RAM_Debug\Exe\LMS_ARM.d79</name>
+ <name>$PROJ_DIR$\..\..\Source\c_output.c</name>
<outputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\RAM_Debug\List\LMS_ARM.map</file>
+ <name>ICCARM</name>
+ <file> 130</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 180</file>
</tool>
</outputs>
<inputs>
<tool>
- <name>XLINK</name>
- <file>$PROJ_DIR$\at91SAM7S64_16KRAM.xcl</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\Cstartup_SAM7.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_button.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_cmd.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_comm.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_display.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_ioctrl.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_led.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_loader.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_lowspeed.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_motor.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_sensor.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_sound.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_bt.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_button.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_display.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_hispeed.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_ioctrl.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_led.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_lowspeed.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_motor.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_sensor.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_sound.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_timer.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\d_usb.r79</file>
- <file>$PROJ_DIR$\RAM_Debug\Obj\m_sched.r79</file>
- <file>$TOOLKIT_DIR$\lib\dl4tptinl8n.r79</file>
+ <name>ICCARM</name>
+ <file> 87 10 196 188 89 67 71 16 39 231 152 0 68 49 59</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 87 10 196 89 67 71 16 39 231 152 0 68 49 59</file>
</tool>
</inputs>
</file>
<file>
- <name>$PROJ_DIR$\..\..\Source\c_comm.c</name>
+ <name>$PROJ_DIR$\..\..\Source\c_sound.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 136</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 155</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 27 10 196 188 89 67 71 16 230 231 152 203 61 57 25</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 27 10 196 89 67 71 16 230 231 152 203 61 57 25</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\c_ui.c</name>
<outputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\RAM_Debug\Obj\c_comm.r79</file>
+ <file> 175</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 164</file>
</tool>
</outputs>
<inputs>
<tool>
<name>ICCARM</name>
- <file>$PROJ_DIR$\..\..\Source\stdconst.h</file>
- <file>$PROJ_DIR$\..\..\Source\modules.h</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.iom</file>
- <file>$PROJ_DIR$\..\..\Source\c_comm.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_usb.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_hispeed.h</file>
- <file>$PROJ_DIR$\..\..\Source\d_bt.h</file>
+ <file> 87 10 196 188 89 67 71 16 230 33 1 96 229 27 20 41 60 84 81 231 152 50 79 83 201 55 59 61 93 203 133 0 131 97 12 42 48 47 78 85 9 132 5 151 202 43 21 46 74 3 38 63 6 32 54 22 75 36 192 91 80 13 45 86 199 19 23 88 31 200 70 105 191 44 95 65 227 98 198 62</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 87 10 196 89 67 71 16 230 33 1 96 229 27 20 41 60 84 81 231 152 50 79 83 201 55 59 61 93 203 133 0 131 97 12 42 48 47 78 85 9 132 5 151 202 43 21 46 74 3 38 63 6 32 54 22 75 36 192 91 80 13 45 86 199 19 23 88 31 200 70 105 191 44 95 65 227 98 198 62</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_bt.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 190</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 163</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 83 201 55 24 7 230 10 196 188 89 67 71 16</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 83 201 55 24 7 230 10 196 89 67 71 16</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Include\Cstartup.s79</name>
+ <outputs>
+ <tool>
+ <name>AARM</name>
+ <file> 168</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>AARM</name>
+ <file> 72</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Include\Cstartup_SAM7.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 179</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 137</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 232</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 232</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_button.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 160</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 126</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 233 18</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 233 18</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_display.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 127</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 144</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 28 14</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 28 14</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_hispeed.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 189</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 138</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 82 64</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 82 64</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_input.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 177</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 169</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 76 133 35 77</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 76 133 35 77</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_ioctrl.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 165</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 145</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 230 10 196 188 89 67 71 16 231 83 201 55 58 37</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 230 10 196 89 67 71 16 231 83 201 55 58 37</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_loader.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 140</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 147</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 83 201 55 90 11 230 10 196 188 89 67 71 16 33 1 96 229 27 20 41 60 84 81</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 83 201 55 90 11 230 10 196 89 67 71 16 33 1 96 229 27 20 41 60 84 81</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_lowspeed.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 167</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 182</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 52 66</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 52 66</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_output.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 148</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 129</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 49 2</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 49 2</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_sound.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 162</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 172</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 25 17 101</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 25 17 101</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_timer.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 156</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 184</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 142 197</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 142 197</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\d_usb.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 170</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 178</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 83 201 55 30 94</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 83 201 55 30 94</file>
+ </tool>
+ </inputs>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\Source\m_sched.c</name>
+ <outputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 195</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 187</file>
+ </tool>
+ </outputs>
+ <inputs>
+ <tool>
+ <name>ICCARM</name>
+ <file> 231 152 83 201 55 40 51 76 133 29 93 53 57 8 56 68 34 92 97 73 79</file>
+ </tool>
+ <tool>
+ <name>BICOMP</name>
+ <file> 231 152 83 201 55 40 51 76 133 29 93 53 57 8 56 68 34 92 97 73 79</file>
</tool>
</inputs>
</file>
diff --git a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewd b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewd
index edb35bb..51f3c07 100644
--- a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewd
+++ b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewd
@@ -12,7 +12,7 @@
<name>C-SPY</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>12</version>
+ <version>13</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -80,22 +80,6 @@
<state>0</state>
</option>
<option>
- <name>OCDownloadFlashDownload</name>
- <state>0</state>
- </option>
- <option>
- <name>OCDownloadFlashOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>OCDownloadFlashLoader</name>
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\FlashAT91SAM7Sx.d79</state>
- </option>
- <option>
- <name>OCDownloadFlashLoaderSlave</name>
- <state></state>
- </option>
- <option>
<name>OCProductVersion</name>
<state>4.10B</state>
</option>
@@ -108,19 +92,15 @@
<state>4.11B</state>
</option>
<option>
- <name>OCDownloadFlashLoaderArgs</name>
- <state></state>
- </option>
- <option>
- <name>OCDownloadFlashBaseAddrOverride</name>
+ <name>OCDownloadAttachToProgram</name>
<state>0</state>
</option>
<option>
- <name>OCDownloadFlashBaseAddr</name>
- <state></state>
+ <name>FlashLoaders</name>
+ <state>,,,,(default),</state>
</option>
<option>
- <name>OCDownloadAttachToProgram</name>
+ <name>UseFlashLoader</name>
<state>0</state>
</option>
</data>
@@ -220,7 +200,7 @@
<name>JLINK_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>6</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -228,44 +208,146 @@
<state>30</state>
</option>
<option>
- <name>CCJLinkHWReset</name>
+ <name>CCJLinkDoLogfile</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkTRSTReset</name>
- <state>0</state>
+ <name>CCJLinkLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>JLinkInitialSpeed</name>
+ <state>32</state>
</option>
<option>
<name>CCDoJlinkMultiTarget</name>
<state>0</state>
</option>
<option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
<name>CCJLinkMultiTarget</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkDoLogfile</name>
+ <name>CCJLinkIRLength</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkLogFile</name>
- <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
</option>
<option>
- <name>CCJLinkHWResetDelay</name>
- <state></state>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkResetRadio</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>CCJLinkResetInitSeq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
</option>
<option>
- <name>CCJLinkSpeedRadio</name>
+ <name>CCRDICatchFIQ</name>
<state>0</state>
</option>
<option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
<name>OCDriverInfo</name>
<state>1</state>
</option>
<option>
- <name>JLinkInitialSpeed</name>
- <state>32</state>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiResetRadio</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCLmiftdiBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiUpdateBreakpoints</name>
+ <state>main</state>
</option>
</data>
</settings>
@@ -273,7 +355,7 @@
<name>MACRAIGOR_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>2</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -336,6 +418,18 @@
<name>CCMacraigorHWResetDelay</name>
<state></state>
</option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
</data>
</settings>
<settings>
@@ -430,11 +524,15 @@
<loadFlag>1</loadFlag>
</plugin>
<plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$EW_DIR$\common\plugins\Profiling\Profiling.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
- <file>$EW_DIR$\common\plugins\Trace\Trace.ewplugin</file>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
@@ -446,9 +544,25 @@
<loadFlag>0</loadFlag>
</plugin>
<plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
</debuggerPlugins>
</configuration>
<configuration>
@@ -461,7 +575,7 @@
<name>C-SPY</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>12</version>
+ <version>13</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -529,22 +643,6 @@
<state>0</state>
</option>
<option>
- <name>OCDownloadFlashDownload</name>
- <state>1</state>
- </option>
- <option>
- <name>OCDownloadFlashOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>OCDownloadFlashLoader</name>
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\FlashAT91SAM7Sxx.d79</state>
- </option>
- <option>
- <name>OCDownloadFlashLoaderSlave</name>
- <state></state>
- </option>
- <option>
<name>OCProductVersion</name>
<state>4.10B</state>
</option>
@@ -557,20 +655,16 @@
<state>4.20A</state>
</option>
<option>
- <name>OCDownloadFlashLoaderArgs</name>
- <state></state>
- </option>
- <option>
- <name>OCDownloadFlashBaseAddrOverride</name>
- <state>1</state>
+ <name>OCDownloadAttachToProgram</name>
+ <state>0</state>
</option>
<option>
- <name>OCDownloadFlashBaseAddr</name>
- <state>0x00100000</state>
+ <name>FlashLoaders</name>
+ <state>,,,0x00100000,(default),</state>
</option>
<option>
- <name>OCDownloadAttachToProgram</name>
- <state>0</state>
+ <name>UseFlashLoader</name>
+ <state>1</state>
</option>
</data>
</settings>
@@ -669,7 +763,7 @@
<name>JLINK_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>6</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -677,44 +771,146 @@
<state>30</state>
</option>
<option>
- <name>CCJLinkHWReset</name>
+ <name>CCJLinkDoLogfile</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkTRSTReset</name>
- <state>0</state>
+ <name>CCJLinkLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>JLinkInitialSpeed</name>
+ <state>32</state>
</option>
<option>
<name>CCDoJlinkMultiTarget</name>
<state>0</state>
</option>
<option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
<name>CCJLinkMultiTarget</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkDoLogfile</name>
+ <name>CCJLinkIRLength</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkLogFile</name>
- <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
</option>
<option>
- <name>CCJLinkHWResetDelay</name>
- <state></state>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkResetRadio</name>
+ <state>2</state>
</option>
<option>
- <name>CCJLinkSpeedRadio</name>
+ <name>CCJLinkResetInitSeq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
<state>0</state>
</option>
<option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
<name>OCDriverInfo</name>
<state>1</state>
</option>
<option>
- <name>JLinkInitialSpeed</name>
- <state>32</state>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiResetRadio</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCLmiftdiBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiUpdateBreakpoints</name>
+ <state>main</state>
</option>
</data>
</settings>
@@ -722,7 +918,7 @@
<name>MACRAIGOR_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>2</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -785,6 +981,18 @@
<name>CCMacraigorHWResetDelay</name>
<state></state>
</option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
</data>
</settings>
<settings>
@@ -879,11 +1087,15 @@
<loadFlag>1</loadFlag>
</plugin>
<plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$EW_DIR$\common\plugins\Profiling\Profiling.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
- <file>$EW_DIR$\common\plugins\Trace\Trace.ewplugin</file>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
@@ -895,9 +1107,25 @@
<loadFlag>0</loadFlag>
</plugin>
<plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
</debuggerPlugins>
</configuration>
<configuration>
@@ -910,7 +1138,7 @@
<name>C-SPY</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>12</version>
+ <version>13</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -978,49 +1206,592 @@
<state>0</state>
</option>
<option>
- <name>OCDownloadFlashDownload</name>
+ <name>OCProductVersion</name>
+ <state>4.10B</state>
+ </option>
+ <option>
+ <name>OCDynDriverList</name>
+ <state>JLINK_ID</state>
+ </option>
+ <option>
+ <name>OCLastSavedByProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>OCDownloadAttachToProgram</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FlashLoaders</name>
+ <state>,,,0x00100000,(default),</state>
+ </option>
+ <option>
+ <name>UseFlashLoader</name>
<state>1</state>
</option>
+ </data>
+ </settings>
+ <settings>
+ <name>ARMSIM_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
<option>
- <name>OCDownloadFlashOverride</name>
+ <name>OCSimDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ANGEL_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCAngelHeartbeat</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CAngelCommunication</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CAngelCommBaud</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CAngelCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ANGELTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoAngelLogfile</name>
<state>0</state>
</option>
<option>
- <name>OCDownloadFlashLoader</name>
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\FlashAT91SAM7Sxx.d79</state>
+ <name>AngelLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
</option>
<option>
- <name>OCDownloadFlashLoaderSlave</name>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARROM_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CRomLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomLogFileEditB</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CRomCommunication</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomCommBaud</name>
+ <version>0</version>
+ <state>7</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>JLINK_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>6</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>JLinkSpeed</name>
+ <state>30</state>
+ </option>
+ <option>
+ <name>CCJLinkDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
<state></state>
</option>
<option>
- <name>OCProductVersion</name>
- <state>4.10B</state>
+ <name>OCDriverInfo</name>
+ <state>1</state>
</option>
<option>
- <name>OCDynDriverList</name>
- <state>JLINK_ID</state>
+ <name>JLinkInitialSpeed</name>
+ <state>32</state>
</option>
<option>
- <name>OCLastSavedByProductVersion</name>
- <state>4.20A</state>
+ <name>CCDoJlinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkIRLength</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkResetRadio</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>CCJLinkResetInitSeq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
</option>
<option>
- <name>OCDownloadFlashLoaderArgs</name>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiResetRadio</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCLmiftdiBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>MACRAIGOR_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>jtag</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>EmuSpeed</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>DoEmuMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>EmuMultiTarget</name>
+ <state>0@ARM7TDMI</state>
+ </option>
+ <option>
+ <name>EmuHWReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CEmuCommBaud</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>CEmuCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>jtago</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>UnusedAddr</name>
+ <state>0x00800000</state>
+ </option>
+ <option>
+ <name>CCMacraigorHWResetDelay</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>RDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CRDIDriverDll</name>
+ <state>Browse to your RDI driver</state>
+ </option>
+ <option>
+ <name>CRDILogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRDILogFileEdit</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCRDIHWReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDIUseETM</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>THIRDPARTY_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CThirdPartyDriverDll</name>
+ <state>Browse to your third-party driver</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileEditB</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Profiling\Profiling.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CMXArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CMXTinyArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+ <configuration>
+ <name>Benchmark</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>0</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>13</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCVariant</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state>$PROJ_DIR$\SAM7.mac</state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MemFile</name>
+ <state>$PROJ_DIR$\ioat91sam7s256.ddf</state>
+ </option>
+ <option>
+ <name>RunToEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RunToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>CExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CExtraOptions</name>
<state></state>
</option>
<option>
- <name>OCDownloadFlashBaseAddrOverride</name>
+ <name>CFpuProcessor</name>
<state>1</state>
</option>
<option>
- <name>OCDownloadFlashBaseAddr</name>
- <state>0x00100000</state>
+ <name>OCDDFArgumentProducer</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDownloadSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDownloadVerifyAll</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProductVersion</name>
+ <state>4.10B</state>
+ </option>
+ <option>
+ <name>OCDynDriverList</name>
+ <state>JLINK_ID</state>
+ </option>
+ <option>
+ <name>OCLastSavedByProductVersion</name>
+ <state>4.41A</state>
</option>
<option>
<name>OCDownloadAttachToProgram</name>
<state>0</state>
</option>
+ <option>
+ <name>FlashLoaders</name>
+ <state>,,,0x00100000,(default),</state>
+ </option>
+ <option>
+ <name>UseFlashLoader</name>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
@@ -1029,7 +1800,7 @@
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>OCSimDriverInfo</name>
<state>1</state>
@@ -1042,7 +1813,7 @@
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>CCAngelHeartbeat</name>
<state>1</state>
@@ -1085,7 +1856,7 @@
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>CRomLogFileCheck</name>
<state>0</state>
@@ -1118,52 +1889,154 @@
<name>JLINK_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>6</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>JLinkSpeed</name>
<state>30</state>
</option>
<option>
- <name>CCJLinkHWReset</name>
+ <name>CCJLinkDoLogfile</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkTRSTReset</name>
- <state>0</state>
+ <name>CCJLinkLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>JLinkInitialSpeed</name>
+ <state>32</state>
</option>
<option>
<name>CCDoJlinkMultiTarget</name>
<state>0</state>
</option>
<option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
<name>CCJLinkMultiTarget</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkDoLogfile</name>
+ <name>CCJLinkIRLength</name>
<state>0</state>
</option>
<option>
- <name>CCJLinkLogFile</name>
- <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
</option>
<option>
- <name>CCJLinkHWResetDelay</name>
- <state></state>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkResetRadio</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>CCJLinkResetInitSeq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
</option>
<option>
- <name>CCJLinkSpeedRadio</name>
+ <name>CCJLinkDoUpdateBreakpoints</name>
<state>0</state>
</option>
<option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
<name>OCDriverInfo</name>
<state>1</state>
</option>
<option>
- <name>JLinkInitialSpeed</name>
- <state>32</state>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiResetRadio</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCLmiftdiBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiUpdateBreakpoints</name>
+ <state>main</state>
</option>
</data>
</settings>
@@ -1171,9 +2044,9 @@
<name>MACRAIGOR_ID</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>1</version>
+ <version>2</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>jtag</name>
<version>0</version>
@@ -1234,6 +2107,18 @@
<name>CCMacraigorHWResetDelay</name>
<state></state>
</option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
</data>
</settings>
<settings>
@@ -1242,7 +2127,7 @@
<data>
<version>1</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>CRDIDriverDll</name>
<state>Browse to your RDI driver</state>
@@ -1303,7 +2188,7 @@
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>CThirdPartyDriverDll</name>
<state>Browse to your third-party driver</state>
@@ -1328,11 +2213,15 @@
<loadFlag>1</loadFlag>
</plugin>
<plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$EW_DIR$\common\plugins\Profiling\Profiling.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
- <file>$EW_DIR$\common\plugins\Trace\Trace.ewplugin</file>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
@@ -1344,9 +2233,25 @@
<loadFlag>0</loadFlag>
</plugin>
<plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
</debuggerPlugins>
</configuration>
</project>
diff --git a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewp b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewp
index 9106c9f..c90d273 100644
--- a/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewp
+++ b/AT91SAM7S256/SAM7S256/Tools/LMS_ARM.ewp
@@ -12,7 +12,7 @@
<name>General</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>8</version>
+ <version>9</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -33,7 +33,7 @@
</option>
<option>
<name>Variant</name>
- <version>2</version>
+ <version>5</version>
<state>0</state>
</option>
<option>
@@ -80,10 +80,6 @@
<state>1</state>
</option>
<option>
- <name>OGChipSelect</name>
- <state>$TOOLKIT_DIR$\config\chip\Atmel\AT91SAM7S64.i79</state>
- </option>
- <option>
<name>GRuntimeLibSelect</name>
<version>0</version>
<state>1</state>
@@ -126,22 +122,20 @@
<name>GeneralMisraVerbose</name>
<state>0</state>
</option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>AT91SAM7S64 Atmel AT91SAM7S64</state>
+ </option>
</data>
</settings>
<settings>
<name>ICCARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>11</version>
+ <version>14</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
- <name>CCIncludePaths</name>
- <state>$TOOLKIT_DIR$\INC\</state>
- <state>$PROJ_DIR$\srciar\</state>
- <state>$PROJ_DIR$\..\..\</state>
- </option>
- <option>
<name>CCDefines</name>
<state>ESS</state>
</option>
@@ -216,10 +210,6 @@
<state>1111111</state>
</option>
<option>
- <name>CCMakeLibraryModule</name>
- <state>0</state>
- </option>
- <option>
<name>CCObjUseModuleName</name>
<state>0</state>
</option>
@@ -329,13 +319,43 @@
<name>CompilerMisraOverride</name>
<state>0</state>
</option>
+ <option>
+ <name>CCModuleTypeOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleTypeCmdlineProducer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\srciar\</state>
+ <state>$PROJ_DIR$\..\..\</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>CCInlineThreshold</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
<name>AARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>5</version>
+ <version>7</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -380,10 +400,6 @@
<state>1</state>
</option>
<option>
- <name>MakeLibrary</name>
- <state>0</state>
- </option>
- <option>
<name>AltRegisterNames</name>
<state>0</state>
</option>
@@ -456,67 +472,50 @@
<state>0</state>
</option>
<option>
- <name>UndefAsm</name>
+ <name>AProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefFile</name>
+ <name>AFpuProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefLine</name>
- <state>1</state>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.r79</state>
</option>
<option>
- <name>UndefTime</name>
- <state>1</state>
+ <name>AMultibyteSupport</name>
+ <state>0</state>
</option>
<option>
- <name>UndefDate</name>
- <state>1</state>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
</option>
<option>
- <name>UndefTid</name>
- <state>1</state>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
</option>
<option>
- <name>UndefVer</name>
- <state>1</state>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
</option>
<option>
- <name>AIncludes</name>
+ <name>AStdIncludes</name>
<state>$TOOLKIT_DIR$\INC\</state>
- <state>$PROJ_DIR$\srciar\</state>
- <state>$PROJ_DIR$\..\..\include\</state>
</option>
<option>
- <name>AProcessor</name>
- <state>1</state>
+ <name>AUserIncludes</name>
+ <state>$PROJ_DIR$\srciar\</state>
+ <state>$PROJ_DIR$\..\..\include\</state>
</option>
<option>
- <name>AExtraOptionsCheck</name>
+ <name>AExtraOptionsCheckV2</name>
<state>0</state>
</option>
<option>
- <name>AExtraOptions</name>
+ <name>AExtraOptionsV2</name>
<state></state>
</option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>UndefLittleEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.r79</state>
- </option>
- <option>
- <name>AMultibyteSupport</name>
- <state>0</state>
- </option>
</data>
</settings>
<settings>
@@ -544,7 +543,7 @@
<name>XLINK</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>17</version>
+ <version>18</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -557,13 +556,13 @@
</option>
<option>
<name>OutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>16</state>
</option>
<option>
<name>FormatVariant</name>
- <version>6</version>
- <state>15</state>
+ <version>8</version>
+ <state>17</state>
</option>
<option>
<name>SecondaryOutputFile</name>
@@ -743,12 +742,12 @@
</option>
<option>
<name>ExtraOutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>23</state>
</option>
<option>
<name>ExtraFormatVariant</name>
- <version>6</version>
+ <version>8</version>
<state>2</state>
</option>
<option>
@@ -791,6 +790,14 @@
<name>XLinkMisraHandler</name>
<state>0</state>
</option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
</data>
</settings>
<settings>
@@ -830,7 +837,7 @@
<name>General</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>8</version>
+ <version>9</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -851,7 +858,7 @@
</option>
<option>
<name>Variant</name>
- <version>2</version>
+ <version>5</version>
<state>0</state>
</option>
<option>
@@ -898,10 +905,6 @@
<state>1</state>
</option>
<option>
- <name>OGChipSelect</name>
- <state>$PROJ_DIR$\AT91SAM7S256.i79</state>
- </option>
- <option>
<name>GRuntimeLibSelect</name>
<version>0</version>
<state>3</state>
@@ -929,7 +932,7 @@
</option>
<option>
<name>OGLastSavedByProductVersion</name>
- <state>4.20A</state>
+ <state>4.41A</state>
</option>
<option>
<name>GeneralMisraRules</name>
@@ -944,21 +947,20 @@
<name>GeneralMisraVerbose</name>
<state>0</state>
</option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>AT91SAM7S256 Atmel AT91SAM7S256</state>
+ </option>
</data>
</settings>
<settings>
<name>ICCARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>11</version>
+ <version>14</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
- <name>CCIncludePaths</name>
- <state>$PROJ_DIR$\..\..\</state>
- <state>$PROJ_DIR$\..\Include\</state>
- </option>
- <option>
<name>CCDefines</name>
<state>PROTOTYPE_PCB_4</state>
<state>NEW_MENU</state>
@@ -1034,10 +1036,6 @@
<state>1111111</state>
</option>
<option>
- <name>CCMakeLibraryModule</name>
- <state>0</state>
- </option>
- <option>
<name>CCObjUseModuleName</name>
<state>0</state>
</option>
@@ -1147,13 +1145,43 @@
<name>CompilerMisraOverride</name>
<state>0</state>
</option>
+ <option>
+ <name>CCModuleTypeOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleTypeCmdlineProducer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\..\..\</state>
+ <state>$PROJ_DIR$\..\Include\</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>CCInlineThreshold</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
<name>AARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>5</version>
+ <version>7</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -1198,10 +1226,6 @@
<state>1</state>
</option>
<option>
- <name>MakeLibrary</name>
- <state>0</state>
- </option>
- <option>
<name>AltRegisterNames</name>
<state>0</state>
</option>
@@ -1274,65 +1298,49 @@
<state>0</state>
</option>
<option>
- <name>UndefAsm</name>
+ <name>AProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefFile</name>
+ <name>AFpuProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefLine</name>
- <state>1</state>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.r79</state>
</option>
<option>
- <name>UndefTime</name>
- <state>1</state>
+ <name>AMultibyteSupport</name>
+ <state>0</state>
</option>
<option>
- <name>UndefDate</name>
- <state>1</state>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
</option>
<option>
- <name>UndefTid</name>
- <state>1</state>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
</option>
<option>
- <name>UndefVer</name>
+ <name>AIgnoreStdInclude</name>
<state>1</state>
</option>
<option>
- <name>AIncludes</name>
- <state>$PROJ_DIR$\..\..\include\</state>
+ <name>AStdIncludes</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
</option>
<option>
- <name>AProcessor</name>
- <state>1</state>
+ <name>AUserIncludes</name>
+ <state>$PROJ_DIR$\..\..\include\</state>
</option>
<option>
- <name>AExtraOptionsCheck</name>
+ <name>AExtraOptionsCheckV2</name>
<state>0</state>
</option>
<option>
- <name>AExtraOptions</name>
+ <name>AExtraOptionsV2</name>
<state></state>
</option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>UndefLittleEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.r79</state>
- </option>
- <option>
- <name>AMultibyteSupport</name>
- <state>0</state>
- </option>
</data>
</settings>
<settings>
@@ -1360,7 +1368,7 @@
<name>XLINK</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>17</version>
+ <version>18</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -1373,13 +1381,13 @@
</option>
<option>
<name>OutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>16</state>
</option>
<option>
<name>FormatVariant</name>
- <version>6</version>
- <state>15</state>
+ <version>8</version>
+ <state>17</state>
</option>
<option>
<name>SecondaryOutputFile</name>
@@ -1559,12 +1567,12 @@
</option>
<option>
<name>ExtraOutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>60</state>
</option>
<option>
<name>ExtraFormatVariant</name>
- <version>6</version>
+ <version>8</version>
<state>2</state>
</option>
<option>
@@ -1607,6 +1615,14 @@
<name>XLinkMisraHandler</name>
<state>0</state>
</option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
</data>
</settings>
<settings>
@@ -1646,7 +1662,7 @@
<name>General</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>8</version>
+ <version>9</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -1667,7 +1683,7 @@
</option>
<option>
<name>Variant</name>
- <version>2</version>
+ <version>5</version>
<state>0</state>
</option>
<option>
@@ -1714,10 +1730,6 @@
<state>1</state>
</option>
<option>
- <name>OGChipSelect</name>
- <state>$PROJ_DIR$\AT91SAM7S256.i79</state>
- </option>
- <option>
<name>GRuntimeLibSelect</name>
<version>0</version>
<state>3</state>
@@ -1745,7 +1757,7 @@
</option>
<option>
<name>OGLastSavedByProductVersion</name>
- <state>4.20A</state>
+ <state>4.42A</state>
</option>
<option>
<name>GeneralMisraRules</name>
@@ -1760,21 +1772,20 @@
<name>GeneralMisraVerbose</name>
<state>0</state>
</option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>AT91SAM7S256 Atmel AT91SAM7S256</state>
+ </option>
</data>
</settings>
<settings>
<name>ICCARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>11</version>
+ <version>14</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
- <name>CCIncludePaths</name>
- <state>$PROJ_DIR$\..\..\</state>
- <state>$PROJ_DIR$\..\Include\</state>
- </option>
- <option>
<name>CCDefines</name>
<state>PROTOTYPE_PCB_4</state>
<state>NEW_MENU</state>
@@ -1850,10 +1861,6 @@
<state>1111111</state>
</option>
<option>
- <name>CCMakeLibraryModule</name>
- <state>0</state>
- </option>
- <option>
<name>CCObjUseModuleName</name>
<state>0</state>
</option>
@@ -1915,7 +1922,7 @@
</option>
<option>
<name>CCCompilerRuntimeInfo</name>
- <state>1</state>
+ <state>0</state>
</option>
<option>
<name>IFpuProcessor</name>
@@ -1963,13 +1970,43 @@
<name>CompilerMisraOverride</name>
<state>0</state>
</option>
+ <option>
+ <name>CCModuleTypeOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleTypeCmdlineProducer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\..\..\</state>
+ <state>$PROJ_DIR$\..\Include\</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>CCInlineThreshold</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
<name>AARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>5</version>
+ <version>7</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -2014,10 +2051,6 @@
<state>1</state>
</option>
<option>
- <name>MakeLibrary</name>
- <state>0</state>
- </option>
- <option>
<name>AltRegisterNames</name>
<state>0</state>
</option>
@@ -2090,55 +2123,837 @@
<state>0</state>
</option>
<option>
- <name>UndefAsm</name>
+ <name>AProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefFile</name>
+ <name>AFpuProcessor</name>
<state>1</state>
</option>
<option>
- <name>UndefLine</name>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.r79</state>
+ </option>
+ <option>
+ <name>AMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
<state>1</state>
</option>
<option>
- <name>UndefTime</name>
+ <name>AStdIncludes</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state>$PROJ_DIR$\..\..\include\</state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>XLINK</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>18</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XOutOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>LMS_ARM.d79</state>
+ </option>
+ <option>
+ <name>OutputFormat</name>
+ <version>11</version>
+ <state>16</state>
+ </option>
+ <option>
+ <name>FormatVariant</name>
+ <version>8</version>
+ <state>17</state>
+ </option>
+ <option>
+ <name>SecondaryOutputFile</name>
+ <state>(None for the selected format)</state>
+ </option>
+ <option>
+ <name>XDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AlwaysOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlapWarnings</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoGlobalCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XList</name>
<state>1</state>
</option>
<option>
- <name>UndefDate</name>
+ <name>SegmentMap</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ListSymbols</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>XIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ModuleStatus</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XclOverride</name>
<state>1</state>
</option>
<option>
- <name>UndefTid</name>
+ <name>XclFile</name>
+ <state>$PROJ_DIR$\at91SAM7S256_Remap.xcl</state>
+ </option>
+ <option>
+ <name>XclFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
<state>1</state>
</option>
<option>
- <name>UndefVer</name>
+ <name>CrcAlgo</name>
<state>1</state>
</option>
<option>
- <name>AIncludes</name>
- <state>$PROJ_DIR$\..\..\include\</state>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
</option>
<option>
- <name>AProcessor</name>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RangeCheckAlternatives</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressAllWarn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>TreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>TreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ModuleLocalSym</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IncludeSuppressed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OXLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ModuleSummary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabel</name>
+ <state>__program_start</state>
+ </option>
+ <option>
+ <name>DebugInformation</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RuntimeControl</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IoEmulation</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XcRTLibraryFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AllowExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenerateExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XExtraOutOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ExtraOutputFile</name>
+ <state>LMS_ARM.a79</state>
+ </option>
+ <option>
+ <name>ExtraOutputFormat</name>
+ <version>11</version>
+ <state>57</state>
+ </option>
+ <option>
+ <name>ExtraFormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>xcOverrideProgramEntryLabel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabelSelect</name>
<state>1</state>
</option>
<option>
- <name>AExtraOptionsCheck</name>
+ <name>ListOutputFormat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>BufferedTermOutput</name>
<state>0</state>
</option>
<option>
- <name>AExtraOptions</name>
+ <name>OverlaySystemMap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RawBinaryFile</name>
<state></state>
</option>
<option>
- <name>AFpuProcessor</name>
+ <name>RawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>XAR</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XARInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XAROverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAROutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ </configuration>
+ <configuration>
+ <name>Benchmark</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>0</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>9</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>GProcessorMode</name>
<state>1</state>
</option>
<option>
- <name>UndefLittleEndian</name>
+ <name>ExePath</name>
+ <state>Benchmark\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>Benchmark\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>Benchmark\List</state>
+ </option>
+ <option>
+ <name>Variant</name>
+ <version>5</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GInterwork</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GStackAlign</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input variant</name>
+ <version>1</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Full formatting.</state>
+ </option>
+ <option>
+ <name>Output variant</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Full formatting.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FPU</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use a customized C/C++ runtime library.</state>
+ </option>
+ <option>
+ <name>RTConfigPath</name>
+ <state>$PROJ_DIR$\..\Lib\dl4tptinl8n.h</state>
+ </option>
+ <option>
+ <name>RTLibraryPath</name>
+ <state>$PROJ_DIR$\..\Lib\dl4tptinl8n.r79</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>4.11A</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>AT91SAM7S256 Atmel AT91SAM7S256</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>14</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CCDefines</name>
+ <state>PROTOTYPE_PCB_4</state>
+ <state>NEW_MENU</state>
+ <state>VM_BENCHMARK</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptSizeSpeed</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptimization</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>1111111</state>
+ </option>
+ <option>
+ <name>CCObjUseModuleName</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCObjModuleName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessorMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IStackAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IInterwork</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r79</state>
+ </option>
+ <option>
+ <name>CCLangSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptSizeSpeedSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptimizationSlave</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCCodeFunctions</name>
+ <state>CODE</state>
+ </option>
+ <option>
+ <name>CCData</name>
+ <state>DATA</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraRules</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleTypeOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCModuleTypeCmdlineProducer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\..\..\</state>
+ <state>$PROJ_DIR$\..\Include\</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>CCInlineThreshold</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
<state>1</state>
</option>
<option>
@@ -2149,6 +2964,34 @@
<name>AMultibyteSupport</name>
<state>0</state>
</option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AStdIncludes</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state>$PROJ_DIR$\..\..\include\</state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
</data>
</settings>
<settings>
@@ -2176,9 +3019,9 @@
<name>XLINK</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>17</version>
+ <version>18</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>XOutOverride</name>
<state>0</state>
@@ -2189,13 +3032,13 @@
</option>
<option>
<name>OutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>16</state>
</option>
<option>
<name>FormatVariant</name>
- <version>6</version>
- <state>15</state>
+ <version>8</version>
+ <state>17</state>
</option>
<option>
<name>SecondaryOutputFile</name>
@@ -2367,20 +3210,20 @@
</option>
<option>
<name>XExtraOutOverride</name>
- <state>0</state>
+ <state>1</state>
</option>
<option>
<name>ExtraOutputFile</name>
- <state>LMS_ARM.a79</state>
+ <state>LMS_ARM_BENCH.a79</state>
</option>
<option>
<name>ExtraOutputFormat</name>
- <version>10</version>
+ <version>11</version>
<state>57</state>
</option>
<option>
<name>ExtraFormatVariant</name>
- <version>6</version>
+ <version>8</version>
<state>2</state>
</option>
<option>
@@ -2423,6 +3266,14 @@
<name>XLinkMisraHandler</name>
<state>0</state>
</option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
</data>
</settings>
<settings>
@@ -2431,7 +3282,7 @@
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
+ <debug>0</debug>
<option>
<name>XARInputs</name>
<state></state>
diff --git a/AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl b/AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl
index ebc4205..bca7a2a 100644
--- a/AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl
+++ b/AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl
@@ -88,6 +88,7 @@
// Code segments may be placed anywhere.
//************************************************
-Z(CODE)CODE=ROMSTART-ROMEND
+-Z(CODE)RAMCODE=RAMSTART-RAMEND
//************************************************
// Various constants and initializers.
@@ -125,6 +126,9 @@
-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE=RAMSTART-RAMEND
+-D_HEAP_SIZE=1024
+-Z(DATA)HEAP+_HEAP_SIZE=RAMSTART-RAMEND
+
//*************************************************************************
// ELF/DWARF support.
//
diff --git a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.cspy.bat b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.cspy.bat
new file mode 100644
index 0000000..89906fa
--- /dev/null
+++ b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.cspy.bat
@@ -0,0 +1,32 @@
+@REM This bat file has been generated by the IAR Embeddded Workbench
+@REM C-SPY interactive debugger,as an aid to preparing a command
+@REM line for running the cspybat command line utility with the
+@REM appropriate settings.
+@REM
+@REM After making some adjustments to this file, you can launch cspybat
+@REM by typing the name of this file followed by the name of the debug
+@REM file (usually an ubrof file). Note that this file is generated
+@REM every time a new debug session is initialized, so you may want to
+@REM move or rename the file before making changes.
+@REM
+@REM Note: some command line arguments cannot be properly generated
+@REM by this process. Specifically, the plugin which is responsible
+@REM for the Terminal I/O window (and other C runtime functionality)
+@REM comes in a special version for cspybat, and the name of that
+@REM plugin dll is not known when generating this file. It resides in
+@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
+@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
+@REM tool chain. Replace the '<libsupport_plugin>' parameter
+@REM below with the appropriate file name. Other plugins loaded by
+@REM C-SPY are usually not needed by, or will not work in, cspybat
+@REM but they are listed at the end of this file for reference.
+
+
+"C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\common\bin\cspybat" "C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\arm\bin\armproc.dll" "C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\arm\bin\armjlink.dll" %1 --plugin "C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\arm\bin\<libsupport_plugin>" --macro "C:\NXT\LMS NXT\AT91SAM7S256\SAM7S256\Tools\SAM7.mac" --backend -B "--endian" "little" "--cpu" "ARM7TDMI" "--fpu" "None" "--proc_device_desc_file" "C:\NXT\LMS NXT\AT91SAM7S256\SAM7S256\Tools\ioat91sam7s256.ddf" "--proc_driver" "jlink" "--jlink_connection" "USB:0" "--jlink_initial_speed" "32"
+
+
+@REM Loaded plugins:
+@REM armlibsupport.dll
+@REM C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\common\plugins\CodeCoverage\CodeCoverage.dll
+@REM C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\common\plugins\Profiling\Profiling.dll
+@REM C:\Program Files\IAR Systems\Embedded Workbench 4.0 LEGO\common\plugins\stack\stack.dll
diff --git a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dbgdt b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dbgdt
index 092fee7..b3ca4cc 100644
--- a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dbgdt
+++ b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dbgdt
@@ -8,7 +8,7 @@
- <Column0>152</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
+ <Column0>217</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
@@ -17,12 +17,12 @@
<PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>
<Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows></Debug-Log>
<Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ColumnWidth0>22</ColumnWidth0><ColumnWidth1>914</ColumnWidth1><ColumnWidth2>243</ColumnWidth2><ColumnWidth3>60</ColumnWidth3></Build>
- <QWatch><Column0>100</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Watch><Format><struct_types/><watch_formats/></Format><PreferedWindows><Position>4</Position><ScreenPosX>55</ScreenPosX><ScreenPosY>27</ScreenPosY><Windows/></PreferedWindows><Column0>127</Column0><Column1>225</Column1><Column2>100</Column2><Column3>100</Column3></Watch><Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Breakpoints><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Breakpoints></Static>
+ <QWatch><Column0>100</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Watch><Format><struct_types/><watch_formats/></Format><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Register</Factory></Window><Window><Factory>Disassembly</Factory></Window><Window><Factory>QuickWatch</Factory></Window></Windows></PreferedWindows><Column0>127</Column0><Column1>225</Column1><Column2>100</Column2><Column3>100</Column3></Watch><Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Disassembly</Factory></Window><Window><Factory>Watch</Factory></Window><Window><Factory>QuickWatch</Factory></Window></Windows></PreferedWindows></Register><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Breakpoints><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Breakpoints><QuickWatch><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Disassembly</Factory></Window></Windows></PreferedWindows><Column0>100</Column0><Column1>117</Column1><Column2>100</Column2><Column3>100</Column3></QuickWatch></Static>
<Windows>
- <Wnd1>
+ <Wnd3>
<Tabs>
<Tab>
<Identity>TabID-16470-5520</Identity>
@@ -30,24 +30,24 @@
<Factory>Workspace</Factory>
<Session>
- <NodeDict><ExpandedNode>LMS_ARM</ExpandedNode></NodeDict></Session>
+ <NodeDict><ExpandedNode>LMS_ARM</ExpandedNode><ExpandedNode>LMS_ARM/c_cmd.c</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
- <SelectedTab>0</SelectedTab></Wnd1><Wnd3><Tabs><Tab><Identity>TabID-17326-28629</Identity><TabName>Register</TabName><Factory>Register</Factory><Session><REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>0</States></Session></Tab><Tab><Identity>TabID-9192-28577</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab><Tab><Identity>TabID-2396-28705</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions/><TabId>1</TabId><Column0>127</Column0><Column1>225</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab></Tabs><SelectedTab>1</SelectedTab></Wnd3></Windows>
+ <SelectedTab>0</SelectedTab></Wnd3><Wnd4><Tabs><Tab><Identity>TabID-9457-21118</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-10897-9476</Identity><TabName>Quick Watch</TabName><Factory>QuickWatch</Factory><Session><Expression>Status</Expression></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor>
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\lib_at91sam7s64.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>2564</SelStart><SelEnd>2564</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_display.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>591</SelStart><SelEnd>591</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_display.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>677</SelStart><SelEnd>677</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>594</SelStart><SelEnd>594</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>591</SelStart><SelEnd>591</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>618</SelStart><SelEnd>618</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_sound.c</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>515</SelStart><SelEnd>515</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>596</SelStart><SelEnd>596</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>587</SelStart><SelEnd>587</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.c</Filename><XPos>0</XPos><YPos>30</YPos><SelStart>665</SelStart><SelEnd>665</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_sound.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>493</SelStart><SelEnd>493</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.r</Filename><XPos>0</XPos><YPos>20</YPos><SelStart>615</SelStart><SelEnd>615</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_button.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>619</SelStart><SelEnd>619</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\ioat91sam7s64.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\sam7s256.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>584</SelStart><SelEnd>584</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_ioctrl.r</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>3821</SelStart><SelEnd>3821</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\Include\Cstartup_SAM7.c</Filename><XPos>0</XPos><YPos>51</YPos><SelStart>3336</SelStart><SelEnd>3336</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_output.iom</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1175</SelStart><SelEnd>1175</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\Include\Cstartup.s79</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>1017</SelStart><SelEnd>1017</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>700</SelStart><SelEnd>700</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.c</Filename><XPos>0</XPos><YPos>7</YPos><SelStart>3176</SelStart><SelEnd>3176</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.c</Filename><XPos>0</XPos><YPos>17</YPos><SelStart>679</SelStart><SelEnd>679</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_lowspeed.c</Filename><XPos>0</XPos><YPos>81</YPos><SelStart>1563</SelStart><SelEnd>1563</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_loader.iom</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\m_sched.h</Filename><XPos>0</XPos><YPos>88</YPos><SelStart>1152</SelStart><SelEnd>1152</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_comm.c</Filename><XPos>0</XPos><YPos>75</YPos><SelStart>2609</SelStart><SelEnd>2609</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_usb.c</Filename><XPos>0</XPos><YPos>680</YPos><SelStart>23517</SelStart><SelEnd>23517</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_button.c</Filename><XPos>0</XPos><YPos>50</YPos><SelStart>1152</SelStart><SelEnd>1152</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_display.c</Filename><XPos>0</XPos><YPos>477</YPos><SelStart>10510</SelStart><SelEnd>10510</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_ioctrl.c</Filename><XPos>0</XPos><YPos>34</YPos><SelStart>1025</SelStart><SelEnd>1025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_ioctrl.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>782</SelStart><SelEnd>782</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\m_sched.c</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>1196</SelStart><SelEnd>1196</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_cmd.c</Filename><XPos>0</XPos><YPos>1117</YPos><SelStart>31574</SelStart><SelEnd>31574</SelEnd></Tab><ActiveTab>34</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_output.c</Filename><XPos>0</XPos><YPos>32</YPos><SelStart>1082</SelStart><SelEnd>1082</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_loader.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1602</SelStart><SelEnd>1602</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_cmd.c</Filename><XPos>0</XPos><YPos>4360</YPos><SelStart>123753</SelStart><SelEnd>123753</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-003ae3f0><key>iaridepm1</key></Toolbar-003ae3f0></Sizes></Row0><Row1><Sizes><Toolbar-02aa0a60><key>debuggergui1</key></Toolbar-02aa0a60></Sizes></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>624</Bottom><Right>226</Right><x>-2</x><y>-2</y><xscreen>5</xscreen><yscreen>5</yscreen><sizeHorzCX>4882</sizeHorzCX><sizeHorzCY>7225</sizeHorzCY><sizeVertCX>222656</sizeVertCX><sizeVertCY>904624</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>624</Bottom><Right>245</Right><x>-2</x><y>-2</y><xscreen>159</xscreen><yscreen>140</yscreen><sizeHorzCX>155273</sizeHorzCX><sizeHorzCY>202312</sizeHorzCY><sizeVertCX>241210</sizeVertCX><sizeVertCY>904624</sizeVertCY></Rect></Wnd3></Sizes></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-0099f218><key>iaridepm.enu1</key></Toolbar-0099f218></Sizes></Row0><Row1><Sizes><Toolbar-01aca7f8><key>debuggergui.enu1</key></Toolbar-01aca7f8></Sizes></Row1></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>539</Bottom><Right>308</Right><x>-2</x><y>-2</y><xscreen>7</xscreen><yscreen>6</yscreen><sizeHorzCX>5040</sizeHorzCX><sizeHorzCY>6993</sizeHorzCY><sizeVertCX>223182</sizeVertCX><sizeVertCY>630536</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>539</Bottom><Right>280</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>143988</sizeHorzCX><sizeHorzCY>233100</sizeHorzCY><sizeVertCX>203024</sizeVertCX><sizeVertCY>630536</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>251</Bottom><Right>1391</Right><x>-2</x><y>-2</y><xscreen>1393</xscreen><yscreen>253</yscreen><sizeHorzCX>1002880</sizeHorzCX><sizeHorzCY>294872</sizeHorzCY><sizeVertCX>172066</sizeVertCX><sizeVertCY>294872</sizeVertCY></Rect></Wnd4></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>
diff --git a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dni b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dni
index 409b4b4..883e131 100644
--- a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dni
+++ b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.dni
@@ -6,14 +6,29 @@ Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
-[Log file]
+[StackPlugin]
+Enabled=1
+OverflowWarningsEnabled=1
+WarningThreshold=90
+SpWarningsEnabled=1
+WarnHow=0
+UseTrigger=1
+TriggerName=main
+LimitSize=0
+ByteLimit=50
+[Profiling]
+Enabled=0
+[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
-Category=_ 0
-[TermIOLog]
+[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
+Category=_ 0
[Disassemble mode]
mode=0
[Breakpoints]
Count=0
+[TraceHelper]
+Enabled=0
+ShowSource=1
diff --git a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.wsdt b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.wsdt
index 7183c3d..23abd75 100644
--- a/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.wsdt
+++ b/AT91SAM7S256/SAM7S256/Tools/settings/LMS_ARM.wsdt
@@ -3,7 +3,7 @@
<Workspace>
<ConfigDictionary>
- <CurrentConfigs><Project>LMS_ARM/Flash Debug</Project></CurrentConfigs></ConfigDictionary>
+ <CurrentConfigs><Project>LMS_ARM/Bin Output</Project></CurrentConfigs></ConfigDictionary>
<Desktop>
<Static>
<Workspace>
@@ -11,9 +11,9 @@
- <Column0>150</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
+ <Column0>156</Column0><Column1>3</Column1><Column2>27</Column2><Column3>1307876</Column3></ColumnWidths>
</Workspace>
- <Build><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>917</ColumnWidth1><ColumnWidth2>244</ColumnWidth2><ColumnWidth3>61</ColumnWidth3></Build>
+ <Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>627</ColumnWidth1><ColumnWidth2>244</ColumnWidth2><ColumnWidth3>61</ColumnWidth3></Build>
<TerminalIO/>
<Profiling/>
<Watch>
@@ -22,33 +22,17 @@
<watch_formats/>
</Format>
<PreferedWindows><Position>4</Position><ScreenPosX>55</ScreenPosX><ScreenPosY>27</ScreenPosY><Windows/></PreferedWindows></Watch>
- <Debug-Log/>
+ <Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Build</Factory></Window></Windows></PreferedWindows></Debug-Log>
<Disassembly>
<MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow><PreferedWindows><Position>4</Position><ScreenPosX>1424</ScreenPosX><ScreenPosY>44</ScreenPosY><Windows/></PreferedWindows></Disassembly>
- <Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Find-in-Files><ColumnWidth0>440</ColumnWidth0><ColumnWidth1>62</ColumnWidth1><ColumnWidth2>754</ColumnWidth2></Find-in-Files></Static>
+ <Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Find-in-Files><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows><ColumnWidth0>440</ColumnWidth0><ColumnWidth1>62</ColumnWidth1><ColumnWidth2>754</ColumnWidth2></Find-in-Files><CodeCoveragePlugin/></Static>
<Windows>
- <Wnd0>
- <Tabs>
- <Tab>
- <Identity>TabID-7290-5487</Identity>
- <TabName>Build</TabName>
- <Factory>Build</Factory>
- <Session/>
- </Tab>
- <Tab>
- <Identity>TabID-5721-5516</Identity>
- <TabName>Debug Log</TabName>
- <Factory>Debug-Log</Factory>
- <Session/>
- </Tab>
- <Tab><Identity>TabID-447-5816</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>
-
- <SelectedTab>1</SelectedTab></Wnd0><Wnd1>
+ <Wnd2>
<Tabs>
<Tab>
<Identity>TabID-32446-5425</Identity>
@@ -56,24 +40,24 @@
<Factory>Workspace</Factory>
<Session>
- <NodeDict><ExpandedNode>LMS_ARM</ExpandedNode><ExpandedNode>LMS_ARM/c_led.c</ExpandedNode></NodeDict></Session>
+ <NodeDict><ExpandedNode>LMS_ARM</ExpandedNode><ExpandedNode>LMS_ARM/c_led.c</ExpandedNode><ExpandedNode>LMS_ARM/d_input.c</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
- <SelectedTab>0</SelectedTab></Wnd1></Windows>
+ <SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-25637-22042</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-24384-30343</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-7323-21632</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor>
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\lib_at91sam7s64.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>2564</SelStart><SelEnd>2564</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_display.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>591</SelStart><SelEnd>591</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_display.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>677</SelStart><SelEnd>677</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>594</SelStart><SelEnd>594</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>591</SelStart><SelEnd>591</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_hispeed.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>618</SelStart><SelEnd>618</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_sound.c</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>515</SelStart><SelEnd>515</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>596</SelStart><SelEnd>596</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>587</SelStart><SelEnd>587</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_sound.c</Filename><XPos>0</XPos><YPos>30</YPos><SelStart>665</SelStart><SelEnd>665</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_sound.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>493</SelStart><SelEnd>493</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.r</Filename><XPos>0</XPos><YPos>20</YPos><SelStart>615</SelStart><SelEnd>615</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_button.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>619</SelStart><SelEnd>619</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\ioat91sam7s64.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\include\sam7s256.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>584</SelStart><SelEnd>584</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_ioctrl.r</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>3821</SelStart><SelEnd>3821</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\Include\Cstartup_SAM7.c</Filename><XPos>0</XPos><YPos>51</YPos><SelStart>3336</SelStart><SelEnd>3336</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_output.iom</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1175</SelStart><SelEnd>1175</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\SAM7S256\Include\Cstartup.s79</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>1017</SelStart><SelEnd>1017</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.r</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>700</SelStart><SelEnd>700</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.c</Filename><XPos>0</XPos><YPos>7</YPos><SelStart>3176</SelStart><SelEnd>3176</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_timer.c</Filename><XPos>0</XPos><YPos>17</YPos><SelStart>679</SelStart><SelEnd>679</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_lowspeed.c</Filename><XPos>0</XPos><YPos>81</YPos><SelStart>1563</SelStart><SelEnd>1563</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_loader.iom</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_loader.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\m_sched.h</Filename><XPos>0</XPos><YPos>88</YPos><SelStart>1152</SelStart><SelEnd>1152</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_comm.c</Filename><XPos>0</XPos><YPos>75</YPos><SelStart>2609</SelStart><SelEnd>2609</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_usb.c</Filename><XPos>0</XPos><YPos>680</YPos><SelStart>23517</SelStart><SelEnd>23517</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_button.c</Filename><XPos>0</XPos><YPos>50</YPos><SelStart>1152</SelStart><SelEnd>1152</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_display.c</Filename><XPos>0</XPos><YPos>477</YPos><SelStart>10510</SelStart><SelEnd>10510</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_ioctrl.c</Filename><XPos>0</XPos><YPos>34</YPos><SelStart>1025</SelStart><SelEnd>1025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\d_ioctrl.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>782</SelStart><SelEnd>782</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\m_sched.c</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>1196</SelStart><SelEnd>1196</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_cmd.c</Filename><XPos>0</XPos><YPos>1117</YPos><SelStart>31574</SelStart><SelEnd>31574</SelEnd></Tab><ActiveTab>34</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_output.c</Filename><XPos>0</XPos><YPos>32</YPos><SelStart>1082</SelStart><SelEnd>1082</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Projects\LMS2006\Sys01\Main\Firmware\Source\c_loader.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1602</SelStart><SelEnd>1602</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_cmd.c</Filename><XPos>0</XPos><YPos>2623</YPos><SelStart>78175</SelStart><SelEnd>78175</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_cmd.iom</Filename><XPos>0</XPos><YPos>25</YPos><SelStart>1525</SelStart><SelEnd>1525</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT 105\AT91SAM7S256\Source\c_cmd.iom</Filename><XPos>0</XPos><YPos>76</YPos><SelStart>3835</SelStart><SelEnd>3835</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT 128\AT91SAM7S256\Source\c_cmd.iom</Filename><XPos>0</XPos><YPos>92</YPos><SelStart>4192</SelStart><SelEnd>4192</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_input.c</Filename><XPos>0</XPos><YPos>498</YPos><SelStart>20024</SelStart><SelEnd>20024</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\d_input.c</Filename><XPos>0</XPos><YPos>24</YPos><SelStart>761</SelStart><SelEnd>761</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\d_input.r</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>2781</SelStart><SelEnd>2789</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_input.iom</Filename><XPos>0</XPos><YPos>120</YPos><SelStart>2569</SelStart><SelEnd>2569</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_input.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>567</SelStart><SelEnd>567</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_comm.c</Filename><XPos>0</XPos><YPos>365</YPos><SelStart>11250</SelStart><SelEnd>11250</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\NXT\LMS NXT\AT91SAM7S256\Source\c_cmd.h</Filename><XPos>0</XPos><YPos>511</YPos><SelStart>15367</SelStart><SelEnd>15367</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-003ae3f0><key>iaridepm1</key></Toolbar-003ae3f0></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>526</Bottom><Right>241</Right><x>-2</x><y>-2</y><xscreen>0</xscreen><yscreen>0</yscreen><sizeHorzCX>0</sizeHorzCX><sizeHorzCY>0</sizeHorzCY><sizeVertCX>237304</sizeVertCX><sizeVertCY>763005</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>122</Bottom><Right>1026</Right><x>-2</x><y>-2</y><xscreen>1028</xscreen><yscreen>124</yscreen><sizeHorzCX>1003906</sizeHorzCX><sizeHorzCY>179190</sizeHorzCY><sizeVertCX>0</sizeVertCX><sizeVertCY>0</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-0036ccd0><key>iaridepm.enu1</key></Toolbar-0036ccd0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>546</Bottom><Right>223</Right><x>-2</x><y>-2</y><xscreen>0</xscreen><yscreen>0</yscreen><sizeHorzCX>0</sizeHorzCX><sizeHorzCY>0</sizeHorzCY><sizeVertCX>169683</sizeVertCX><sizeVertCY>743555</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>147</Bottom><Right>1328</Right><x>-2</x><y>-2</y><xscreen>1330</xscreen><yscreen>149</yscreen><sizeHorzCX>1003017</sizeHorzCX><sizeHorzCY>202171</sizeHorzCY><sizeVertCX>0</sizeVertCX><sizeVertCY>0</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>
diff --git a/AT91SAM7S256/Source/BtTest.inc b/AT91SAM7S256/Source/BtTest.inc
index 31d9373..ff0de90 100644
--- a/AT91SAM7S256/Source/BtTest.inc
+++ b/AT91SAM7S256/Source/BtTest.inc
@@ -4,6 +4,7 @@
#include "Test2.txt"
//#define TESTPRG // If defined the test program will be included
+
extern void BtIo(void);
const char BUILD_DATE[] = __DATE__;
@@ -19,11 +20,11 @@ void GetProtocolVersion(UBYTE *String)
if (Tmp < 100)
{
- sprintf((char*)String,"FW %3u.%02u",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
+ sprintf((char*)String,"FW NBC/NXC %2u.%02u",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
}
else
{
- sprintf((char*)String,"FW Hex %2X.%02X",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
+ sprintf((char*)String,"FW NBC/NXC %2X.%02X",(FIRMWAREVERSION >> 8) & 0x00FF,Tmp & 0x00FF);
}
}
@@ -96,6 +97,7 @@ enum TSTPRG
{
SYSTEM_INIT = 1,
SYSTEM_UNLOCK_INIT,
+#ifdef TESTPRG
SYSTEM_UNLOCK,
SYSTEM_PAGE,
TIMER_INIT,
@@ -143,9 +145,9 @@ enum TSTPRG
TSTPRG_MOTOR_INIT,
TSTPRG_MOTOR,
TSTPRG_SKIP_MOTOR,
-
- TSTPRG_SKIP,
- TSTPRG_WAIT
+#endif
+ TSTPRG_SKIP//,
+// TSTPRG_WAIT
};
const UBYTE TXT_EMPTY[] = " ";
diff --git a/AT91SAM7S256/Source/Functions.inl b/AT91SAM7S256/Source/Functions.inl
index 4211137..d12ebc0 100644
--- a/AT91SAM7S256/Source/Functions.inl
+++ b/AT91SAM7S256/Source/Functions.inl
@@ -322,11 +322,11 @@ void cUiUpdateSensor(SWORD Time)
{
if (Sensor == MENU_SENSOR_IIC_TEMP_F)
{
- VarsUi.DatalogSampleValue[Port - MENU_PORT_1] = (SLONG)((float)(Tmp + 4544) / 14.2);
+ VarsUi.DatalogSampleValue[Port - MENU_PORT_1] = (SLONG)((float)(Tmp + 4544) / (float)14.2);
}
else
{
- VarsUi.DatalogSampleValue[Port - MENU_PORT_1] = (SLONG)((float)Tmp / 25.6);
+ VarsUi.DatalogSampleValue[Port - MENU_PORT_1] = (SLONG)((float)Tmp / (float)25.6);
}
VarsUi.DatalogSampleValid[Port - MENU_PORT_1] = TRUE;
}
@@ -1319,7 +1319,7 @@ UBYTE cUiGetUserString(UBYTE Type) // 0=Pincode, 1=filename
Tmp2 = 0;
}
}
- pMapDisplay->pFunc(DISPLAY_HORISONTAL_LINE,TRUE,42,47,57,0);
+ pMapDisplay->pFunc(DISPLAY_HORIZONTAL_LINE,TRUE,42,47,57,0);
pMapDisplay->pFunc(DISPLAY_VERTICAL_LINE,TRUE,42,47,0,63);
pMapDisplay->pFunc(DISPLAY_VERTICAL_LINE,TRUE,57,47,0,63);
@@ -1482,7 +1482,7 @@ UBYTE cUiDataLogging(UBYTE Action)
case MENU_INIT : // Initialize all ports to empty
{
// Show select
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_VIEW_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_SMALL);
@@ -1498,7 +1498,7 @@ UBYTE cUiDataLogging(UBYTE Action)
case MENU_EXIT : // Initialize all ports to empty
{
// Show select
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_VIEW_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_SMALL);
@@ -1891,7 +1891,7 @@ UBYTE cUiDataLogging(UBYTE Action)
case 2 : // Display saved text
{
- if (!cUiFeedback((BMPMAP*)Info,TXT_FB_DL_FILE_SAVED_INFO,0xFF,DISPLAY_SHOW_FILENAME_TIME))
+ if (!cUiFeedback((BMPMAP*)Info,TXT_FB_FILE_SAVED_INFO,0xFF,DISPLAY_SHOW_FILENAME_TIME))
{
VarsUi.State++;
}
@@ -1953,7 +1953,7 @@ UBYTE cUiDataLogging(UBYTE Action)
case MENU_SELECT : // Save sensor
{
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_VIEW_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
@@ -2268,7 +2268,7 @@ UBYTE cUiOnBrickProgramming(UBYTE Action) // On brick programming
case 2 :
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_OBP_FILE_EXIST_FAIL,TXT_FB_OBP_OVERWRITE_FAIL,0))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_FILE_EXIST_FAIL,TXT_FB_OVERWRITE_FAIL,0))
{
VarsUi.State = 0;
}
@@ -2287,7 +2287,7 @@ UBYTE cUiOnBrickProgramming(UBYTE Action) // On brick programming
case 4 : // Display saved text
{
- if (!cUiFeedback((BMPMAP*)Info,TXT_FB_OBP_FILE_SAVED_INFO,0,DISPLAY_SHOW_TIME))
+ if (!cUiFeedback((BMPMAP*)Info,TXT_FB_FILE_SAVED_INFO,0,DISPLAY_SHOW_TIME))
{
VarsUi.State++;
}
@@ -2330,7 +2330,7 @@ UBYTE cUiOnBrickProgramming(UBYTE Action) // On brick programming
default : // Display saved text
{
- if (!cUiFeedback((BMPMAP*)Info,TXT_FB_OBP_FILE_SAVED_INFO,0,DISPLAY_SHOW_TIME))
+ if (!cUiFeedback((BMPMAP*)Info,TXT_FB_FILE_SAVED_INFO,0,DISPLAY_SHOW_TIME))
{
VarsUi.State = 0;
}
@@ -2667,7 +2667,8 @@ UBYTE cUiFileRun(UBYTE Action) // Run selected file
default :
{
- pMapDisplay->pTextLines[FILERUN_TEXTLINE] = cUiGetString(TXT_FILERUN_FILE_ERROR);
+ sprintf((char*)VarsUi.DisplayText,(char*)cUiGetString(TXT_FILERUN_FILE_ERROR), pMapCmd->ProgStatus);
+ pMapDisplay->pTextLines[FILERUN_TEXTLINE] = VarsUi.DisplayText;
VarsUi.State = 99;
}
break;
@@ -2840,7 +2841,7 @@ UBYTE cUiView(UBYTE Action) // MENU_INIT
{
case MENU_INIT : // Init
{
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_VIEW_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->EraseMask |= SCREEN_BIT(SCREEN_SMALL);
@@ -2897,7 +2898,7 @@ UBYTE cUiView(UBYTE Action) // MENU_INIT
VarsUi.Tmp = cUiReadButtons();
if (VarsUi.Tmp == BUTTON_EXIT)
{
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_VIEW_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask &= ~TEXTLINE_BIT(TEXTLINE_4);
@@ -2980,7 +2981,7 @@ UBYTE cUiBtOn(UBYTE Action)
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_TURNING_ON_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
@@ -3038,7 +3039,7 @@ UBYTE cUiBtOn(UBYTE Action)
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_TURNING_OFF_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
@@ -3277,7 +3278,7 @@ UBYTE cUiBtSearch(UBYTE Action) // Search for devices
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_SEARCHING_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
VarsUi.State = 0;
IOMapUi.State = EXIT_PRESSED;
@@ -3306,7 +3307,7 @@ UBYTE cUiBtDeviceList(UBYTE Action) // Show devices
cUiBTCommand(UI_BT_GET_DEVICES,VarsUi.DevicesKnown,&VarsUi.Devices,NULL);
if (VarsUi.Devices)
{
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_BTDEVICELIST_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
VarsUi.MenuIconTextSave = pMapDisplay->pMenuText;
@@ -3328,7 +3329,7 @@ UBYTE cUiBtDeviceList(UBYTE Action) // Show devices
cUiBTCommand(UI_BT_GET_DEVICES,VarsUi.DevicesKnown,&VarsUi.Devices,NULL);
if (VarsUi.Devices)
{
- pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_BTDEVICELIST_SELECT);
+ pMapDisplay->pTextLines[TEXTLINE_3] = cUiGetString(TXT_GENERIC_SELECT);
pMapDisplay->TextLinesCenterFlags |= TEXTLINE_BIT(TEXTLINE_3);
pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3);
VarsUi.MenuIconTextSave = pMapDisplay->pMenuText;
@@ -3420,7 +3421,7 @@ UBYTE cUiBtDeviceList(UBYTE Action) // Show devices
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_REMOVE_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
@@ -3562,7 +3563,7 @@ UBYTE cUiBtConnectList(UBYTE Action) // Show connections and maybe disconnec
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_DISCONNECT_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
@@ -3793,7 +3794,7 @@ UBYTE cUiBtConnect(UBYTE Action) // Select connection no and insert device
default : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_CONNECTING_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
@@ -3870,7 +3871,7 @@ UBYTE cUiBtConnect(UBYTE Action) // Select connection no and insert device
case 4 : // Display fail text
{
- if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_BT_SENDING_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
+ if (!cUiFeedback((BMPMAP*)Fail,TXT_FB_GENERIC_FAIL,0,DISPLAY_SHOW_ERROR_TIME))
{
Action = MENU_EXIT;
}
diff --git a/AT91SAM7S256/Source/Ui.txt b/AT91SAM7S256/Source/Ui.txt
index 6db746e..1a29c67 100644
--- a/AT91SAM7S256/Source/Ui.txt
+++ b/AT91SAM7S256/Source/Ui.txt
@@ -3,38 +3,29 @@ const TXT Ui[] =
0x05,0x00, // Text Format
0x04,0x0D, // Text DataSize
0x01, // ItemsX
- 0x3D, // ItemsY
+ 0x32, // ItemsY
0x11, // ItemCharsX
0x01, // ItemCharsY
+ 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'C','o','n','n','e','c','t','i','n','g', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'L','i','n','e',' ','i','s',' ','b','u','s','y', 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'C','o','n','n','e','c','t','i','o','n','?', 0 , 0 , 0 , 0 , 0 , 0 ,
'S','e','n','d','i','n','g',' ','f','i','l','e', 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'T','u','r','n','i','n','g',' ','o','n', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'T','u','r','n','i','n','g',' ','o','f','f', 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'S','e','a','r','c','h','i','n','g', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'A','b','o','r','t','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','a','i','l','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'M','e','m','o','r','y',' ','f','u','l','l','!', 0 , 0 , 0 , 0 , 0 ,
'F','i','l','e',' ','s','a','v','e','d', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'F','i','l','e',' ','e','x','i','s','t','s', 0 , 0 , 0 , 0 , 0 , 0 ,
'o','v','e','r','w','r','i','t','e','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'S','a','v','e','d',' ','a','s', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','i','l','e',' ','e','x','i','s','t', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'o','v','e','r','w','r','i','t','e','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'F','i','l','e',' ','d','e','l','e','t','e','d', 0 , 0 , 0 , 0 , 0 ,
'F','i','l','e','s', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'd','e','l','e','t','e','d', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'R','u','n','n','i','n','g', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'A','b','o','r','t','e','d','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'D','o','n','e', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'F','i','l','e',' ','e','r','r','o','r','!', 0 , 0 , 0 , 0 , 0 , 0 ,
+ 'F','i','l','e',' ','e','r','r','o','r','!',' ','%','d', 0 , 0 , 0 ,
'D','e','l','e','t','i','n','g',' ','a','l','l', 0 , 0 , 0 , 0 , 0 ,
'%','s',' ','f','i','l','e','s','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'P','r','e','s','s',' ','C','l','e','a','r',' ','t','o', 0 , 0 , 0 ,
@@ -56,8 +47,6 @@ const TXT Ui[] =
'4',' ','-',' ','U','l','t','r','a','s','o','n','i','c',' ',' ', 0 ,
'B','/','C',' ','-',' ','L','/','R',' ','m','o','t','o','r','s', 0 ,
'S','e','l','e','c','t', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'S','e','l','e','c','t', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
- 'S','e','l','e','c','t', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'B','T',' ','s','a','v','e',' ','d','a','t','a', 0 , 0 , 0 , 0 , 0 ,
'e','r','r','o','r','!', 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
'B','T',' ','s','t','o','r','e',' ','i','s', 0 , 0 , 0 , 0 , 0 , 0 ,
diff --git a/AT91SAM7S256/Source/c_cmd.c b/AT91SAM7S256/Source/c_cmd.c
index 4ce9829..9253735 100644
--- a/AT91SAM7S256/Source/c_cmd.c
+++ b/AT91SAM7S256/Source/c_cmd.c
@@ -1,11 +1,11 @@
//
// Date init 14.12.2004
//
-// Revision date $Date: 24-06-09 8:53 $
+// Revision date $Date: 17-02-09 7:30 $
//
// Filename $Workfile:: c_cmd.c $
//
-// Version $Revision: 14 $
+// Version $Revision: 13 $
//
// Archive $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/c_cmd. $
//
@@ -43,13 +43,13 @@
#include <string.h>
#include <stdlib.h>
#include <math.h> // for sqrt, abs, and trig stuff
+#include <limits.h>
#define VMProfilingCode 0
static IOMAPCMD IOMapCmd;
static VARSCMD VarsCmd;
static HEADER **pHeaders;
-static ULONG gInstrsToExecute;
static SLONG gPCDelta;
#define NUM_INTERP_FUNCS 16
#define NUM_SHORT_INTERP_FUNCS 8
@@ -192,7 +192,7 @@ static pSysCall SysCallFuncs[SYSCALL_COUNT] =
cCmdWrapKeepAlive,
cCmdWrapIOMapRead,
cCmdWrapIOMapWrite,
- cCmdWrapColorSensorRead,
+ cCmdWrapColorSensorRead, // new in 2.0
cCmdWrapCommBTOnOff, // 35
cCmdWrapCommBTConnection,
cCmdWrapCommHSWrite,
@@ -205,8 +205,61 @@ static pSysCall SysCallFuncs[SYSCALL_COUNT] =
cCmdWrapDatalogWrite,
cCmdWrapDatalogGetTimes, //45
cCmdWrapSetSleepTimeout,
- cCmdWrapListFiles //47
-
+ cCmdWrapListFiles, //47
+ cCmdWrapUndefinedSysCall, // leave a gap so that I don't have to keep renumbering system calls
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 50
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 55
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 60
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 65
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 70
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall, // 75
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+// enhanced NBC/NXC
+ cCmdWrapIOMapReadByID, // 78
+ cCmdWrapIOMapWriteByID,
+ cCmdWrapDisplayExecuteFunction, // 80
+ cCmdWrapCommExecuteFunction,
+ cCmdWrapLoaderExecuteFunction,
+ cCmdWrapFileFindFirst,
+ cCmdWrapFileFindNext,
+ cCmdWrapFileOpenWriteLinear, // 85
+ cCmdWrapFileOpenWriteNonLinear,
+ cCmdWrapFileOpenReadLinear,
+ cCmdWrapCommHSControl,
+ cCmdWrapCommLSWriteEx,
+ cCmdWrapFileSeek, // 90
+ cCmdWrapFileResize,
+ cCmdWrapDrawPictureArray,
+ cCmdWrapDrawPolygon,
+ cCmdWrapDrawEllipse,
+ cCmdWrapDrawFont, // 95
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall,
+ cCmdWrapUndefinedSysCall // 99 --> 100 system call slots
+
// don't forget to update SYSCALL_COUNT in c_cmd.h
};
@@ -266,6 +319,7 @@ TYPE_CODE IO_TYPES_OUT[IO_OUT_FIELD_COUNT] =
TC_UBYTE, //IO_OUT_REG_D_VAL
TC_SLONG, //IO_OUT_BLOCK_TACH_COUNT
TC_SLONG, //IO_OUT_ROTATION_COUNT
+ TC_UBYTE, //IO_OUT_OPTIONS
//IO_OUT1
TC_UBYTE, //IO_OUT_FLAGS
@@ -283,6 +337,7 @@ TYPE_CODE IO_TYPES_OUT[IO_OUT_FIELD_COUNT] =
TC_UBYTE, //IO_OUT_REG_D_VAL
TC_SLONG, //IO_OUT_BLOCK_TACH_COUNT
TC_SLONG, //IO_OUT_ROTATION_COUNT
+ TC_UBYTE, //IO_OUT_OPTIONS
//IO_OUT2
TC_UBYTE, //IO_OUT_FLAGS
@@ -300,6 +355,7 @@ TYPE_CODE IO_TYPES_OUT[IO_OUT_FIELD_COUNT] =
TC_UBYTE, //IO_OUT_REG_D_VAL
TC_SLONG, //IO_OUT_BLOCK_TACH_COUNT
TC_SLONG, //IO_OUT_ROTATION_COUNT
+ TC_UBYTE, //IO_OUT_OPTIONS
};
@@ -461,32 +517,64 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
case RC_SET_OUT_STATE:
{
+ UBYTE Port = pInBuf[1];
//Don't do anything if illegal port specification is made
- if (pInBuf[1] >= NO_OF_OUTPUTS && pInBuf[1] != 0xFF)
+ // supported ports are 0, 1, 2 == A, B, C
+ // 3 == AB, 4 == AC, 5 == BC, 6 == ABC
+ if (Port > RC_OUT_ABC && Port < RC_PORTS_AB)
{
RCStatus = ERR_RC_ILLEGAL_VAL;
break;
}
//0xFF is protocol defined to mean "all ports".
- if (pInBuf[1] == 0xFF)
- {
- FirstPort = 0;
- LastPort = NO_OF_OUTPUTS - 1;
+ switch(Port) {
+ case RC_PORTS_ALL:
+ case RC_OUT_ABC:
+ case RC_PORTS_AC:
+ case RC_OUT_AC:
+ {
+ FirstPort = 0;
+ LastPort = NO_OF_OUTPUTS - 1;
+ }
+ break;
+ case RC_PORTS_BC:
+ case RC_OUT_BC:
+ {
+ // B&C
+ FirstPort = 1;
+ LastPort = NO_OF_OUTPUTS - 1;
+ }
+ break;
+ case RC_PORTS_AB:
+ case RC_OUT_AB:
+ {
+ // A&B
+ FirstPort = 0;
+ LastPort = 1;
+ }
+ break;
+ default:
+ {
+ FirstPort = LastPort = Port;
+ }
+ break;
}
- else
- FirstPort = LastPort = pInBuf[1];
for (i = FirstPort; i <= LastPort; i++)
{
- pMapOutPut->Outputs[i].Speed = pInBuf[2];
- pMapOutPut->Outputs[i].Mode = pInBuf[3];
- pMapOutPut->Outputs[i].RegMode = pInBuf[4];
- pMapOutPut->Outputs[i].SyncTurnParameter = pInBuf[5];
- pMapOutPut->Outputs[i].RunState = pInBuf[6];
- memcpy((PSZ)(&(pMapOutPut->Outputs[i].TachoLimit)), (PSZ)(&pInBuf[7]), 4);
-
- pMapOutPut->Outputs[i].Flags |= UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
+ if (((Port == RC_PORTS_AC) || (Port == RC_OUT_AC)) && (i > FirstPort) && (i < LastPort))
+ continue;
+ OUTPUT * pOut = &(pMapOutPut->Outputs[i]);
+ pOut->Speed = pInBuf[2];
+ pOut->Mode = pInBuf[3];
+ pOut->RegMode = pInBuf[4];
+ pOut->SyncTurnParameter = pInBuf[5];
+ pOut->RunState = pInBuf[6];
+ pOut->Options = pOut->Mode & REG_METHOD;
+ memcpy((PSZ)(&(pOut->TachoLimit)), (PSZ)(&pInBuf[7]), 4);
+
+ pOut->Flags |= UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
}
}
break;
@@ -502,12 +590,12 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
RCStatus = ERR_RC_ILLEGAL_VAL;
break;
}
+ INPUTSTRUCT * pIn = &(pMapInput->Inputs[i]);
- pMapInput->Inputs[i].SensorType = pInBuf[2];
- pMapInput->Inputs[i].SensorMode = pInBuf[3];
-
+ pIn->SensorType = pInBuf[2];
+ pIn->SensorMode = pInBuf[3];
//Set InvalidData flag automatically since type may have changed
- pMapInput->Inputs[i].InvalidData = TRUE;
+ pIn->InvalidData = TRUE;
}
break;
@@ -525,45 +613,46 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
ResponseLen += 22;
break;
}
+ OUTPUT * pOut = &(pMapOutPut->Outputs[i]);
//Echo port
pOutBuf[ResponseLen] = i;
ResponseLen++;
//Power
- pOutBuf[ResponseLen] = pMapOutPut->Outputs[i].Speed;
+ pOutBuf[ResponseLen] = pOut->Speed;
ResponseLen++;
//Mode
- pOutBuf[ResponseLen] = pMapOutPut->Outputs[i].Mode;
+ pOutBuf[ResponseLen] = pOut->Mode;
ResponseLen++;
//RegMode
- pOutBuf[ResponseLen] = pMapOutPut->Outputs[i].RegMode;
+ pOutBuf[ResponseLen] = pOut->RegMode;
ResponseLen++;
//TurnRatio
- pOutBuf[ResponseLen] = pMapOutPut->Outputs[i].SyncTurnParameter;
+ pOutBuf[ResponseLen] = pOut->SyncTurnParameter;
ResponseLen++;
//RunState
- pOutBuf[ResponseLen] = pMapOutPut->Outputs[i].RunState;
+ pOutBuf[ResponseLen] = pOut->RunState;
ResponseLen++;
//TachoLimit ULONG
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapOutPut->Outputs[i].TachoLimit)), 4);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pOut->TachoLimit)), 4);
ResponseLen += 4;
//TachoCount SLONG
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapOutPut->Outputs[i].TachoCnt)), 4);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pOut->TachoCnt)), 4);
ResponseLen += 4;
//BlockTachoCount SLONG
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapOutPut->Outputs[i].BlockTachoCount)), 4);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pOut->BlockTachoCount)), 4);
ResponseLen += 4;
//RotationCount SLONG
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapOutPut->Outputs[i].RotationCount)), 4);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pOut->RotationCount)), 4);
ResponseLen += 4;
NXT_ASSERT(ResponseLen == 23);
@@ -589,9 +678,11 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
//Echo port
pOutBuf[ResponseLen] = i;
ResponseLen++;
+
+ INPUTSTRUCT * pIn = &(pMapInput->Inputs[i]);
//Set "Valid?" boolean
- if (pMapInput->Inputs[i].InvalidData)
+ if (pIn->InvalidData)
pOutBuf[ResponseLen] = FALSE;
else
pOutBuf[ResponseLen] = TRUE;
@@ -603,24 +694,24 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
pOutBuf[ResponseLen] = FALSE;
ResponseLen++;
- pOutBuf[ResponseLen] = pMapInput->Inputs[i].SensorType;
+ pOutBuf[ResponseLen] = pIn->SensorType;
ResponseLen++;
- pOutBuf[ResponseLen] = pMapInput->Inputs[i].SensorMode;
+ pOutBuf[ResponseLen] = pIn->SensorMode;
ResponseLen++;
//Set Raw, Normalized, and Scaled values
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapInput->Inputs[i].ADRaw)), 2);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pIn->ADRaw)), 2);
ResponseLen += 2;
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapInput->Inputs[i].SensorRaw)), 2);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pIn->SensorRaw)), 2);
ResponseLen += 2;
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapInput->Inputs[i].SensorValue)), 2);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pIn->SensorValue)), 2);
ResponseLen += 2;
//!!! Return normalized raw value in place of calibrated value for now -- see comment above
- memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pMapInput->Inputs[i].SensorRaw)), 2);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)(&(pIn->SensorRaw)), 2);
ResponseLen += 2;
NXT_ASSERT(ResponseLen == 14);
@@ -683,14 +774,7 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
//pInBuf[2] is a selector
//FALSE: Position relative to start of last program
//TRUE: Position relative to start of last motor control block
- if (pInBuf[2] == FALSE)
- {
- pMapOutPut->Outputs[i].Flags |= UPDATE_RESET_ROTATION_COUNT;
- }
- else
- {
- pMapOutPut->Outputs[i].Flags |= UPDATE_RESET_BLOCK_COUNT;
- }
+ pMapOutPut->Outputs[i].Flags |= (pInBuf[2] ? UPDATE_RESET_BLOCK_COUNT : UPDATE_RESET_ROTATION_COUNT);
}
break;
@@ -759,7 +843,7 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
break;
}
- RCStatus = cCmdLSWrite(i, Count, &(pInBuf[4]), pInBuf[3]);
+ RCStatus = cCmdLSWrite(i, Count, &(pInBuf[4]), pInBuf[3], 0);
}
break;
@@ -958,6 +1042,14 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
pMapUi->SleepTimeout= value / 60000;
}
break;
+ case RC_PROP_DEBUGGING: { // ulong debug info
+ ULONG value;
+ memcpy((PSZ)&value, (PSZ)&(pInBuf[2]), 4);
+ VarsCmd.Debugging = (UBYTE)((value>>24)&0xFF);
+ VarsCmd.PauseClump = (UBYTE)((value>>16)&0xFF);
+ VarsCmd.PausePC = (CODE_INDEX)(value&0xFFFF);
+ }
+ break;
default:
//Unknown property -- still inform client to not expect any response bytes
NXT_BREAK;
@@ -979,7 +1071,14 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
}
break;
case RC_PROP_SLEEP_TIMEOUT: {
- ULONG value= (pMapUi->SleepTimeout * 60 * 1000);
+ ULONG value= (pMapUi->SleepTimeout * 60000);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)&value, 4);
+ ResponseLen += 4;
+ }
+ break;
+ case RC_PROP_DEBUGGING: { // ulong debug info
+ ULONG value;
+ value = ((VarsCmd.Debugging<<24)|(VarsCmd.PauseClump<<16)|VarsCmd.PausePC);
memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)&value, 4);
ResponseLen += 4;
}
@@ -992,7 +1091,7 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
}
}
break;
- case RC_UPDATE_RESET_COUNT:
+ case RC_UPDATE_RESET_COUNT:
{
i = pInBuf[1];
@@ -1006,6 +1105,87 @@ UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen)
pMapOutPut->Outputs[i].Flags |= UPDATE_RESET_COUNT;
}
break;
+ case RC_SET_VM_STATE:
+ {
+ // don't change the VM state if the state is currently idle or resetting
+ if (VarsCmd.VMState > VM_IDLE && VarsCmd.VMState < VM_RESET1)
+ {
+ VarsCmd.VMState = (VM_STATE)pInBuf[1];
+ // setting the VM state turns on debugging
+ VarsCmd.Debugging = TRUE;
+ if (VarsCmd.VMState == VM_RESET1)
+ IOMapCmd.ProgStatus = PROG_ABORT;
+ }
+ // fall through to RC_GET_VM_STATE
+ }
+ case RC_GET_VM_STATE:
+ {
+ if (SendResponse == TRUE)
+ {
+ // output the vm state, current clump and its relative program counter (4 bytes)
+ pOutBuf[ResponseLen] = VarsCmd.VMState;
+ ResponseLen++;
+ pOutBuf[ResponseLen] = VarsCmd.RunQ.Head;
+ ResponseLen++;
+ CLUMP_REC* pClumpRec = &(VarsCmd.pAllClumps[VarsCmd.RunQ.Head]);
+ CODE_INDEX pc = (CODE_INDEX)(pClumpRec->PC-pClumpRec->CodeStart);
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)&(pc), 2);
+ ResponseLen += 2;
+ }
+ }
+ break;
+
+ case RC_SET_BREAKPOINTS:
+ {
+ CLUMP_ID Clump = (CLUMP_ID)pInBuf[1];
+ //Don't do anything if illegal clump specification is made
+ if (Clump >= VarsCmd.AllClumpsCount)
+ {
+ RCStatus = ERR_RC_ILLEGAL_VAL;
+ break;
+ }
+ // setting breakpoint information turns on debugging mode
+ VarsCmd.Debugging = TRUE;
+ CLUMP_BREAK_REC* pBreakpoints = VarsCmd.pAllClumps[Clump].Breakpoints;
+ // length varies from 6 bytes min to 18 bytes max
+ // clump byte, bpidx, bplocation (2 bytes), bp enabled, [...] terminal byte 0xFF
+ UBYTE idx = 2;
+ UBYTE bDone = FALSE;
+ while (!bDone) {
+ UBYTE bpIdx = (UBYTE)pInBuf[idx];
+ idx++;
+ memcpy((PSZ)(&(pBreakpoints[bpIdx].Location)), (PSZ)(&pInBuf[idx]), 2);
+ idx += 2;
+ pBreakpoints[bpIdx].Enabled = (UBYTE)pInBuf[idx];
+ idx++;
+ bDone = (((UBYTE)pInBuf[idx] == 0xFF) || (idx >= 18));
+ }
+ // fall through to RC_GET_BREAKPOINTS
+ }
+
+ case RC_GET_BREAKPOINTS:
+ {
+ if (SendResponse == TRUE)
+ {
+ // output the list of breakpoints for the specified clump ID
+ CLUMP_ID Clump = (CLUMP_ID)pInBuf[1];
+ //Don't do anything if illegal clump specification is made
+ if (Clump >= VarsCmd.AllClumpsCount)
+ {
+ RCStatus = ERR_RC_ILLEGAL_VAL;
+ break;
+ }
+ CLUMP_BREAK_REC* pBreakpoints = VarsCmd.pAllClumps[Clump].Breakpoints;
+ for(int j = 0; j < MAX_BREAKPOINTS; j++)
+ {
+ memcpy((PSZ)&(pOutBuf[ResponseLen]), (PSZ)&(pBreakpoints[j].Location), 2);
+ ResponseLen += 2;
+ pOutBuf[ResponseLen] = pBreakpoints[j].Enabled;
+ ResponseLen++;
+ }
+ }
+ }
+ break;
default:
{
//Unknown remote command -- still inform client to not expect any response bytes
@@ -1092,32 +1272,35 @@ void cCmdInit(void* pHeader)
//Initialize IO_PTRS_OUT
for (i = 0; i < NO_OF_OUTPUTS; i++)
{
- IO_PTRS_OUT[IO_OUT_FLAGS + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].Flags);
- IO_PTRS_OUT[IO_OUT_MODE + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].Mode);
- IO_PTRS_OUT[IO_OUT_SPEED + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].Speed);
- IO_PTRS_OUT[IO_OUT_ACTUAL_SPEED + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].ActualSpeed);
- IO_PTRS_OUT[IO_OUT_TACH_COUNT + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].TachoCnt);
- IO_PTRS_OUT[IO_OUT_TACH_LIMIT + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].TachoLimit);
- IO_PTRS_OUT[IO_OUT_RUN_STATE + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RunState);
- IO_PTRS_OUT[IO_OUT_TURN_RATIO + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].SyncTurnParameter);
- IO_PTRS_OUT[IO_OUT_REG_MODE + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RegMode);
- IO_PTRS_OUT[IO_OUT_OVERLOAD + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].Overloaded);
- IO_PTRS_OUT[IO_OUT_REG_P_VAL + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RegPParameter);
- IO_PTRS_OUT[IO_OUT_REG_I_VAL + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RegIParameter);
- IO_PTRS_OUT[IO_OUT_REG_D_VAL + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RegDParameter);
- IO_PTRS_OUT[IO_OUT_BLOCK_TACH_COUNT + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].BlockTachoCount);
- IO_PTRS_OUT[IO_OUT_ROTATION_COUNT + i * IO_OUT_FPP] = (void*)&(pMapOutPut->Outputs[i].RotationCount);
+ OUTPUT * pOut = &(pMapOutPut->Outputs[i]);
+ IO_PTRS_OUT[IO_OUT_FLAGS + i * IO_OUT_FPP] = (void*)&(pOut->Flags);
+ IO_PTRS_OUT[IO_OUT_MODE + i * IO_OUT_FPP] = (void*)&(pOut->Mode);
+ IO_PTRS_OUT[IO_OUT_SPEED + i * IO_OUT_FPP] = (void*)&(pOut->Speed);
+ IO_PTRS_OUT[IO_OUT_ACTUAL_SPEED + i * IO_OUT_FPP] = (void*)&(pOut->ActualSpeed);
+ IO_PTRS_OUT[IO_OUT_TACH_COUNT + i * IO_OUT_FPP] = (void*)&(pOut->TachoCnt);
+ IO_PTRS_OUT[IO_OUT_TACH_LIMIT + i * IO_OUT_FPP] = (void*)&(pOut->TachoLimit);
+ IO_PTRS_OUT[IO_OUT_RUN_STATE + i * IO_OUT_FPP] = (void*)&(pOut->RunState);
+ IO_PTRS_OUT[IO_OUT_TURN_RATIO + i * IO_OUT_FPP] = (void*)&(pOut->SyncTurnParameter);
+ IO_PTRS_OUT[IO_OUT_REG_MODE + i * IO_OUT_FPP] = (void*)&(pOut->RegMode);
+ IO_PTRS_OUT[IO_OUT_OVERLOAD + i * IO_OUT_FPP] = (void*)&(pOut->Overloaded);
+ IO_PTRS_OUT[IO_OUT_REG_P_VAL + i * IO_OUT_FPP] = (void*)&(pOut->RegPParameter);
+ IO_PTRS_OUT[IO_OUT_REG_I_VAL + i * IO_OUT_FPP] = (void*)&(pOut->RegIParameter);
+ IO_PTRS_OUT[IO_OUT_REG_D_VAL + i * IO_OUT_FPP] = (void*)&(pOut->RegDParameter);
+ IO_PTRS_OUT[IO_OUT_BLOCK_TACH_COUNT + i * IO_OUT_FPP] = (void*)&(pOut->BlockTachoCount);
+ IO_PTRS_OUT[IO_OUT_ROTATION_COUNT + i * IO_OUT_FPP] = (void*)&(pOut->RotationCount);
+ IO_PTRS_OUT[IO_OUT_OPTIONS + i * IO_OUT_FPP] = (void*)&(pOut->Options);
}
//Initialize IO_PTRS_IN
for (i = 0; i < NO_OF_INPUTS; i++)
{
- IO_PTRS_IN[IO_IN_TYPE + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].SensorType);
- IO_PTRS_IN[IO_IN_MODE + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].SensorMode);
- IO_PTRS_IN[IO_IN_ADRAW + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].ADRaw);
- IO_PTRS_IN[IO_IN_NORMRAW + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].SensorRaw);
- IO_PTRS_IN[IO_IN_SCALEDVAL + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].SensorValue);
- IO_PTRS_IN[IO_IN_INVALID_DATA + i * IO_IN_FPP] = (void*)&(pMapInput->Inputs[i].InvalidData);
+ INPUTSTRUCT * pIn = &(pMapInput->Inputs[i]);
+ IO_PTRS_IN[IO_IN_TYPE + i * IO_IN_FPP] = (void*)&(pIn->SensorType);
+ IO_PTRS_IN[IO_IN_MODE + i * IO_IN_FPP] = (void*)&(pIn->SensorMode);
+ IO_PTRS_IN[IO_IN_ADRAW + i * IO_IN_FPP] = (void*)&(pIn->ADRaw);
+ IO_PTRS_IN[IO_IN_NORMRAW + i * IO_IN_FPP] = (void*)&(pIn->SensorRaw);
+ IO_PTRS_IN[IO_IN_SCALEDVAL + i * IO_IN_FPP] = (void*)&(pIn->SensorValue);
+ IO_PTRS_IN[IO_IN_INVALID_DATA + i * IO_IN_FPP] = (void*)&(pIn->InvalidData);
}
//Clear memory pool and initialize VarsCmd (cCmdDeactivateProgram effectively re-inits VarsCmd)
@@ -1190,12 +1373,14 @@ void cCmdCtrl(void)
VarsCmd.CmdCtrlCount++;
#endif
//Abort current program if cancel button is pressed
- if (IOMapCmd.DeactivateFlag == TRUE || pMapButton->State[BTN1] & PRESSED_EV)
+ if (IOMapCmd.DeactivateFlag == TRUE ||
+ ((pMapButton->State[BTN1] & pMapUi->AbortFlag) &&
+ ((pMapButton->State[BTN4] & PRESSED_EV) != PRESSED_EV))) // JCH 2010-01-13 Make sure enter button is not also pressed
{
IOMapCmd.DeactivateFlag = FALSE;
//Clear pressed event so it doesn't get double-counted by UI
- pMapButton->State[BTN1] &= ~PRESSED_EV;
+ pMapButton->State[BTN1] &= ~(pMapUi->AbortFlag);
//Go to VM_RESET1 state and report abort
VarsCmd.VMState = VM_RESET1;
@@ -1221,6 +1406,9 @@ void cCmdCtrl(void)
#if VMProfilingCode
CmdCtrlClumpTime[clump] += dTimerReadHiRes() - ClumpEnterTime;
#endif
+ // automatically switch from RUN_SINGLE to RUN_PAUSE after a single step
+ if (VarsCmd.VMState == VM_RUN_SINGLE)
+ VarsCmd.VMState = VM_RUN_PAUSE;
//If RunQ and RestQ are empty, program is done, or wacko
if (!cCmdIsClumpIDSane(VarsCmd.RunQ.Head)) {
@@ -1230,9 +1418,10 @@ void cCmdCtrl(void)
IOMapCmd.ProgStatus = PROG_OK;
}
}
- else if (Status == CLUMP_SUSPEND || Status == CLUMP_DONE)
+ else if (Status == CLUMP_SUSPEND || Status == CLUMP_DONE) {
Continue = TRUE; // queue isn't empty, didn't timeout
//Only rotate RunQ on a "normal" finish, i.e. no error, clump end, or breakout request
+ }
else if (Status == ROTATE_QUEUE) { // done and suspend do their own
cCmdRotateQ();
Continue= TRUE;
@@ -1245,7 +1434,8 @@ void cCmdCtrl(void)
{
Continue = FALSE;
VarsCmd.VMState = VM_RESET1;
- IOMapCmd.ProgStatus = PROG_ERROR;
+// IOMapCmd.ProgStatus = PROG_ERROR;
+ IOMapCmd.ProgStatus = Status;
}
else if (Status == STOP_REQ)
{
@@ -1257,7 +1447,7 @@ void cCmdCtrl(void)
{
Continue = FALSE;
}
- } while (Continue == TRUE);
+ } while (Continue == TRUE && VarsCmd.VMState == VM_RUN_FREE);
#if VMProfilingCode
FinishTime= dTimerReadHiRes();
if(NotFirstCall)
@@ -1286,7 +1476,8 @@ void cCmdCtrl(void)
//2. Proceed to VM_RESET1 (some unneeded work, yes, but preserves contract with UI
if (IS_ERR(Status))
{
- IOMapCmd.ProgStatus = PROG_ERROR;
+// IOMapCmd.ProgStatus = PROG_ERROR;
+ IOMapCmd.ProgStatus = Status;
VarsCmd.VMState = VM_RESET1;
}
//Else start running program
@@ -1295,10 +1486,6 @@ void cCmdCtrl(void)
VarsCmd.VMState = VM_RUN_FREE;
IOMapCmd.ProgStatus = PROG_RUNNING;
VarsCmd.StartTick = IOMapCmd.Tick;
- if(VarsCmd.VMState == VM_RUN_FREE)
- gInstrsToExecute = 20;
- else
- gInstrsToExecute= 1;
#if VM_BENCHMARK
//Re-init benchmark
@@ -1344,7 +1531,7 @@ void cCmdCtrl(void)
cCmdWriteBenchmarkFile();
#endif
-
+
//Re-initialize program state data (contents of memory pool preserved)
//!!! Skip this step in simulator builds so helper access methods still work
#ifndef SIM_NXT
@@ -1392,7 +1579,13 @@ void cCmdCtrl(void)
}
while (IOMapCmd.Tick == dTimerRead()); // delay until scheduled time
}
- break;
+ break;
+
+ case VM_RUN_PAUSE:
+ {
+ while (IOMapCmd.Tick == dTimerRead()); // delay until scheduled time
+ }
+ break;
}//END state machine switch
//Set tick to new value for next time 'round
@@ -1425,6 +1618,16 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
NXT_ASSERT(pData != NULL);
+ if (strncmp((PSZ)pData, "NXTBINARY", VM_FORMAT_STRING_SIZE) == 0)
+ {
+ ULONG NativeOffset;
+ pCursor = (pData + 12);
+ NativeOffset = (ULONG)(*pCursor);
+ void (*native)(ULONG, ULONG) = (void (*)())(pData + NativeOffset);
+ (*native)((ULONG)pData, DataSize);
+ NXT_BREAK;
+ return (ERR_VER);
+ }
//Assign pCursor to point to version word inside file header
pCursor = (pData + VM_FORMAT_STRING_SIZE - 2);
@@ -1486,7 +1689,7 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
//Must have at least one clump and count can't exceed the NOT_A_CLUMP sentinel
if (FileClumpCount == 0 || FileClumpCount >= NOT_A_CLUMP)
- return (ERR_FILE);
+ return (ERR_CLUMP_COUNT);
else
VarsCmd.AllClumpsCount = (CLUMP_ID)FileClumpCount;
@@ -1495,7 +1698,7 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
//Can't have a valid program with no code
if (VarsCmd.CodespaceCount == 0)
- return (ERR_FILE);
+ return (ERR_NO_CODE);
//
// Now, calculate offsets for each data segment in the file
@@ -1536,7 +1739,7 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
if (CurrOffset != (DataSize - VarsCmd.CodespaceCount * 2))
{
NXT_BREAK;
- return (ERR_FILE);
+ return (ERR_INSANE_OFFSET);
}
//
@@ -1573,7 +1776,7 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
if (VarsCmd.PoolSize > POOL_MAX_SIZE)
{
NXT_BREAK;
- return (ERR_FILE);
+ return (ERR_BAD_POOL_SIZE);
}
return (NO_ERR);
@@ -1671,7 +1874,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
//If Loader returned error or bad file pointer, bail out
if (LOADER_ERR(LStatus) != SUCCESS || pData == NULL || DataSize == 0)
- return (ERR_FILE);
+ return (ERR_LOADER_ERR);
//Deactivate current program and re-initialize memory pool
cCmdDeactivateProgram();
@@ -1702,7 +1905,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
|| (VarsCmd.DataspaceSize == 0) )
{
NXT_BREAK;
- return ERR_FILE;
+ return ERR_SPOTCHECK_FAIL;
}
//Initialize CLUMP_RECs as contiguous list in RAM
@@ -1717,6 +1920,14 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
//Initialize remaining CLUMP_REC fields
clumpPtr->PC = clumpPtr->CodeStart;
clumpPtr->Link = NOT_A_CLUMP;
+ clumpPtr->Priority = INSTR_MAX_COUNT;
+
+ CLUMP_BREAK_REC* pBreakpoints = clumpPtr->Breakpoints;
+ for (j = 0; j < MAX_BREAKPOINTS; j++)
+ {
+ pBreakpoints[j].Location = 0;
+ pBreakpoints[j].Enabled = FALSE;
+ }
//Activate any clumps with CurrFireCount of 0
clumpPtr->CurrFireCount = clumpPtr->InitFireCount;
@@ -1804,7 +2015,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
}
//Programs with no active clumps constitutes an activation error
if (VarsCmd.RunQ.Head == NOT_A_CLUMP)
- return (ERR_FILE);
+ return (ERR_NO_ACTIVE_CLUMP);
else
{
// now that we know which clumps are scalar and poly, refresh dispatch table to match head
@@ -1828,7 +2039,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
|| (DefaultsOffset + FileOffsets.DynamicDefaultsSize != FileOffsets.DSDefaultsSize))
{
NXT_BREAK;
- return (ERR_FILE);
+ return (ERR_DEFAULT_OFFSETS);
}
//Copy Dynamic defaults from file
@@ -1845,7 +2056,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
if ((UBYTE *)VarsCmd.MemMgr.pDopeVectorArray != VarsCmd.pDataspace + DV_ARRAY[0].Offset)
{
NXT_BREAK;
- return (ERR_FILE);
+ return (ERR_MEMMGR_FAIL);
}
//Initialize message queues
@@ -1867,7 +2078,7 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
{
VarsCmd.DatalogBuffer.Datalogs[j] = NOT_A_DS_ID;
}
-
+
// now that we've loaded program, prime memmgr dopevectors based upon number of handles in ds.
ULONG numHandles= DV_ARRAY[0].Count/2;
if(numHandles > 200)
@@ -1881,6 +2092,14 @@ NXT_STATUS cCmdActivateProgram(UBYTE * pFileName)
gRequestSemData= 0;
// preload all calibration coefficients into mem
cCmdLoadCalibrationFiles();
+ // initialize the graphic globals
+ gpPassedImgVars = NULL;
+ memset(gpImgData,0,sizeof(gpImgData));
+ gPassedVarsCount = 0;
+ // configure debugging flags in VarsCmd
+ VarsCmd.Debugging = FALSE;
+ VarsCmd.PauseClump = NOT_A_CLUMP;
+ VarsCmd.PausePC = 0xFFFF;
return (Status);
}
@@ -1889,6 +2108,10 @@ void cCmdDeactivateProgram()
{
UBYTE i, tmp;
+ // reset the DS and DVA Offsets
+ IOMapCmd.OffsetDVA = 0xFFFF;
+ IOMapCmd.OffsetDS = 0xFFFF;
+
//Wipe away all references into the pool and clear all run-time data
VarsCmd.pCodespace = NULL;
VarsCmd.CodespaceCount = 0;
@@ -1927,12 +2150,19 @@ void cCmdDeactivateProgram()
tmp = i;
//Close file
if (*(VarsCmd.FileHandleTable[i]) != 0)
- pMapLoader->pFunc(CROPDATAFILE, &tmp, NULL, NULL);
+ pMapLoader->pFunc(CLOSE, &tmp, NULL, NULL);
+// pMapLoader->pFunc(CROPDATAFILE, &tmp, NULL, NULL);
}
//Clear FileHandleTable
memset(VarsCmd.FileHandleTable, 0, sizeof(VarsCmd.FileHandleTable));
-
+
+ // reset AbortFlag to default value
+ pMapUi->AbortFlag = PRESSED_EV;
+
+ // reset Contrast to default value
+ pMapDisplay->Contrast = DISPLAY_CONTRAST_DEFAULT;
+
return;
}
@@ -1952,29 +2182,31 @@ void cCmdResetDevices(void)
for (i = 0; i < NO_OF_INPUTS; i++)
{
+ INPUTSTRUCT * pIn = &(pMapInput->Inputs[i]);
//Clear type and mode to defaults
- pMapInput->Inputs[i].SensorType = NO_SENSOR;
- pMapInput->Inputs[i].SensorMode = RAWMODE;
+ pIn->SensorType = NO_SENSOR;
+ pIn->SensorMode = RAWMODE;
//Reset input values to 0 prior to running (clear things like stale rotation counts)
- pMapInput->Inputs[i].ADRaw = 0;
- pMapInput->Inputs[i].SensorRaw = 0;
- pMapInput->Inputs[i].SensorValue = 0;
+ pIn->ADRaw = 0;
+ pIn->SensorRaw = 0;
+ pIn->SensorValue = 0;
//Assert invalid data flag so future code is aware of these changes
- pMapInput->Inputs[i].InvalidData = TRUE;
+ pIn->InvalidData = TRUE;
}
for (i = 0; i < NO_OF_OUTPUTS; i++)
{
//Coast and reset all motor parameters
- pMapOutPut->Outputs[i].Mode = 0;
- pMapOutPut->Outputs[i].RegMode = REGULATION_MODE_IDLE;
- pMapOutPut->Outputs[i].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[i].Speed = 0;
- pMapOutPut->Outputs[i].TachoLimit = 0;
- pMapOutPut->Outputs[i].SyncTurnParameter = 0;
- pMapOutPut->Outputs[i].Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT | UPDATE_RESET_COUNT | UPDATE_RESET_BLOCK_COUNT | UPDATE_RESET_ROTATION_COUNT;
+ OUTPUT * pOut = &(pMapOutPut->Outputs[i]);
+ pOut->Mode = 0;
+ pOut->RegMode = REGULATION_MODE_IDLE;
+ pOut->RunState = MOTOR_RUN_STATE_IDLE;
+ pOut->Speed = 0;
+ pOut->TachoLimit = 0;
+ pOut->SyncTurnParameter = 0;
+ pOut->Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT | UPDATE_RESET_COUNT | UPDATE_RESET_BLOCK_COUNT | UPDATE_RESET_ROTATION_COUNT;
}
//Lowspeed init, INSERT CODE !!!
@@ -2201,6 +2433,45 @@ NXT_STATUS cCmdAcquireMutex(MUTEX_Q * Mutex)
return (Status);
}
+UBYTE cCmdIsClumpOnAMutexWaitQ(CLUMP_ID Clump)
+{
+ //Make sure Clump's ID is valid
+ NXT_ASSERT(cCmdIsClumpIDSane(Clump));
+ DATA_ARG Arg1;
+ MUTEX_Q * Mutex;
+ for (Arg1=0; Arg1 < VarsCmd.DataspaceCount; Arg1++)
+ {
+ if (VarsCmd.pDataspaceTOC[Arg1].TypeCode == TC_MUTEX)
+ {
+ Mutex = cCmdDSPtr(Arg1, 0);
+ if (cCmdIsClumpOnQ(&(Mutex->WaitQ), Clump))
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+NXT_STATUS cCmdReleaseAllMutexes(CLUMP_ID Clump)
+{
+ //Make sure Clump's ID is valid
+ NXT_ASSERT(cCmdIsClumpIDSane(Clump));
+ DATA_ARG Arg1;
+ MUTEX_Q * Mutex;
+ for (Arg1=0; Arg1 < VarsCmd.DataspaceCount; Arg1++)
+ {
+ if (VarsCmd.pDataspaceTOC[Arg1].TypeCode == TC_MUTEX)
+ {
+ Mutex = cCmdDSPtr(Arg1, 0);
+ // if this clump owns the Mutex then release it
+ if (Mutex->Owner == Clump)
+ cCmdReleaseMutex(Mutex);
+ // also make sure that this Clump is not waiting in this mutex's wait queue
+ if (cCmdIsClumpOnQ(&(Mutex->WaitQ), Clump))
+ cCmdDeQClump(&(Mutex->WaitQ), Clump);
+ }
+ }
+ return (NO_ERR);
+}
NXT_STATUS cCmdReleaseMutex(MUTEX_Q * Mutex)
{
@@ -3226,32 +3497,33 @@ NXT_STATUS cCmdDatalogRead(UBYTE * pBuffer, UWORD Length, UBYTE Remove)
return Status;
}
-
//
// Color Sensor Functions
//
NXT_STATUS cCmdColorSensorRead (UBYTE Port, SWORD * SensorValue, UWORD * RawArray, UWORD * NormalizedArray,
SWORD * ScaledArray, UBYTE * InvalidData)
{
- ULONG i;
+ ULONG i;
//Make sure Port is valid for Color Sensor
- if (!(pMapInput->Inputs[Port].SensorType == COLORFULL || pMapInput->Inputs[Port].SensorType == COLORRED
- || pMapInput->Inputs[Port].SensorType == COLORGREEN || pMapInput->Inputs[Port].SensorType == COLORBLUE
- || pMapInput->Inputs[Port].SensorType == COLORNONE))
+ INPUTSTRUCT * pIn = &(pMapInput->Inputs[Port]);
+ UBYTE sType = pIn->SensorType;
+ if (!(sType == COLORFULL || sType == COLORRED || sType == COLORGREEN ||
+ sType == COLORBLUE || sType == COLORNONE))
{
return (ERR_COMM_CHAN_NOT_READY); //TODO - is this the right error?
}
//Copy Detected Color
- *SensorValue = pMapInput->Inputs[Port].SensorValue;
+ *SensorValue = pIn->SensorValue;
//Copy all raw, normalized and scaled data from I/O Map
for (i=0; i<NO_OF_COLORS; i++){
- RawArray[i] = pMapInput->Colors[Port].ADRaw[i];
- NormalizedArray[i] = pMapInput->Colors[Port].SensorRaw[i];
- ScaledArray[i] = pMapInput->Colors[Port].SensorValue[i];
+ COLORSTRUCT * pColor = &(pMapInput->Colors[Port]);
+ RawArray[i] = pColor->ADRaw[i];
+ NormalizedArray[i] = pColor->SensorRaw[i];
+ ScaledArray[i] = pColor->SensorValue[i];
}
//Copy the Invalid Data Flag
- *InvalidData = pMapInput->Inputs[Port].InvalidData;
+ *InvalidData = pIn->InvalidData;
return NO_ERR;
@@ -3363,13 +3635,14 @@ void cCmdSetByte(void * pVal, ULONG NewVal);
void cCmdSetWord(void * pVal, ULONG NewVal);
void cCmdSetLong(void * pVal, ULONG NewVal);
void cCmdSetError(void * pVal, ULONG NewVal);
+void cCmdSetFloat(void * pVal, ULONG NewVal);
typedef ULONG (*pGetOperand)(void *);
static pGetOperand GetProcArray[11]= {cCmdGetUByte, cCmdGetUByte, cCmdGetSByte, cCmdGetUWord, cCmdGetSWord, cCmdGetULong, cCmdGetSLong, cCmdGetError, cCmdGetError, cCmdGetError, cCmdGetFloat}; // dup UByte to line up
typedef void (*pSetOperand)(void *, ULONG);
-static pSetOperand SetProcArray[9]= {cCmdSetByte, cCmdSetByte, cCmdSetByte, cCmdSetWord, cCmdSetWord, cCmdSetLong, cCmdSetLong, cCmdSetError, cCmdSetError}; // dup UByte to line up
+static pSetOperand SetProcArray[11]= {cCmdSetByte, cCmdSetByte, cCmdSetByte, cCmdSetWord, cCmdSetWord, cCmdSetLong, cCmdSetLong, cCmdSetError, cCmdSetError, cCmdSetError, cCmdSetFloat}; // dup UByte to line up
void cCmdSetError(void * pVal, ULONG NewVal) {
NXT_BREAK;
@@ -3387,6 +3660,10 @@ void cCmdSetByte(void * pVal, ULONG NewVal) {
*(UBYTE*)pVal = (UBYTE)NewVal;
}
+void cCmdSetFloat(void * pVal, ULONG NewVal) {
+ *(float*)pVal = (float)NewVal;
+}
+
// only works on simple types, equivalent to resolve and get, but faster
ULONG cCmdGetScalarValFromDataArg(DATA_ARG DataArg, UWORD Offset)
{
@@ -3394,6 +3671,11 @@ ULONG cCmdGetScalarValFromDataArg(DATA_ARG DataArg, UWORD Offset)
return GetProcArray[dsTOCPtr->TypeCode](VarsCmd.pDataspace + dsTOCPtr->DSOffset + Offset);
}
+float cCmdGetFloatValFromDataArg(DATA_ARG DataArg, UWORD Offset)
+{
+ DS_TOC_ENTRY *dsTOCPtr= &VarsCmd.pDataspaceTOC[DataArg];
+ return (float)(*(float*)(VarsCmd.pDataspace + dsTOCPtr->DSOffset + Offset));
+}
ULONG cCmdGetError(void * pVal) {
NXT_BREAK;
@@ -3426,11 +3708,11 @@ ULONG cCmdGetSByte(void * pVal) {
ULONG cCmdGetFloat(void * pVal) {
float tempVal = *(float*)pVal;
- if (tempVal >= 0) {
- tempVal += 0.5;
+ if (tempVal >= (float)0.0) {
+ tempVal += (float)0.5;
}
else {
- tempVal -= 0.5;
+ tempVal -= (float)0.5;
}
return (ULONG)tempVal;
}
@@ -3822,6 +4104,17 @@ UWORD cCmdGetDVIndex(DS_ELEMENT_ID DSElementID, UWORD Offset)
return DVIndex;
}
+UWORD cCmdArrayDimensions(DS_ELEMENT_ID DSElementID)
+{
+ NXT_ASSERT(cCmdIsDSElementIDSane(DSElementID));
+ UWORD result = 0;
+ while (cCmdDSType(DSElementID) == TC_ARRAY)
+ {
+ result++;
+ DSElementID = INC_ID(DSElementID);
+ }
+ return result;
+}
UWORD cCmdArrayCount(DS_ELEMENT_ID DSElementID, UWORD Offset)
{
@@ -4137,10 +4430,66 @@ NXT_STATUS cCmdInterpFromClump()
pInstr = pClumpRec->PC; // abs
lastClumpInstr= pClumpRec->CodeEnd; // abs
- i= gInstrsToExecute;
+/*
+ // are we free running and reach a breakpoint?
+ if (VarsCmd.VMState == VM_RUN_FREE)
+ {
+ CLUMP_BREAK_REC* pBreakpoints = pClumpRec->Breakpoints;
+ for(int j = 0; j < MAX_BREAKPOINTS; j++)
+ {
+ if (pBreakpoints[j].Enabled &&
+ (pBreakpoints[j].Location == (CODE_INDEX)(pClumpRec->PC-pClumpRec->CodeStart)))
+ {
+ VarsCmd.VMState = VM_RUN_PAUSE;
+ return BREAKOUT_REQ;
+ }
+ }
+ // auto pause at clump == pauseClump and relative PC = pausePC
+ if ((Clump == VarsCmd.PauseClump) &&
+ ((CODE_INDEX)(pClumpRec->PC-pClumpRec->CodeStart) == VarsCmd.PausePC))
+ {
+ VarsCmd.VMState = VM_RUN_PAUSE;
+ // turn off the auto pause flags
+ VarsCmd.PauseClump = NOT_A_CLUMP;
+ VarsCmd.PausePC = 0xFFFF;
+ return BREAKOUT_REQ;
+ }
+ }
+*/
+
+ if(VarsCmd.VMState == VM_RUN_FREE)
+ i = pClumpRec->Priority;
+ else
+ i = 1;
nextMSTick= dTimerGetNextMSTickCnt();
do
{
+ // are we debugging and are free running and reach a breakpoint/autopause?
+ if (VarsCmd.Debugging && (VarsCmd.VMState == VM_RUN_FREE))
+ {
+ CLUMP_BREAK_REC* pBreakpoints = pClumpRec->Breakpoints;
+ for(int j = 0; j < MAX_BREAKPOINTS; j++)
+ {
+ if (pBreakpoints[j].Enabled &&
+ (pBreakpoints[j].Location == (CODE_INDEX)(pClumpRec->PC-pClumpRec->CodeStart)))
+ {
+ VarsCmd.VMState = VM_RUN_PAUSE;
+ return BREAKOUT_REQ;
+ }
+ }
+ // auto pause at clump == pauseClump and relative PC = pausePC
+ if ((Clump == VarsCmd.PauseClump) &&
+ ((CODE_INDEX)(pClumpRec->PC-pClumpRec->CodeStart) == VarsCmd.PausePC))
+ {
+ // pause the VM
+ VarsCmd.VMState = VM_RUN_PAUSE;
+ // and turn off the auto pause flags
+ VarsCmd.PauseClump = NOT_A_CLUMP;
+ VarsCmd.PausePC = 0xFFFF;
+ return BREAKOUT_REQ;
+ }
+ }
+
#if VMProfilingCode
ULONG instrStartTime;
instrStartTime= dTimerReadHiRes();
@@ -4291,6 +4640,22 @@ NXT_STATUS cCmdInterpUnop1(CODE_WORD * const pCode)
}
break;
+ case OP_WAITI:
+ case OP_WAITV:
+ {
+ ULONG wait= 0;
+ if (opCode == OP_WAITV) {
+ wait = cCmdGetScalarValFromDataArg(Arg1, 0);
+ }
+ else
+ wait = Arg1;
+ if(wait == 0)
+ Status= ROTATE_QUEUE;
+ else
+ Status = cCmdSleepClump(wait + IOMapCmd.Tick); // put to sleep, to wake up wait ms in future
+ }
+ break;
+
case OP_GETTICK:
{
cCmdSetScalarValFromDataArg(Arg1, dTimerReadNoPoll());
@@ -4307,6 +4672,45 @@ NXT_STATUS cCmdInterpUnop1(CODE_WORD * const pCode)
}
break;
+ case OP_STOPCLUMPIMMED:
+ {
+ // Release any mutexes that the clump we are stopping owns
+ CLUMP_ID Clump = (CLUMP_ID)Arg1;
+ // release any mutexes owned by this clump
+ // and remove it from any wait queues that it might be on
+ cCmdReleaseAllMutexes(Clump);
+ if (cCmdIsClumpOnQ(&(VarsCmd.RunQ), Clump)) {
+ // remove the specified clump from the run queue if it is on it
+ cCmdDeQClump(&(VarsCmd.RunQ), Clump);
+ }
+ else if (cCmdIsClumpOnQ(&(VarsCmd.RestQ), Clump)) {
+ // if the specified clump happened to be sleeping then
+ // remove it from the rest queue
+ cCmdDeQClump(&(VarsCmd.RestQ), Clump);
+ }
+ // since we have stopped that clump we should reset its clump rec values.
+ CLUMP_REC* pClumpRec = &(VarsCmd.pAllClumps[Clump]);
+ pClumpRec->PC = pClumpRec->CodeStart;
+ pClumpRec->CurrFireCount = pClumpRec->InitFireCount;
+ pClumpRec->awakenTime = 0;
+ }
+ break;
+
+ case OP_STARTCLUMPIMMED:
+ {
+ CLUMP_ID Clump = (CLUMP_ID)Arg1;
+ // only enqueue the clump if it is not already on the run queue
+ // otherwise this is a no-op
+ if (!cCmdIsClumpOnQ(&(VarsCmd.RunQ), Clump) &&
+ !cCmdIsClumpOnQ(&(VarsCmd.RestQ), Clump) &&
+ !cCmdIsClumpOnAMutexWaitQ(Clump))
+ {
+ cCmdEnQClump(&(VarsCmd.RunQ), Clump); //Enqueue the specified clump
+ Status = CLUMP_SUSPEND;
+ }
+ }
+ break;
+
default:
{
//Fatal error: Unrecognized instruction
@@ -4408,13 +4812,10 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
polyUn2Dispatch ++;
UWORD Count;
UWORD Offset;
- SLONG TmpSLong;
- ULONG TmpULong;
+// SLONG TmpSLong;
+// ULONG TmpULong;
ULONG ArgVal2;
float FltArgVal2;
- char Buffer[30];
- char FormatString[5];
- UBYTE CheckTrailingZeros = 0;
NXT_ASSERT(pCode != NULL);
@@ -4423,7 +4824,10 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
Arg1 = pCode[1];
Arg2 = pCode[2];
- if (opCode == OP_NEG || opCode == OP_NOT || opCode == OP_TST || opCode == OP_SQRT || opCode == OP_ABS)
+ if (opCode == OP_NEG || opCode == OP_NOT || opCode == OP_TST ||
+ opCode == OP_CMNT || opCode == OP_SQRT || opCode == OP_ABS || opCode == OP_SIGN ||
+ (opCode >= OP_ACOS && opCode <= OP_FRAC) ||
+ (opCode >= OP_ACOSD && opCode <= OP_SINHD))
{
return cCmdInterpPolyUnop2(*pCode, Arg1, 0, Arg2, 0);
}
@@ -4440,7 +4844,13 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
{
//!!! Should throw error if TypeCode1 is non-scalar
// Accepting non-scalar destinations could have unpredictable results!
- cCmdSetScalarValFromDataArg(Arg1, Arg2);
+ pArg1 = cCmdResolveDataArg(Arg1, 0, &TypeCode1);
+ if (TypeCode1 == TC_SLONG)
+ *(ULONG*)pArg1 = (SWORD)Arg2;
+ else if (TypeCode1 == TC_ULONG)
+ *(ULONG*)pArg1 = (UWORD)Arg2;
+ else if (TypeCode1 < TC_ULONG)
+ cCmdSetScalarValFromDataArg(Arg1, Arg2);
}
break;
@@ -4482,6 +4892,19 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
}
break;
+ case OP_PRIORITY:
+ {
+ // set the priority of the specified clump
+ CLUMP_ID clump;
+ if (Arg2 != NOT_A_DS_ID)
+ clump = (CLUMP_ID)Arg1;
+ else
+ clump = VarsCmd.RunQ.Head;
+ CLUMP_REC* pClumpRec = &(VarsCmd.pAllClumps[clump]);
+ pClumpRec->Priority = (UBYTE)Arg2;
+ }
+ break;
+
case OP_SUBCALL:
{
NXT_ASSERT(cCmdIsClumpIDSane((CLUMP_ID)Arg1));
@@ -4590,6 +5013,7 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
case OP_NUMTOSTRING:
{
+ char Buffer[36];
//Assert that the destination is a string (array of bytes)
NXT_ASSERT(cCmdDSType(Arg1) == TC_ARRAY);
NXT_ASSERT(cCmdDSType(INC_ID(Arg1)) == TC_UBYTE);
@@ -4600,65 +5024,36 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
if (TypeCode2 == TC_FLOAT)
{
- pArg2 = cCmdResolveDataArg(Arg2, 0, NULL);
- FltArgVal2 = cCmdGetValFlt(pArg2, TypeCode2);
- // is number too big for display? then format differently and don't bother with trailing zeros
- if ((FltArgVal2 > 9999999999999.99)||(FltArgVal2 < -999999999999.99)){ // these are the widest %.2f numbers that will fit on display
- strcpy (FormatString, "%.6g");
- }
- else{
- strcpy (FormatString, "%.2f");
- CheckTrailingZeros = 1;
- }
- Count = sprintf(Buffer, FormatString, FltArgVal2);
+ FltArgVal2 = cCmdGetFloatValFromDataArg(Arg2, 0);
+ Count = sprintf(Buffer, "%.4f", FltArgVal2);
Count++; //add room for null terminator
-
- if (CheckTrailingZeros){
- // Determine if the trailing digits are zeros. If so, drop them
- if (Buffer[Count-2] == 0x30) { // NOTE: 0x30 is ASCII 0
- if (Buffer[Count-3] == 0x30){
- strcpy (FormatString, "%.0f"); // the last two digits = 0, copy as integer
- Count = Count - 3; // don't need memory for decimal and 2 ascii characters
- }
- else {
- strcpy (FormatString, "%.1f"); // only the 2nd digit = 0 so drop it, but keep the tenths place
- Count = Count - 1; // don't need memory for 2nd ascii character
- }
- }
+ // remove trailing zeros
+ while (Buffer[Count-2] == 0x30) {
+ Buffer[Count-2] = 0x00;
+ Count--;
+ }
+ // if last character is now a period then delete it too
+ if (Buffer[Count-2] == '.') {
+ Buffer[Count-2] = 0x00;
+ Count--;
}
}
else
{
- ArgVal2 = cCmdGetScalarValFromDataArg(Arg2, 0);
- //Calculate size of array
- if (ArgVal2 == 0)
- Count = 1;
- else {
- Count = 0;
- SLONG digits= 0;
- ULONG Tmp= 1;
- if (TypeCode2 == TC_SLONG || TypeCode2 == TC_SWORD || TypeCode2 == TC_SBYTE)
+ ArgVal2 = cCmdGetScalarValFromDataArg(Arg2, 0);
+
+ // Calculate size of array
+ if (IS_SIGNED_TYPE(TypeCode2))
{
- TmpSLong = (SLONG)ArgVal2;
- //Add room for negative sign
- if (TmpSLong < 0) {
- Count++;
- TmpULong= -TmpSLong;
- }
- else
- TmpULong= ArgVal2;
+ Count = sprintf(Buffer, "%d", (SLONG)ArgVal2);
}
else
- TmpULong= ArgVal2;
-
- while (Tmp <= TmpULong && digits < 10) { // maxint is ten digits, max
- Tmp *= 10;
- digits++;
+ {
+ Count = sprintf(Buffer, "%u", ArgVal2);
}
- Count += digits;
- }
- //add room for NULL terminator
- Count++;
+
+ //add room for NULL terminator
+ Count++;
}
//Allocate array
@@ -4669,18 +5064,7 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
pArg1 = cCmdResolveDataArg(Arg1, 0, &TypeCode1);
//Populate array
- if (TypeCode2 == TC_FLOAT)
- {
- sprintf(pArg1, FormatString, FltArgVal2);
- }
- else if (TypeCode2 == TC_SLONG || TypeCode2 == TC_SWORD || TypeCode2 == TC_SBYTE)
- {
- sprintf(pArg1, "%d", (SLONG)ArgVal2);
- }
- else
- {
- sprintf(pArg1, "%u", ArgVal2);
- }
+ memcpy(pArg1, Buffer, Count);
}
break;
@@ -4739,7 +5123,7 @@ NXT_STATUS cCmdInterpUnop2(CODE_WORD * const pCode)
}
break;
- default:
+ default:
{
//Fatal error: Unrecognized instruction
NXT_BREAK;
@@ -4772,6 +5156,8 @@ NXT_STATUS cCmdInterpPolyUnop2(CODE_WORD const Code, DATA_ARG Arg1, UWORD Offset
TypeCode1 = cCmdDSType(Arg1);
TypeCode2 = cCmdDSType(Arg2);
+ UBYTE opCode = OP_CODE(&Code);
+
//Simple case, scalar. Solve and return.
if (!IS_AGGREGATE_TYPE(TypeCode2))
{
@@ -4789,8 +5175,8 @@ NXT_STATUS cCmdInterpPolyUnop2(CODE_WORD const Code, DATA_ARG Arg1, UWORD Offset
else
{
ArgVal2= cCmdGetScalarValFromDataArg(Arg2, Offset2);
- if(OP_CODE(&Code) == OP_MOV)
- ArgVal1= ArgVal2;
+ if (opCode == OP_MOV)
+ ArgVal1 = ArgVal2;
else
ArgVal1 = cCmdUnop2(Code, ArgVal2, TypeCode2);
cCmdSetVal(pArg1, TypeCode1, ArgVal1);
@@ -4799,12 +5185,11 @@ NXT_STATUS cCmdInterpPolyUnop2(CODE_WORD const Code, DATA_ARG Arg1, UWORD Offset
}
//At least one of the args is an aggregate type
-
- if(TypeCode1 == TC_ARRAY && TypeCode2 == TC_ARRAY) {
+ if(TypeCode1 == TC_ARRAY && TypeCode2 == TC_ARRAY && opCode == OP_MOV) {
TYPE_CODE tc1, tc2;
- tc1= cCmdDSType(INC_ID(Arg1));
- tc2= cCmdDSType(INC_ID(Arg2));
- if(tc1 <= TC_LAST_INT_SCALAR && tc1 == tc2) {
+ tc1 = cCmdDSType(INC_ID(Arg1));
+ tc2 = cCmdDSType(INC_ID(Arg2));
+ if((tc1 <= TC_LAST_INT_SCALAR || tc1 == TC_FLOAT) && tc1 == tc2) {
void *pArg1, *pArg2;
ULONG Count = cCmdArrayCount(Arg2, Offset2);
Status = cCmdDSArrayAlloc(Arg1, Offset1, Count);
@@ -4915,6 +5300,10 @@ ULONG cCmdUnop2(CODE_WORD const Code, ULONG Operand, TYPE_CODE TypeCode)
return cCmdCompare(COMP_CODE((&Code)), Operand, 0, TypeCode, TypeCode);
else if(opCode == OP_ABS)
return abs(Operand);
+ else if (opCode == OP_CMNT)
+ return (~Operand);
+ else if (opCode == OP_SIGN)
+ return (((SLONG)Operand) < 0) ? -1 : ((Operand == 0) ? 0 : 1);
else
{
//Unrecognized instruction, NXT_BREAK for easy debugging (ERR_INSTR handled in caller)
@@ -4923,9 +5312,13 @@ ULONG cCmdUnop2(CODE_WORD const Code, ULONG Operand, TYPE_CODE TypeCode)
}
}
+#define DEG2RAD 0.017453F
+#define RAD2DEG 57.29578F
+
float cCmdUnop2Flt(CODE_WORD const Code, float Operand, TYPE_CODE TypeCode)
{
UBYTE opCode;
+ float ip, fp;
opCode = OP_CODE((&Code));
if(opCode == OP_MOV)
@@ -4940,22 +5333,66 @@ float cCmdUnop2Flt(CODE_WORD const Code, float Operand, TYPE_CODE TypeCode)
return cCmdCompareFlt(COMP_CODE((&Code)), Operand, 0, TypeCode, TypeCode);
else if(opCode == OP_ABS)
return fabsf(Operand);
+ else if (opCode == OP_SIGN)
+ return (Operand < 0) ? -1 : ((Operand == 0) ? 0 : 1);
else if(opCode == OP_SQRT)
- return sqrt(Operand);
-#if 0
+ return sqrtf(Operand);
else if(opCode == OP_SIN)
- return sin(Operand);
+ return sinf(Operand);
else if(opCode == OP_COS)
- return cos(Operand);
+ return cosf(Operand);
else if(opCode == OP_TAN)
- return tan(Operand);
+ return tanf(Operand);
else if(opCode == OP_ASIN)
- return asin(Operand);
+ return asinf(Operand);
else if(opCode == OP_ACOS)
- return acos(Operand);
+ return acosf(Operand);
else if(opCode == OP_ATAN)
- return atan(Operand);
-#endif
+ return atanf(Operand);
+ else if(opCode == OP_CEIL)
+ return ceilf(Operand);
+ else if(opCode == OP_EXP)
+ return expf(Operand);
+ else if(opCode == OP_FLOOR)
+ return floorf(Operand);
+ else if(opCode == OP_LOG)
+ return logf(Operand);
+ else if(opCode == OP_LOG10)
+ return log10f(Operand);
+ else if (opCode == OP_TRUNC)
+ {
+ modff(Operand, &ip);
+ return ip;
+ }
+ else if (opCode == OP_FRAC)
+ {
+ fp = modff(Operand, &ip);
+ return fp;
+ }
+ else if(opCode == OP_SIND)
+ return sinf((float)Operand*DEG2RAD);
+ else if(opCode == OP_COSD)
+ return cosf((float)Operand*DEG2RAD);
+ else if(opCode == OP_TAND)
+ return tanf((float)Operand*DEG2RAD);
+ else if(opCode == OP_ASIND)
+ return (float)(asinf(Operand)*RAD2DEG);
+ else if(opCode == OP_ACOSD)
+ return (float)(acosf(Operand)*RAD2DEG);
+ else if(opCode == OP_ATAND)
+ return (float)(atanf(Operand)*RAD2DEG);
+ else if(opCode == OP_TANH)
+ return tanhf(Operand);
+ else if(opCode == OP_COSH)
+ return coshf(Operand);
+ else if(opCode == OP_SINH)
+ return sinhf(Operand);
+ else if(opCode == OP_TANHD)
+ return tanhf((float)Operand*DEG2RAD);
+ else if(opCode == OP_COSHD)
+ return coshf((float)Operand*DEG2RAD);
+ else if(opCode == OP_SINHD)
+ return sinhf((float)Operand*DEG2RAD);
else
{
//Unrecognized instruction, NXT_BREAK for easy debugging (ERR_INSTR handled in caller)
@@ -4999,7 +5436,7 @@ NXT_STATUS cCmdIOGetSet(ULONG opCode, DATA_ARG Arg1, DATA_ARG Arg2, DATA_ARG Arg
pArg2 = cCmdResolveIODataArg(Arg2, 0, &TypeCode2);
TypeCode1= cCmdDSType(Arg1);
pArg1= cCmdDSScalarPtr(Arg1, 0);
- if(TypeCode1 <= TC_SBYTE && TypeCode1 <= TC_SBYTE) // seems really common
+ if(TypeCode1 <= TC_SBYTE && TypeCode2 <= TC_SBYTE) // seems really common
*(UBYTE*)pArg1= *(UBYTE*)pArg2;
else
cCmdSetVal(pArg1, TypeCode1, cCmdGetVal(pArg2, TypeCode2));
@@ -5037,12 +5474,12 @@ NXT_STATUS cCmdInterpScalarBinop(CODE_WORD * const pCode)
if(TypeCode2 <= TC_LAST_INT_SCALAR && TypeCode3 <= TC_LAST_INT_SCALAR) {
ArgVal2= GetProcArray[TypeCode2](VarsCmd.pDataspace + dsTOC2Ptr->DSOffset);
ArgVal3= GetProcArray[TypeCode3](VarsCmd.pDataspace + dsTOC3Ptr->DSOffset);
- ArgVal1= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
+ ArgVal1= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
DS_TOC_ENTRY *dsTOC1Ptr= &VarsCmd.pDataspaceTOC[Arg1];
SetProcArray[dsTOC1Ptr->TypeCode](VarsCmd.pDataspace + dsTOC1Ptr->DSOffset, ArgVal1);
- scalarCmp++;
- Status = NO_ERR;
- }
+ scalarCmp++;
+ Status = NO_ERR;
+ }
else if (TypeCode2 == TC_ARRAY) // two strings
{
// memcmp(); here or in compareagg, could use memcmp to speed up string compares ???
@@ -5056,31 +5493,31 @@ NXT_STATUS cCmdInterpScalarBinop(CODE_WORD * const pCode)
}
}
else if(opCode == OP_BRCMP) { // t2 and t3 guaranteed scalar
- TYPE_CODE TypeCode2, TypeCode3;
- ULONG ArgVal2, ArgVal3;
+ TYPE_CODE TypeCode2, TypeCode3;
+ ULONG ArgVal2, ArgVal3;
- Arg1 = pCode[1];
- Arg2 = pCode[2];
- Arg3 = pCode[3];
- TypeCode2= cCmdDSType(Arg2);
- TypeCode3= cCmdDSType(Arg3);
- ArgVal2= cCmdGetScalarValFromDataArg(Arg2, 0);
- ArgVal3= cCmdGetScalarValFromDataArg(Arg3, 0);
- CmpBool= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
+ Arg1 = pCode[1];
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
+ TypeCode2= cCmdDSType(Arg2);
+ TypeCode3= cCmdDSType(Arg3);
+ ArgVal2= cCmdGetScalarValFromDataArg(Arg2, 0);
+ ArgVal3= cCmdGetScalarValFromDataArg(Arg3, 0);
+ CmpBool= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
- if (CmpBool)
- gPCDelta = (SWORD)Arg1;
- else
- gPCDelta= 4;
- Status= NO_ERR;
- }
+ if (CmpBool)
+ gPCDelta = (SWORD)Arg1;
+ else
+ gPCDelta= 4;
+ Status= NO_ERR;
+ }
else if(opCode >= OP_SETIN && opCode <= OP_GETOUT) {
- Arg1 = pCode[1];
- Arg2 = pCode[2];
- Arg3 = pCode[3];
+ Arg1 = pCode[1];
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
Status= cCmdIOGetSet(opCode, Arg1, Arg2, Arg3);
gPCDelta= 4;
- }
+ }
else {
scalarOther ++;
Status= cCmdInterpBinop(pCode);
@@ -5098,116 +5535,181 @@ NXT_STATUS cCmdInterpBinop(CODE_WORD * const pCode)
UBYTE CmpBool;
DV_INDEX DVIndex1, DVIndex2;
UWORD i;
+ void *pArg1 = NULL, *pArg2 = NULL;
+ UWORD Count;
polyBinopDispatch ++;
gPCDelta= 4;
NXT_ASSERT(pCode != NULL);
- opCode = OP_CODE(pCode);
- Arg1 = pCode[1];
- Arg2 = pCode[2];
- Arg3 = pCode[3];
+ opCode = OP_CODE(pCode);
+ Arg1 = pCode[1];
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
- if (opCode <= OP_XOR) // && ! OP_NEG, can't happen since it is unop
+ if ((opCode <= OP_XOR) ||
+ (opCode >= OP_LSL && opCode <= OP_ROTR) ||
+ (opCode == OP_ATAN2) || (opCode == OP_POW) || (opCode == OP_ATAN2D)) // && ! OP_NEG, can't happen since it is unop
Status= cCmdInterpPolyBinop(opCode, Arg1, 0, Arg2, 0, Arg3, 0);
else if(opCode >= OP_SETIN && opCode <= OP_GETOUT)
Status= cCmdIOGetSet(opCode, Arg1, Arg2, Arg3);
else {
- switch (opCode)
- {
- case OP_CMP:
+ switch (opCode)
{
+ case OP_CMP:
+ {
TYPE_CODE TypeCode2= cCmdDSType(Arg2), TypeCode3= cCmdDSType(Arg3);
- if(TypeCode2 <= TC_LAST_INT_SCALAR && TypeCode3 <= TC_LAST_INT_SCALAR) {
- ULONG ArgVal1, ArgVal2, ArgVal3;
+ if(TypeCode2 <= TC_LAST_INT_SCALAR && TypeCode3 <= TC_LAST_INT_SCALAR) {
+ ULONG ArgVal1, ArgVal2, ArgVal3;
+ ArgVal2= cCmdGetScalarValFromDataArg(Arg2, 0);
+ ArgVal3= cCmdGetScalarValFromDataArg(Arg3, 0);
+ ArgVal1= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
+ cCmdSetScalarValFromDataArg(Arg1, ArgVal1);
+ PolyScalarCmp++;
+ }
+ else if (IS_AGGREGATE_TYPE(TypeCode2) && IS_AGGREGATE_TYPE(TypeCode3) && !IS_AGGREGATE_TYPE(cCmdDSType(Arg1)))
+ {
+ //Compare Aggregates
+ Status = cCmdCompareAggregates(COMP_CODE(pCode), &CmpBool, Arg2, 0, Arg3, 0);
+ cCmdSetScalarValFromDataArg(Arg1, CmpBool);
+ recursiveCmp++;
+ }
+ else
+ {
+ //Compare Elements
+ Status = cCmdInterpPolyBinop(*pCode, Arg1, 0, Arg2, 0, Arg3, 0);
+ polyPolyCmp++;
+ }
+ }
+ break;
+
+ case OP_BRCMP:
+ {
+ TYPE_CODE TypeCode2= cCmdDSType(Arg2), TypeCode3= cCmdDSType(Arg3);
+ if(TypeCode2 <= TC_LAST_INT_SCALAR && TypeCode3 <= TC_LAST_INT_SCALAR) {
+ ULONG ArgVal2, ArgVal3;
ArgVal2= cCmdGetScalarValFromDataArg(Arg2, 0);
ArgVal3= cCmdGetScalarValFromDataArg(Arg3, 0);
- ArgVal1= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
- cCmdSetScalarValFromDataArg(Arg1, ArgVal1);
- PolyScalarCmp++;
+ CmpBool= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
}
- else if (IS_AGGREGATE_TYPE(TypeCode2) && IS_AGGREGATE_TYPE(TypeCode3) && !IS_AGGREGATE_TYPE(cCmdDSType(Arg1)))
- {
- //Compare Aggregates
+ else //Compare Aggregates
Status = cCmdCompareAggregates(COMP_CODE(pCode), &CmpBool, Arg2, 0, Arg3, 0);
- cCmdSetScalarValFromDataArg(Arg1, CmpBool);
- recursiveCmp++;
+
+ if (CmpBool)
+ gPCDelta = (SWORD)Arg1;
}
- else
+ break;
+
+ case OP_INDEX:
{
- //Compare Elements
- Status = cCmdInterpPolyBinop(*pCode, Arg1, 0, Arg2, 0, Arg3, 0);
- polyPolyCmp++;
- }
- }
- break;
-
- case OP_BRCMP:
- {
- TYPE_CODE TypeCode2= cCmdDSType(Arg2), TypeCode3= cCmdDSType(Arg3);
- if(TypeCode2 <= TC_LAST_INT_SCALAR && TypeCode3 <= TC_LAST_INT_SCALAR) {
- ULONG ArgVal2, ArgVal3;
- ArgVal2= cCmdGetScalarValFromDataArg(Arg2, 0);
- ArgVal3= cCmdGetScalarValFromDataArg(Arg3, 0);
- CmpBool= cCmdCompare(COMP_CODE(pCode), ArgVal2, ArgVal3, TypeCode2, TypeCode3);
- }
- else //Compare Aggregates
- Status = cCmdCompareAggregates(COMP_CODE(pCode), &CmpBool, Arg2, 0, Arg3, 0);
-
- if (CmpBool)
- gPCDelta = (SWORD)Arg1;
- }
- break;
-
- case OP_INDEX:
- {
ArgVal3 = (Arg3 != NOT_A_DS_ID) ? cCmdGetScalarValFromDataArg(Arg3, 0) : 0;
-
- DVIndex2 = cCmdGetDVIndex(Arg2, 0);
- if (ArgVal3 >= DV_ARRAY[DVIndex2].Count)
- return (ERR_ARG);
-
- Status = cCmdInterpPolyUnop2(OP_MOV, Arg1, 0, INC_ID(Arg2), ARRAY_ELEM_OFFSET(DVIndex2, ArgVal3));
- }
- break;
-
- case OP_ARRINIT:
- {
- //Arg1 - Dst, Arg2 - element type/default val, Arg3 - length
-
+
+ DVIndex2 = cCmdGetDVIndex(Arg2, 0);
+ if (ArgVal3 >= DV_ARRAY[DVIndex2].Count)
+ return (ERR_ARG);
+
+ Status = cCmdInterpPolyUnop2(OP_MOV, Arg1, 0, INC_ID(Arg2), ARRAY_ELEM_OFFSET(DVIndex2, ArgVal3));
+ }
+ break;
+
+ case OP_ARRINIT:
+ {
+ //Arg1 - Dst, Arg2 - element type/default val, Arg3 - length
+
NXT_ASSERT(cCmdDSType(Arg1) == TC_ARRAY);
-
+
+ // determine the type of the array destination arg
+ TYPE_CODE TypeCode = cCmdDSType(INC_ID(Arg1));
+
+ // How many elements do we want?
ArgVal3 = (Arg3 != NOT_A_DS_ID) ? cCmdGetScalarValFromDataArg(Arg3, 0) : 0;
-
- Status = cCmdDSArrayAlloc(Arg1, 0, (UWORD)ArgVal3);
+
+ Status = cCmdDSArrayAlloc(Arg1, 0, (UWORD)ArgVal3);
if (!IS_ERR(Status))
{
- DVIndex1 = cCmdGetDVIndex(Arg1, 0);
- if(cCmdDSType(Arg2) <= TC_LAST_INT_SCALAR)
+ DVIndex1 = cCmdGetDVIndex(Arg1, 0);
+ if(cCmdDSType(Arg2) <= TC_LAST_INT_SCALAR && TypeCode <= TC_LAST_INT_SCALAR)
{
ULONG val= cCmdGetScalarValFromDataArg(Arg2, 0);
- TYPE_CODE TypeCode= cCmdDSType(INC_ID(Arg1));
for (i = 0; i < ArgVal3; i++) // could init ptr and incr by offset GM???
- {
- //copy Arg2 into each element of Arg1
+ {
+ //copy Arg2 into each element of Arg1
cCmdSetVal(VarsCmd.pDataspace + ARRAY_ELEM_OFFSET(DVIndex1, i), TypeCode, val);
}
}
else
for (i = 0; i < ArgVal3; i++) //copy Arg2 into each element of Arg1
- Status = cCmdInterpPolyUnop2(OP_MOV, INC_ID(Arg1), ARRAY_ELEM_OFFSET(DVIndex1, i), Arg2, 0);
+ Status = cCmdInterpPolyUnop2(OP_MOV, INC_ID(Arg1), ARRAY_ELEM_OFFSET(DVIndex1, i), Arg2, 0);
+ }
}
- }
- break;
+ break;
+
+ case OP_FMTNUM:
+ {
+ //Check that the destination is a string (array of bytes)
+ if (cCmdDSType(Arg1) != TC_ARRAY || cCmdDSType(INC_ID(Arg1)) != TC_UBYTE) {
+ Status = ERR_INSTR;
+ return (Status);
+ }
+
+ //Check that the format is a string (array of bytes)
+ if (cCmdDSType(Arg2) != TC_ARRAY || cCmdDSType(INC_ID(Arg2)) != TC_UBYTE) {
+ Status = ERR_INSTR;
+ return (Status);
+ }
+
+ pArg2 = cCmdResolveDataArg(Arg2, 0, NULL);
+ TYPE_CODE TypeCode3 = cCmdDSType(Arg3);
- default:
- {
- //Fatal error: Unrecognized instruction
- NXT_BREAK;
- Status = ERR_INSTR;
+ //Make sure we're trying to convert a scalar/float to a string
+ if (TypeCode3 == TC_VOID || (TypeCode3 > TC_LAST_INT_SCALAR && TypeCode3 != TC_FLOAT)) {
+ Status = ERR_INSTR;
+ return (Status);
+ }
+
+ char fmtBuf[256]; // arbitrary limit!!!
+ // handle floats separately from scalar types
+ if (TypeCode3 == TC_FLOAT) {
+ float FltArgVal3 = cCmdGetFloatValFromDataArg(Arg3, 0);
+ Count = sprintf(fmtBuf, pArg2, FltArgVal3);
+ }
+ else
+ {
+ ArgVal3 = cCmdGetScalarValFromDataArg(Arg3, 0);
+ // Calculate size of array
+ if (IS_SIGNED_TYPE(TypeCode3))
+ {
+ Count = sprintf(fmtBuf, pArg2, (SLONG)ArgVal3);
+ }
+ else
+ {
+ Count = sprintf(fmtBuf, pArg2, ArgVal3);
+ }
+ }
+
+ //add room for NULL terminator
+ Count++;
+
+ //Allocate array
+ Status = cCmdDSArrayAlloc(Arg1, 0, Count);
+ if (IS_ERR(Status))
+ return Status;
+
+ pArg1 = cCmdResolveDataArg(Arg1, 0, NULL);
+
+ //Populate array
+ memcpy(pArg1, fmtBuf, Count);
+ }
+ break;
+
+ default:
+ {
+ //Fatal error: Unrecognized instruction
+ NXT_BREAK;
+ Status = ERR_INSTR;
+ }
+ break;
}
- break;
- }
}
return (Status);
}
@@ -5252,10 +5754,10 @@ NXT_STATUS cCmdInterpPolyBinop(CODE_WORD const Code, DATA_ARG Arg1, UWORD Offset
}
else
{
- ArgVal2 = cCmdGetScalarValFromDataArg(Arg2, Offset2);
- ArgVal3 = cCmdGetScalarValFromDataArg(Arg3, Offset3);
- ArgVal1 = cCmdBinop(Code, ArgVal2, ArgVal3, TypeCode2, TypeCode3);
- cCmdSetVal(pArg1, TypeCode1, ArgVal1);
+ ArgVal2 = cCmdGetScalarValFromDataArg(Arg2, Offset2);
+ ArgVal3 = cCmdGetScalarValFromDataArg(Arg3, Offset3);
+ ArgVal1 = cCmdBinop(Code, ArgVal2, ArgVal3, TypeCode2, TypeCode3);
+ cCmdSetVal(pArg1, TypeCode1, ArgVal1);
}
return Status;
}
@@ -5434,7 +5936,7 @@ ULONG cCmdBinop(CODE_WORD const Code, ULONG LeftOp, ULONG RightOp, TYPE_CODE Lef
case OP_XOR:
{
- return ((LeftOp | RightOp) & (~(LeftOp & RightOp)));
+ return ((LeftOp | RightOp) & (~(LeftOp & RightOp))); // LeftOp ^ RightOp
}
case OP_CMP:
@@ -5442,6 +5944,70 @@ ULONG cCmdBinop(CODE_WORD const Code, ULONG LeftOp, ULONG RightOp, TYPE_CODE Lef
return cCmdCompare(COMP_CODE((&Code)), LeftOp, RightOp, LeftType, RightType);
}
+ case OP_LSL:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative shifts == shifting by zero
+ else
+ return LeftOp << RightOp;
+ }
+
+ case OP_LSR:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative shifts == shifting by zero
+ else
+ return LeftOp >> RightOp;
+ }
+
+ case OP_ASL:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative shifts == shifting by zero
+ else if (!IS_SIGNED_TYPE(LeftType))
+ return LeftOp << RightOp;
+ else
+ return LeftOp * (1 << RightOp);
+ }
+
+ case OP_ASR:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative shifts == shifting by zero
+ else if (!IS_SIGNED_TYPE(LeftType))
+ return LeftOp >> RightOp;
+ else
+ return ((SLONG)LeftOp) / (1 << RightOp);
+ }
+
+ case OP_ROTL:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative rotates == rotating by zero
+ else {
+ if (LeftType == TC_ULONG || LeftType == TC_SLONG)
+ return (LeftOp << RightOp) | (LeftOp >> (32 - RightOp));
+ else if (LeftType == TC_UWORD || LeftType == TC_SWORD)
+ return (((UWORD)LeftOp) << RightOp) | (((UWORD)LeftOp) >> (16 - RightOp));
+ else if (LeftType == TC_UBYTE || LeftType == TC_SBYTE)
+ return (((UBYTE)LeftOp) << RightOp) | (((UBYTE)LeftOp) >> (8 - RightOp));
+ }
+ }
+
+ case OP_ROTR:
+ {
+ if (((SLONG)RightOp) <= 0)
+ return LeftOp; // negative rotates == rotating by zero
+ else {
+ if (LeftType == TC_ULONG || LeftType == TC_SLONG)
+ return (LeftOp >> RightOp) | (LeftOp << (32 - RightOp));
+ else if (LeftType == TC_UWORD || LeftType == TC_SWORD)
+ return (((UWORD)LeftOp) >> RightOp) | (((UWORD)LeftOp) << (16 - RightOp));
+ else if (LeftType == TC_UBYTE || LeftType == TC_SBYTE)
+ return (((UBYTE)LeftOp) >> RightOp) | (((UBYTE)LeftOp) << (8 - RightOp));
+ }
+ }
+
default:
{
//Unrecognized instruction, NXT_BREAK for easy debugging (ERR_INSTR handled in caller)
@@ -5491,7 +6057,7 @@ float cCmdBinopFlt(CODE_WORD const Code, float LeftOp, float RightOp, TYPE_CODE
if (RightOp == 0)
return (LeftOp);
- return (SLONG)LeftOp % (SLONG)RightOp;
+ return fmodf(LeftOp, RightOp);
}
case OP_AND:
@@ -5514,6 +6080,26 @@ float cCmdBinopFlt(CODE_WORD const Code, float LeftOp, float RightOp, TYPE_CODE
return cCmdCompareFlt(COMP_CODE((&Code)), LeftOp, RightOp, LeftType, RightType);
}
+ case OP_ATAN2:
+ {
+ return atan2f(LeftOp, RightOp);
+ }
+
+ case OP_POW:
+ {
+ float intpart, fracpart;
+ fracpart = modff(LeftOp, &intpart);
+ if (LeftOp < 0 && fracpart != 0)
+ return 0; // make the result zero if you try to raise a negative number to a fractional exponent
+ else
+ return powf(LeftOp, RightOp);
+ }
+
+ case OP_ATAN2D:
+ {
+ return (float)(atan2f(LeftOp, RightOp)*RAD2DEG);
+ }
+
default:
{
//Unrecognized instruction, NXT_BREAK for easy debugging (ERR_INSTR handled in caller)
@@ -5560,13 +6146,15 @@ NXT_STATUS cCmdInterpShortSubCall(CODE_WORD * const pCode)
return Status;
}
-ULONG moveSameInt= 0, moveDiffInt= 0, moveFloat= 0, moveArrInt= 0, moveOther= 0;
+ULONG moveSameInt= 0, moveDiffInt= 0, moveFloat= 0, moveIntFloat= 0, moveFloatInt= 0, moveArrInt= 0, moveOther= 0;
NXT_STATUS cCmdMove(DATA_ARG Arg1, DATA_ARG Arg2)
{
NXT_STATUS Status;
DS_TOC_ENTRY *TOC1Ptr= &VarsCmd.pDataspaceTOC[Arg1],
*TOC2Ptr= &VarsCmd.pDataspaceTOC[Arg2];
TYPE_CODE tc1= TOC1Ptr->TypeCode, tc2= TOC2Ptr->TypeCode;
+ UBYTE ElemSize1 = cCmdSizeOf((TOC1Ptr+1)->TypeCode),
+ ElemSize2 = cCmdSizeOf((TOC2Ptr+1)->TypeCode);
void *pArg1, *pArg2;
if(tc1 <= TC_LAST_INT_SCALAR && tc2 <= TC_LAST_INT_SCALAR)
@@ -5585,7 +6173,7 @@ NXT_STATUS cCmdMove(DATA_ARG Arg1, DATA_ARG Arg2)
*(UWORD*)pArg1= *(UWORD*)pArg2;
Status= NO_ERR;
}
- else
+ else
{
moveDiffInt++;
ULONG val= cCmdGetScalarValFromDataArg(Arg2, 0);
@@ -5593,17 +6181,53 @@ NXT_STATUS cCmdMove(DATA_ARG Arg1, DATA_ARG Arg2)
Status= NO_ERR;
}
}
- else if(tc1 == TC_FLOAT && tc2 == TC_FLOAT) { // may also need to speed up float to int and int to float conversions
+ else if(tc1 == TC_FLOAT && tc2 == TC_FLOAT) {
moveFloat++;
pArg1= VarsCmd.pDataspace + TOC1Ptr->DSOffset;
pArg2= VarsCmd.pDataspace + TOC2Ptr->DSOffset;
*(float*)pArg1= *(float*)pArg2;
Status= NO_ERR;
}
- //!!! Optimized move for arrays of ints.
- else if ((tc1 == TC_ARRAY) && (tc2 == TC_ARRAY)
- && ((TOC1Ptr+1)->TypeCode <= TC_LAST_INT_SCALAR)
- && ((TOC1Ptr+1)->TypeCode == (TOC2Ptr+1)->TypeCode))
+ else if(tc1 == TC_FLOAT && tc2 <= TC_LAST_INT_SCALAR) { // int to float
+ moveIntFloat++;
+ pArg1= VarsCmd.pDataspace + TOC1Ptr->DSOffset;
+ pArg2= VarsCmd.pDataspace + TOC2Ptr->DSOffset;
+ if (tc2 == TC_SLONG)
+ *(float*)pArg1 = *(SLONG*)pArg2;
+ else if (tc2 == TC_ULONG)
+ *(float*)pArg1 = *(ULONG*)pArg2;
+ else if (tc2 == TC_SBYTE)
+ *(float*)pArg1 = *(SBYTE*)pArg2;
+ else if (tc2 == TC_UBYTE)
+ *(float*)pArg1 = *(UBYTE*)pArg2;
+ else if (tc2 == TC_UWORD)
+ *(float*)pArg1 = *(UWORD*)pArg2;
+ else
+ *(float*)pArg1= *(SWORD*)pArg2;
+ Status= NO_ERR;
+ }
+ else if(tc2 == TC_FLOAT && tc1 <= TC_LAST_INT_SCALAR) { // float to int
+ moveFloatInt++;
+ pArg1= VarsCmd.pDataspace + TOC1Ptr->DSOffset;
+ pArg2= VarsCmd.pDataspace + TOC2Ptr->DSOffset;
+ if (tc1 == TC_SLONG)
+ *(SLONG*)pArg1 = *(float*)pArg2;
+ else if (tc1 == TC_ULONG)
+ *(ULONG*)pArg1 = *(float*)pArg2;
+ else if (tc1 == TC_SBYTE)
+ *(SBYTE*)pArg1 = *(float*)pArg2;
+ else if (tc1 == TC_UBYTE)
+ *(UBYTE*)pArg1 = *(float*)pArg2;
+ else if (tc1 == TC_UWORD)
+ *(UWORD*)pArg1 = *(float*)pArg2;
+ else
+ *(SWORD*)pArg1 = *(float*)pArg2;
+ Status= NO_ERR;
+ }
+ //!!! Optimized move for arrays of ints and floats.
+ else if ((tc1 == TC_ARRAY) && (tc2 == TC_ARRAY) &&
+ (((TOC1Ptr+1)->TypeCode <= TC_LAST_INT_SCALAR && ElemSize1 == ElemSize2) ||
+ ((TOC1Ptr+1)->TypeCode == TC_FLOAT && (TOC2Ptr+1)->TypeCode == TC_FLOAT)))
{
ULONG Count;
moveArrInt++;
@@ -5669,6 +6293,23 @@ NXT_STATUS cCmdInterpShortRelease(CODE_WORD * const pCode)
}
+ULONG cCmdGetPortFromValue(ULONG val, ULONG i)
+{
+ ULONG result = NO_OF_OUTPUTS; // invalid NO-OP output
+ if (val < NO_OF_OUTPUTS)
+ result = val;
+ else
+ {
+ if (val <= RC_OUT_ABC)
+ {
+ result = i;
+ if ((val == RC_OUT_BC) || (val == RC_OUT_AC && i))
+ result++;
+ }
+ }
+ return result;
+}
+
//OP_SETOUT gets it's own interpreter function because it is relatively complex
// (called from cCmdInterpOther())
//This also serves as a convenient breakpoint stop for investigating output module behavior
@@ -5680,7 +6321,7 @@ NXT_STATUS cCmdExecuteSetOut(CODE_WORD * const pCode)
*pPort = NULL;
DS_ELEMENT_ID PortArg;
UWORD PortCount, InstrSize;
- ULONG Port, FieldTableIndex, i, j;
+ ULONG Port, FieldTableIndex, i, j, val = 0;
DV_INDEX DVIndex;
//Arg1 = InstrSize
@@ -5702,7 +6343,17 @@ NXT_STATUS cCmdExecuteSetOut(CODE_WORD * const pCode)
PortCount = cCmdArrayCount(PortArg, 0);
}
else
- PortCount = 1;
+ {
+ // arg may refer to multiple ports
+ // (0, 1, 2 are single ports;
+ val = cCmdGetScalarValFromDataArg(PortArg, 0);
+ if (val < NO_OF_OUTPUTS)
+ PortCount = 1;
+ else if (val < RC_OUT_ABC)
+ PortCount = 2;
+ else
+ PortCount = 3;
+ }
//For each port, process all the tuples
for (i = 0; i < PortCount; i++)
@@ -5714,7 +6365,7 @@ NXT_STATUS cCmdExecuteSetOut(CODE_WORD * const pCode)
}
else
{
- Port = cCmdGetScalarValFromDataArg(PortArg, 0);
+ Port = cCmdGetPortFromValue(val, i);
}
//If user specified a valid port, process the tuples. Else, this port is a no-op
@@ -5743,6 +6394,174 @@ NXT_STATUS cCmdExecuteSetOut(CODE_WORD * const pCode)
}
+void shell_sort_u1(UBYTE* A, UWORD size)
+{
+ UWORD i, j, increment;
+ UBYTE temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_s1(SBYTE* A, UWORD size)
+{
+ UWORD i, j, increment;
+ SBYTE temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_u2(UWORD* A, UWORD size)
+{
+ UWORD i, j, increment;
+ UWORD temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_s2(SWORD* A, UWORD size)
+{
+ UWORD i, j, increment;
+ SWORD temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_u4(ULONG* A, UWORD size)
+{
+ UWORD i, j, increment;
+ ULONG temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_s4(SLONG* A, UWORD size)
+{
+ UWORD i, j, increment;
+ SLONG temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
+void shell_sort_flt(float* A, UWORD size)
+{
+ UWORD i, j, increment;
+ float temp;
+ increment = size / 2;
+
+ while (increment > 0) {
+ for (i = increment; i < size; i++) {
+ j = i;
+ temp = A[i];
+ while ((j >= increment) && (A[j-increment] > temp)) {
+ A[j] = A[j - increment];
+ j = j - increment;
+ }
+ A[j] = temp;
+ }
+
+ if (increment == 2)
+ increment = 1;
+ else
+ increment = (UWORD)((float)increment / (float)2.2);
+ }
+}
+
NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
{
NXT_STATUS Status = NO_ERR;
@@ -5783,6 +6602,7 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
//Arg2 - Src
//Arg3 - Index
//Arg4 - New val / array of vals
+ UWORD SrcDims, NewValDims;
Arg1 = pCode[1];
Arg2 = pCode[2];
@@ -5796,7 +6616,8 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
//!!! Could avoid full data copy if we knew which portion to overwrite
if (Arg1 != Arg2)
{
- Status= cCmdMove(Arg1, Arg2);
+// Status= cCmdMove(Arg1, Arg2);
+ Status = cCmdInterpPolyUnop2(OP_MOV, Arg1, 0, Arg2, 0);
if (IS_ERR(Status))
return Status;
}
@@ -5820,13 +6641,17 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
if (ArgVal3 >= ArrayCount1)
return (NO_ERR);
- if (cCmdDSType(Arg4) != TC_ARRAY)
+ SrcDims = cCmdArrayDimensions(Arg2);
+ NewValDims = cCmdArrayDimensions(Arg4);
+ // if the new value argument has an array dimension that is 1 less than
+ // the array dimension of the source array then use MOV to copy data
+ if (NewValDims == (SrcDims-1))
{
Status = cCmdInterpPolyUnop2(OP_MOV, INC_ID(Arg1), ARRAY_ELEM_OFFSET(DVIndex1, ArgVal3), Arg4, 0);
if (IS_ERR(Status))
return Status;
}
- else
+ else if (NewValDims == SrcDims)
{
DVIndex4 = cCmdGetDVIndex(Arg4, 0);
@@ -5843,6 +6668,12 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
return Status;
}
}
+ else
+ {
+ // any other situation is unsupported
+ NXT_BREAK;
+ return 0;
+ }
}
break;
@@ -6205,6 +7036,7 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
case OP_STRINGTONUM:
{
+ ULONG ArgVal1;
float ArgValF;
SLONG decimals= 0;
UBYTE cont= TRUE;
@@ -6214,10 +7046,6 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
// Arg4 - Offset
// Arg5 - Default (type/value)
- //!!! Currently, both outputs must have valid destinations.
- // It would be trivial to handle NOT_A_DS_ID to avoid dummy
- // allocations when outputs are unused.
-
Arg1 = pCode[1];
Arg2 = pCode[2];
Arg3 = pCode[3];
@@ -6243,39 +7071,355 @@ NXT_STATUS cCmdInterpOther(CODE_WORD * const pCode)
}
//Read number from string
- if (sscanf(((PSZ)pArg3 + ArgVal4), "%f", &ArgValF) == 1)
+ // scan either to integer or float, depending on TypeCode1
+ int scanResult;
+ if (TypeCode1 == TC_FLOAT)
+ scanResult = sscanf(((PSZ)pArg3 + ArgVal4), "%f", &ArgValF);
+ else
+ scanResult = sscanf(((PSZ)pArg3 + ArgVal4), "%d", &ArgVal1);
+ // check the result
+ if (scanResult == 1)
{
- i = (UWORD)ArgVal4;
- //Scan until we see the number, consumes negative sign too
- while ((((UBYTE *)pArg3)[i] < '0') || (((UBYTE *)pArg3)[i] > '9'))
- i++;
-
- //Scan until we get past the number and no more than one decimal
- while (cont) {
- if ((((UBYTE *)pArg3)[i] >= '0') && (((UBYTE *)pArg3)[i] <= '9'))
- i++;
- else if(((UBYTE *)pArg3)[i] == '.' && !decimals) {
+ if (Arg2 != NOT_A_DS_ID)
+ {
+ i = (UWORD)ArgVal4;
+ //Scan until we see the number, consumes negative sign too
+ while ((((UBYTE *)pArg3)[i] < '0') || (((UBYTE *)pArg3)[i] > '9'))
i++;
- decimals++;
+
+ if (TypeCode1 == TC_FLOAT)
+ {
+ //Scan until we get past the number and no more than one decimal
+ while (cont) {
+ if ((((UBYTE *)pArg3)[i] >= '0') && (((UBYTE *)pArg3)[i] <= '9'))
+ i++;
+ else if(((UBYTE *)pArg3)[i] == '.' && !decimals) {
+ i++;
+ decimals++;
+ }
+ else
+ cont= FALSE;
}
- else
- cont= FALSE;
+ }
+ else {
+ //Scan until we get past the number
+ while ((((UBYTE *)pArg3)[i] >= '0') && (((UBYTE *)pArg3)[i] <= '9'))
+ i++;
+ }
+ ArgVal2 = i;
}
- ArgVal2 = i;
}
else
{
//Number wasn't found in string, use defaults
ArgValF = ArgVal5;
+ ArgVal1 = ArgVal5;
ArgVal2 = 0;
}
//Set outputs
- cCmdSetValFlt(pArg1, TypeCode1, ArgValF);
- cCmdSetScalarValFromDataArg(Arg2, ArgVal2);
+ if (TypeCode1 == TC_FLOAT)
+ cCmdSetValFlt(pArg1, TypeCode1, ArgValF);
+ else
+ cCmdSetVal(pArg1, TypeCode1, ArgVal1);
+ if (Arg2 != NOT_A_DS_ID)
+ cCmdSetScalarValFromDataArg(Arg2, ArgVal2);
}
break;
+ case OP_ARROP:
+ {
+ //Arg1 - Command (immediate constant)
+ //Arg2 - Dst (scalar|array)
+ //Arg3 - Src (scalar array)
+ //Arg4 - Index
+ //Arg5 - Length
+
+ Arg1 = pCode[1];
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
+ Arg4 = pCode[4];
+ Arg5 = pCode[5];
+
+ // array operation
+ if (Arg1 == OPARR_SORT) {
+ // source must be an array of non-aggregate type
+ NXT_ASSERT(cCmdDSType(Arg2) == TC_ARRAY);
+ TypeCode2 = cCmdDSType(INC_ID(Arg2));
+ NXT_ASSERT(!IS_AGGREGATE_TYPE(TypeCode2));
+ }
+ else {
+ // destination must be a non-aggregate type
+ NXT_ASSERT(!IS_AGGREGATE_TYPE(cCmdDSType(Arg2)));
+ }
+ // source must be an array of non-aggregate type
+ NXT_ASSERT(cCmdDSType(Arg3) == TC_ARRAY);
+ TypeCode3 = cCmdDSType(INC_ID(Arg3));
+ NXT_ASSERT(!IS_AGGREGATE_TYPE(TypeCode3));
+
+ ArrayCount3 = cCmdArrayCount(Arg3, 0);
+
+ if (Arg4 != NOT_A_DS_ID)
+ ArgVal4 = cCmdGetScalarValFromDataArg(Arg4, 0);
+ else //Index input unwired
+ ArgVal4 = 0;
+
+ if (Arg5 != NOT_A_DS_ID)
+ ArgVal5 = cCmdGetScalarValFromDataArg(Arg5, 0);
+ else //Length input unwired, set to "rest"
+ ArgVal5 = 0xFFFF;
+
+ //Bounds check
+ if (ArgVal4 > ArrayCount3)
+ {
+ if (Arg1 == OPARR_SORT) {
+ //Illegal range - return empty subset
+ Status = cCmdDSArrayAlloc(Arg2, 0, 0);
+ return Status;
+ }
+ else {
+ //Illegal range - return zero
+ pArg2 = cCmdResolveDataArg(Arg2, 0, &TypeCode2);
+ cCmdSetVal(pArg2, TypeCode2, 0);
+ return NO_ERR;
+ }
+ }
+
+ //Set MinCount to "rest"
+ MinCount = (UWORD)(ArrayCount3 - ArgVal4);
+
+ // Copy "Length" if it is less than "rest"
+ if (ArgVal5 < (ULONG)MinCount)
+ MinCount = (UWORD)ArgVal5;
+
+ DV_INDEX DVIndex3 = cCmdGetDVIndex(Arg3, 0);
+
+ SLONG sval, svaltmp;
+ ULONG uval, uvaltmp;
+ float numElements = (float)MinCount;
+ //sum elements from src subset to dst
+ if ((Arg1 == OPARR_SUM) || (Arg1 == OPARR_MEAN) ||
+ (Arg1 == OPARR_SUMSQR) || (Arg1 == OPARR_STD))
+ {
+ pArg2 = cCmdResolveDataArg(Arg2, 0, &TypeCode2);
+ if (IS_SIGNED_TYPE(TypeCode3) && (Arg1 != OPARR_SUMSQR))
+ {
+ sval = 0;
+ for (i = 0; i < MinCount; i++)
+ {
+ pArg3 = cCmdResolveDataArg(INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i), NULL);
+ svaltmp = (SLONG)cCmdGetVal(pArg3, TypeCode3);
+ sval += svaltmp;
+ }
+ if (Arg1 == OPARR_MEAN)
+ cCmdSetVal(pArg2, TypeCode2, (SLONG)(float)sval/numElements);
+ else if (Arg1 != OPARR_STD)
+ cCmdSetVal(pArg2, TypeCode2, sval);
+ }
+ else
+ {
+ uval = 0;
+ for (i = 0; i < MinCount; i++)
+ {
+ pArg3 = cCmdResolveDataArg(INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i), NULL);
+ if (IS_SIGNED_TYPE(TypeCode3))
+ {
+ // this can only be the SUMSQR operation (given the IF statement above)
+ svaltmp = cCmdGetVal(pArg3, TypeCode3);
+ uvaltmp = (ULONG)abs(svaltmp) * (ULONG)abs(svaltmp);
+ uval += uvaltmp;
+ }
+ else {
+ uvaltmp = cCmdGetVal(pArg3, TypeCode3);
+ if (Arg1 == OPARR_SUMSQR)
+ uvaltmp *= uvaltmp;
+ uval += uvaltmp;
+ }
+ }
+ if (Arg1 == OPARR_MEAN)
+ cCmdSetVal(pArg2, TypeCode2, (ULONG)(float)uval/numElements);
+ else if (Arg1 != OPARR_STD)
+ cCmdSetVal(pArg2, TypeCode2, uval);
+ }
+ // calculate standard deviation
+ if (Arg1 == OPARR_STD) {
+ float avg, delta, sumSqr;
+ if (IS_SIGNED_TYPE(TypeCode3))
+ avg = (float)sval/numElements;
+ else
+ avg = (float)uval/numElements;
+ sumSqr = 0;
+ for (i = 0; i < MinCount; i++)
+ {
+ pArg3 = cCmdResolveDataArg(INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i), NULL);
+ if (IS_SIGNED_TYPE(TypeCode3))
+ delta = (float)(SLONG)cCmdGetVal(pArg3, TypeCode3) - avg;
+ else
+ delta = (float)cCmdGetVal(pArg3, TypeCode3) - avg;
+ sumSqr += (delta*delta);
+ }
+ delta = sqrtf(sumSqr / (numElements - (float)1.0));
+ if (IS_SIGNED_TYPE(TypeCode3))
+ cCmdSetVal(pArg2, TypeCode2, (SLONG)delta);
+ else
+ cCmdSetVal(pArg2, TypeCode2, (ULONG)delta);
+ }
+ }
+ else if ((Arg1 == OPARR_MIN) || (Arg1 == OPARR_MAX))
+ {
+ pArg2 = cCmdResolveDataArg(Arg2, 0, &TypeCode2);
+ if (IS_SIGNED_TYPE(TypeCode3))
+ {
+ if (Arg1 == OPARR_MIN)
+ sval = LONG_MAX;
+ else
+ sval = LONG_MIN;
+ for (i = 0; i < MinCount; i++)
+ {
+ pArg3 = cCmdResolveDataArg(INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i), NULL);
+ svaltmp = (SLONG)cCmdGetVal(pArg3, TypeCode3);
+ if (((Arg1 == OPARR_MIN) && (svaltmp < sval)) ||
+ ((Arg1 == OPARR_MAX) && (svaltmp > sval)))
+ sval = svaltmp;
+ }
+ cCmdSetVal(pArg2, TypeCode2, sval);
+ }
+ else
+ {
+ if (Arg1 == OPARR_MIN)
+ uval = ULONG_MAX;
+ else
+ uval = 0;
+ for (i = 0; i < MinCount; i++)
+ {
+ pArg3 = cCmdResolveDataArg(INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i), NULL);
+ uvaltmp = cCmdGetVal(pArg3, TypeCode3);
+ if (((Arg1 == OPARR_MIN) && (uvaltmp < uval)) ||
+ ((Arg1 == OPARR_MAX) && (uvaltmp > uval)))
+ uval = uvaltmp;
+ }
+ cCmdSetVal(pArg2, TypeCode2, uval);
+ }
+ }
+ else if (Arg1 == OPARR_SORT)
+ {
+ //Allocate Dst array
+ Status = cCmdDSArrayAlloc(Arg2, 0, MinCount);
+ if (IS_ERR(Status))
+ return Status;
+
+ DVIndex2 = cCmdGetDVIndex(Arg2, 0);
+
+ //Move src subset to dst
+ for (i = 0; i < MinCount; i++)
+ {
+ Status = cCmdInterpPolyUnop2(OP_MOV, INC_ID(Arg2), ARRAY_ELEM_OFFSET(DVIndex2, i), INC_ID(Arg3), ARRAY_ELEM_OFFSET(DVIndex3, ArgVal4 + i));
+ if (IS_ERR(Status))
+ return Status;
+ }
+ // now dst is ready to be sorted
+ pArg2 = cCmdResolveDataArg(Arg2, 0, NULL);
+ Size = cCmdSizeOf(TypeCode2);
+ if (TypeCode2 == TC_SBYTE)
+ shell_sort_s1(pArg2, MinCount);
+ else if (TypeCode2 == TC_SWORD)
+ shell_sort_s2(pArg2, MinCount);
+ else if (TypeCode2 == TC_SLONG)
+ shell_sort_s4(pArg2, MinCount);
+ else if (TypeCode2 == TC_UBYTE)
+ shell_sort_u1(pArg2, MinCount);
+ else if (TypeCode2 == TC_UWORD)
+ shell_sort_u2(pArg2, MinCount);
+ else if (TypeCode2 == TC_ULONG)
+ shell_sort_u4(pArg2, MinCount);
+ else if (TypeCode2 == TC_FLOAT)
+ shell_sort_flt(pArg2, MinCount);
+ }
+ else
+ {
+ //Fatal error: Unrecognized instruction
+ NXT_BREAK;
+ Status = ERR_INSTR;
+ }
+ }
+ break;
+
+ case OP_MULDIV:
+ {
+ //Arg1 - Dst (scalar)
+ //Arg2 - SrcA (scalar)
+ //Arg3 - SrcB (scalar)
+ //Arg4 - SrcC (scalar)
+
+ Arg1 = pCode[1];
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
+ Arg4 = pCode[4];
+ ArgVal2 = cCmdGetScalarValFromDataArg(Arg2, 0);
+ ArgVal3 = cCmdGetScalarValFromDataArg(Arg3, 0);
+ ArgVal4 = cCmdGetScalarValFromDataArg(Arg4, 0);
+ ArgVal3 = (ULONG)(((long long)ArgVal2*(long long)ArgVal3)/(long long)ArgVal4);
+ pArg1 = cCmdResolveDataArg(Arg1, 0, &TypeCode1);
+ cCmdSetVal(pArg1, TypeCode1, ArgVal3);
+ }
+ break;
+
+/*
+ case OP_PRINTF:
+ {
+ // Arg1 - Instruction Size in bytes
+ // Arg2 - Dst
+ // Arg3 - Fmtstr
+ // Arg4-N - Srcs (max args = 8)
+ void *srcPtrs[8] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+ void *pArg2 = NULL, *pArg3 = NULL;
+
+ Arg2 = pCode[2];
+ Arg3 = pCode[3];
+
+ //Make sure Dst arg is a string
+ NXT_ASSERT(cCmdDSType(Arg2) == TC_ARRAY);
+ NXT_ASSERT(cCmdDSType(INC_ID(Arg2)) == TC_UBYTE);
+
+ //Make sure Fmtstr arg is a string
+ NXT_ASSERT(cCmdDSType(Arg3) == TC_ARRAY);
+ NXT_ASSERT(cCmdDSType(INC_ID(Arg3)) == TC_UBYTE);
+
+ //Number of Srcs = total code words - 4 (account for opcode word, size, Dst, and Fmtstr)
+ //!!! Argument access like this is potentially unsafe.
+ //A function/macro which checks proper encoding would be better
+ SrcCount = (pCode[1] / 2) - 4;
+ if (SrcCount > 8) {
+ Status = ERR_INSTR;
+ return (Status);
+ }
+
+ // get pointers to Dst and FmtSt
+ pArg2 = cCmdResolveDataArg(Arg2, 0, &TypeCode2);
+ pArg3 = cCmdResolveDataArg(Arg3, 0, &TypeCode3);
+
+ // resolve src pointers for all our sources
+ for (i = 0; i < SrcCount; i++)
+ {
+ TmpDSID = pCode[4 + i];
+ TYPE_CODE tc = cCmdDSType(TmpDSID);
+ if ((tc == TC_ARRAY && cCmdDSType(INC_ID(TmpDSID)) != TC_UBYTE) ||
+ (tc == TC_VOID) || (tc > TC_LAST_INT_SCALAR && tc != TC_FLOAT))
+ {
+ // invalid source (only scalars, floats, and strings are supported)
+ Status = ERR_INSTR;
+ return (Status);
+ }
+ srcPtrs[i] = cCmdResolveDataArg(TmpDSID, 0, &TypeCode1);
+ }
+
+ //Calculate Dst array count
+ ArrayCount2 = sprintf(NULL, pArg3, srcPtrs[0], srcPtrs[1], srcPtrs[2],
+ srcPtrs[3], srcPtrs[4], srcPtrs[5],
+ srcPtrs[6], srcPtrs[7], srcPtrs[8]);
+ }
+ break;
+*/
default:
{
//Fatal error: Unrecognized instruction
@@ -6316,10 +7460,12 @@ NXT_STATUS cCmdLSCheckStatus(UBYTE Port)
return (ERR_COMM_CHAN_INVALID);
}
+ INPUTSTRUCT * pInput = &(pMapInput->Inputs[Port]);
+
//If port is not configured properly ahead of time, report that error
//!!! This seems like the right policy, but may restrict otherwise valid read operations...
- if (!(pMapInput->Inputs[Port].SensorType == LOWSPEED_9V || pMapInput->Inputs[Port].SensorType == LOWSPEED)
- || !(pMapInput->Inputs[Port].InvalidData == FALSE))
+ if (!(pInput->SensorType == LOWSPEED_9V || pInput->SensorType == LOWSPEED)
+ || !(pInput->InvalidData == FALSE))
{
return (ERR_COMM_CHAN_NOT_READY);
}
@@ -6336,20 +7482,26 @@ UBYTE cCmdLSCalcBytesReady(UBYTE Port)
//Expect callers to validate Port, but short circuit here to be safe.
if (Port >= NO_OF_LOWSPEED_COM_CHANNEL)
return 0;
+
+ LSBUF * pInBuf = &(pMapLowSpeed->InBuf[Port]);
//Normally, bytes available is a simple difference.
- Tmp = pMapLowSpeed->InBuf[Port].InPtr - pMapLowSpeed->InBuf[Port].OutPtr;
+ Tmp = pInBuf->InPtr - pInBuf->OutPtr;
//If InPtr is actually behind OutPtr, circular buffer has wrapped. Account for wrappage...
if (Tmp < 0)
- Tmp = (pMapLowSpeed->InBuf[Port].InPtr + (SIZE_OF_LSBUF - pMapLowSpeed->InBuf[Port].OutPtr));
+ Tmp = (pInBuf->InPtr + (SIZE_OF_LSBUF - pInBuf->OutPtr));
+ else if ((Tmp == 0) &&
+ (pInBuf->BytesToRx == SIZE_OF_LSBUF) &&
+ (pMapLowSpeed->ChannelState[Port] == LOWSPEED_IDLE))
+ Tmp = SIZE_OF_LSBUF;
return (UBYTE)(Tmp);
}
//cCmdLSWrite
//Write BufLength bytes into specified port's lowspeed buffer and kick off comm process to device
-NXT_STATUS cCmdLSWrite(UBYTE Port, UBYTE BufLength, UBYTE *pBuf, UBYTE ResponseLength)
+NXT_STATUS cCmdLSWrite(UBYTE Port, UBYTE BufLength, UBYTE *pBuf, UBYTE ResponseLength, UBYTE NoRestartOnRead)
{
if (Port >= NO_OF_LOWSPEED_COM_CHANNEL)
{
@@ -6361,21 +7513,29 @@ NXT_STATUS cCmdLSWrite(UBYTE Port, UBYTE BufLength, UBYTE *pBuf, UBYTE ResponseL
return (ERR_INVALID_SIZE);
}
+ INPUTSTRUCT * pInput = &(pMapInput->Inputs[Port]);
+ UBYTE * pChState = &(pMapLowSpeed->ChannelState[Port]);
+ LSBUF * pOutBuf = &(pMapLowSpeed->OutBuf[Port]);
+
//Only start writing process if port is properly configured and c_lowspeed module is ready
- if ((pMapInput->Inputs[Port].SensorType == LOWSPEED_9V || pMapInput->Inputs[Port].SensorType == LOWSPEED)
- && (pMapInput->Inputs[Port].InvalidData == FALSE)
- && (pMapLowSpeed->ChannelState[Port] == LOWSPEED_IDLE) || (pMapLowSpeed->ChannelState[Port] == LOWSPEED_ERROR))
+ if ((pInput->SensorType == LOWSPEED_9V || pInput->SensorType == LOWSPEED)
+ && (pInput->InvalidData == FALSE)
+ && (LOWSPEED_IDLE == *pChState) || (LOWSPEED_ERROR == *pChState))
{
- pMapLowSpeed->OutBuf[Port].InPtr = 0;
- pMapLowSpeed->OutBuf[Port].OutPtr = 0;
+ pOutBuf->InPtr = 0;
+ pOutBuf->OutPtr = 0;
- memcpy(pMapLowSpeed->OutBuf[Port].Buf, pBuf, BufLength);
- pMapLowSpeed->OutBuf[Port].InPtr = (UBYTE)BufLength;
+ memcpy(pOutBuf->Buf, pBuf, BufLength);
+ pOutBuf->InPtr = (UBYTE)BufLength;
pMapLowSpeed->InBuf[Port].BytesToRx = ResponseLength;
- pMapLowSpeed->ChannelState[Port] = LOWSPEED_INIT;
+ *pChState = LOWSPEED_INIT;
pMapLowSpeed->State |= (COM_CHANNEL_ONE_ACTIVE << Port);
+ if (NoRestartOnRead)
+ pMapLowSpeed->NoRestartOnRead |= (0x01 << Port);
+ else
+ pMapLowSpeed->NoRestartOnRead &= ~(0x01 << Port);
return (NO_ERR);
}
@@ -6412,18 +7572,21 @@ NXT_STATUS cCmdLSRead(UBYTE Port, UBYTE BufLength, UBYTE * pBuf)
BytesToRead = BufLength;
+ LSBUF * pInBuf = &(pMapLowSpeed->InBuf[Port]);
+
//If the bytes we want to read wrap around the end, we must first read the end, then reset back to the beginning
- if (pMapLowSpeed->InBuf[Port].OutPtr + BytesToRead >= SIZE_OF_LSBUF)
+ if (pInBuf->OutPtr + BytesToRead >= SIZE_OF_LSBUF)
{
- BytesToRead = SIZE_OF_LSBUF - pMapLowSpeed->InBuf[Port].OutPtr;
- memcpy(pBuf, pMapLowSpeed->InBuf[Port].Buf + pMapLowSpeed->InBuf[Port].OutPtr, BytesToRead);
- pMapLowSpeed->InBuf[Port].OutPtr = 0;
+ BytesToRead = SIZE_OF_LSBUF - pInBuf->OutPtr;
+ memcpy(pBuf, pInBuf->Buf + pInBuf->OutPtr, BytesToRead);
+ pInBuf->OutPtr = 0;
pBuf += BytesToRead;
BytesToRead = BufLength - BytesToRead;
}
-
- memcpy(pBuf, pMapLowSpeed->InBuf[Port].Buf + pMapLowSpeed->InBuf[Port].OutPtr, BytesToRead);
- pMapLowSpeed->InBuf[Port].OutPtr += BytesToRead;
+ if (BytesToRead > 0) {
+ memcpy(pBuf, pInBuf->Buf + pInBuf->OutPtr, BytesToRead);
+ pInBuf->OutPtr += BytesToRead;
+ }
return (NO_ERR);
}
@@ -6433,13 +7596,7 @@ NXT_STATUS cCmdLSRead(UBYTE Port, UBYTE BufLength, UBYTE * pBuf)
//Wrappers for OP_SYSCALL
//
-//
-//cCmdWrapFileOpenRead
-//ArgV[0]: (Function return) Loader status, U16 return
-//ArgV[1]: File Handle, U8 return
-//ArgV[2]: Filename, CStr
-//ArgV[3]: Length, U32 return
-NXT_STATUS cCmdWrapFileOpenRead(UBYTE * ArgV[])
+NXT_STATUS cCmdWrapFileOpenReadHelper(UBYTE Cmd, UBYTE * ArgV[])
{
LOADER_STATUS LStatus;
DV_INDEX DVIndex;
@@ -6448,7 +7605,7 @@ NXT_STATUS cCmdWrapFileOpenRead(UBYTE * ArgV[])
DVIndex = *(DV_INDEX *)(ArgV[2]);
ArgV[2] = cCmdDVPtr(DVIndex);
- LStatus = pMapLoader->pFunc(OPENREAD, ArgV[2], NULL, (ULONG *)ArgV[3]);
+ LStatus = pMapLoader->pFunc(Cmd, ArgV[2], NULL, (ULONG *)ArgV[3]);
//Add entry into FileHandleTable
if (LOADER_ERR(LStatus) == SUCCESS)
@@ -6465,12 +7622,7 @@ NXT_STATUS cCmdWrapFileOpenRead(UBYTE * ArgV[])
return NO_ERR;
}
-//cCmdWrapFileOpenWrite
-//ArgV[0]: (Function return) Loader status, U16 return
-//ArgV[1]: File Handle, U8 return
-//ArgV[2]: Filename, CStr
-//ArgV[3]: Length, U32 return
-NXT_STATUS cCmdWrapFileOpenWrite(UBYTE * ArgV[])
+NXT_STATUS cCmdWrapFileOpenWriteHelper(UBYTE Cmd, UBYTE * ArgV[])
{
LOADER_STATUS LStatus;
DV_INDEX DVIndex;
@@ -6479,7 +7631,7 @@ NXT_STATUS cCmdWrapFileOpenWrite(UBYTE * ArgV[])
DVIndex = *(DV_INDEX *)(ArgV[2]);
ArgV[2] = cCmdDVPtr(DVIndex);
- LStatus = pMapLoader->pFunc(OPENWRITEDATA, ArgV[2], NULL, (ULONG *)ArgV[3]);
+ LStatus = pMapLoader->pFunc(Cmd, ArgV[2], NULL, (ULONG *)ArgV[3]);
//Add entry into FileHandleTable
if (LOADER_ERR(LStatus) == SUCCESS)
@@ -6496,6 +7648,27 @@ NXT_STATUS cCmdWrapFileOpenWrite(UBYTE * ArgV[])
return NO_ERR;
}
+//
+//cCmdWrapFileOpenRead
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 return
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Length, U32 return
+NXT_STATUS cCmdWrapFileOpenRead(UBYTE * ArgV[])
+{
+ return cCmdWrapFileOpenReadHelper(OPENREAD, ArgV);
+}
+
+//cCmdWrapFileOpenWrite
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 return
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Length, U32 return
+NXT_STATUS cCmdWrapFileOpenWrite(UBYTE * ArgV[])
+{
+ return cCmdWrapFileOpenWriteHelper(OPENWRITEDATA, ArgV);
+}
+
//cCmdWrapFileOpenAppend
//ArgV[0]: (Function return) Loader status, U16 return
//ArgV[1]: File Handle, U8 return
@@ -6503,28 +7676,7 @@ NXT_STATUS cCmdWrapFileOpenWrite(UBYTE * ArgV[])
//ArgV[3]: Length Remaining, U32 return
NXT_STATUS cCmdWrapFileOpenAppend(UBYTE * ArgV[])
{
- LOADER_STATUS LStatus;
- DV_INDEX DVIndex;
-
- //Resolve array argument
- DVIndex = *(DV_INDEX *)(ArgV[2]);
- ArgV[2] = cCmdDVPtr(DVIndex);
-
- LStatus = pMapLoader->pFunc(OPENAPPENDDATA, ArgV[2], NULL, (ULONG *)ArgV[3]);
-
- //Add entry into FileHandleTable
- if (LOADER_ERR(LStatus) == SUCCESS)
- {
- VarsCmd.FileHandleTable[LOADER_HANDLE(LStatus)][0] = 'w';
- strcpy((PSZ)(VarsCmd.FileHandleTable[LOADER_HANDLE(LStatus)] + 1), (PSZ)(ArgV[2]));
- }
-
- //Status code in high byte of LStatus
- *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
- //File handle in low byte of LStatus
- *(ArgV[1]) = LOADER_HANDLE(LStatus);
-
- return NO_ERR;
+ return cCmdWrapFileOpenWriteHelper(OPENAPPENDDATA, ArgV);
}
//cCmdWrapFileRead
@@ -6860,7 +8012,7 @@ NXT_STATUS cCmdWrapCommLSWrite(UBYTE * ArgV[])
pBuf = cCmdDVPtr(DVIndex);
BufLength = DV_ARRAY[DVIndex].Count;
- *pReturnVal = cCmdLSWrite(Port, (UBYTE)BufLength, pBuf, ResponseLength);
+ *pReturnVal = cCmdLSWrite(Port, (UBYTE)BufLength, pBuf, ResponseLength, 0);
return (NO_ERR);
}
@@ -7266,7 +8418,7 @@ NXT_STATUS cCmdWrapKeepAlive(UBYTE * ArgV[])
-#define MAX_IOM_BUFFER_SIZE 64
+#define MAX_IOM_BUFFER_SIZE 800
//
//cCmdWrapIOMapRead
//ArgV[0]: (return) Status byte, SBYTE
@@ -7477,7 +8629,6 @@ void cCmdWriteBenchmarkFile()
}
#endif
-
/////////////////////////////////////////////////////////////
// Dymanic syscall implementations
////////////////////////////////////////////////////////////
@@ -7541,104 +8692,16 @@ NXT_STATUS cCmdWrapSetSleepTimeout(UBYTE * ArgV[])
return (NO_ERR);
}
-// currently copied from LS, not finished.
-//
-//cCmdWrapCommHSWrite
-//ArgV[0]: (return) Status code, SBYTE
-//ArgV[1]: Port specifier, UBYTE
-//ArgV[2]: Buffer to send, UBYTE array, only SIZE_OF_LSBUF bytes will be used
-//ArgV[3]: ResponseLength, UBYTE, specifies expected bytes back from slave device
-//
-NXT_STATUS cCmdWrapCommHSWrite(UBYTE * ArgV[])
-{
- SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
- UBYTE Port = *(ArgV[1]);
- UBYTE * pBuf;
- UWORD BufLength;
- UBYTE ResponseLength = *(ArgV[3]);
- DV_INDEX DVIndex;
-
- //Resolve array arguments
- DVIndex = *(DV_INDEX *)(ArgV[2]);
- pBuf = cCmdDVPtr(DVIndex);
- BufLength = DV_ARRAY[DVIndex].Count;
-
- *pReturnVal = cCmdLSWrite(Port, (UBYTE)BufLength, pBuf, ResponseLength);
-
- return (NO_ERR);
-}
-
-//
-//cCmdWrapCommHSCheckStatus
-//ArgV[0]: (return) Status code, SBYTE
-//ArgV[1]: Port specifier, UBYTE
-//ArgV[2]: BytesReady, UBYTE
-//
-NXT_STATUS cCmdWrapCommHSCheckStatus(UBYTE * ArgV[])
-{
- UBYTE Port = *(ArgV[1]);
-
- *((SBYTE*)(ArgV[0])) = cCmdLSCheckStatus(Port);
- *((UBYTE*)(ArgV[2])) = cCmdLSCalcBytesReady(Port);
-
- return (NO_ERR);
-}
-
-//
-//cCmdWrapCommHSRead
-//ArgV[0]: (return) Status code, SBYTE
-//ArgV[1]: Port specifier, UBYTE
-//ArgV[2]: Buffer for data, UBYTE array, max SIZE_OF_LSBUF bytes will be written
-//ArgV[3]: BufferLength, UBYTE, specifies size of buffer requested
-//
-NXT_STATUS cCmdWrapCommHSRead(UBYTE * ArgV[])
-{
- SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
- UBYTE Port = *(ArgV[1]);
- UBYTE * pBuf;
- UBYTE BufLength = *(ArgV[3]);
- UBYTE BytesToRead;
- DV_INDEX DVIndex = *(DV_INDEX *)(ArgV[2]);
- NXT_STATUS AllocStatus;
-
- *pReturnVal = cCmdLSCheckStatus(Port);
- BytesToRead = cCmdLSCalcBytesReady(Port);
-
- //If channel is OK and has data ready for us, put the data into outgoing buffer
- if (!IS_ERR(*pReturnVal) && BytesToRead > 0)
- {
- //Limit buffer to available data
- if (BufLength > BytesToRead)
- BufLength = BytesToRead;
-
- AllocStatus = cCmdDVArrayAlloc(DVIndex, BufLength);
- if (IS_ERR(AllocStatus))
- return (AllocStatus);
-
- pBuf = cCmdDVPtr(DVIndex);
- *pReturnVal = cCmdLSRead(Port, BufLength, pBuf);
- }
- //Else, the channel has an error and/or there's no data to read; clear the output array
- else
- {
- AllocStatus = cCmdDVArrayAlloc(DVIndex, 0);
- if (IS_ERR(AllocStatus))
- return (AllocStatus);
- }
-
- return (NO_ERR);
-}
-
//
//cCmdWrapCommBTOnOff
-//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[0]: (return) Status byte, SBYTE // JCH - this should be UWORD
//ArgV[1]: Power State, 0-1
//
NXT_STATUS cCmdWrapCommBTOnOff(UBYTE * ArgV[])
{
UWORD retVal;
- NXT_STATUS status;
- SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UWORD status;
+ UWORD * pReturnVal = (UWORD*)(ArgV[0]);
UBYTE powerState = *(ArgV[1]);
if(powerState)
@@ -7652,7 +8715,7 @@ NXT_STATUS cCmdWrapCommBTOnOff(UBYTE * ArgV[])
//
//cCmdWrapCommBTConnection
-//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[0]: (return) Status byte, SBYTE // JCH - this should be UWORD
//ArgV[1]: Action, UBYTE
//ArgV[2]: name, UBYTE array CStr
//ArgV[3]: connection slot, UBYTE
@@ -7660,8 +8723,8 @@ NXT_STATUS cCmdWrapCommBTOnOff(UBYTE * ArgV[])
NXT_STATUS cCmdWrapCommBTConnection(UBYTE * ArgV[])
{
UWORD retVal;
- NXT_STATUS status;
- SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UWORD status;
+ UWORD * pReturnVal = (UWORD*)(ArgV[0]);
UBYTE *nmPtr;
UBYTE action = *(ArgV[1]);
@@ -7923,6 +8986,489 @@ NXT_STATUS cCmdWrapListFiles (UBYTE * ArgV[])
return Status;
}
+//
+//cCmdWrapCommExecuteFunction
+//ArgV[0]: (return) Result word, UWORD
+//ArgV[1]: UBYTE Cmd
+//ArgV[2]: UBYTE Param1
+//ArgV[3]: UBYTE Param2
+//ArgV[4]: UBYTE Param3
+//ArgV[5]: Name, UBYTE array
+//ArgV[6]: UWORD RetVal
+//
+NXT_STATUS cCmdWrapCommExecuteFunction(UBYTE * ArgV[])
+{
+ // resolve Name
+ ArgV[5] = cCmdDVPtr(*(DV_INDEX *)(ArgV[5]));
+
+ *(UWORD*)(ArgV[0]) =
+ pMapComm->pFunc(*(UBYTE*)(ArgV[1]),
+ *(UBYTE*)(ArgV[2]),
+ *(UBYTE*)(ArgV[3]),
+ *(UBYTE*)(ArgV[4]),
+ (UBYTE*)(ArgV[5]),
+ (UWORD*)(ArgV[6]));
+ return (NO_ERR);
+}
+
+//
+//cCmdWrapLoaderExecuteFunction
+//ArgV[0]: (return) Result word, UWORD
+//ArgV[1]: UBYTE Cmd
+//ArgV[2]: FileName, UBYTE array
+//ArgV[3]: Buffer, UBYTE array
+//ArgV[4]: ULONG pLength
+//
+NXT_STATUS cCmdWrapLoaderExecuteFunction(UBYTE * ArgV[])
+{
+ // resolve FileName
+ ArgV[2] = cCmdDVPtr(*(DV_INDEX *)(ArgV[2]));
+ // resolve Buffer
+ ArgV[3] = cCmdDVPtr(*(DV_INDEX *)(ArgV[3]));
+
+ *(UWORD*)(ArgV[0]) =
+ pMapLoader->pFunc(*(UBYTE*)(ArgV[1]),
+ (UBYTE*)(ArgV[2]),
+ (UBYTE*)(ArgV[3]),
+ (ULONG*)(ArgV[4]));
+ return (NO_ERR);
+}
+
+//
+//cCmdWrapIOMapReadByID
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: ModuleID, ULONG
+//ArgV[2]: Offset, UWORD
+//ArgV[3]: Count, UWORD
+//ArgV[4]: Buffer, UBYTE array
+//
+NXT_STATUS cCmdWrapIOMapReadByID(UBYTE * ArgV[])
+{
+ UWORD LStatus;
+ NXT_STATUS Status;
+
+ SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UWORD Offset = *(UWORD*)(ArgV[2]);
+ //Our copy of 'Count' must be a ULONG to match the loader interface
+ ULONG Count = *(UWORD*)(ArgV[3]);
+ ULONG ModuleID = *(ULONG*)ArgV[1];
+
+ DV_INDEX DVIndex;
+
+ //Buffer to store data and offset in for IOMAPREAD call
+ //!!! Constant size means only limited reads and writes
+ UBYTE DataBuffer[MAX_IOM_BUFFER_SIZE + 2];
+
+ if (Count > MAX_IOM_BUFFER_SIZE)
+ {
+ //Request to read too much data at once; clear buffer, return error.
+ DVIndex = *(DV_INDEX *)(ArgV[4]);
+ *pReturnVal = cCmdDVArrayAlloc(DVIndex, 0);
+ if (IS_ERR(*pReturnVal))
+ return (*pReturnVal);
+
+ *pReturnVal = ERR_INVALID_SIZE;
+ return (NO_ERR);
+ }
+
+ //Module was found, transfer Offset into first two bytes of DataBuffer and attempt to read
+ *(UWORD*)(DataBuffer) = Offset;
+ LStatus = pMapLoader->pFunc(IOMAPREAD, (UBYTE *)&ModuleID, DataBuffer, &Count);
+
+ if (LOADER_ERR(LStatus) == SUCCESS)
+ {
+ //No error from IOMAPREAD, so copy the data into VM's dataspace
+ //Size destination array
+ DVIndex = *(DV_INDEX *)(ArgV[4]);
+ Status = cCmdDVArrayAlloc(DVIndex, (UWORD)Count);
+ if (IS_ERR(Status))
+ {
+ //Alloc failed, so return
+ return (Status);
+ }
+
+ //Alloc succeeded, so resolve and copy away
+ ArgV[4] = cCmdDVPtr(DVIndex);
+ memcpy(ArgV[4], &(DataBuffer[2]), Count);
+ }
+
+ *pReturnVal = LOADER_ERR_BYTE(LStatus);
+
+ return (NO_ERR);
+}
+
+//
+//cCmdWrapIOMapWriteByID
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: ModuleID, ULONG
+//ArgV[2]: Offset, UWORD
+//ArgV[3]: Buffer, UBYTE array
+//
+NXT_STATUS cCmdWrapIOMapWriteByID(UBYTE * ArgV[])
+{
+ UWORD LStatus;
+
+ SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UWORD Offset = *(UWORD*)(ArgV[2]);
+ ULONG ModuleID = *(ULONG*)ArgV[1];
+
+ //Our copy of 'Count' must be a ULONG to match the loader interface
+ ULONG Count;
+ DV_INDEX DVIndex;
+
+ //Buffer to store data and offset in for IOMAPREAD call
+ //!!! Constant size means only limited reads and writes
+ UBYTE DataBuffer[MAX_IOM_BUFFER_SIZE + 2];
+
+ //Resolve buffer
+ DVIndex = *(DV_INDEX *)(ArgV[3]);
+ ArgV[3] = cCmdDVPtr(DVIndex);
+ Count = DV_ARRAY[DVIndex].Count;
+
+ if (Count > MAX_IOM_BUFFER_SIZE)
+ {
+ //Request to read too much data at once; return error and give up
+ *pReturnVal = ERR_INVALID_SIZE;
+ return (NO_ERR);
+ }
+
+ //Module was found, transfer Offset into first two bytes of DataBuffer, copy data into rest of buffer, then write
+ *(UWORD*)(DataBuffer) = Offset;
+ memcpy(&(DataBuffer[2]), ArgV[3], Count);
+ LStatus = pMapLoader->pFunc(IOMAPWRITE, (UBYTE *)&ModuleID, DataBuffer, &Count);
+
+ *pReturnVal = LOADER_ERR_BYTE(LStatus);
+
+ return (NO_ERR);
+}
+
+/*
+NXT_STATUS cCmdWrapFileFindHelper(UBYTE First, UBYTE * ArgV[])
+{
+ LOADER_STATUS LStatus;
+ NXT_STATUS Status;
+ DV_INDEX DVIndex;
+ UBYTE LoaderCmd = FINDNEXT;
+
+ UBYTE FileMask[FILENAME_LENGTH+1];
+
+ //Resolve array arguments
+ // input mask/output filename
+ DVIndex = *(DV_INDEX *)(ArgV[2]);
+ if (First) {
+ LoaderCmd = FINDFIRST;
+ ArgV[1] = FileMask;
+ memcpy(FileMask, cCmdDVPtr(DVIndex), DV_ARRAY[DVIndex].Count);
+ }
+ //Size Buffer to Length
+ //Add room for null terminator to length
+ Status = cCmdDVArrayAlloc(DVIndex, (UWORD)(FILENAME_LENGTH + 1));
+ if (IS_ERR(Status))
+ return Status;
+ ArgV[2] = cCmdDVPtr(DVIndex);
+
+ LStatus = pMapLoader->pFunc(LoaderCmd, ArgV[1], ArgV[2], (ULONG *)ArgV[3]);
+
+ //Status code in high byte of LStatus
+ *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
+
+ //File handle in low byte of LStatus
+ *(ArgV[1]) = LOADER_HANDLE(LStatus);
+
+ return (NO_ERR);
+}
+*/
+//cCmdWrapFileFindFirst
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 out
+//ArgV[2]: Filename, CStr in/out
+//ArgV[3]: Length, U32 out
+NXT_STATUS cCmdWrapFileFindFirst(UBYTE * ArgV[])
+{
+// return cCmdWrapFileFindHelper(TRUE, ArgV);
+ LOADER_STATUS LStatus;
+ NXT_STATUS Status;
+ DV_INDEX DVIndex;
+
+ UBYTE FileMask[FILENAME_LENGTH+1];
+
+ //Resolve array arguments
+ // input mask/output filename
+ DVIndex = *(DV_INDEX *)(ArgV[2]);
+ memcpy(FileMask, cCmdDVPtr(DVIndex), DV_ARRAY[DVIndex].Count);
+ //Size Buffer to Length
+ //Add room for null terminator to length
+ Status = cCmdDVArrayAlloc(DVIndex, (UWORD)(FILENAME_LENGTH + 1));
+ if (IS_ERR(Status))
+ return Status;
+ ArgV[2] = cCmdDVPtr(DVIndex);
+
+ LStatus = pMapLoader->pFunc(FINDFIRST, FileMask, ArgV[2], (ULONG *)ArgV[3]);
+
+ //Status code in high byte of LStatus
+ *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
+
+ //File handle in low byte of LStatus
+ *(ArgV[1]) = LOADER_HANDLE(LStatus);
+
+ return (NO_ERR);
+}
+
+//cCmdWrapFileFindNext
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 in/out
+//ArgV[2]: Filename, CStr out
+//ArgV[3]: Length, U32 out
+NXT_STATUS cCmdWrapFileFindNext(UBYTE * ArgV[])
+{
+// return cCmdWrapFileFindHelper(FALSE, ArgV);
+ LOADER_STATUS LStatus;
+ NXT_STATUS Status;
+ DV_INDEX DVIndex;
+
+ //Resolve array arguments
+ // output filename
+ DVIndex = *(DV_INDEX *)(ArgV[2]);
+ //Size Buffer to Length
+ //Add room for null terminator to length
+ Status = cCmdDVArrayAlloc(DVIndex, (UWORD)(FILENAME_LENGTH + 1));
+ if (IS_ERR(Status))
+ return Status;
+ ArgV[2] = cCmdDVPtr(DVIndex);
+
+ LStatus = pMapLoader->pFunc(FINDNEXT, ArgV[1], ArgV[2], (ULONG *)ArgV[3]);
+
+ //Status code in high byte of LStatus
+ *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
+
+ //File handle in low byte of LStatus
+ *(ArgV[1]) = LOADER_HANDLE(LStatus);
+
+ return (NO_ERR);
+}
+
+//cCmdWrapFileOpenReadLinear
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 return
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Length, U32 return
+NXT_STATUS cCmdWrapFileOpenReadLinear(UBYTE * ArgV[])
+{
+ return cCmdWrapFileOpenReadHelper(OPENREADLINEAR, ArgV);
+}
+
+//cCmdWrapFileOpenWriteLinear
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 return
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Length, U32 return
+NXT_STATUS cCmdWrapFileOpenWriteLinear(UBYTE * ArgV[])
+{
+ return cCmdWrapFileOpenWriteHelper(OPENWRITELINEAR, ArgV);
+}
+
+//cCmdWrapFileOpenWriteNonLinear
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 return
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Length, U32 return
+NXT_STATUS cCmdWrapFileOpenWriteNonLinear(UBYTE * ArgV[])
+{
+ return cCmdWrapFileOpenWriteHelper(OPENWRITE, ArgV);
+}
+
+//
+//cCmdWrapCommHSControl
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: Command, UBYTE (init, uart, or exit)
+//ArgV[2]: BaudRate, UBYTE
+//ArgV[3]: Mode, UWORD
+NXT_STATUS cCmdWrapCommHSControl(UBYTE * ArgV[])
+{
+ pMapComm->HsInBuf.InPtr = 0;
+ pMapComm->HsInBuf.OutPtr = 0;
+ pMapComm->HsOutBuf.InPtr = 0;
+ pMapComm->HsOutBuf.OutPtr = 0;
+ switch (*(ArgV[1]))
+ {
+ case HS_CTRL_INIT:
+ {
+ // hi-speed init
+ pMapComm->HsState = HS_ENABLE;
+ pMapComm->HsFlags = HS_UPDATE;
+ }
+ break;
+
+ case HS_CTRL_UART:
+ {
+ // hi-speed setup uart
+ pMapComm->HsSpeed = *(ArgV[2]);
+ pMapComm->HsMode = *(ArgV[3]);
+ pMapComm->HsState = HS_INITIALISE;
+ pMapComm->HsFlags = HS_UPDATE;
+ }
+ break;
+
+ case HS_CTRL_EXIT:
+ {
+ // hi-speed exit
+ pMapComm->HsState = HS_DISABLE;
+ pMapComm->HsFlags = HS_UPDATE;
+ }
+ break;
+ }
+
+ *((UWORD *)ArgV[0]) = pMapComm->HsState;
+
+ return (NO_ERR);
+}
+
+//cCmdWrapCommHSCheckStatus
+//ArgV[0]: SendingData, UBYTE out
+//ArgV[1]: DataAvailable, UBYTE out
+NXT_STATUS cCmdWrapCommHSCheckStatus(UBYTE * ArgV[])
+{
+ *(ArgV[0]) = (pMapComm->HsOutBuf.InPtr != pMapComm->HsOutBuf.OutPtr) || (pMapComm->HsState == HS_SEND_DATA);
+ *(ArgV[1]) = (pMapComm->HsInBuf.InPtr != pMapComm->HsInBuf.OutPtr);
+ return (NO_ERR);
+}
+
+//cCmdWrapCommHSWrite
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: Buffer
+NXT_STATUS cCmdWrapCommHSWrite(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UBYTE * pBuf;
+ UWORD BufLength;
+ DV_INDEX DVIndex;
+
+ //Resolve array arguments
+ DVIndex = *(DV_INDEX *)(ArgV[1]);
+ pBuf = cCmdDVPtr(DVIndex);
+ BufLength = DV_ARRAY[DVIndex].Count;
+
+ if (BufLength > SIZE_OF_HSBUF)
+ {
+ *pReturnVal = ERR_INVALID_SIZE;
+ return (NO_ERR);
+ }
+
+ // set inptr & outptr
+ pMapComm->HsOutBuf.OutPtr = 0;
+ pMapComm->HsOutBuf.InPtr = BufLength;
+ memcpy(pMapComm->HsOutBuf.Buf, pBuf, BufLength);
+
+ // send the data
+ pMapComm->HsState = HS_SEND_DATA;
+ pMapComm->HsFlags = HS_UPDATE;
+
+ *pReturnVal = pMapComm->HsState;
+
+ return (NO_ERR);
+}
+
+//cCmdWrapCommHSRead
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: Buffer, out
+NXT_STATUS cCmdWrapCommHSRead(UBYTE * ArgV[])
+{
+ //Normally, bytes available is a simple difference.
+ SLONG Tmp = pMapComm->HsInBuf.InPtr - pMapComm->HsInBuf.OutPtr;
+
+ //If InPtr is actually behind OutPtr, circular buffer has wrapped. Account for wrappage...
+ if (Tmp < 0)
+ Tmp = (pMapComm->HsInBuf.InPtr + (SIZE_OF_HSBUF - pMapComm->HsInBuf.OutPtr));
+
+ //Resolve array arguments
+ // output buffer
+ DV_INDEX DVIndex = *(DV_INDEX *)(ArgV[1]);
+ //Size Buffer to Length
+ NXT_STATUS Status = cCmdDVArrayAlloc(DVIndex, (UWORD)Tmp);
+ if (IS_ERR(Status))
+ return Status;
+ UBYTE* pBuf = cCmdDVPtr(DVIndex);
+ ArgV[1] = pBuf;
+
+ //If the bytes we want to read wrap around the end, we must first read the end, then reset back to the beginning
+ UBYTE BytesToRead = (UBYTE)Tmp;
+ if (pMapComm->HsInBuf.OutPtr + BytesToRead >= SIZE_OF_HSBUF)
+ {
+ BytesToRead = SIZE_OF_HSBUF - pMapComm->HsInBuf.OutPtr;
+ memcpy(pBuf, pMapComm->HsInBuf.Buf + pMapComm->HsInBuf.OutPtr, BytesToRead);
+ pMapComm->HsInBuf.OutPtr = 0;
+ pBuf += BytesToRead;
+ BytesToRead = Tmp - BytesToRead;
+ }
+
+ memcpy(pBuf, pMapComm->HsInBuf.Buf + pMapComm->HsInBuf.OutPtr, BytesToRead);
+ pMapComm->HsInBuf.OutPtr += BytesToRead;
+
+ return (NO_ERR);
+}
+
+//cCmdWrapCommLSWriteEx
+//ArgV[0]: (return) Status code, SBYTE
+//ArgV[1]: Port specifier, UBYTE
+//ArgV[2]: Buffer to send, UBYTE array, only SIZE_OF_LSBUF bytes will be used
+//ArgV[3]: ResponseLength, UBYTE, specifies expected bytes back from slave device
+//ArgV[4]: NoRestartOnRead, UBYTE, specifies whether or not to restart before the read
+//
+NXT_STATUS cCmdWrapCommLSWriteEx(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
+ UBYTE Port = *(ArgV[1]);
+ UBYTE * pBuf;
+ UWORD BufLength;
+ UBYTE ResponseLength = *(ArgV[3]);
+ UBYTE NoRestartOnRead = *(ArgV[4]);
+ DV_INDEX DVIndex;
+
+ //Resolve array arguments
+ DVIndex = *(DV_INDEX *)(ArgV[2]);
+ pBuf = cCmdDVPtr(DVIndex);
+ BufLength = DV_ARRAY[DVIndex].Count;
+
+ *pReturnVal = cCmdLSWrite(Port, (UBYTE)BufLength, pBuf, ResponseLength, NoRestartOnRead);
+
+ return (NO_ERR);
+}
+
+//cCmdWrapFileSeek
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 in/out
+//ArgV[2]: Origin, U8 in
+//ArgV[3]: Length, S32 in
+NXT_STATUS cCmdWrapFileSeek(UBYTE * ArgV[])
+{
+ UBYTE Origin = *((UBYTE *)ArgV[2]);
+ LOADER_STATUS LStatus = pMapLoader->pFunc(Origin+SEEKFROMSTART, ArgV[1], NULL, (ULONG *)ArgV[3]);
+ //Status code in high byte of LStatus
+ *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
+ //File handle in low byte of LStatus
+ *(ArgV[1]) = LOADER_HANDLE(LStatus);
+ return (NO_ERR);
+}
+
+//cCmdWrapFileResize
+//ArgV[0]: (Function return) Loader status, U16 return
+//ArgV[1]: File Handle, U8 in/out
+//ArgV[2]: NewSize, U16 in
+NXT_STATUS cCmdWrapFileResize(UBYTE * ArgV[])
+{
+ LOADER_STATUS LStatus = pMapLoader->pFunc(RESIZEDATAFILE, ArgV[1], NULL, (ULONG *)ArgV[2]);
+ //Status code in high byte of LStatus
+ *((UWORD *)ArgV[0]) = LOADER_ERR(LStatus);
+ //File handle in low byte of LStatus
+ *(ArgV[1]) = LOADER_HANDLE(LStatus);
+ return (NO_ERR);
+}
+
+NXT_STATUS cCmdWrapUndefinedSysCall(UBYTE * ArgV[])
+{
+ return (NO_ERR);
+}
+
#ifdef SIM_NXT
// Accessors for simulator library code
SWORD cCmdGetCodeWord(CLUMP_ID Clump, CODE_INDEX Index)
diff --git a/AT91SAM7S256/Source/c_cmd.h b/AT91SAM7S256/Source/c_cmd.h
index e9227eb..729e14b 100644
--- a/AT91SAM7S256/Source/c_cmd.h
+++ b/AT91SAM7S256/Source/c_cmd.h
@@ -27,7 +27,7 @@
#endif
#include "c_cmd_bytecodes.h"
-#define SYSCALL_COUNT 48
+#define SYSCALL_COUNT 100
extern const HEADER cCmd;
@@ -55,6 +55,17 @@ void cCmdExit(void);
//
#define ENABLE_VM 1
#undef ARM_DEBUG
+
+
+//
+//WRITE_IOMAP_OFFSETS enables saving a file containing accurate iomap offsets.
+//
+#define WRITE_IOMAP_OFFSETS 0
+
+#if WRITE_IOMAP_OFFSETS
+void cCmdWriteIOMapOffsetsFile();
+#endif
+
//
//VM_BENCHMARK enables extra instrumentation code to measure VM performance.
//When enabled, a file named "benchmark.txt" is produced every time a program completes.
@@ -194,10 +205,11 @@ enum
IO_OUT_REG_I_VAL,
IO_OUT_REG_D_VAL,
IO_OUT_BLOCK_TACH_COUNT,
- IO_OUT_ROTATION_COUNT
+ IO_OUT_ROTATION_COUNT,
+ IO_OUT_OPTIONS,
};
-#define IO_OUT_FPP 15
+#define IO_OUT_FPP 16
#define IO_OUT_FIELD_COUNT (IO_OUT_FPP * NO_OF_OUTPUTS)
//
@@ -350,7 +362,6 @@ typedef struct
#define SET_WRITE_DTLG(DVIndex) (VarsCmd.DatalogBuffer.Datalogs[VarsCmd.DatalogBuffer.WriteIndex] = (DVIndex))
#define SET_READ_DTLG(DVIndex) (VarsCmd.DatalogBuffer.Datalogs[VarsCmd.DatalogBuffer.ReadIndex] = (DVIndex))
-
//
//Definitions related to dataflow scheduling
//
@@ -385,6 +396,17 @@ typedef struct
CLUMP_Q WaitQ;
} MUTEX_Q;
+
+// Clump Breakpoints
+//
+typedef struct
+{
+ CODE_INDEX Location;
+ UBYTE Enabled;
+} CLUMP_BREAK_REC;
+
+#define MAX_BREAKPOINTS 4
+
//
// Clump Record, run-time book-keeping for each clump
//
@@ -395,6 +417,7 @@ typedef struct
// CurrFireCount: Run-time count of unsatisfied dependencies
// Link: ID of next clump in the queue. NOT_A_CLUMP denotes end or bad link.
//
+// Priority: number of instructions to run per pass on this clump
// clumpScalarDispatchHints: this clump only uses scalar data args, can be interpretted with faster dispatch tables
//
// pDependents: pointer to list of downstream dependents' ClumpIDs
@@ -410,11 +433,13 @@ typedef struct
UBYTE CurrFireCount; //AKA ShortCount
CLUMP_ID Link;
+ UBYTE Priority; // deleted in 1.28
UBYTE clumpScalarDispatchHints;
CLUMP_ID* pDependents;
ULONG awakenTime;
UBYTE DependentCount;
+ CLUMP_BREAK_REC Breakpoints[MAX_BREAKPOINTS];
} CLUMP_REC;
//
@@ -535,6 +560,10 @@ typedef struct
DATALOG_QUEUE DatalogBuffer;
+ UBYTE Debugging;
+ UBYTE PauseClump;
+ CODE_INDEX PausePC;
+
#if VM_BENCHMARK
ULONG InstrCount;
ULONG Average;
@@ -544,8 +573,10 @@ typedef struct
ULONG CompactionCount;
ULONG LastCompactionTick;
ULONG MaxCompactionTime;
- ULONG OpcodeBenchmarks[OPCODE_COUNT][4];
- ULONG SyscallBenchmarks[SYSCALL_COUNT][4];
+ ULONG CmdCtrlOverTimeCnt;
+ ULONG MaxCmdCtrlOverTimeLen;
+ ULONG OpcodeBenchmarks[OPCODE_COUNT][3];
+ ULONG SyscallBenchmarks[SYSCALL_COUNT][3];
UBYTE Buffer[256];
#endif
@@ -786,7 +817,7 @@ float cCmdGetValFlt(void * pVal, TYPE_CODE TypeCode);
NXT_STATUS cCmdLSCheckStatus(UBYTE Port);
UBYTE cCmdLSCalcBytesReady(UBYTE Port);
-NXT_STATUS cCmdLSWrite(UBYTE Port, UBYTE BufLength, UBYTE *pBuf, UBYTE ResponseLength);
+NXT_STATUS cCmdLSWrite(UBYTE Port, UBYTE BufLength, UBYTE *pBuf, UBYTE ResponseLength, UBYTE NoRestartOnRead);
NXT_STATUS cCmdLSRead(UBYTE Port, UBYTE BufLength, UBYTE * pBuf);
//
@@ -844,9 +875,6 @@ NXT_STATUS cCmdWrapSetSleepTimeout(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapListFiles(UBYTE * ArgV[]);
// Handlers for dynamically added syscalls
-NXT_STATUS cCmdWrapCommHSWrite(UBYTE * ArgV[]);
-NXT_STATUS cCmdWrapCommHSRead(UBYTE * ArgV[]);
-NXT_STATUS cCmdWrapCommHSCheckStatus(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapCommBTOnOff(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapCommBTConnection(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapReadSemData(UBYTE * ArgV[]);
@@ -854,6 +882,29 @@ NXT_STATUS cCmdWrapWriteSemData(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapUpdateCalibCacheInfo(UBYTE * ArgV[]);
NXT_STATUS cCmdWrapComputeCalibValue(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapIOMapReadByID(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapIOMapWriteByID(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapDisplayExecuteFunction(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommExecuteFunction(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapLoaderExecuteFunction(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileFindFirst(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileFindNext(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileOpenWriteLinear(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileOpenWriteNonLinear(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileOpenReadLinear(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommHSControl(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommHSCheckStatus(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommHSWrite(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommHSRead(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapCommLSWriteEx(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileSeek(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapFileResize(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapDrawPictureArray(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapDrawPolygon(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapDrawEllipse(UBYTE * ArgV[]);
+NXT_STATUS cCmdWrapDrawFont(UBYTE * ArgV[]);
+
+NXT_STATUS cCmdWrapUndefinedSysCall(UBYTE * ArgV[]);
//Handler for remote control protocol packets -- called from comm module via IO map function pointer
UWORD cCmdHandleRemoteCommands(UBYTE * pInBuf, UBYTE * pOutBuf, UBYTE * pLen);
diff --git a/AT91SAM7S256/Source/c_cmd.iom b/AT91SAM7S256/Source/c_cmd.iom
index 7c5906c..09a6477 100644
--- a/AT91SAM7S256/Source/c_cmd.iom
+++ b/AT91SAM7S256/Source/c_cmd.iom
@@ -41,12 +41,24 @@
#define NO_ERR 0
//Fatal errors
-#define ERR_ARG -1 //0xFF Bad arguments
-#define ERR_INSTR -2 //0xFE Illegal bytecode instruction
-#define ERR_FILE -3 //0xFD Mal-formed file contents
-#define ERR_VER -4 //0xFC Version mismatch between firmware and compiler
-#define ERR_MEM -5 //0xFB Insufficient memory available
-#define ERR_BAD_PTR -6 //0xFA Someone passed us a bad pointer!
+#define ERR_ARG -1 // 0xFF Bad arguments
+#define ERR_INSTR -2 // 0xFE Illegal bytecode instruction
+#define ERR_FILE -3 // 0xFD cCmdVerifyMemMgr() != TRUE
+#define ERR_VER -4 // 0xFC Version mismatch between firmware and compiler
+#define ERR_MEM -5 // 0xFB Insufficient memory available
+#define ERR_BAD_PTR -6 // 0xFA Someone passed us a bad pointer!
+
+#define ERR_CLUMP_COUNT -7 // 0xF9 (FileClumpCount == 0 || FileClumpCount >= NOT_A_CLUMP)
+#define ERR_NO_CODE -8 // 0xF8 VarsCmd.CodespaceCount == 0
+#define ERR_INSANE_OFFSET -9 // 0xF7 CurrOffset != (DataSize - VarsCmd.CodespaceCount * 2)
+#define ERR_BAD_POOL_SIZE -10 // 0xF6 VarsCmd.PoolSize > POOL_MAX_SIZE
+#define ERR_LOADER_ERR -11 // 0xF5 LOADER_ERR(LStatus) != SUCCESS || pData == NULL || DataSize == 0
+#define ERR_SPOTCHECK_FAIL -12 // 0xF4 ((UBYTE*)(VarsCmd.pCodespace) < pData) (c_cmd.c 1893)
+#define ERR_NO_ACTIVE_CLUMP -13 // 0xF3 VarsCmd.RunQ.Head == NOT_A_CLUMP
+#define ERR_DEFAULT_OFFSETS -14 // 0xF2 (DefaultsOffset != FileOffsets.DynamicDefaults) || (DefaultsOffset + FileOffsets.DynamicDefaultsSize != FileOffsets.DSDefaultsSize)
+#define ERR_MEMMGR_FAIL -15 // 0xF1 (UBYTE *)VarsCmd.MemMgr.pDopeVectorArray != VarsCmd.pDataspace + DV_ARRAY[0].Offset
+
+#define ERR_NON_FATAL -16 //0xF0 or greater
//General errors
#define ERR_INVALID_PORT -16 //0xF0 Bad input or output port specified
@@ -73,7 +85,7 @@
#define IS_ERR(Status) ((Status) < NO_ERR)
//Errors are considered fatal if they are something we'd consider halting the VM for.
-#define IS_FATAL(Status) ((Status) < NO_ERR && (Status) >= ERR_BAD_PTR)
+#define IS_FATAL(Status) ((Status) < NO_ERR && (Status) > ERR_NON_FATAL)
//Direct command protocol opcodes
//!!! These MUST be mutually exclusive with c_comm's protocol opcodes.
@@ -114,7 +126,10 @@ enum
RC_SET_PROPERTY,
RC_GET_PROPERTY,
RC_UPDATE_RESET_COUNT,
-
+ RC_SET_VM_STATE,
+ RC_GET_VM_STATE,
+ RC_SET_BREAKPOINTS,
+ RC_GET_BREAKPOINTS,
NUM_RC_OPCODES
};
@@ -122,9 +137,20 @@ enum
enum {
RC_PROP_BTONOFF,
RC_PROP_SOUND_LEVEL,
-RC_PROP_SLEEP_TIMEOUT
+RC_PROP_SLEEP_TIMEOUT,
+RC_PROP_DEBUGGING = 0xF
};
+#define RC_PORTS_AB 0xFC
+#define RC_PORTS_AC 0xFD
+#define RC_PORTS_BC 0xFE
+#define RC_PORTS_ALL 0xFF
+
+#define RC_OUT_AB 0x03
+#define RC_OUT_AC 0x04
+#define RC_OUT_BC 0x05
+#define RC_OUT_ABC 0x06
+
//
//Published status of last program to be activated
//This value is published so outside parties (like the UI) can check if a program is running,
@@ -134,6 +160,15 @@ RC_PROP_SLEEP_TIMEOUT
//PROG_ERROR: Last program ended because of an error
//PROG_ABORT: Last program ended because of (user) abort
//
+
+typedef SBYTE PROGRAM_STATUS;
+#define PROG_IDLE 0x00
+#define PROG_OK 0x01
+#define PROG_RUNNING 0x02
+#define PROG_ERROR 0x03
+#define PROG_ABORT 0x04
+#define PROG_RESET 0x05
+/*
typedef enum
{
PROG_IDLE,
@@ -143,7 +178,7 @@ typedef enum
PROG_ABORT,
PROG_RESET
} PROGRAM_STATUS;
-
+*/
//Maximum size of memory pool, in bytes
//!!! Code assumes this value is evenly divisible by 4!
#define POOL_MAX_SIZE 32768
diff --git a/AT91SAM7S256/Source/c_cmd_alternate.c b/AT91SAM7S256/Source/c_cmd_alternate.c
new file mode 100644
index 0000000..c892c9d
--- /dev/null
+++ b/AT91SAM7S256/Source/c_cmd_alternate.c
@@ -0,0 +1,108 @@
+//
+// File Description:
+// This file contains an alternate implementation of c_cmd for testing purposes.
+// It implements the minimal standard interface for the module, and serves as
+// an example of output module control via C code.
+//
+
+void cCmdInit(void* pHeader)
+{
+ pHeaders = pHeader;
+
+ IOMapCmd.Awake = TRUE;
+
+ dTimerInit();
+ IOMapCmd.Tick = dTimerRead();
+
+ return;
+}
+
+//Test: Start at speed 100 when enter is pressed; then progressively ramp down every half second until -100.
+void cCmdCtrl(void)
+{
+ static UBYTE State = 0;
+ static ULONG MyTick = 0;
+
+ if (pMapButton->State[BTN1] & PRESSED_EV)
+ {
+ pMapButton->State[BTN1] &= ~PRESSED_EV;
+
+ State = 1;
+ }
+
+ switch(State)
+ {
+ case 0:
+ {
+ //Initialize
+ pMapInput->Inputs[0].SensorType = LOWSPEED;
+ }
+ break;
+
+ case 1:
+ {
+ if (pMapLowSpeed->ChannelState[0] == LOWSPEED_IDLE)
+ {
+ pMapLowSpeed->OutBuf[0].InPtr = 0;
+ pMapLowSpeed->OutBuf[0].OutPtr = 0;
+
+ pMapLowSpeed->OutBuf[0].Buf[pMapLowSpeed->OutBuf[0].InPtr] = 0x88; // I2C adress = 1000100X
+ pMapLowSpeed->OutBuf[0].InPtr++;
+ pMapLowSpeed->OutBuf[0].Buf[pMapLowSpeed->OutBuf[0].InPtr] = 0x00; // Selecting register to write into
+ pMapLowSpeed->OutBuf[0].InPtr++;
+ pMapLowSpeed->OutBuf[0].Buf[pMapLowSpeed->OutBuf[0].InPtr] = 0x88; // Data to set into register => Setting Control register
+ pMapLowSpeed->OutBuf[0].InPtr++;
+
+ pMapLowSpeed->InBuf[0].BytesToRx = 0;
+ pMapLowSpeed->ChannelState[0] = LOWSPEED_INIT;
+ pMapLowSpeed->State = COM_CHANNEL_ONE_ACTIVE;
+
+ State = 2;
+ }
+ }
+ break;
+
+ case 2:
+ {
+ if (pMapLowSpeed->ChannelState[0] == LOWSPEED_IDLE)
+ {
+ pMapLowSpeed->OutBuf[0].InPtr = 0;
+ pMapLowSpeed->OutBuf[0].OutPtr = 0;
+
+ pMapLowSpeed->OutBuf[0].Buf[pMapLowSpeed->OutBuf[0].InPtr] = 0x88; // I2C adress = 1000100X
+ pMapLowSpeed->OutBuf[0].InPtr++;
+ pMapLowSpeed->OutBuf[0].Buf[pMapLowSpeed->OutBuf[0].InPtr] = 0x04; // Start register to read from
+ pMapLowSpeed->OutBuf[0].InPtr++;
+
+ pMapLowSpeed->InBuf[0].BytesToRx = 2; // Read 2 bytes from I2C unit
+ pMapLowSpeed->ChannelState[0] = LOWSPEED_INIT;
+ pMapLowSpeed->State = COM_CHANNEL_ONE_ACTIVE;
+
+ State = 3;
+ }
+ }
+ break;
+
+ case 3:
+ {
+
+ }
+ break;
+
+ default:
+ break;
+ };
+
+ //Busy loop to ensure return on 1ms boundary
+ while (IOMapCmd.Tick == dTimerRead());
+
+ IOMapCmd.Tick = dTimerRead();
+ MyTick++;
+
+ return;
+}
+
+void cCmdExit(void)
+{
+ return;
+}
diff --git a/AT91SAM7S256/Source/c_cmd_bytecodes.h b/AT91SAM7S256/Source/c_cmd_bytecodes.h
index 5cd9dfd..36a9084 100644
--- a/AT91SAM7S256/Source/c_cmd_bytecodes.h
+++ b/AT91SAM7S256/Source/c_cmd_bytecodes.h
@@ -4,7 +4,7 @@
// opcode definitions
// symbol, bits, arg format
//
-#define OPCODE_COUNT 0x38
+#define OPCODE_COUNT 0x51
//Family: Math
#define OP_ADD 0x00 // dest, src1, src2
@@ -21,13 +21,13 @@
#define OP_NOT 0x09 // dest, src
//Family: Bit manipulation
-#define OP_CMNT 0x0A // dest, src
-#define OP_LSL 0x0B // dest, src
-#define OP_LSR 0x0C // dest, src
-#define OP_ASL 0x0D // dest, src
-#define OP_ASR 0x0E // dest, src
-#define OP_ROTL 0x0F // dest, src
-#define OP_ROTR 0x10 // dest, src
+#define OP_CMNT 0x0A // dest, src
+#define OP_LSL 0x0B // dest, src, bits
+#define OP_LSR 0x0C // dest, src, bits
+#define OP_ASL 0x0D // dest, src, bits
+#define OP_ASR 0x0E // dest, src, bits
+#define OP_ROTL 0x0F // dest, src, bits
+#define OP_ROTR 0x10 // dest, src, bits
//Family: Comparison
#define OP_CMP 0x11 // dest, src1, src2
@@ -86,6 +86,66 @@
#define OP_SQRT 0x36 // dest, src
#define OP_ABS 0x37 // dest, src
+// JCH ADDS
+#define OP_WAITI 0x64 // immed
+#define OP_WAITV 0x65 // var
+#define OP_SIGN 0x66 // dest, src
+#define OP_STOPCLUMPIMMED 0x67 // clumpID
+#define OP_STARTCLUMPIMMED 0x68 // clumpID
+#define OP_PRIORITY 0x69 // clumpID, pri
+#define OP_FMTNUM 0x6a // dest, fmt, src1
+#define OP_ARROP 0x6b // cmd, dest, src, idx, len
+
+// math ops (float)
+#define OP_ACOS 0x6c // dest, src
+#define OP_ASIN 0x6d // dest, src
+#define OP_ATAN 0x6e // dest, src
+#define OP_CEIL 0x6f // dest, src
+#define OP_EXP 0x70 // dest, src
+#define OP_FLOOR 0x71 // dest, src
+#define OP_TAN 0x72 // dest, src
+#define OP_COS 0x74 // dest, src
+#define OP_LOG 0x76 // dest, src
+#define OP_LOG10 0x77 // dest, src
+#define OP_SIN 0x78 // dest, src
+#define OP_TRUNC 0x7a // dest, src
+#define OP_FRAC 0x7b // dest, src
+
+#define OP_ATAN2 0x7c // dest, src1, src2
+#define OP_POW 0x7d // dest, src1, src2
+
+#define OP_MULDIV 0x7e // dest, src1, src2, src3
+
+// transcendental opcodes that use degrees instead of radians
+#define OP_ACOSD 0x7f // dest, src
+#define OP_ASIND 0x80 // dest, src
+#define OP_ATAND 0x81 // dest, src
+#define OP_TAND 0x82 // dest, src
+#define OP_COSD 0x84 // dest, src
+#define OP_SIND 0x86 // dest, src
+#define OP_ATAN2D 0x88 // dest, src1, src2
+
+
+// hyperbolic transcendental functions
+#define OP_TANH 0x73 // dest, src
+#define OP_COSH 0x75 // dest, src
+#define OP_SINH 0x79 // dest, src
+#define OP_TANHD 0x83 // dest, src
+#define OP_COSHD 0x85 // dest, src
+#define OP_SINHD 0x87 // dest, src
+
+// additional string opcodes
+
+
+// array operation definitions
+#define OPARR_SUM 0x00
+#define OPARR_MEAN 0x01
+#define OPARR_SUMSQR 0x02
+#define OPARR_STD 0x03
+#define OPARR_MIN 0x04
+#define OPARR_MAX 0x05
+#define OPARR_SORT 0x06
+
// condition code definitions
#define OPCC1_LT 0x00
#define OPCC1_GT 0x01
diff --git a/AT91SAM7S256/Source/c_cmd_drawing.inc b/AT91SAM7S256/Source/c_cmd_drawing.inc
index 0132d44..a8b5d86 100644
--- a/AT91SAM7S256/Source/c_cmd_drawing.inc
+++ b/AT91SAM7S256/Source/c_cmd_drawing.inc
@@ -12,12 +12,17 @@
// Platform C
//
+#define MAX_CORNERS 128
+
//absolute value of a
#define ABS(a) (((a)<0) ? -(a) : (a))
//take binary sign of a, either -1, or 1 if >= 0
#define SGN(a) (((a)<0) ? -1 : 1)
+#define MAX(a,b) (((a>b) ? (a) : (b)))
+#define MIN(a,b) (((a<b) ? (a) : (b)))
+
#define DISP_BUFFER_P ((UBYTE*)&(pMapDisplay->Normal))
//------------------------------------------------------------------
@@ -30,7 +35,7 @@ void cCmdRestoreDefaultScreen(void);
//------------------------------------------------------------------
// cCmdDrawString - Draw string to display buffer
-void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y);
+void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y, UBYTE InvertMode, UBYTE LogicalMode, UBYTE FillMode);
// OP codes supported by RIC files
enum {
@@ -42,17 +47,70 @@ enum {
IMG_LINE_ID = 5,
IMG_RECTANGLE_ID = 6,
IMG_CIRCLE_ID = 7,
- IMG_NUMBOX_ID = 8
+ IMG_NUMBOX_ID = 8,
+ IMG_ELLIPSE_ID = 9,
+ IMG_POLYGON_ID = 10
};
#define IMG_SYMB_USEARGS(_v) (_v & (SWORD)0xF000)
#define IMG_SYMB_MAP(_v) ((_v & 0x0F00) >> 8)
-#define IMG_SYMB_ARG(_v) (_v & 0x000F)
+#define IMG_SYMB_ARG(_v) (_v & 0x00FF)
+
+//JJR
+//#define DRAW_OPT_CLEAR_PIXELS (0x0004)
+//#define SET_PIXELS(_v) (((_v) & DRAW_OPT_CLEAR_PIXELS) ? FALSE : TRUE)
// DrawingOptions
-#define DRAW_OPT_CLEAR_WHOLE_SCREEN (0x0001)
-#define DRAW_OPT_CLEAR_EXCEPT_STATUS_SCREEN (0x0002)
-#define DRAW_OPT_CLEAR_MODE(_v) ((_v) & 0x0003)
+// (and CopyOptions)
+// - parameter used within byte code drawing operations
+// - now unified with 'CopyOptions' parameter in RIC files
+// Bits 0 & 1 (values 0,1,2,3) control screen clearing behaviour (Not within RIC files).
+// Bit 2 (value 4) controls the NOT operation, i.e. draw in white or invert text/graphics.
+// Bits 3 & 4 (values 0,8,16,24) control pixel logical combinations (COPY/AND/OR/XOR).
+// Bit 5 (value 32) controls shape filling, or overrides text/graphic bitmaps with set pixels.
+// These may be ORed together for the full instruction.
+// These operations are resolved into the separate, common parameters
+// defined in 'c_display.iom' before any drawing function is called.
+// Note that when drawing a RIC file, the initial 'DrawingOptions' parameter
+// supplied in the drawing instruction controls screen clearing, but nothing else.
+// The 'CopyOptions' parameter from each instruction in the RIC file then controls
+// graphic operations, but the screen-clearing bits are ignored.
+
+#define DRAW_OPT_NORMAL (0x0000)
+#define DRAW_OPT_LOGICAL_COPY (0x0000)
+
+#define DRAW_OPT_CLEAR_WHOLE_SCREEN (0x0001)
+#define DRAW_OPT_CLEAR_EXCEPT_STATUS_SCREEN (0x0002)
+#define DRAW_OPT_INVERT (0x0004)
+#define DRAW_OPT_LOGICAL_AND (0x0008)
+#define DRAW_OPT_LOGICAL_OR (0x0010)
+#define DRAW_OPT_LOGICAL_XOR (0x0018)
+#define DRAW_OPT_FILL_SHAPE (0x0020)
+
+// Combined parameter masks:
+#define DRAW_OPT_CLEAR_SCREEN_MODES (0x0003)
+#define DRAW_OPT_LOGICAL_OPERATIONS (0x0018)
+#define DRAW_OPT_FONT_DIRECTIONS (0x01C0)
+
+#define DRAW_OPT_FONT_WRAP (0x0200)
+
+#define DRAW_OPT_FONT_DIR_L2RB (0x0000) // Font left to right bottom align
+#define DRAW_OPT_FONT_DIR_L2RT (0x0040) // Font left to right top align
+#define DRAW_OPT_FONT_DIR_R2LB (0x0080) // Font right to left bottom align
+#define DRAW_OPT_FONT_DIR_R2LT (0x00C0) // Font right to left top align
+#define DRAW_OPT_FONT_DIR_B2TL (0x0100) // Font bottom to top left align
+#define DRAW_OPT_FONT_DIR_B2TR (0x0140) // Font bottom to top right align
+#define DRAW_OPT_FONT_DIR_T2BL (0x0180) // Font top to bottom left align
+#define DRAW_OPT_FONT_DIR_T2BR (0x01C0) // Font top to bottom right align
+
+#define DESC_FONTOUT 0x8001 // ID for new font out function
+
+// CopyOptions, as originally defined for RIC files, now equate to:
+// COPY = 0 = 0x00 = DRAW_OPT_NORMAL = Copy all bits, solid and clear
+// COPY_NOT = 4 = 0x04 = DRAW_OPT_INVERT = Copy all bits, but invert bitmap images first
+// OR = 16 = 0x10 = DRAW_OPT_LOGICAL_OR = Copy solid bits, ignore clear bits
+// BIT_CLEAR = 12 = 0x0C = DRAW_OPT_INVERT + DRAW_OPT_LOGICAL_AND = Erase screen for solid bits, ignore clear bits
+//JJR
// Clear Before Drawing Modes for Draw functions
@@ -63,7 +121,8 @@ enum {
// Screen Modes for SetScreenMode function
enum {
- RESTORE_NXT_SCREEN = 0
+ RESTORE_NXT_SCREEN = 0,
+ CLEAR_NXT_SCREEN = 1
};
#define IMG_COMMON_FIELDS UWORD OpSize; UWORD OpCode;
@@ -118,7 +177,7 @@ typedef struct
typedef struct
{
IMG_COMMON_FIELDS
- UWORD CopyOptions; // Copy, CopyNot, Or, BitClear;
+ UWORD CopyOptions; // Copy, CopyNot, Or, BitClear; //JJR ,Xor;
UWORD DataAddr; // Address of an already defined sprite
IMG_RECT Src; // Source rectangle
IMG_PT Dst; // Destination left top
@@ -164,6 +223,23 @@ typedef struct
UWORD Value; // typically mapped to an argument
} IMG_OP_NUMBOX;
+typedef struct
+{
+ IMG_COMMON_FIELDS
+ UWORD CopyOptions;
+ IMG_PT Pt;
+ UWORD Radius1;
+ UWORD Radius2;
+} IMG_OP_ELLIPSE;
+
+typedef struct
+{
+ IMG_COMMON_FIELDS
+ UWORD CopyOptions;
+ UWORD Count; //The actual size of the following array.
+ IMG_PT Points[3]; //Minimum of 3 for polygon
+} IMG_OP_POLYGON;
+
typedef union
{ IMG_OP_CORE Core;
IMG_OP_DESCRIPTION Desc;
@@ -175,22 +251,47 @@ typedef union
IMG_OP_RECT Rect;
IMG_OP_CIRCLE Circle;
IMG_OP_NUMBOX NumBox;
+ IMG_OP_ELLIPSE Ellipse;
+ IMG_OP_POLYGON Polygon;
} IMG_OP_UNION;
// Variables for DrawImage
#define IMG_MAX_DATA 11
IMG_OP_UNION * gpImgData[IMG_MAX_DATA];
-SLONG * gpPassedImgVars;
-SWORD gPassedVarsCount;
+SLONG * gpPassedImgVars = NULL;
+SWORD gPassedVarsCount = 0;
// Private Prototypes
-void cCmdDrawLine(SLONG x1, SLONG y1, SLONG x2, SLONG y2);
-void cCmdDrawRect(SLONG left, SLONG bottom, SLONG width, SLONG hieght);
+void cCmdDrawLine(SLONG x1, SLONG y1, SLONG x2, SLONG y2, UBYTE PixelMode);
+void cCmdDrawRect(SLONG left, SLONG bottom, SLONG width, SLONG height, UBYTE PixelMode, UBYTE FillMode);
+void cCmdDrawCircle(SLONG cx, SLONG cy, SLONG radius, UBYTE PixelMode, UBYTE FillMode);
+void cCmdDrawPolygon(IMG_PT* points, UWORD polyCorners, UBYTE PixelMode, UBYTE FillMode);
+void cCmdDrawEllipse(SWORD cx, SWORD cy, SWORD a, SWORD b, UBYTE PixelMode, UBYTE FillMode);
void cCmdCopyBitMapBits(SLONG dst_x, SLONG dst_y,
SLONG src_x, SLONG src_y, SLONG src_width, SLONG src_height,
- IMG_OP_SPRITE * pSprite);
+ IMG_OP_SPRITE * pSprite,
+ UBYTE InvertMode, UBYTE LogicalMode, UBYTE FillMode);
SLONG cCmdResolveValue(SWORD Value);
-void cCmdSetPixel(SLONG X, SLONG Y, ULONG Val);
+void cCmdSetPixel(SLONG X, SLONG Y, ULONG PixelMode);
+
+UBYTE cCmdResolveDrawingMode(UWORD DrawingOptions, UBYTE* pPixelMode, UBYTE* pFillMode);
+void cCmdResolveBitmapMode(UWORD DrawingOptions, UBYTE* pInvertMode, UBYTE* pLogicalMode, UBYTE* pFillMode);
+UBYTE cCmdResolveClearScreenMode(UWORD DrawingOptions);
+
+void cCmdResolveFontOptions(UWORD DrawingOptions, UBYTE* pFontDir, UBYTE* pFontWrap);
+void cCmdDrawFont(IMG_OP_SPRITE *pSprite, SLONG sW, SLONG sH, SLONG startx, SLONG starty,
+ UBYTE fontDir, UBYTE fontWrap, UBYTE invertMode, UBYTE logicalMode, UBYTE fillMode);
+
+
+void cCmdDrawTextHelper(ULONG DrawOptions, UBYTE *pString, IMG_PT * pPt)
+{
+ UBYTE invertMode, logicalMode, fillMode;
+ cCmdClearScreenIfNeeded(DrawOptions);
+ // Display the String
+ cCmdResolveBitmapMode(DrawOptions, &invertMode, &logicalMode, &fillMode);
+ cCmdDrawString(pString, (UBYTE)pPt->X, (UBYTE)pPt->Y, invertMode, logicalMode, fillMode);
+ pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
+}
//-----------------------------------------------------------------
//cCmdWrapDrawText
@@ -202,18 +303,10 @@ void cCmdSetPixel(SLONG X, SLONG Y, ULONG Val);
NXT_STATUS cCmdWrapDrawText(UBYTE * ArgV[])
{
IMG_PT * pPt = (IMG_PT*) ArgV[1];
-
ArgV[2] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[2])); //Resolve array argument
-
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[3]);
-
- // Display the String
- cCmdDrawString(ArgV[2], (UBYTE)pPt->X, (UBYTE)(pPt->Y));
- pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
-
+ cCmdDrawTextHelper(*(ULONG*)ArgV[3], ArgV[2], pPt);
// Set return value
*((SBYTE*)(ArgV[0])) = NO_ERR;
-
return NO_ERR;
}
@@ -225,11 +318,14 @@ NXT_STATUS cCmdWrapDrawText(UBYTE * ArgV[])
NXT_STATUS cCmdWrapDrawPoint(UBYTE * ArgV[])
{
IMG_PT * pPt = (IMG_PT*) ArgV[1];
+ ULONG DrawOptions = *(ULONG*)ArgV[2];
+ UBYTE pixelMode, fillMode;
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[2]);
+ cCmdClearScreenIfNeeded(DrawOptions);
- // Display the String
- cCmdSetPixel(pPt->X, pPt->Y, TRUE);
+ // Display the Pixel
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdSetPixel(pPt->X, pPt->Y, pixelMode);
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
@@ -249,10 +345,13 @@ NXT_STATUS cCmdWrapDrawLine(UBYTE * ArgV[])
{
IMG_PT * pPt1 = (IMG_PT*) ArgV[1];
IMG_PT * pPt2 = (IMG_PT*) ArgV[2];
+ ULONG DrawOptions = *(ULONG*)ArgV[3];
+ UBYTE pixelMode, fillMode;
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[3]);
+ cCmdClearScreenIfNeeded(DrawOptions);
- cCmdDrawLine(pPt1->X, pPt1->Y, pPt2->X, pPt2->Y);
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdDrawLine(pPt1->X, pPt1->Y, pPt2->X, pPt2->Y, pixelMode);
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
@@ -270,66 +369,18 @@ NXT_STATUS cCmdWrapDrawLine(UBYTE * ArgV[])
//ArgV[3]: Options (ULONG)
NXT_STATUS cCmdWrapDrawCircle(UBYTE * ArgV[])
{
- SLONG x, x1, y1, y, dp, delta;
IMG_PT * pPt = (IMG_PT*) ArgV[1];
SLONG radius = *(UBYTE*)ArgV[2];
-
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[3]);
-
- x1 = pPt->X;
- y1 = pPt->Y;
- x = 0;
- y = radius;
- dp=2*(1-radius);
- while(y >= 0)
- {
- cCmdSetPixel((x+x1), (y+y1), TRUE);
- cCmdSetPixel((-x+x1),(-y+y1), TRUE);
- cCmdSetPixel((x+x1), (-y+y1), TRUE);
- cCmdSetPixel((-x+x1),(y+y1), TRUE);
- if(dp<0)
- {
- delta = 2*dp + 2*y - 1;
- if (delta > 0)
- {
- x++;
- y--;
- dp += 2*x - 2*y + 2;
- }
- else
- {
- x++;
- dp += 2*x + 1;
- }
- }
- else if (dp > 0)
- {
- delta = 2*dp - 2*x - 1;
- if (delta > 0)
- {
- y--;
- dp += 1 - 2*y;
- }
- else
- {
- x++;
- y--;
- dp += 2*x - 2*y + 2;
- }
- }
- else
- {
- x++;
- y--;
- dp += 2*x - 2*y +2;
- }
- }
-
+ ULONG DrawOptions = *(ULONG*)ArgV[3];
+ UBYTE pixelMode, fillMode;
+
+ cCmdClearScreenIfNeeded(DrawOptions);
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdDrawCircle(pPt->X, pPt->Y, radius, pixelMode, fillMode);
+
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
-
// Set return value
*((SBYTE*)(ArgV[0])) = NO_ERR;
-
return NO_ERR;
}
@@ -343,10 +394,13 @@ NXT_STATUS cCmdWrapDrawRect(UBYTE * ArgV[])
{
IMG_PT * pPt1 = (IMG_PT*) ArgV[1];
IMG_PT * pPt2 = (IMG_PT*) ArgV[2]; // Second point is actually (width, height)
+ ULONG DrawOptions = *(ULONG*)ArgV[3];
+ UBYTE pixelMode, fillMode;
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[3]);
+ cCmdClearScreenIfNeeded(DrawOptions);
- cCmdDrawRect(pPt1->X, pPt1->Y, pPt2->X, pPt2->Y);
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdDrawRect(pPt1->X, pPt1->Y, pPt2->X, pPt2->Y, pixelMode, fillMode);
pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
@@ -357,6 +411,66 @@ NXT_STATUS cCmdWrapDrawRect(UBYTE * ArgV[])
}
//-----------------------------------------------------------------
+//cCmdWrapDrawPolygon
+//ArgV[0]: (Function return) Status byte, SBYTE
+//ArgV[1]: Points IMG_PT[]
+//ArgV[2]: Options (ULONG)
+NXT_STATUS cCmdWrapDrawPolygon(UBYTE * ArgV[])
+{
+ ULONG DrawOptions = *(ULONG*)ArgV[2];
+ UBYTE pixelMode, fillMode;
+
+ //Resolve array argument
+ IMG_PT * Points = (IMG_PT*)cCmdDVPtr(*(DV_INDEX *)(ArgV[1]));
+ UWORD polyCorners = DV_ARRAY[*(DV_INDEX *)(ArgV[1])].Count;
+ if (polyCorners <= MAX_CORNERS) {
+
+ cCmdClearScreenIfNeeded(DrawOptions);
+
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdDrawPolygon(Points, polyCorners, pixelMode, fillMode);
+
+ pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
+
+ // Set return value
+ *((SBYTE*)(ArgV[0])) = NO_ERR;
+
+ return NO_ERR;
+ }
+ else {
+ // Set return value
+ *((SBYTE*)(ArgV[0])) = ERR_INSTR;
+
+ return ERR_INSTR;
+ }
+}
+
+//-----------------------------------------------------------------
+//cCmdWrapDrawEllipse
+//ArgV[0]: (Function return) Status byte, SBYTE
+//ArgV[1]: Start Location (IMG_PT *)
+//ArgV[2]: Radius1 (U8)
+//ArgV[3]: Radius2 (U8)
+//ArgV[4]: Options (ULONG)
+NXT_STATUS cCmdWrapDrawEllipse(UBYTE * ArgV[])
+{
+ IMG_PT * pPt = (IMG_PT*) ArgV[1];
+ SWORD radius1 = *(UBYTE*)ArgV[2];
+ SWORD radius2 = *(UBYTE*)ArgV[3];
+ ULONG DrawOptions = *(ULONG*)ArgV[4];
+ UBYTE pixelMode, fillMode;
+
+ cCmdClearScreenIfNeeded(DrawOptions);
+ if (cCmdResolveDrawingMode(DrawOptions, &pixelMode, &fillMode))
+ cCmdDrawEllipse(pPt->X, pPt->Y, radius1, radius2, pixelMode, fillMode);
+
+ pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
+ // Set return value
+ *((SBYTE*)(ArgV[0])) = NO_ERR;
+ return NO_ERR;
+}
+
+//-----------------------------------------------------------------
IMG_OP_UNION * cCmdGetIMGData(ULONG DataAddr)
{
if (DataAddr >= IMG_MAX_DATA)
@@ -375,12 +489,17 @@ void cCmdSetIMGData(ULONG DataAddr, IMG_OP_UNION * pSprite)
//-----------------------------------------------------------------
SLONG cCmdResolveValue(SWORD Value)
{
- if (!IMG_SYMB_USEARGS(Value))
+ if (!IMG_SYMB_USEARGS(Value) || !gpPassedImgVars || (gPassedVarsCount == 0))
{
return Value;
}
else
{
+ // if we try to access a variable beyond the end of the array we provided
+ // then just return the original value
+ if (IMG_SYMB_ARG(Value) >= gPassedVarsCount)
+ return Value;
+
IMG_OP_VARMAP * pVarMap;
SLONG Arg;
@@ -428,252 +547,829 @@ SLONG cCmdResolveValue(SWORD Value)
}
-//-----------------------------------------------------------------
-//cCmdWrapDrawGraphic
-//ArgV[0]: (Function return) Status Byte, SBYTE
-//ArgV[1]: Left Top (IMG_PT *)
-//ArgV[2]: Filename, CStr
-//ArgV[3]: Variables, array of I32
-//ArgV[4]: Options (ULONG)
-NXT_STATUS cCmdWrapDrawPicture(UBYTE * ArgV[])
+NXT_STATUS cCmdDrawPictureHelper(IMG_OP_UNION** ppImage, IMG_PT* pPoint, SLONG* pVars, ULONG DataSize, ULONG Options)
{
- SBYTE * pReturnVal = (SBYTE*)(ArgV[0]);
- LOADER_STATUS LStatus;
- NXT_STATUS DStatus = NO_ERR;
- ULONG DataSize;
- SLONG OpSize;
- IMG_PT Pt; // Where to draw the picture at (up and to the right)
- UBYTE ImageHandle;
- IMG_OP_UNION * pImage;
-
- //Resolve array argument
- ArgV[2] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[2]));
- ArgV[3] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[3]));
-
- cCmdClearScreenIfNeeded(*(ULONG*)ArgV[4]);
-
- //Open the file in memory map mode. return if failure.
- LStatus = pMapLoader->pFunc(OPENREADLINEAR, ArgV[2], (UBYTE*)(&pImage), &DataSize);
- ImageHandle = LOADER_HANDLE(LStatus);
-
- //If error opening file, give up and write loader status back to user.
- if (LOADER_ERR(LStatus) != SUCCESS || pImage == NULL)
+ SLONG OpSize;
+ UBYTE gFillMode, gInvertMode, gLogicalMode, gFontDir, gFontWrap;
+ UBYTE pixelMode, fillMode;
+ UBYTE invertMode, logicalMode;
+ IMG_PT Pt; // Where to draw the picture at (up and to the right)
+ NXT_STATUS DStatus = NO_ERR;
+ IMG_OP_UNION* pImage = *ppImage;
+ // Read the params, Clear the data table.
+ Pt = *pPoint;
+ gpPassedImgVars = pVars;
+ memset(gpImgData,0,sizeof(gpImgData));
+
+ cCmdClearScreenIfNeeded(Options);
+
+ cCmdResolveBitmapMode(Options, &gInvertMode, &gLogicalMode, &gFillMode);
+ cCmdResolveFontOptions(Options, &gFontDir, &gFontWrap);
+
+ // Run through the op codes.
+ while(!IS_ERR(DStatus))
{
- *pReturnVal = (SBYTE)(LOADER_ERR_BYTE(LStatus));
- return (NO_ERR);
- }
- //Else, start interpretting the file
- else
- {
- // Read the ArgV params, Clear the data table.
- Pt = *(IMG_PT*)ArgV[1];
- //!!! Unsafe assumption that array is non-empty. Should check and avoid using pointer if empty.
- gpPassedImgVars = (SLONG*)ArgV[3];
- memset(gpImgData,0,sizeof(gpImgData));
-
- // Run through the op codes.
- while(!IS_ERR(DStatus))
+ // Setup to look at an opcode, make sure it looke reasonable.
+ if (DataSize < sizeof(IMG_OP_CORE))
+ {
+ DStatus = ERR_FILE;
+ break; // Too small to look at, somethings wrong.
+ }
+ OpSize = pImage->Core.OpSize + sizeof(UWORD);
+ if (OpSize & 0x01)
+ {
+ DStatus = ERR_FILE;
+ break; // Odd sizes not allowed.
+ }
+
+ switch(pImage->Core.OpCode)
{
- // Setup to look at an opcode, make sure it looke reasonable.
- if (DataSize < sizeof(IMG_OP_CORE))
+ case IMG_SPRITE_ID:
{
- DStatus = ERR_FILE;
- break; // Too small to look at, somethings wrong.
+ if (OpSize >= sizeof(IMG_OP_SPRITE))
+ cCmdSetIMGData(pImage->Sprite.DataAddr, pImage);
}
- OpSize = pImage->Core.OpSize + sizeof(UWORD);
- if (OpSize & 0x01)
+ break;
+
+ case IMG_VARMAP_ID:
{
- DStatus = ERR_FILE;
- break; // Odd sizes not allowed.
+ if (OpSize >= sizeof(IMG_OP_VARMAP))
+ cCmdSetIMGData(pImage->VarMap.DataAddr, pImage);
}
+ break;
- switch(pImage->Core.OpCode)
+ case IMG_COPYBITS_ID:
{
- case IMG_SPRITE_ID:
+ if (OpSize >= sizeof(IMG_OP_COPYBITS))
{
- if (OpSize >= sizeof(IMG_OP_SPRITE))
- cCmdSetIMGData(pImage->Sprite.DataAddr, pImage);
+ IMG_OP_COPYBITS * pCB = &(pImage->CopyBits);
+ cCmdResolveBitmapMode(pCB->CopyOptions, &invertMode, &logicalMode, &fillMode);
+ cCmdCopyBitMapBits(
+ (cCmdResolveValue(pCB->Dst.X) + Pt.X),
+ (cCmdResolveValue(pCB->Dst.Y) + Pt.Y),
+ cCmdResolveValue((pCB->Src.Pt.X)),
+ cCmdResolveValue((pCB->Src.Pt.Y)),
+ cCmdResolveValue((pCB->Src.Width)),
+ cCmdResolveValue((pCB->Src.Height)),
+ (IMG_OP_SPRITE*)cCmdGetIMGData(cCmdResolveValue(pCB->DataAddr)),
+ invertMode, logicalMode, fillMode);
}
- break;
+ }
+ break;
- case IMG_VARMAP_ID:
+ case IMG_LINE_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_LINE))
{
- if (OpSize >= sizeof(IMG_OP_VARMAP))
- cCmdSetIMGData(pImage->VarMap.DataAddr, pImage);
+ IMG_OP_LINE * pL = &(pImage->Line);
+ cCmdResolveDrawingMode(pL->CopyOptions, &pixelMode, &fillMode); //JJR
+ cCmdDrawLine(
+ (cCmdResolveValue(pL->Pt1.X)+Pt.X),
+ (cCmdResolveValue(pL->Pt1.Y)+Pt.Y),
+ (cCmdResolveValue(pL->Pt2.X)+Pt.X),
+ (cCmdResolveValue(pL->Pt2.Y)+Pt.Y),
+ pixelMode //JJR
+ );
}
- break;
+ }
+ break;
- case IMG_COPYBITS_ID:
+ case IMG_RECTANGLE_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_RECT))
{
- if (OpSize >= sizeof(IMG_OP_COPYBITS))
- {
- IMG_OP_COPYBITS * pCB = &(pImage->CopyBits);
- cCmdCopyBitMapBits(
- (cCmdResolveValue(pCB->Dst.X) + Pt.X),
- (cCmdResolveValue(pCB->Dst.Y) + Pt.Y),
- cCmdResolveValue((pCB->Src.Pt.X)),
- cCmdResolveValue((pCB->Src.Pt.Y)),
- cCmdResolveValue((pCB->Src.Width)),
- cCmdResolveValue((pCB->Src.Height)),
- (IMG_OP_SPRITE*)cCmdGetIMGData(cCmdResolveValue(pCB->DataAddr)));
- }
+ IMG_OP_RECT * pR = &(pImage->Rect);
+ cCmdResolveDrawingMode(pR->CopyOptions, &pixelMode, &fillMode); //JJR
+ cCmdDrawRect(
+ (SWORD)(cCmdResolveValue(pR->Pt.X)+Pt.X),
+ (SWORD)(cCmdResolveValue(pR->Pt.Y)+Pt.Y),
+ (SWORD)(cCmdResolveValue(pR->Width)),
+ (SWORD)(cCmdResolveValue(pR->Height)),
+ pixelMode, fillMode //JJR
+ );
}
- break;
+ }
+ break;
- case IMG_LINE_ID:
+ case IMG_CIRCLE_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_CIRCLE))
{
- if (OpSize >= sizeof(IMG_OP_LINE))
- {
- IMG_OP_LINE * pL = &(pImage->Line);
- cCmdDrawLine(
- (cCmdResolveValue(pL->Pt1.X)+Pt.X),
- (cCmdResolveValue(pL->Pt1.Y)+Pt.Y),
- (cCmdResolveValue(pL->Pt2.X)+Pt.X),
- (cCmdResolveValue(pL->Pt2.Y)+Pt.Y)
- );
- }
+ IMG_OP_CIRCLE * pC = &(pImage->Circle);
+ cCmdResolveDrawingMode(pC->CopyOptions, &pixelMode, &fillMode); //JJR
+ cCmdDrawCircle(
+ (SWORD)(cCmdResolveValue(pC->Pt.X)+Pt.X),
+ (SWORD)(cCmdResolveValue(pC->Pt.Y)+Pt.Y),
+ (SWORD)(cCmdResolveValue(pC->Radius)),
+ pixelMode, fillMode //JJR
+ );
}
- break;
+ }
+ break;
- case IMG_RECTANGLE_ID:
+ case IMG_PIXEL_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_PIXEL))
{
- if (OpSize >= sizeof(IMG_OP_LINE))
- {
- IMG_OP_RECT * pL = &(pImage->Rect);
- cCmdDrawRect(
- (SWORD)(cCmdResolveValue(pL->Pt.X)+Pt.X),
- (SWORD)(cCmdResolveValue(pL->Pt.Y)+Pt.Y),
- (SWORD)(cCmdResolveValue(pL->Width)),
- (SWORD)(cCmdResolveValue(pL->Height))
+ cCmdResolveDrawingMode(pImage->Pixel.CopyOptions, &pixelMode, &fillMode); //JJR
+ cCmdSetPixel(
+ (cCmdResolveValue(pImage->Pixel.Pt.X) + Pt.X),
+ (cCmdResolveValue(pImage->Pixel.Pt.Y) + Pt.Y),
+ pixelMode //JJR
);
- }
}
- break;
+ }
+ break;
- case IMG_PIXEL_ID:
+ case IMG_NUMBOX_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_NUMBOX))
{
- if (OpSize >= sizeof(IMG_OP_PIXEL))
- {
- cCmdSetPixel(
- (cCmdResolveValue(pImage->Pixel.Pt.X) + Pt.X),
- (cCmdResolveValue(pImage->Pixel.Pt.Y) + Pt.Y),
- TRUE);
- }
+ UBYTE NumStr[20];
+ IMG_OP_NUMBOX * pNB = &(pImage->NumBox);
+ sprintf((PSZ)NumStr, "%d", cCmdResolveValue(pNB->Value));
+ cCmdResolveBitmapMode(pNB->CopyOptions, &invertMode, &logicalMode, &fillMode);
+ cCmdDrawString(
+ NumStr,
+ (UBYTE) (cCmdResolveValue(pNB->Pt.X) + Pt.X),
+ (UBYTE) (cCmdResolveValue(pNB->Pt.Y) + Pt.Y),
+ invertMode, logicalMode, fillMode //JJR
+ );
}
- break;
+ }
+ break;
- case IMG_NUMBOX_ID:
+ case IMG_ELLIPSE_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_ELLIPSE))
{
- if (OpSize >= sizeof(IMG_OP_NUMBOX))
- {
- UBYTE NumStr[20];
- IMG_OP_NUMBOX * pNB = &(pImage->NumBox);
- sprintf((PSZ)NumStr, "%d", cCmdResolveValue(pNB->Value));
- cCmdDrawString(
- NumStr,
- (UBYTE) (cCmdResolveValue(pNB->Pt.X) + Pt.X),
- (UBYTE) (cCmdResolveValue(pNB->Pt.Y) + Pt.Y));
- }
+ IMG_OP_ELLIPSE * pE = &(pImage->Ellipse);
+ cCmdResolveDrawingMode(pE->CopyOptions, &pixelMode, &fillMode); //JJR
+ cCmdDrawEllipse(
+ (SWORD)(cCmdResolveValue(pE->Pt.X)+Pt.X),
+ (SWORD)(cCmdResolveValue(pE->Pt.Y)+Pt.Y),
+ (SWORD)(cCmdResolveValue(pE->Radius1)),
+ (SWORD)(cCmdResolveValue(pE->Radius2)),
+ pixelMode, fillMode //JJR
+ );
}
- break;
+ }
+ break;
- case IMG_DESCRIPTION_ID:
+ case IMG_POLYGON_ID:
+ {
+ if (OpSize >= sizeof(IMG_OP_POLYGON))
{
- //No-op
+ IMG_OP_POLYGON * pP = &(pImage->Polygon);
+ cCmdResolveDrawingMode(pP->CopyOptions, &pixelMode, &fillMode); //JJR
+ // resolve all the values in the struct
+ for(int i=0;i<pP->Count; i++) {
+ pP->Points[i].X = (SWORD)(cCmdResolveValue(pP->Points[i].X)+Pt.X);
+ pP->Points[i].Y = (SWORD)(cCmdResolveValue(pP->Points[i].Y)+Pt.Y);
+ }
+ cCmdDrawPolygon(pP->Points, pP->Count, pixelMode, fillMode);
}
- break;
+ }
+ break;
- default:
+ case IMG_DESCRIPTION_ID:
+ {
+ switch( pImage->Desc.Options )
{
- //Unrecognized opcode, pass an error back to the user.
- DStatus = ERR_FILE;
+ case DESC_FONTOUT :
+ cCmdDrawFont((IMG_OP_SPRITE*)cCmdGetIMGData(1), pImage->Desc.Width,
+ pImage->Desc.Height, Pt.X, Pt.Y, gFontDir, gFontWrap, gInvertMode,
+ gLogicalMode, gFillMode);
+ break;
}
- break;
}
+ break;
- DataSize -= OpSize;
- pImage = (IMG_OP_UNION*) ((UBYTE*)pImage + OpSize);
+ default:
+ {
+ //Unrecognized opcode, pass an error back to the user.
+ DStatus = ERR_FILE;
+ }
+ break;
}
- pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
+ DataSize -= OpSize;
+ pImage = (IMG_OP_UNION*) ((UBYTE*)pImage + OpSize);
}
+ gpPassedImgVars = NULL;
+ memset(gpImgData,0,sizeof(gpImgData));
+ pMapDisplay->UpdateMask |= SCREEN_BIT(SCREEN_BACKGROUND);
+ return DStatus;
+}
- // Set return value, close file and return
- *pReturnVal = DStatus;
+void cCmdDrawPictureFromFile(UBYTE *pFilename, IMG_PT* pPoint, SLONG* pVars, ULONG Options, SBYTE * pReturnVal)
+{
+ LOADER_STATUS LStatus;
+ ULONG DataSize;
+ UBYTE ImageHandle;
+ IMG_OP_UNION * pImage;
+
+ //Open the file in memory map mode. return if failure.
+ LStatus = pMapLoader->pFunc(OPENREADLINEAR, pFilename, (UBYTE*)(&pImage), &DataSize);
+ ImageHandle = LOADER_HANDLE(LStatus);
+
+ //If error opening file, give up and write loader status back to user.
+ if (LOADER_ERR(LStatus) != SUCCESS || pImage == NULL)
+ {
+ *pReturnVal = (SBYTE)(LOADER_ERR_BYTE(LStatus));
+ return;
+ }
+ //Else, start interpretting the file
+ else
+ {
+ *pReturnVal = cCmdDrawPictureHelper(&pImage, pPoint, pVars, DataSize, Options);
+ }
pMapLoader->pFunc(CLOSE, &ImageHandle, NULL, NULL);
+}
+
+//-----------------------------------------------------------------
+//cCmdWrapDrawPicture
+//ArgV[0]: (Function return) Status Byte, SBYTE
+//ArgV[1]: Left Top (IMG_PT *)
+//ArgV[2]: Filename, CStr
+//ArgV[3]: Variables, array of I32
+//ArgV[4]: Options (ULONG)
+NXT_STATUS cCmdWrapDrawPicture(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE *)ArgV[0];
+ IMG_PT* pPt = (IMG_PT*)ArgV[1];
+ ULONG Options = *(ULONG *)ArgV[4];
+
+ // count the variables
+ gPassedVarsCount = DV_ARRAY[*(DV_INDEX *)(ArgV[3])].Count;
+
+ //Resolve array argument
+ ArgV[2] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[2]));
+ ArgV[3] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[3]));
+
+ cCmdDrawPictureFromFile((UBYTE *)ArgV[2], pPt, (SLONG *)ArgV[3], Options, pReturnVal);
+
+ return (NO_ERR);
+}
+
+//-----------------------------------------------------------------
+//cCmdWrapDrawPictureArray
+//ArgV[0]: (Function return) Status Byte, SBYTE
+//ArgV[1]: Left Top (IMG_PT *)
+//ArgV[2]: Data, array of U8
+//ArgV[3]: Variables, array of I32
+//ArgV[4]: Options (ULONG)
+NXT_STATUS cCmdWrapDrawPictureArray(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE *)ArgV[0];
+ IMG_PT* pPt = (IMG_PT *)ArgV[1];
+ DV_INDEX DVIndex = *(DV_INDEX*)ArgV[2];
+ ULONG Options = *(ULONG *)ArgV[4];
+ ULONG DataSize = DV_ARRAY[DVIndex].Count;
+ IMG_OP_UNION* pImage;
+
+ // count the variables
+ gPassedVarsCount = DV_ARRAY[*(DV_INDEX *)(ArgV[3])].Count;
+
+ //Resolve array argument
+ pImage = (IMG_OP_UNION*)cCmdDVPtr(DVIndex);
+ ArgV[3] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[3])); // pVar
+
+ *pReturnVal = cCmdDrawPictureHelper((IMG_OP_UNION**)&pImage, pPt, (SLONG*)ArgV[3], DataSize, Options);
return (NO_ERR);
}
//-----------------------------------------------------------------
-// cCmdDrawLine - draw a line. All clipping is done by the set pixel function.
+//cCmdWrapDrawFont
+//ArgV[0]: (Function return) Status Byte, SBYTE
+//ArgV[1]: Left Top (IMG_PT *)
+//ArgV[2]: FontFilename, CStr
+//ArgV[3]: Text, CStr
+//ArgV[4]: Options (ULONG)
+NXT_STATUS cCmdWrapDrawFont(UBYTE * ArgV[])
+{
+ SBYTE * pReturnVal = (SBYTE *)ArgV[0];
+ IMG_PT * pPt = (IMG_PT*)ArgV[1];
+ ULONG Options = *(ULONG *)ArgV[4];
+
+ // count the number of characters
+ gPassedVarsCount = DV_ARRAY[*(DV_INDEX *)(ArgV[3])].Count;
+
+ //Resolve array arguments
+ ArgV[2] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[2]));
+ ArgV[3] = (UBYTE*)cCmdDVPtr(*(DV_INDEX *)(ArgV[3]));
+
+ if (strlen((PSZ)ArgV[2]) == 0) {
+ // if font filename is empty then use draw text instead
+ cCmdDrawTextHelper(Options, ArgV[3], pPt);
+ // Set return value
+ *pReturnVal = NO_ERR;
+ return NO_ERR;
+ }
+ else
+ {
+ // count the variables
+ gPassedVarsCount = MIN(strlen((PSZ)ArgV[3]), 256);
+ // copy data from input string into SLONG* array
+ SLONG Vars[256];
+ for(int i=0; i<256;i++) {
+ if (i < gPassedVarsCount)
+ Vars[i] = ArgV[3][i];
+ else
+ Vars[i] = 0;
+ }
+ cCmdDrawPictureFromFile((UBYTE *)ArgV[2], pPt, (SLONG*)Vars, Options, pReturnVal);
+ return (NO_ERR);
+ }
+}
+
+//-----------------------------------------------------------------
+// cCmdDrawLine - draw a line. Line is clipped to screen boundaries.
void cCmdDrawLine(
SLONG x1,
SLONG y1,
SLONG x2,
- SLONG y2)
-{
- SLONG d,x,y,ax,ay,sx,sy,dx,dy;
-
- // Initialize variables
- dx = x2-x1; ax = ABS(dx)<<1; sx = SGN(dx);
- dy = y2-y1; ay = ABS(dy)<<1; sy = SGN(dy);
- x = x1;
- y = y1;
- if (ax>ay)
- { /* x dominant */
- d = ay-(ax>>1);
- for (;;)
+ SLONG y2,
+ UBYTE PixelMode) //JJR
+{
+ SLONG tx, ty; //JJR
+ SLONG dx, dy; //JJR
+
+ dx = x2-x1; //JJR
+ dy = y2-y1; //JJR
+
+ //Clip line ends vertically - easier if y1<y2:
+ if (y1 > y2) {tx=x1; x1=x2; x2=tx;
+ ty=y1; y1=y2; y2=ty;}
+
+ //Is line completely off screen?
+ if (y2<0 || y1>=DISPLAY_HEIGHT) return;
+
+ //Trim y1 end:
+ if (y1 < 0)
+ {
+ if (dx && dy)
+ x1 = x1 + (((0-y1)*dx)/dy);
+ y1 = 0;
+ }
+ //Trim y2 end:
+ if (y2 > DISPLAY_HEIGHT-1)
+ {
+ if (dx && dy)
+ x2 = x2 - (((y2-(DISPLAY_HEIGHT-1))*dx)/dy);
+ y2 = DISPLAY_HEIGHT-1;
+ }
+
+ //Clip horizontally - easier if x1<x2
+ if (x1 > x2) {tx=x1; x1=x2; x2=tx;
+ ty=y1; y1=y2; y2=ty;}
+
+ //Is line completely off screen?
+ if (x2<0 || x1>=DISPLAY_WIDTH) return;
+
+ //Trim x1 end:
+ if (x1 < 0)
{
- cCmdSetPixel(x, y, TRUE);
- if (x==x2)
- return;
- if (d>=0)
- {
- y += sy;
- d -= ax;
- }
- x += sx;
- d += ay;
+ if (dx && dy)
+ y1 = y1 + (((0-x1)*dy)/dx);
+ x1 = 0;
}
- }
- else
- { /* y dominant */
- d = ax-(ay>>1);
- for (;;)
+ //Trim x2 end:
+ if (x2 > DISPLAY_WIDTH-1)
{
- cCmdSetPixel(x, y, TRUE);
- if (y==y2)
- return;
- if (d>=0)
+ if (dx && dy)
+ y2 = y2 - (((x2-(DISPLAY_WIDTH-1))*dy)/dx);
+ x2 = DISPLAY_WIDTH-1;
+ }
+
+ if (x1 == x2) {
+ // vertical line or a single point
+ if (y1 == y2)
+ //cCmdSetPixel(x1, y1, Set); //JJR
+ pMapDisplay->pFunc(DISPLAY_PIXEL, (UBYTE)PixelMode, (UBYTE)x1, (UBYTE)TRANSLATE_Y(y1), 0, 0); //JJR
+ else
+ {
+ //pMapDisplay->pFunc(DISPLAY_VERTICAL_LINE, Set, x1, TRANSLATE_Y(y1), 0, TRANSLATE_Y(y2)); //JJR
+ pMapDisplay->pFunc(DISPLAY_VERTICAL_LINE, PixelMode, x1, TRANSLATE_Y(y1), 0, TRANSLATE_Y(y2)); //JJR
+ }
+ }
+ else if (y1 == y2) {
+
+ // horizontal line (single point already dealt with)
+ pMapDisplay->pFunc(DISPLAY_HORIZONTAL_LINE, PixelMode, x1, TRANSLATE_Y(y1), x2, 0); //JJR
+ }
+ else {
+ SLONG d,x,y,ax,ay,sx,sy,dx,dy;
+ // Initialize variables
+ dx = x2-x1; ax = ABS(dx)<<1; sx = SGN(dx);
+ dy = y2-y1; ay = ABS(dy)<<1; sy = SGN(dy);
+ x = x1;
+ y = y1;
+ if (ax>ay)
+ { // x dominant
+ d = ay-(ax>>1);
+ for (;;)
{
+ //cCmdSetPixel(x, y, Set); //JJR
+ pMapDisplay->pFunc(DISPLAY_PIXEL, (UBYTE)PixelMode, (UBYTE)x, (UBYTE)TRANSLATE_Y(y), 0, 0); //JJR
+ if (x==x2)
+ return;
+ if (d>=0)
+ {
+ y += sy;
+ d -= ax;
+ }
x += sx;
- d -= ay;
+ d += ay;
+ }
+ }
+ else
+ { // y dominant
+ d = ax-(ay>>1);
+ for (;;)
+ {
+ //cCmdSetPixel(x, y, Set); //JJR
+ pMapDisplay->pFunc(DISPLAY_PIXEL, (UBYTE)PixelMode, (UBYTE)x, (UBYTE)TRANSLATE_Y(y), 0, 0); //JJR
+ if (y==y2)
+ return;
+ if (d>=0)
+ {
+ x += sx;
+ d -= ay;
+ }
+ y += sy;
+ d += ax;
}
- y += sy;
- d += ax;
}
}
}
//-----------------------------------------------------------------
-// cCmdDrawRect - draw a rectangle. All clipping is done by the set pixel function.
+// cCmdDrawRect - draw a rectangle.
void cCmdDrawRect(
SLONG left,
SLONG bottom,
SLONG width,
- SLONG height)
+ SLONG height,
+ UBYTE PixelMode, //JJR
+ UBYTE FillMode) //JJR
+{
+ SLONG x1, y1;
+ SLONG x2, y2;
+ SLONG t;
+
+ x1 = left;
+ x2 = left + width;
+/*
+ if (width > 0)
+ x2 = left + width - 1;
+ else if (width < 0)
+ x2 = left + width + 1;
+ else
+ x2 = x1;
+*/
+ y1 = bottom;
+ y2 = bottom + height;
+/*
+ if (height > 0)
+ y2 = bottom + height - 1;
+ else if (height < 0)
+ y2 = bottom + height + 1;
+ else
+ y2 = y1;
+*/
+
+ if (x1>x2) {t = x1; x1 = x2; x2 = t;}
+ if (y1>y2) {t = y1; y1 = y2; y2 = t;}
+
+ if (y2 == y1 || x2 == x1) {
+ // height == 0 so draw a single pixel horizontal line OR
+ // width == 0 so draw a single pixel vertical line
+ cCmdDrawLine(x1, y1, x2, y2, PixelMode);
+ return;
+ }
+ // rectangle has abs(width) or abs(height) >= 1
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ if (x2<0 || y2<0 || x1>DISPLAY_WIDTH-1 || y1>DISPLAY_HEIGHT-1) return;
+ if (x1<0) x1=0;
+ if (y1<0) y1=0;
+ if (x2>DISPLAY_WIDTH-1) x2=DISPLAY_WIDTH-1;
+ if (y2>DISPLAY_HEIGHT-1) y2=DISPLAY_HEIGHT-1;
+ pMapDisplay->pFunc(DISPLAY_FILL_REGION, PixelMode, x1, TRANSLATE_Y(y2), x2-x1+1, y2-y1+1);
+ }
+ else
+ {
+ //Use the full line drawing functions rather than horizontal/vertical
+ //functions so these get clipped properly. These will fall straight
+ //through to the faster functions anyway.
+ //Also don't re-draw parts of slim rectangles since XOR might be on.
+
+ cCmdDrawLine(x1, y1, x2, y1, PixelMode);
+ if (y2>y1)
+ {
+ cCmdDrawLine(x1, y2, x2, y2, PixelMode);
+ if (y2 > y1+1)
+ {
+ cCmdDrawLine(x2, y1+1, x2, y2-1, PixelMode);
+ if (x2>x1)
+ cCmdDrawLine(x1, y1+1, x1, y2-1, PixelMode);
+ }
+ }
+ }
+
+}
+
+void cCmdDrawPolygon(IMG_PT* points, UWORD polyCorners, UBYTE PixelMode, UBYTE FillMode)
{
- SLONG right = left + width;
- SLONG top = bottom + height;
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ int nodes;
+ int nodeX[MAX_CORNERS];
+ int pixelY;
+ int i, j;
+ int swap;
+ int IMAGE_TOP = -1;
+ int IMAGE_BOTTOM = 1024;
+ int IMAGE_RIGHT = -1;
+ int IMAGE_LEFT = 1024;
+ // calculate maximum and minimum X and Y coordinate values
+ for(i=0;i<polyCorners;i++) {
+ int tmpY = points[i].Y;
+ int tmpX = points[i].X;
+ if (tmpY>IMAGE_TOP) IMAGE_TOP = tmpY;
+ if (tmpY<IMAGE_BOTTOM) IMAGE_BOTTOM = tmpY;
+ if (tmpX>IMAGE_RIGHT) IMAGE_RIGHT = tmpX;
+ if (tmpX<IMAGE_LEFT) IMAGE_LEFT = tmpX;
+ }
+
+ // Loop through the rows of the image.
+ for (pixelY=IMAGE_BOTTOM; pixelY<IMAGE_TOP; pixelY++) {
+ // Build a list of nodes.
+ nodes=0; j=polyCorners-1;
+ for (i=0; i<polyCorners; i++) {
+ IMG_PT pI, pJ;
+ pI = points[i];
+ pJ = points[j];
+ if ((pI.Y<pixelY && pJ.Y>=pixelY) ||
+ (pJ.Y<pixelY && pI.Y>=pixelY)) {
+ nodeX[nodes++]=(pI.X+(pixelY-pI.Y)*(pJ.X-pI.X)/(pJ.Y-pI.Y));
+ }
+ j=i;
+ }
+
+ // Sort the nodes, via a simple “Bubble” sort.
+ i=0;
+ while (i<nodes-1) {
+ if (nodeX[i]>nodeX[i+1]) {
+ swap=nodeX[i];
+ nodeX[i]=nodeX[i+1];
+ nodeX[i+1]=swap;
+ if (i) i--;
+ }
+ else
+ i++;
+ }
- // Draw the four line segments
- cCmdDrawLine(left, top, right, top);
- cCmdDrawLine(right, top, right, bottom);
- cCmdDrawLine(right, bottom, left, bottom);
- cCmdDrawLine(left, bottom, left, top);
+ // Fill the pixels between node pairs.
+ for (i=0; i<nodes; i+=2) {
+ if (nodeX[i ]>=IMAGE_RIGHT) break;
+ if (nodeX[i+1]> IMAGE_LEFT) {
+ if (nodeX[i ]< IMAGE_LEFT) nodeX[i ]=IMAGE_LEFT;
+ if (nodeX[i+1]> IMAGE_RIGHT) nodeX[i+1]=IMAGE_RIGHT;
+ cCmdDrawLine(nodeX[i], pixelY, nodeX[i+1], pixelY, PixelMode);
+ }
+ }
+ }
+ }
+ else
+ {
+ for(int i = 0, j = polyCorners-1; i<polyCorners; j=i++) {
+ IMG_PT pI, pJ;
+ pI = points[i];
+ pJ = points[j];
+ cCmdDrawLine(pI.X, pI.Y, pJ.X, pJ.Y, PixelMode);
+ }
+ }
}
+//-----------------------------------------------------------------
+// cCmdDrawEllipse - draw an ellipse. All clipping is done by the set pixel function.
+void cCmdDrawEllipse(SWORD xc, SWORD yc, SWORD a, SWORD b, UBYTE PixelMode, UBYTE FillMode) //JCH
+{ /* e(x,y) = b^2*x^2 + a^2*y^2 - a^2*b^2 */
+ SWORD x = 0, y = b;
+ SWORD rx = x, ry = y;
+ UWORD width = 1;
+ UWORD height = 1;
+ SLONG a2 = (SLONG)a*a;
+ SLONG b2 = (SLONG)b*b;
+ SLONG crit1 = -(a2/4 + a%2 + b2);
+ SLONG crit2 = -(b2/4 + b%2 + a2);
+ SLONG crit3 = -(b2/4 + b%2);
+ SLONG t = -a2*y; /* e(x+1/2,y-1/2) - (a^2+b^2)/4 */
+ SLONG dxt = 2*b2*x, dyt = -2*a2*y;
+ SLONG d2xt = 2*b2, d2yt = 2*a2;
+
+ if (b == 0) {
+ cCmdDrawRect(xc-a, yc, 2*a, 0, PixelMode, FillMode);
+ return;
+ }
+ if (a == 0) {
+ cCmdDrawRect(xc, yc-b, 0, 2*b, PixelMode, FillMode);
+ return;
+ }
+
+ while (y>=0 && x<=a)
+ {
+ if (FillMode != DRAW_SHAPE_FILLED)
+ {
+ cCmdSetPixel(xc+x, yc+y, PixelMode);
+ if (x!=0 || y!=0)
+ cCmdSetPixel(xc-x, yc-y, PixelMode);
+ if (x!=0 && y!=0)
+ {
+ cCmdSetPixel(xc+x, yc-y, PixelMode);
+ cCmdSetPixel(xc-x, yc+y, PixelMode);
+ }
+ }
+ if (t + b2*x <= crit1 || /* e(x+1,y-1/2) <= 0 */
+ t + a2*y <= crit3) /* e(x+1/2,y) <= 0 */
+ {
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ if (height == 1)
+ ; /* draw nothing */
+ else if (ry*2+1 > (height-1)*2)
+ {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, height-1, PixelMode, FillMode);
+ cCmdDrawRect(xc-rx, yc+ry, width-1, -(height-1), PixelMode, FillMode);
+ ry -= height-1;
+ height = 1;
+ }
+ else
+ {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, ry*2, PixelMode, FillMode);
+ ry -= ry;
+ height = 1;
+ }
+ rx++;
+ width += 2;
+ }
+ x++;
+ dxt += d2xt;
+ t += dxt;
+ }
+ else if (t - a2*y > crit2) /* e(x+1/2,y-1) > 0 */
+ {
+ y--;
+ dyt += d2yt;
+ t += dyt;
+ if (FillMode == DRAW_SHAPE_FILLED)
+ height++;
+ }
+ else
+ {
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ if (ry*2+1 > height*2)
+ {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, height-1, PixelMode, FillMode);
+ cCmdDrawRect(xc-rx, yc+ry, width-1, -(height-1), PixelMode, FillMode);
+ }
+ else
+ {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, ry*2, PixelMode, FillMode);
+ }
+ width += 2;
+ ry -= height;
+ height = 1;
+ rx++;
+ }
+ x++;
+ dxt += d2xt;
+ t += dxt;
+ y--;
+ dyt += d2yt;
+ t += dyt;
+ }
+ }
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ if (ry > height) {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, height-1, PixelMode, FillMode);
+ cCmdDrawRect(xc-rx, yc+ry, width-1, -(height-1), PixelMode, FillMode);
+ }
+ else {
+ cCmdDrawRect(xc-rx, yc-ry, width-1, ry*2, PixelMode, FillMode);
+ }
+ }
+}
+
+//-----------------------------------------------------------------
+// cCmdDrawCircle - draw a circle. All clipping is done by the set pixel function.
+//void cCmdDrawCircle(SLONG cx, SLONG cy, SLONG radius, UBYTE Set) //JJR
+void cCmdDrawCircle(SLONG cx, SLONG cy, SLONG radius, UBYTE PixelMode, UBYTE FillMode) //JJR
+{
+ cCmdDrawEllipse(cx, cy, radius, radius, PixelMode, FillMode);
+}
+/*
+//-----------------------------------------------------------------
+// cCmdDrawCircle - draw a circle. All clipping is done by the set pixel function.
+//void cCmdDrawCircle(SLONG cx, SLONG cy, SLONG radius, UBYTE Set) //JJR
+void cCmdDrawCircle(SLONG cx, SLONG cy, SLONG radius, UBYTE PixelMode, UBYTE FillMode) //JJR
+{
+ SLONG f, ddF_x, ddF_y, x, y;
+ SLONG ox, oy; //JJR
+
+ f = 1 - radius;
+ ddF_x = 0;
+ ddF_y = -2 * radius;
+ x = 0;
+ y = abs(radius); //JJR
+
+//JJR
+ if (y==0)
+ {
+ cCmdSetPixel(cx, cy + radius, PixelMode);
+ return;
+ }
+
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ cCmdDrawLine(cx-radius, cy, cx+radius, cy, PixelMode);
+ }
+ else
+ {
+ cCmdSetPixel(cx + radius, cy, PixelMode);
+ cCmdSetPixel(cx - radius, cy, PixelMode);
+ }
+
+ if (FillMode != DRAW_SHAPE_FILLED || y==1)
+ {
+ cCmdSetPixel(cx, cy + radius, PixelMode);
+ cCmdSetPixel(cx, cy - radius, PixelMode);
+ }
+
+ if (y==1) return;
+
+
+ while (x < y)
+ {
+ ox = x; //JJR
+ oy = y; //JJR
+ if(f >= 0)
+ {
+ y--;
+ ddF_y += 2;
+ f += ddF_y;
+ }
+ x++;
+ ddF_x += 2;
+ f += ddF_x + 1;
+
+//JJR
+ //Need to avoid duplicating pixels if drawing with XOR:
+
+ if (FillMode == DRAW_SHAPE_FILLED)
+ {
+ //Fill by drawing successive horizontal lines above and below
+ //a horizontal centre line.
+ if (x <= y)
+ {
+ cCmdDrawLine(cx-y, cy+x, cx+y, cy+x, PixelMode);
+ cCmdDrawLine(cx-y, cy-x, cx+y, cy-x, PixelMode);
+ }
+ //Only draw horizontal lines from the top and bottom if:
+ //i. The line doesn't overlap with the one just drawn, and the top
+ // curve has just stepped down a pixel or:
+ //ii. A line wasn't just drawn and the loop is about to exit.
+ if ((x<oy && y!=oy) || (x>y && ox<oy))
+ {
+ cCmdDrawLine(cx-ox, cy+oy, cx+ox, cy+oy, PixelMode);
+ cCmdDrawLine(cx-ox, cy-oy, cx+ox, cy-oy, PixelMode);
+ }
+ }
+ else
+ {
+ if (x <= y)
+ {
+ cCmdSetPixel(cx + x, cy + y, PixelMode);
+ cCmdSetPixel(cx - x, cy + y, PixelMode);
+ cCmdSetPixel(cx + x, cy - y, PixelMode);
+ cCmdSetPixel(cx - x, cy - y, PixelMode);
+ }
+ if (x < y)
+ {
+ cCmdSetPixel(cx + y, cy + x, PixelMode);
+ cCmdSetPixel(cx - y, cy + x, PixelMode);
+ cCmdSetPixel(cx + y, cy - x, PixelMode);
+ cCmdSetPixel(cx - y, cy - x, PixelMode);
+ }
+ }
+ }
+}
+*/
#ifndef DISPLAY_REALWIDTH
#define DISPLAY_REALWIDTH DISPLAY_WIDTH
@@ -687,20 +1383,21 @@ void cCmdCopyBitMapBits(
SLONG src_y, // starting pixel y coordinate from source map
SLONG src_width, // width in pixels to the right (negative implies to the left)
SLONG src_height, // height in pixels down (negative implies down)
- IMG_OP_SPRITE * pSprite)
+ IMG_OP_SPRITE * pSprite, UBYTE InvertMode, UBYTE LogicalMode, UBYTE FillMode)
{
SLONG dy; // Location in the destination pixmap , the screen that is
SLONG sx;
SLONG sy; // Location in the source pixmap.
SLONG trim, last_x, last_y, rowbytes;
UBYTE *pSrcByte;
+ UBYTE srcByte; //JJR
UBYTE *pDstBytes;
UBYTE *pDstByte, *pFirstDstByte;
UBYTE *pLastDstByte;
- UBYTE bit_y, not_bit_y;
+ UBYTE bit_y; //JJR
UBYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
- // Data in the image file is row major 8 pixels per byte.top row first.
+ // Data in the image file is row major 8 pixels per byte. top row first.
// src and dst coordinates treat the bottom left most pixel as (0,0)
if (!pSprite || pSprite->OpCode!=IMG_SPRITE_ID)
@@ -750,17 +1447,56 @@ void cCmdCopyBitMapBits(
for (dy = dst_y; dy > last_y; dy--)
{
sx = src_x;
- bit_y = masks[7 - (dy & 0x07)];
- not_bit_y = ~ bit_y;
+ bit_y = masks[7 - (dy & 0x07)];
+ // not_bit_y = ~ bit_y; //JJR
pDstByte = pFirstDstByte;
pLastDstByte = pDstByte + (last_x - dst_x);
for (; pDstByte < pLastDstByte; pDstByte++)
{
- if ( *(pSrcByte + (sx >> 3)) & masks[sx & 0x07] ){
- *pDstByte |= bit_y;
- } else {
- *pDstByte &= not_bit_y;
+ //Read source byte:
+ //If fill mode is on, pretend the source bitmap is solid:
+ if (FillMode==DRAW_SHAPE_FILLED)
+ srcByte = 0xff;
+ else
+ srcByte = *(pSrcByte + (sx >> 3)); //JJR
+
+ //If invert mode is on, invert the source byte:
+ if (InvertMode==DRAW_BITMAP_INVERT) srcByte = ~srcByte; //JJR
+
+ //Test the pixel in the source byte:
+ if ( srcByte & masks[sx & 0x07] ) //JJR
+ {
+ //If pixel is set in source image:
+ switch (LogicalMode)
+ {
+ case DRAW_LOGICAL_AND:
+ break;
+ case DRAW_LOGICAL_XOR:
+ *pDstByte ^= bit_y;
+ break;
+ case DRAW_LOGICAL_OR:
+ case DRAW_LOGICAL_COPY:
+ default:
+ *pDstByte |= bit_y;
+ break;
+ }
}
+ else
+ {
+ //If pixel is clear in source image:
+ switch (LogicalMode)
+ {
+ case DRAW_LOGICAL_OR:
+ case DRAW_LOGICAL_XOR:
+ break;
+ case DRAW_LOGICAL_AND:
+ case DRAW_LOGICAL_COPY:
+ default:
+ *pDstByte &= ~bit_y;
+ break;
+ }
+ }
+//JJR
sx ++;
}
pSrcByte -= rowbytes;
@@ -772,15 +1508,15 @@ void cCmdCopyBitMapBits(
}
//-----------------------------------------------------------------
-// cCmdSetPixel - Set or clear a pixel based on Val
-void cCmdSetPixel(SLONG X, SLONG Y, ULONG Val)
+// cCmdSetPixel - Set, clear or invert a pixel based on PixelMode
+void cCmdSetPixel(SLONG X, SLONG Y, ULONG PixelMode)
{
Y = TRANSLATE_Y(Y);
- pMapDisplay->pFunc(DISPLAY_PIXEL, (UBYTE)Val, (UBYTE)X, (UBYTE)Y, 0, 0);
+ if (X>=0 && X<DISPLAY_WIDTH && Y>=0 && Y<DISPLAY_HEIGHT)
+ pMapDisplay->pFunc(DISPLAY_PIXEL, (UBYTE)PixelMode, (UBYTE)X, (UBYTE)Y, 0, 0);
}
-
//-----------------------------------------------------------------
//cCmdWrapSetScreenMode
//ArgV[0]: (Function return) Status code, SBYTE
@@ -791,27 +1527,68 @@ NXT_STATUS cCmdWrapSetScreenMode(UBYTE * ArgV[])
if (ScreenMode == RESTORE_NXT_SCREEN) {
cCmdRestoreDefaultScreen();
}
+ else if (ScreenMode == CLEAR_NXT_SCREEN) {
+ pMapDisplay->pFunc(DISPLAY_ERASE_ALL, 0, 0, 0, 0, 0);
+ }
// Set return value
*(SBYTE*)(ArgV[0]) = NO_ERR;
return NO_ERR;
}
-//------------------------------------------------------------------
-// cCmdClearScreenIfNeeded - Clear entire sceen buffer if explicitly requested or implicitly required.
-void cCmdClearScreenIfNeeded(ULONG DrawOptions)
+void cDirtyDisplay(ULONG* DrawOptions)
{
- //If we are the first drawing command, clear the screen and record that we've done so
+ //If we are the first drawing command mark the display as dirty
if (VarsCmd.DirtyDisplay == FALSE)
{
VarsCmd.DirtyDisplay = TRUE;
pMapUi->Flags &= ~UI_ENABLE_STATUS_UPDATE;
-
- //Override DrawOptions because we have to clear anyway
- DrawOptions = DRAW_OPT_CLEAR_WHOLE_SCREEN;
+
+ if (DrawOptions) {
+ //Override DrawOptions because we have to clear anyway
+ *DrawOptions = DRAW_OPT_CLEAR_WHOLE_SCREEN;
+ }
}
+}
+
+//
+//cCmdWrapDisplayExecuteFunction
+//ArgV[0]: (return) Status byte, SBYTE
+//ArgV[1]: UBYTE Cmd
+//ArgV[2]: UBYTE On
+//ArgV[3]: UBYTE X1
+//ArgV[4]: UBYTE Y1
+//ArgV[5]: UBYTE X2
+//ArgV[6]: UBYTE Y2
+//
+NXT_STATUS cCmdWrapDisplayExecuteFunction(UBYTE * ArgV[])
+{
+ cDirtyDisplay(NULL);
+ UBYTE Cmd = *(UBYTE*)(ArgV[1]);
+ UBYTE Y1 = *(UBYTE*)(ArgV[4]);
+ UBYTE Y2 = *(UBYTE*)(ArgV[6]);
+ if (Cmd != DISPLAY_CHAR)
+ Y1 = TRANSLATE_Y(Y1);
+ if (Cmd == DISPLAY_VERTICAL_LINE)
+ Y2 = TRANSLATE_Y(Y2);
+ pMapDisplay->pFunc(Cmd,
+ *(UBYTE*)(ArgV[2]),
+ *(UBYTE*)(ArgV[3]),
+ Y1,
+ *(UBYTE*)(ArgV[5]),
+ Y2);
+ *(SBYTE*)(ArgV[0]) = NO_ERR;
+ return (NO_ERR);
+}
+
+
+//------------------------------------------------------------------
+// cCmdClearScreenIfNeeded - Clear entire sceen buffer if explicitly requested or implicitly required.
+void cCmdClearScreenIfNeeded(ULONG DrawOptions)
+{
+ cDirtyDisplay(&DrawOptions);
- if (DRAW_OPT_CLEAR_MODE(DrawOptions))
+ if (cCmdResolveClearScreenMode(DrawOptions))
{
pMapDisplay->pFunc(DISPLAY_ERASE_ALL, 0, 0, 0, 0, 0);
@@ -827,10 +1604,12 @@ void cCmdClearScreenIfNeeded(ULONG DrawOptions)
// Properly uses 'Normal' display buffer to avoid conflicts with popup buffer
// Clips text at bottom and right hand edges of the screen buffer
//!!! Function copied and modified from cDisplayString
-void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y)
+//void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y) //JJR
+void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y, UBYTE InvertMode, UBYTE LogicalMode, UBYTE FillMode) //JJR
{
UBYTE *pSource;
UBYTE *pDestination;
+ UBYTE a;
FONT *pFont;
ULONG FontWidth;
ULONG Items;
@@ -868,7 +1647,37 @@ void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y)
pSource = (UBYTE*)&(pFont->Data[Item * FontWidth]);
while (FontWidth--)
{
- *pDestination = *pSource;
+//JJR
+// *pDestination = *pSource;
+
+ //Fetch a byte from the source bitmap:
+ //If fill mode is on, pretend the source bitmap is solid:
+ if (FillMode==DRAW_SHAPE_FILLED)
+ a = 0xff;
+ else
+ a = *pSource;
+
+ //Implement bitmap invert mode:
+ if (InvertMode==DRAW_BITMAP_INVERT) a = ~a;
+
+ //Implement bitmap logical mode when writing on screen:
+ switch (LogicalMode)
+ {
+ case DRAW_LOGICAL_OR:
+ *pDestination |= a;
+ break;
+ case DRAW_LOGICAL_AND:
+ *pDestination &= a;
+ break;
+ case DRAW_LOGICAL_XOR:
+ *pDestination ^= a;
+ break;
+ case DRAW_LOGICAL_COPY:
+ default:
+ *pDestination = a;
+ break;
+ }
+//JJR
pDestination++;
pSource++;
}
@@ -879,7 +1688,7 @@ void cCmdDrawString(UBYTE *pString, ULONG X, ULONG Y)
//------------------------------------------------------------------
// cCmdRestoreDefaultScreen - Restore to Default 'Running' screen
-void cCmdRestoreDefaultScreen(void)
+__ramfunc void cCmdRestoreDefaultScreen(void)
{
//If this program has taken over the display, reset it for the UI
if (VarsCmd.DirtyDisplay == TRUE)
@@ -891,4 +1700,338 @@ void cCmdRestoreDefaultScreen(void)
pMapUi->Flags |= UI_ENABLE_STATUS_UPDATE | UI_REDRAW_STATUS;
}
+ // restore default display state
+ pMapDisplay->Display = (UBYTE*)pMapDisplay->Normal;
+ pMapDisplay->Flags = DISPLAY_REFRESH | DISPLAY_ON;
}
+
+//------------------------------------------------------------------
+// cCmdResolveDrawingMode - extract the parameters that affect pixel, line and shape
+// drawing from the 'DrawingOptions' or 'CopyOptions' parameter.
+// Return FALSE for combinations that do nothing.
+
+UBYTE cCmdResolveDrawingMode(UWORD DrawingOptions, UBYTE* pPixelMode, UBYTE* pFillMode)
+{
+ DrawingOptions = cCmdResolveValue(DrawingOptions);
+ // Extract shape fill option:
+ if (DrawingOptions & DRAW_OPT_FILL_SHAPE)
+ *pFillMode = DRAW_SHAPE_FILLED;
+ else
+ *pFillMode = DRAW_SHAPE_HOLLOW;
+
+ // Extract pixel drawing options:
+ if (DrawingOptions & DRAW_OPT_INVERT)
+ {
+ //Drawing with white pixels:
+ switch (DrawingOptions & DRAW_OPT_LOGICAL_OPERATIONS)
+ {
+ //Only these cases do anything:
+ case DRAW_OPT_LOGICAL_COPY:
+ case DRAW_OPT_LOGICAL_AND:
+ *pPixelMode = DRAW_PIXELS_CLEAR;
+ return TRUE;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ //Drawing with black pixels:
+ switch (DrawingOptions & DRAW_OPT_LOGICAL_OPERATIONS)
+ {
+ //Only these cases do anything:
+ case DRAW_OPT_LOGICAL_COPY:
+ case DRAW_OPT_LOGICAL_OR:
+ *pPixelMode = DRAW_PIXELS_SET;
+ return TRUE;
+ case DRAW_OPT_LOGICAL_XOR:
+ *pPixelMode = DRAW_PIXELS_INVERT;
+ return TRUE;
+ default:
+ break;
+ }
+ }
+
+ // If no operation is required, set defaults and return FALSE.
+ // e.g. 'AND' on its own is meaningless for line drawing,
+ // 'INVERT + OR' and 'INVERT + XOR' do nothing either.
+
+ *pPixelMode = DRAW_PIXELS_SET;
+ *pFillMode = DRAW_SHAPE_HOLLOW;
+ return FALSE;
+}
+
+//------------------------------------------------------------------
+// cCmdResolveBitmapMode - extract the parameters that affect bitmap and text
+// drawing from the 'DrawingOptions' or 'CopyOptions' parameter.
+void cCmdResolveBitmapMode(UWORD DrawingOptions, UBYTE* pInvertMode, UBYTE* pLogicalMode, UBYTE* pFillMode)
+{
+ DrawingOptions = cCmdResolveValue(DrawingOptions);
+ //Extract bitmap inversion mode:
+ if (DrawingOptions & DRAW_OPT_INVERT)
+ *pInvertMode = DRAW_BITMAP_INVERT;
+ else
+ *pInvertMode = DRAW_BITMAP_PLAIN;
+
+ //Extract bitmap logical operation:
+ switch (DrawingOptions & DRAW_OPT_LOGICAL_OPERATIONS)
+ {
+ case DRAW_OPT_LOGICAL_OR:
+ *pLogicalMode = DRAW_LOGICAL_OR;
+ break;
+ case DRAW_OPT_LOGICAL_AND:
+ *pLogicalMode = DRAW_LOGICAL_AND;
+ break;
+ case DRAW_OPT_LOGICAL_XOR:
+ *pLogicalMode = DRAW_LOGICAL_XOR;
+ break;
+ case DRAW_OPT_LOGICAL_COPY:
+ default:
+ *pLogicalMode = DRAW_LOGICAL_COPY;
+ break;
+ }
+
+ // Extract shape fill option (overrides source bitmap with all pixels set):
+ if (DrawingOptions & DRAW_OPT_FILL_SHAPE)
+ *pFillMode = DRAW_SHAPE_FILLED;
+ else
+ *pFillMode = DRAW_SHAPE_HOLLOW;
+
+}
+
+//------------------------------------------------------------------
+// cCmdResolveFontOptions - extract the parameters that affect custom RIC font drawing
+// drawing from the 'DrawingOptions' parameter.
+void cCmdResolveFontOptions(UWORD DrawingOptions, UBYTE* pFontDir, UBYTE* pFontWrap)
+{
+ //Extract bitmap inversion mode:
+ if (DrawingOptions & DRAW_OPT_FONT_WRAP)
+ *pFontWrap = DRAW_FONT_WRAP_ON;
+ else
+ *pFontWrap = DRAW_FONT_WRAP_OFF;
+
+ //Extract bitmap logical operation:
+ switch (DrawingOptions & DRAW_OPT_FONT_DIRECTIONS)
+ {
+ case DRAW_OPT_FONT_DIR_L2RB:
+ *pFontDir = DRAW_FONT_DIR_L2RB;
+ break;
+ case DRAW_OPT_FONT_DIR_L2RT:
+ *pFontDir = DRAW_FONT_DIR_L2RT;
+ break;
+ case DRAW_OPT_FONT_DIR_R2LB:
+ *pFontDir = DRAW_FONT_DIR_R2LB;
+ break;
+ case DRAW_OPT_FONT_DIR_R2LT:
+ *pFontDir = DRAW_FONT_DIR_R2LT;
+ break;
+ case DRAW_OPT_FONT_DIR_B2TL:
+ *pFontDir = DRAW_FONT_DIR_B2TL;
+ break;
+ case DRAW_OPT_FONT_DIR_B2TR:
+ *pFontDir = DRAW_FONT_DIR_B2TR;
+ break;
+ case DRAW_OPT_FONT_DIR_T2BL:
+ *pFontDir = DRAW_FONT_DIR_T2BL;
+ break;
+ case DRAW_OPT_FONT_DIR_T2BR:
+ *pFontDir = DRAW_FONT_DIR_T2BR;
+ break;
+ default:
+ *pFontDir = DRAW_FONT_DIR_L2RB;
+ break;
+ }
+}
+
+//------------------------------------------------------------------
+// cCmdResolveClearScreenMode - extract the parameters that affect screen clearing
+// from the 'DrawingOptions' parameter.
+UBYTE cCmdResolveClearScreenMode(UWORD DrawingOptions)
+{
+ if (DrawingOptions & DRAW_OPT_CLEAR_SCREEN_MODES)
+ return TRUE;
+ else
+ return FALSE;
+}
+//JJR
+
+void cCmdDrawFont(IMG_OP_SPRITE *pSprite, SLONG sW, SLONG sH, SLONG startx, SLONG starty,
+ UBYTE fontDir, UBYTE fontWrap, UBYTE invertMode, UBYTE logicalMode, UBYTE fillMode)
+{
+ SWORD index; // index on id for output
+ SWORD xpos; // x-position for next output
+ SWORD ypos; // y-position for next output
+ SLONG sourcex; // X-Pos of pattern inside bitmap
+ SLONG sourcey; // Y-Pos of pattern inside bitmap
+ SLONG sourcew; // Width of pattern inside bitmap
+ SLONG sourceh; // Height of pattern inside bitmap
+ int destx; // X-Destination position on screen
+ int desty; // Y-Destination position on screen
+ SWORD stdw; // Standard font width
+ SWORD stdh; // Standard font height
+
+ if (!gpPassedImgVars) // exit early if we do not have parameters
+ return;
+
+ stdw = MIN( sW, DISPLAY_WIDTH ); // calculate the standard width
+ stdh = MIN( sH, DISPLAY_HEIGHT ); // calculate the standard height
+
+ index=0; // Reset the start position
+ xpos=startx; // Initial start position X
+ ypos=starty; // Initial start position Y
+
+ while( index < gPassedVarsCount )
+ {
+ // terminate the loop at our first null
+ if (gpPassedImgVars[index] == 0)
+ break;
+ sourcex=cCmdResolveValue(0xF200|index); // Get dynamic xpos of pattern
+ sourcey=cCmdResolveValue(0xF300|index); // Get dynamic ypos of pattern
+ sourcew=cCmdResolveValue(0xF400|index); // Get dynamic width of pattern
+ sourceh=cCmdResolveValue(0xF500|index); // Get dynamic height of pattern
+
+ //--Calculate the rectangle for source (inside the sprite) and destination
+ //--on the screen (related to the fontdirection) for performing the
+ //--BitCopy function
+
+ switch( fontDir )
+ {
+ case DRAW_FONT_DIR_L2RB : // Left to right with bottom align----------------
+
+ if( fontWrap )
+ {
+ if( ( xpos + sourcew ) > DISPLAY_WIDTH )
+ {
+ xpos = startx;
+ ypos -= stdh;
+ }
+ }
+
+ destx = xpos;
+ desty = ypos;
+ xpos = xpos + sourcew;
+
+ break;
+
+ case DRAW_FONT_DIR_L2RT : // Left to right with align to top----------------
+
+ if( fontWrap )
+ {
+ if( ( xpos + sourcew ) > DISPLAY_WIDTH )
+ {
+ xpos = startx;
+ ypos += stdh;
+ }
+ }
+
+ destx = xpos;
+ desty = ypos - sourceh + 1;
+ xpos = xpos + sourcew;
+ break;
+
+ case DRAW_FONT_DIR_R2LB : // Right to left with align to bottom-------------
+
+ if( fontWrap )
+ {
+ if( ( xpos - sourcew ) < 0 )
+ {
+ xpos = startx;
+ ypos -= stdh;
+ }
+ }
+
+ destx = xpos - sourcew + 1;
+ desty = ypos;
+ xpos = xpos - sourcew;
+ break;
+
+ case DRAW_FONT_DIR_R2LT : // Right to left with align to top----------------
+
+ if( fontWrap )
+ {
+ if( ( xpos - sourcew ) < 0 )
+ {
+ xpos = startx;
+ ypos += stdh;
+ }
+ }
+
+ destx = xpos - sourcew + 1;
+ desty = ypos - sourceh + 1;
+ xpos = xpos - sourcew;
+ break;
+
+ case DRAW_FONT_DIR_B2TL : // Bottom to top with allign to left--------------
+
+ if( fontWrap )
+ {
+ if( ( ypos + sourceh ) > DISPLAY_HEIGHT )
+ {
+ xpos += stdw;
+ ypos = starty;
+ }
+ }
+
+ destx = xpos;
+ desty = ypos;
+ ypos = ypos + sourceh;
+ break;
+
+ case DRAW_FONT_DIR_B2TR : // Bottom to top with allign to right-------------
+
+ if( fontWrap )
+ {
+ if( ( ypos + sourceh ) > DISPLAY_HEIGHT )
+ {
+ xpos -= stdw;
+ ypos = starty;
+ }
+ }
+
+ destx = xpos - sourcew + 1;
+ desty = ypos;
+ ypos = ypos + sourceh;
+ break;
+
+ case DRAW_FONT_DIR_T2BL : // Top to bottom with allign to right-------------
+
+ if( fontWrap )
+ {
+ if( ( ypos - sourceh ) < 0 )
+ {
+ xpos += stdw;
+ ypos = starty;
+ }
+ }
+
+ destx = xpos;
+ desty = ypos - sourceh + 1;
+ ypos = ypos - sourceh;
+ break;
+
+ case DRAW_FONT_DIR_T2BR : // Top to bottom with allign to right-------------
+
+ if( fontWrap )
+ {
+ if( ( ypos - sourceh ) < 0 )
+ {
+ xpos -= stdw;
+ ypos = starty;
+ }
+ }
+
+ destx = xpos - sourcew + 1;
+ desty = ypos - sourceh + 1;
+ ypos = ypos - sourceh;
+ break;
+ }
+
+ //--Output of the calculated pattern to the screen------------------------
+ cCmdCopyBitMapBits(destx, desty, sourcex, sourcey, sourcew, sourceh,
+ pSprite, invertMode, logicalMode, fillMode);
+
+ // move on to next character
+ index++;
+ }
+}
+
diff --git a/AT91SAM7S256/Source/c_comm.c b/AT91SAM7S256/Source/c_comm.c
index ee0c6ae..610d369 100644
--- a/AT91SAM7S256/Source/c_comm.c
+++ b/AT91SAM7S256/Source/c_comm.c
@@ -60,13 +60,13 @@ enum
IOMapComm.BtInBuf.InPtr = 0;\
CLEARExtMode;\
dBtClearArm7CmdSignal();\
- dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)CMD_MODE);
+ dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)CMD_MODE, FALSE);
-#define SETBtDataState IOMapComm.BtInBuf.InPtr = 0;\
- VarsComm.BtState = BT_ARM_DATA_MODE;\
+#define SETBtDataState(_m) IOMapComm.BtInBuf.InPtr = 0;\
+ VarsComm.BtState = _m;\
dBtClearTimeOut(); /* stop cmd timeout because in datamode */\
dBtSetArm7CmdSignal();\
- dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)STREAM_MODE)
+ dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)STREAM_MODE, (_m == BT_ARM_DATA_MODE ? FALSE : TRUE));
#define SETBtOff VarsComm.BtState = BT_ARM_OFF;\
dBtSetBcResetPinLow()
@@ -160,10 +160,13 @@ void cCommInit(void* pHeader)
}
IOMapComm.BtDeviceCnt = 0;
IOMapComm.BrickData.BtStateStatus = 0;
-
+ IOMapComm.HsSpeed = HS_BAUD_921600;
+ IOMapComm.HsMode = HS_MODE_8N1;
+ IOMapComm.BtState = BT_ARM_DATA_MODE;
+
cCommClrConnTable();
- dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)CMD_MODE);
+ dBtInitReceive(VarsComm.BtModuleInBuf.Buf, (UBYTE)CMD_MODE, FALSE);
dBtStartADConverter();
dHiSpeedInit();
@@ -203,7 +206,7 @@ void cCommCtrl(void)
switch (VarsComm.BtState)
{
- /* Bluetooth device can either be in CMD, DATA or OFF state at top level */
+ /* Bluetooth device can either be in CMD, DATA, STREAM or OFF state at top level */
case BT_ARM_OFF:
{
}
@@ -212,12 +215,13 @@ void cCommCtrl(void)
{
if (VarsComm.BtBcPinLevel)
{
- SETBtDataState;
+ SETBtDataState(IOMapComm.BtState);
}
}
break;
-
case BT_ARM_DATA_MODE:
+ case BT_ARM_GPS_MODE:
+ case BT_ARM_RAW_MODE:
{
if (!(VarsComm.BtBcPinLevel))
{
@@ -227,7 +231,9 @@ void cCommCtrl(void)
break;
}
}
- IOMapComm.BtInBuf.Buf[BT_CMD_BYTE] = 0;
+ // don't overwrite this byte when we are in GPS or RAW mode
+ if (VarsComm.BtState != BT_ARM_GPS_MODE && VarsComm.BtState != BT_ARM_RAW_MODE)
+ IOMapComm.BtInBuf.Buf[BT_CMD_BYTE] = 0;
/* Here comes the the HIGHSPEED_PORT implementation */
@@ -238,7 +244,7 @@ void cCommCtrl(void)
{
case HS_INITIALISE:
{
- dHiSpeedSetupUart();
+ dHiSpeedSetupUart(IOMapComm.HsSpeed, IOMapComm.HsMode);
IOMapComm.HsState = HS_INIT_RECEIVER;
IOMapComm.HsFlags |= HS_UPDATE;
}
@@ -263,6 +269,13 @@ void cCommCtrl(void)
dHiSpeedExit();
}
break;
+
+ case HS_ENABLE:
+ {
+ if (VarsComm.HsState == 0)
+ dHiSpeedInit();
+ }
+ break;
}
}
@@ -1123,7 +1136,7 @@ UWORD cCommInterpreteCmd(UBYTE Cmd, UBYTE *pInBuf, UBYTE *pOutBuf, UBYTE *pL
for (Tmp = 0; ((Tmp < (*pLength)) && (IOMapComm.HsInBuf.InPtr != IOMapComm.HsInBuf.OutPtr)); Tmp++)
{
pOutBuf[3 + Tmp] = IOMapComm.HsInBuf.Buf[IOMapComm.HsInBuf.OutPtr];
- IOMapComm.HsInBuf.OutPtr = ((IOMapComm.HsInBuf.OutPtr) + 1) % SIZE_OF_USBBUF;
+ IOMapComm.HsInBuf.OutPtr = ((IOMapComm.HsInBuf.OutPtr) + 1) % SIZE_OF_HSBUF;
}
pOutBuf[2] = Tmp;
@@ -1212,23 +1225,37 @@ UWORD cCommReceivedBtData(void)
/* ActiveUpdate has to be idle because BC4 can send stream data even if CMD */
/* mode has been requested - dont try to interprete the data */
/* VarsComm.CmdSwitchCnt != 0 if a transition to Cmd mode is in process */
- if ((VarsComm.BtState == BT_ARM_DATA_MODE) && (0 == VarsComm.CmdSwitchCnt))
- {
-
- /* Move the inptr ahead */
- IOMapComm.BtInBuf.InPtr = NumberOfBytes;
-
- /* using the outbuf inptr in order to get the number of bytes in the return answer at the right place*/
- IOMapComm.BtOutBuf.InPtr = NumberOfBytes;
-
- /* call the data stream interpreter */
- cCommInterprete(IOMapComm.BtInBuf.Buf, IOMapComm.BtOutBuf.Buf, &(IOMapComm.BtOutBuf.InPtr), (UBYTE) BT_CMD_READY, BytesToGo);
-
- /* if there is a reply to be send then send it */
- if (IOMapComm.BtOutBuf.InPtr)
+ if (0 == VarsComm.CmdSwitchCnt)
+ {
+ if (VarsComm.BtState == BT_ARM_DATA_MODE)
+ {
+
+ /* Move the inptr ahead */
+ IOMapComm.BtInBuf.InPtr = NumberOfBytes;
+
+ /* using the outbuf inptr in order to get the number of bytes in the return answer at the right place*/
+ IOMapComm.BtOutBuf.InPtr = NumberOfBytes;
+
+ /* call the data stream interpreter */
+ cCommInterprete(IOMapComm.BtInBuf.Buf, IOMapComm.BtOutBuf.Buf, &(IOMapComm.BtOutBuf.InPtr), (UBYTE) BT_CMD_READY, BytesToGo);
+
+ /* if there is a reply to be sent then send it */
+ if (IOMapComm.BtOutBuf.InPtr)
+ {
+ dBtSendMsg(IOMapComm.BtOutBuf.Buf, IOMapComm.BtOutBuf.InPtr, IOMapComm.BtOutBuf.InPtr);
+ IOMapComm.BtOutBuf.InPtr = 0;
+ }
+ }
+ else if (VarsComm.BtState == BT_ARM_GPS_MODE)
+ {
+ /* Move the inptr ahead */
+ IOMapComm.BtInBuf.InPtr = NumberOfBytes;
+ // interpret GPS sentence?
+ }
+ else if (VarsComm.BtState == BT_ARM_RAW_MODE)
{
- dBtSendMsg(IOMapComm.BtOutBuf.Buf, IOMapComm.BtOutBuf.InPtr, IOMapComm.BtOutBuf.InPtr);
- IOMapComm.BtOutBuf.InPtr = 0;
+ /* Move the inptr ahead */
+ IOMapComm.BtInBuf.InPtr = NumberOfBytes;
}
}
}
@@ -1829,7 +1856,7 @@ void cCommUpdateBt(void)
{
IOMapComm.BtConnectTable[(VarsComm.BtUpdateDataConnectNr & ~0x80)].StreamStatus = 1;
*(VarsComm.pRetVal) = SUCCESS;
- SETBtDataState;
+ SETBtDataState(IOMapComm.BtState);
SETBtStateIdle;
}
}
@@ -2625,7 +2652,7 @@ void cCommUpdateBt(void)
{
IOMapComm.BtConnectTable[0].StreamStatus = 1;
*(VarsComm.pRetVal) = SUCCESS;
- SETBtDataState;
+ SETBtDataState(IOMapComm.BtState);
SETBtStateIdle;
}
}
@@ -3307,7 +3334,7 @@ void cCommsOpenStream(UBYTE *pNextState)
{
if (VarsComm.BtBcPinLevel)
{
- SETBtDataState;
+ SETBtDataState(IOMapComm.BtState);
IOMapComm.BtConnectTable[VarsComm.BtCmdData.ParamTwo].StreamStatus = 1;
VarsComm.StreamStateCnt = 0;
(*pNextState)++;
diff --git a/AT91SAM7S256/Source/c_comm.iom b/AT91SAM7S256/Source/c_comm.iom
index 2dfe994..0f6648b 100644
--- a/AT91SAM7S256/Source/c_comm.iom
+++ b/AT91SAM7S256/Source/c_comm.iom
@@ -38,6 +38,8 @@ enum
BT_ARM_OFF,
BT_ARM_CMD_MODE,
BT_ARM_DATA_MODE,
+ BT_ARM_GPS_MODE,
+ BT_ARM_RAW_MODE
};
//Constant reffering to BtStateStatus
@@ -64,9 +66,61 @@ enum
HS_INITIALISE = 1,
HS_INIT_RECEIVER,
HS_SEND_DATA,
- HS_DISABLE
+ HS_DISABLE,
+ HS_ENABLE
};
+// Constants reffering to hi-speed control syscall function
+enum
+{
+ HS_CTRL_INIT,
+ HS_CTRL_UART,
+ HS_CTRL_EXIT
+};
+
+// Constants refering to HsSpeed
+enum
+{
+ HS_BAUD_1200,
+ HS_BAUD_2400,
+ HS_BAUD_3600,
+ HS_BAUD_4800,
+ HS_BAUD_7200,
+ HS_BAUD_9600,
+ HS_BAUD_14400,
+ HS_BAUD_19200,
+ HS_BAUD_28800,
+ HS_BAUD_38400,
+ HS_BAUD_57600,
+ HS_BAUD_76800,
+ HS_BAUD_115200,
+ HS_BAUD_230400,
+ HS_BAUD_460800,
+ HS_BAUD_921600
+};
+
+// constants referring to HsMode (number of bits)
+#define HS_MODE_5_DATA 0x0000
+#define HS_MODE_6_DATA 0x0040
+#define HS_MODE_7_DATA 0x0080
+#define HS_MODE_8_DATA 0x00C0
+
+// constants referring to HsMode (number of stop bits)
+#define HS_MODE_10_STOP 0x0000
+#define HS_MODE_15_STOP 0x1000
+#define HS_MODE_20_STOP 0x2000
+
+// constants referring to HsMode (parity)
+#define HS_MODE_E_PARITY 0x0000
+#define HS_MODE_O_PARITY 0x0200
+#define HS_MODE_S_PARITY 0x0400
+#define HS_MODE_M_PARITY 0x0600
+#define HS_MODE_N_PARITY 0x0800
+
+// constants referring to HsMode (D|P|S)
+#define HS_MODE_8N1 (HS_MODE_8_DATA|HS_MODE_N_PARITY|HS_MODE_10_STOP)
+#define HS_MODE_7E1 (HS_MODE_7_DATA|HS_MODE_E_PARITY|HS_MODE_10_STOP)
+
//Constants refering to DeviceStatus within DeviceTable
enum
{
@@ -214,6 +268,11 @@ typedef struct
UBYTE UsbState;
+ UWORD HsMode;
+
+ UBYTE BtState; // off, cmd, data, gps, raw
+ UBYTE Unused1;
+
}IOMAPCOMM;
diff --git a/AT91SAM7S256/Source/c_display.c b/AT91SAM7S256/Source/c_display.c
index 6b15495..0c6f1b2 100644
--- a/AT91SAM7S256/Source/c_display.c
+++ b/AT91SAM7S256/Source/c_display.c
@@ -98,6 +98,14 @@ void cDisplayClrPixel(UBYTE X,UBYTE Y)
}
}
+void cDisplayXorPixel(UBYTE X,UBYTE Y)
+{
+ if ((X < DISPLAY_WIDTH) && (Y < DISPLAY_HEIGHT))
+ {
+ IOMapDisplay.Display[(Y / 8) * DISPLAY_WIDTH + X] ^= (1 << (Y % 8));
+ }
+}
+
void cDisplayChar(FONT *pFont,UBYTE On,UBYTE X,UBYTE Y,UBYTE Char)
{
@@ -316,34 +324,85 @@ void cDisplayUpdateIcon(ICON *pIcons,UBYTE Index,SCREEN_CORDINATE *pCord)
}
-void cDisplayLineX(UBYTE X1,UBYTE X2,UBYTE Y)
+void cDisplayLineX(UBYTE X1, UBYTE X2, UBYTE Y, UBYTE PixelMode)
{
UBYTE X;
UBYTE M;
+ UBYTE t;
+ if (Y > DISPLAY_HEIGHT) return;
+ if (X1 > X2) {t = X1; X1 = X2; X2 = t;}
+ if (X2 > (DISPLAY_WIDTH-1)) X2 = (DISPLAY_WIDTH-1);
+
M = 1 << (Y % 8);
Y >>= 3;
- for (X = X1;X < X2;X++)
+
+ for (X=X1; X<=X2; X++)
{
- IOMapDisplay.Display[Y * DISPLAY_WIDTH + X] |= M;
+ switch (PixelMode)
+ {
+ case DRAW_PIXELS_INVERT:
+ IOMapDisplay.Display[Y * DISPLAY_WIDTH + X] ^= M;
+ break;
+ case DRAW_PIXELS_CLEAR:
+ IOMapDisplay.Display[Y * DISPLAY_WIDTH + X] &= ~M;
+ break;
+ case DRAW_PIXELS_SET:
+ default:
+ IOMapDisplay.Display[Y * DISPLAY_WIDTH + X] |= M;
+ break;
+ }
}
}
-void cDisplayLineY(UBYTE X,UBYTE Y1,UBYTE Y2)
+static UBYTE Masks[9] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};
+
+void cDisplayLineY(UBYTE X,UBYTE Y1,UBYTE Y2,UBYTE PixelMode)
{
UBYTE Y;
-
- for (Y = Y1;Y < Y2;Y++)
+ UBYTE M;
+ UBYTE t;
+
+ if (X > DISPLAY_WIDTH) return;
+ if (Y1 > Y2) {t = Y1; Y1 = Y2; Y2 = t;}
+ if (Y2 > (DISPLAY_HEIGHT-1)) Y2 = (DISPLAY_HEIGHT-1);
+
+ // starting point of Y is the byte containing Y1
+ Y = (Y1 / 8) * 8;
+
+ while (Y <= Y2)
{
- IOMapDisplay.Display[(Y / 8) * DISPLAY_WIDTH + X] |= (1 << (Y % 8));
+ M = 0xff;
+ if (Y < Y1)
+ M &= ~Masks[Y1 % 8];
+ if ((Y2-Y) < 8)
+ M &= Masks[(Y2 % 8) + 1];
+ switch (PixelMode)
+ {
+ case DRAW_PIXELS_INVERT:
+ IOMapDisplay.Display[(Y / 8) * DISPLAY_WIDTH + X] ^= M;
+ break;
+ case DRAW_PIXELS_CLEAR:
+ IOMapDisplay.Display[(Y / 8) * DISPLAY_WIDTH + X] &= ~M;
+ break;
+ case DRAW_PIXELS_SET:
+ default:
+ IOMapDisplay.Display[(Y / 8) * DISPLAY_WIDTH + X] |= M;
+ break;
+ }
+ Y += 8;
}
+
}
-void cDisplayFrame(SCREEN_CORDINATE *pCord)
+void cDisplayFrame(SCREEN_CORDINATE *pCord, UBYTE PixelMode)
{
- cDisplayLineX(pCord->StartX,pCord->StartX + pCord->PixelsX - 1,pCord->StartY);
- cDisplayLineY(pCord->StartX,pCord->StartY,pCord->StartY + pCord->PixelsY - 1);
- cDisplayLineY(pCord->StartX + pCord->PixelsX - 1,pCord->StartY,pCord->StartY + pCord->PixelsY - 1);
+ cDisplayLineX(pCord->StartX, pCord->StartX + pCord->PixelsX-1, pCord->StartY, PixelMode);
+ if (pCord->PixelsY > 1)
+ {
+ cDisplayLineY(pCord->StartX, pCord->StartY + 1, pCord->StartY + pCord->PixelsY - 1, PixelMode);
+ cDisplayLineY(pCord->StartX + pCord->PixelsX - 1, pCord->StartY + 1, pCord->StartY + pCord->PixelsY - 1, PixelMode);
+ }
}
@@ -358,30 +417,54 @@ void cDisplayErase(void)
memset(&IOMapDisplay.Display[0], 0x00, DISPLAY_WIDTH*DISPLAY_HEIGHT/8);
}
-
-void cDisplayEraseScreen(SCREEN_CORDINATE *pCord)
+void cDisplayFillScreen(SCREEN_CORDINATE *pCord, UBYTE PixelMode)
{
- UBYTE *pDestination;
- UBYTE Line;
- UBYTE Lines;
-
- if (((pCord->StartY & 0x07) == 0) && ((pCord->PixelsY & 0x07) == 0))
+ UBYTE X1, Y1;
+ UBYTE X2, Y2;
+ UBYTE X, Y;