--- spal60sr\src\TSSGCtrl\SSBitList.original.cpp	Sun Apr  6 21:42:58 2003
+++ spal60sr\src\TSSGCtrl\SSBitList.cpp	Sun Apr  6 21:42:58 2003
@@ -1,6 +1,8 @@
 #include "SSBitList.h"
 #include "BitOperation.h"
 
+#define LOCAL_MEMORY_SUPPORT 1
+
 //---------------------------------------------------------------------
 //uݒ֐v
 //
@@ -71,18 +73,33 @@
  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
 
  
  long Val=0;
+#if !defined(IO_FEP_SUPPORT) || !IO_FEP_SUPPORT
  if(!SSGC.OneRead(this, SHandle, Address, &Val, size)) 
+#else
+ if (!TSSGCtrl_OneRead_with_CheckIO_FEP(&SSGC, this, SHandle, Address, &Val, size))
+#endif
 	return ssgCtrl::reACCESS_ERROR;	//G[Ȃ1Ԃ
 
  unsigned long MaskByte = maskByte;
@@ -120,7 +137,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
@@ -128,6 +149,9 @@
 
  //Kp
  unsigned long Address = SSGC.GetAddress(this, addressStr);
+#if defined(SUBJECT_STATUS) && SUBJECT_STATUS
+ address = (const BYTE *)Address;
+#endif
 
  long Val=0;
  unsigned long i;
@@ -141,7 +165,11 @@
 		if(*VIt) Val += 1<<i;	//trueȂΉrbg𗧂Ă
  }else{				//}XNwL
 	long Src=0;
+#if !defined(IO_FEP_SUPPORT) || !IO_FEP_SUPPORT
 	if(!SSGC.OneRead(this, SHandle, Address, &Src, size)) 
+#else
+	if (!TSSGCtrl_OneRead_with_CheckIO_FEP(&SSGC, this, SHandle, Address, &Src, size))
+#endif
 		return ssgCtrl::reACCESS_ERROR;	//G[Ȃ1Ԃ
 
 	unsigned long Size=size*8;
@@ -156,7 +184,11 @@
  }
  
  //G[ȂssgCtrl::reACCESS_ERRORԂ
+#if !defined(IO_FEP_SUPPORT) || !IO_FEP_SUPPORT
  return ( SSGC.OneWrite(this, SHandle, Address, &Val, size) )? ssgCtrl::reNO_ERROR : ssgCtrl::reACCESS_ERROR;
+#else
+ return (TSSGCtrl_OneWrite_with_CheckIO_FEP(&SSGC, this, SHandle, Address, &Val, size)) ? ssgCtrl::reNO_ERROR : ssgCtrl::reACCESS_ERROR;
+#endif
 }
 //---------------------------------------------------------------------
 //uڎdlɏ]āA^ꂽloCgR[hɂĕԂ֐v
