--- spal60sr\src\TSSGCtrl\SSFloatCalc.original.cpp	Sun Apr  6 21:44:14 2003
+++ spal60sr\src\TSSGCtrl\SSFloatCalc.cpp	Sun Apr  6 21:44:14 2003
@@ -1,6 +1,8 @@
 #include "SSFloatCalc.h"
 #include "BitOperation.h"
 
+#define LOCAL_MEMORY_SUPPORT 1
+
 //---------------------------------------------------------------------
 //uݒ֐v
 //
@@ -57,14 +59,25 @@
  Setting(SSGC);
 
  TSmartHandle SHandle;
+#if !defined(LOCAL_MEMORY_SUPPORT) || !LOCAL_MEMORY_SUPPORT
  if(( SHandle=SSGC.Open(this, PROCESS_VM_READ) )==NULL)
+#else
+ if ((SHandle = SSGC.Open(this, PROCESS_VM_READ, addressStr.c_str())) == NULL)
+#endif
 	return ssgCtrl::reOPEN_ERROR;	//vZX̃I[vG[
 
+#if !defined(SUBJECT_STATUS) || !SUBJECT_STATUS
  if(!SSGC.IsEnabled(this)) return ssgCtrl::reNOT_ENABLED;	//LU
+#else
+ if(!SSGC.IsEnabled(this, TRUE)) return ssgCtrl::reNOT_ENABLED;	//LU
+#endif
 
 
  //Kp
  unsigned long Address = SSGC.GetAddress(this, addressStr);
+#if defined(SUBJECT_STATUS) && SUBJECT_STATUS
+ address = (const BYTE *)Address;
+#endif
 
  double Num = 0;  //
 
@@ -101,7 +114,11 @@
  Setting(SSGC);
 
  TSmartHandle SHandle;
+#if !defined(LOCAL_MEMORY_SUPPORT) || !LOCAL_MEMORY_SUPPORT
  if(( SHandle=SSGC.Open(this, PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_VM_OPERATION) )==NULL)
+#else
+ if ((SHandle = SSGC.Open(this, PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION, addressStr.c_str())) == NULL)
+#endif
 	return ssgCtrl::reOPEN_ERROR;	//vZX̃I[vG[
 
  if(!SSGC.IsEnabled(this)) return ssgCtrl::reNOT_ENABLED;	//LU
@@ -109,6 +126,9 @@
 
  //Kp
  unsigned long Address = SSGC.GetAddress(this, addressStr);
+#if defined(SUBJECT_STATUS) && SUBJECT_STATUS
+ address = (const BYTE *)Address;
+#endif
 
  double Num = ((TSSArgDouble*)Arg)->GetValue();
  Num = SSGC.CheckIO_FEPDouble(this, Num, ssgCtrl::ftTO_OUTPUT);
