From d467bbc2dada4b5788890f1c739ce5ca8b115f66 Mon Sep 17 00:00:00 2001
From: Rolf Bork <rolf.bork@ligo.org>
Date: Wed, 1 Feb 2017 20:12:54 +0000
Subject: [PATCH] Added support for General Standards 20AO8 DAC module, as was
 done previously in branch-3.3 for testing.

git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@4305 6dcd42c9-f523-4c6d-aada-af552506706e
---
 NEWS                            |   1 +
 src/epics/simLink/CDS_PARTS.mdl | 707 +++++++++++++++-----------
 src/epics/simLink/lib/dac20.mdl | 873 ++++++++++++++++++++++++++++++++
 src/epics/util/feCodeGen.pl     |  11 +-
 src/epics/util/lib/Dac.pm       |   3 +-
 src/epics/util/lib/Dac18.pm     |   3 +-
 src/include/drv/cdsHardware.h   |   3 +-
 src/include/drv/gsc20ao8.c      | 172 +++++++
 src/include/drv/gsc20ao8.h      |  43 ++
 9 files changed, 1511 insertions(+), 305 deletions(-)
 create mode 100644 src/epics/simLink/lib/dac20.mdl
 create mode 100644 src/include/drv/gsc20ao8.c
 create mode 100644 src/include/drv/gsc20ao8.h

diff --git a/NEWS b/NEWS
index 10164384a..f8318cdf7 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
 ==================================================================================================
 Changes for X.X
 ==================================================================================================
+- Added support for General Standards 20AO8 DAC module, as was done for branch-3.3.
 - Added auto generation of safe.snap files for models built for the first time.
 - Changed IPC error reporting, as requested in Bugzilla 793.
 - Added support for Dolphin PCIe network Gen 2 hardware.
diff --git a/src/epics/simLink/CDS_PARTS.mdl b/src/epics/simLink/CDS_PARTS.mdl
index 7fbd6da90..748951669 100644
--- a/src/epics/simLink/CDS_PARTS.mdl
+++ b/src/epics/simLink/CDS_PARTS.mdl
@@ -1,10 +1,9 @@
 Library {
   Name			  "CDS_PARTS"
-  Version		  8.0
+  Version		  8.6
   MdlSubVersion		  0
-  SavedCharacterEncoding  "US-ASCII"
+  SavedCharacterEncoding  "ISO-8859-1"
   LibraryType		  "BlockLibrary"
-  SaveDefaultBlockParams  on
   ScopeRefreshTime	  0.035000
   OverrideScopeRefreshTime on
   DisableAllScopes	  off
@@ -19,7 +18,7 @@ Library {
       $ObjectID		      2
       $ClassName	      "Simulink.WindowInfo"
       IsActive		      [1]
-      Location		      [694.0, 249.0, 1036.0, 1047.0]
+      Location		      [694.0, 33.0, 1036.0, 1047.0]
       Object {
 	$PropName		"ModelBrowserInfo"
 	$ObjectID		3
@@ -41,11 +40,11 @@ Library {
 	$ObjectID		5
 	$ClassName		"Simulink.EditorInfo"
 	IsActive		[1]
-	ViewObjType		"SimulinkSubsys"
-	LoadSaveID		"150"
-	Extents			[992.0, 874.0]
-	ZoomFactor		[1.25]
-	Offset			[0.0, -2.3249999999999886]
+	ViewObjType		"SimulinkTopLevel"
+	LoadSaveID		"0"
+	Extents			[1002.0, 885.0]
+	ZoomFactor		[1.4799999999999998]
+	Offset			[-5.6843418860808015e-14, -5.6843418860808015e-14]
       }
     }
   }
@@ -53,12 +52,12 @@ Library {
   Creator		  "aivanov"
   UpdateHistory		  "UpdateHistoryNever"
   ModifiedByFormat	  "%<Auto>"
-  LastModifiedBy	  "controls"
+  LastModifiedBy	  "rolf"
   ModifiedDateFormat	  "%<Auto>"
-  LastModifiedDate	  "Fri Apr 22 12:20:09 2016"
-  RTWModifiedTimeStamp	  383227721
-  ModelVersionFormat	  "1.%<AutoIncrement:390>"
-  ConfigurationManager	  "None"
+  LastModifiedDate	  "Wed Oct 19 14:38:02 2016"
+  RTWModifiedTimeStamp	  398788668
+  ModelVersionFormat	  "1.%<AutoIncrement:392>"
+  ConfigurationManager	  "none"
   SampleTimeColors	  off
   SampleTimeAnnotations	  off
   LibraryLinkDisplay	  "all"
@@ -75,29 +74,24 @@ Library {
   SortedOrder		  off
   ExecutionContextIcon	  off
   ShowLinearizationAnnotations on
+  ShowVisualizeInsertedRTB on
+  ShowMarkup		  on
   BlockNameDataTip	  off
   BlockParametersDataTip  off
   BlockDescriptionStringDataTip	off
   ToolBar		  on
   StatusBar		  on
-  BrowserShowLibraryLinks on
-  BrowserLookUnderMasks	  on
+  BrowserShowLibraryLinks off
+  BrowserLookUnderMasks	  off
   SimulationMode	  "normal"
+  PauseTimes		  "5"
+  NumberOfSteps		  1
+  SnapshotBufferSize	  10
+  SnapshotInterval	  10
+  NumberOfLastSnapshots	  0
   LinearizationMsg	  "none"
   Profile		  off
   ParamWorkspaceSource	  "MATLABWorkspace"
-  RecordCoverage	  off
-  CovSaveName		  "covdata"
-  CovMetricSettings	  "dw"
-  CovNameIncrementing	  off
-  CovHtmlReporting	  on
-  CovForceBlockReductionOff on
-  covSaveCumulativeToWorkspaceVar on
-  CovSaveSingleToWorkspaceVar on
-  CovCumulativeReport	  off
-  CovReportOnPause	  on
-  CovModelRefEnable	  "Off"
-  CovExternalEMLEnable	  off
   ExtModeBatchMode	  off
   ExtModeEnableFloating	  on
   ExtModeTrigType	  "manual"
@@ -126,13 +120,13 @@ Library {
     Dimension		    1
     Simulink.ConfigSet {
       $ObjectID		      6
-      Version		      "1.12.1"
+      Version		      "1.15.1"
       Array {
 	Type			"Handle"
-	Dimension		8
+	Dimension		9
 	Simulink.SolverCC {
 	  $ObjectID		  7
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  StartTime		  "0.0"
 	  StopTime		  "10.0"
 	  AbsTol		  "auto"
@@ -159,6 +153,8 @@ Library {
 	  ZeroCrossControl	  "UseLocalSettings"
 	  ZeroCrossAlgorithm	  "Nonadaptive"
 	  AlgebraicLoopSolver	  "TrustRegion"
+	  SolverInfoToggleStatus  off
+	  IsAutoAppliedInSIP	  off
 	  SolverResetMethod	  "Fast"
 	  PositivePriorityOrder	  off
 	  AutoInsertRateTranBlk	  off
@@ -167,7 +163,7 @@ Library {
 	}
 	Simulink.DataIOCC {
 	  $ObjectID		  8
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  Decimation		  "1"
 	  ExternalInput		  "[t, u]"
 	  FinalStateName	  "xFinal"
@@ -185,6 +181,9 @@ Library {
 	  SignalLogging		  on
 	  DSMLogging		  on
 	  InspectSignalLogs	  off
+	  VisualizeSimOutput	  on
+	  StreamToWorkspace	  off
+	  StreamVariableName	  "streamout"
 	  SaveTime		  on
 	  ReturnWorkspaceOutputs  off
 	  StateSaveName		  "xout"
@@ -196,10 +195,11 @@ Library {
 	  OutputTimes		  "[]"
 	  ReturnWorkspaceOutputsName "out"
 	  Refine		  "1"
+	  LoggingIntervals	  "[-inf, inf]"
 	}
 	Simulink.OptimizationCC {
 	  $ObjectID		  9
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  Array {
 	    Type		    "Cell"
 	    Dimension		    4
@@ -212,14 +212,17 @@ Library {
 	  BlockReduction	  off
 	  BooleanDataType	  off
 	  ConditionallyExecuteInputs on
-	  InlineParams		  off
-	  UseIntDivNetSlope	  off
+	  DefaultParameterBehavior "Tunable"
+	  UseDivisionForNetSlopeComputation "off"
 	  UseFloatMulNetSlope	  off
+	  DefaultUnderspecifiedDataType	"double"
 	  UseSpecifiedMinMax	  off
 	  InlineInvariantSignals  off
 	  OptimizeBlockIOStorage  on
 	  BufferReuse		  on
 	  EnhancedBackFolding	  off
+	  CachingGlobalReferences off
+	  GlobalBufferReuse	  on
 	  StrengthReduction	  off
 	  ExpressionFolding	  on
 	  BooleansAsBitfields	  off
@@ -227,14 +230,13 @@ Library {
 	  EnableMemcpy		  on
 	  MemcpyThreshold	  64
 	  PassReuseOutputArgsAs	  "Structure reference"
+	  PassReuseOutputArgsThreshold 12
 	  ExpressionDepthLimit	  2147483647
-	  FoldNonRolledExpr	  on
 	  LocalBlockOutputs	  on
 	  RollThreshold		  5
-	  SystemCodeInlineAuto	  off
 	  StateBitsets		  off
 	  DataBitsets		  off
-	  UseTempVars		  off
+	  ActiveStateOutputEnumStorageType "Native Integer"
 	  ZeroExternalMemoryAtStartup on
 	  ZeroInternalMemoryAtStartup on
 	  InitFltsAndDblsToZero	  off
@@ -245,13 +247,12 @@ Library {
 	  LifeSpan		  "inf"
 	  MaxStackSize		  "Inherit from target"
 	  BufferReusableBoundary  on
-	  SimCompilerOptimization "Off"
+	  SimCompilerOptimization "off"
 	  AccelVerboseBuild	  off
-	  ParallelExecutionInRapidAccelerator on
 	}
 	Simulink.DebuggingCC {
 	  $ObjectID		  10
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  RTPrefix		  "error"
 	  ConsistencyChecking	  "none"
 	  ArrayBoundsChecking	  "none"
@@ -278,7 +279,6 @@ Library {
 	  IgnoredZcDiagnostic	  "warning"
 	  SolverPrmCheckMsg	  "none"
 	  InheritedTsInSrcMsg	  "warning"
-	  DiscreteInheritContinuousMsg "warning"
 	  MultiTaskDSMMsg	  "error"
 	  MultiTaskCondExecSysMsg "error"
 	  MultiTaskRateTransMsg	  "error"
@@ -306,17 +306,16 @@ Library {
 	  UnconnectedOutputMsg	  "warning"
 	  UnconnectedLineMsg	  "warning"
 	  SFcnCompatibilityMsg	  "none"
-	  FrameProcessingCompatibilityMsg "warning"
+	  FrameProcessingCompatibilityMsg "error"
 	  UniqueDataStoreMsg	  "none"
 	  BusObjectLabelMismatch  "warning"
 	  RootOutportRequireBusObject "warning"
 	  AssertControl		  "UseLocalSettings"
-	  EnableOverflowDetection off
+	  AllowSymbolicDim	  off
 	  ModelReferenceIOMsg	  "none"
 	  ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
 	  ModelReferenceVersionMismatchMessage "none"
 	  ModelReferenceIOMismatchMessage "none"
-	  ModelReferenceCSMismatchMessage "none"
 	  UnknownTsInhSupMsg	  "warning"
 	  ModelReferenceDataLoggingMessage "warning"
 	  ModelReferenceSymbolNameMessage "warning"
@@ -328,7 +327,7 @@ Library {
 	  StrictBusMsg		  "Warning"
 	  BusNameAdapt		  "WarnAndRepair"
 	  NonBusSignalsTreatedAsBus "none"
-	  LoggingUnavailableSignals "error"
+	  SymbolicDimMinMaxWarning "warning"
 	  BlockIODiagnostic	  "none"
 	  SFUnusedDataAndEventsDiag "warning"
 	  SFUnexpectedBacktrackingDiag "warning"
@@ -338,14 +337,17 @@ Library {
 	  SFUnconditionalTransitionShadowingDiag "warning"
 	  SFUndirectedBroadcastEventsDiag "warning"
 	  SFTransitionActionBeforeConditionDiag	"warning"
+	  SFOutputUsedAsStateInMooreChartDiag "error"
+	  IntegerSaturationMsg	  "warning"
 	}
 	Simulink.HardwareCC {
 	  $ObjectID		  11
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  ProdBitPerChar	  8
 	  ProdBitPerShort	  16
 	  ProdBitPerInt		  32
 	  ProdBitPerLong	  32
+	  ProdBitPerLongLong	  64
 	  ProdBitPerFloat	  32
 	  ProdBitPerDouble	  64
 	  ProdBitPerPointer	  32
@@ -355,21 +357,23 @@ Library {
 	  ProdEndianess		  "Unspecified"
 	  ProdWordSize		  32
 	  ProdShiftRightIntArith  on
+	  ProdLongLongMode	  off
 	  ProdHWDeviceType	  "32-bit Generic"
 	  TargetBitPerChar	  8
 	  TargetBitPerShort	  16
 	  TargetBitPerInt	  32
 	  TargetBitPerLong	  32
+	  TargetBitPerLongLong	  64
 	  TargetBitPerFloat	  32
 	  TargetBitPerDouble	  64
 	  TargetBitPerPointer	  32
 	  TargetLargestAtomicInteger "Char"
 	  TargetLargestAtomicFloat "None"
 	  TargetShiftRightIntArith on
+	  TargetLongLongMode	  off
 	  TargetIntDivRoundTo	  "Undefined"
 	  TargetEndianess	  "Unspecified"
 	  TargetWordSize	  32
-	  TargetTypeEmulationWarnSuppressLevel 0
 	  TargetPreprocMaxBitsSint 32
 	  TargetPreprocMaxBitsUint 32
 	  TargetHWDeviceType	  "Specified"
@@ -378,8 +382,9 @@ Library {
 	}
 	Simulink.ModelReferenceCC {
 	  $ObjectID		  12
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+	  EnableRefExpFcnMdlSchedulingChecks on
 	  CheckModelReferenceTargetMessage "error"
 	  EnableParallelModelReferenceBuilds off
 	  ParallelModelReferenceErrorOnInvalidPool on
@@ -393,22 +398,19 @@ Library {
 	}
 	Simulink.SFSimCC {
 	  $ObjectID		  13
-	  Version		  "1.12.1"
-	  SFSimEnableDebug	  on
-	  SFSimOverflowDetection  on
+	  Version		  "1.15.1"
 	  SFSimEcho		  on
-	  SimBlas		  on
 	  SimCtrlC		  on
-	  SimExtrinsic		  on
 	  SimIntegrity		  on
 	  SimUseLocalCustomCode	  off
 	  SimParseCustomCode	  on
 	  SimBuildMode		  "sf_incremental_build"
+	  SimGenImportedTypeDefs  off
 	}
 	Simulink.RTWCC {
 	  $BackupClass		  "Simulink.RTWCC"
 	  $ObjectID		  14
-	  Version		  "1.12.1"
+	  Version		  "1.15.1"
 	  Array {
 	    Type		    "Cell"
 	    Dimension		    6
@@ -421,11 +423,14 @@ Library {
 	    PropName		    "DisabledProps"
 	  }
 	  SystemTargetFile	  "grt.tlc"
+	  TLCOptions		  ""
 	  GenCodeOnly		  off
 	  MakeCommand		  "make_rtw"
 	  GenerateMakefile	  on
 	  PackageGeneratedCodeAndArtifacts off
 	  TemplateMakefile	  "grt_default_tmf"
+	  PostCodeGenCommand	  ""
+	  Description		  ""
 	  GenerateReport	  off
 	  SaveLog		  off
 	  RTWVerbose		  on
@@ -434,41 +439,40 @@ Library {
 	  TLCDebug		  off
 	  TLCCoverage		  off
 	  TLCAssert		  off
-	  ProcessScriptMode	  "Default"
-	  ConfigurationMode	  "Optimized"
-	  ConfigAtBuild		  off
 	  RTWUseLocalCustomCode	  off
 	  RTWUseSimCustomCode	  off
+	  Toolchain		  "Automatically locate an installed toolchain"
+	  BuildConfiguration	  "Faster Builds"
 	  IncludeHyperlinkInReport off
 	  LaunchReport		  off
 	  PortableWordSizes	  off
-	  GenerateErtSFunction	  off
 	  CreateSILPILBlock	  "None"
 	  CodeExecutionProfiling  off
 	  CodeExecutionProfileVariable "executionProfile"
 	  CodeProfilingSaveOptions "SummaryOnly"
 	  CodeProfilingInstrumentation off
+	  SILDebugging		  off
 	  TargetLang		  "C"
 	  IncludeBusHierarchyInRTWFileBlockHierarchyMap	off
-	  IncludeERTFirstTime	  off
 	  GenerateTraceInfo	  off
 	  GenerateTraceReport	  off
 	  GenerateTraceReportSl	  off
 	  GenerateTraceReportSf	  off
 	  GenerateTraceReportEml  off
-	  GenerateCodeInfo	  off
 	  GenerateWebview	  off
 	  GenerateCodeMetricsReport off
 	  GenerateCodeReplacementReport	off
-	  RTWCompilerOptimization "Off"
+	  GenerateMissedCodeReplacementReport off
+	  RTWCompilerOptimization "off"
+	  RTWCustomCompilerOptimizations ""
 	  CheckMdlBeforeBuild	  "Off"
-	  CustomRebuildMode	  "OnUpdate"
+	  SharedConstantsCachingThreshold 1024
 	  Array {
 	    Type		    "Handle"
 	    Dimension		    2
 	    Simulink.CodeAppCC {
 	      $ObjectID		      15
-	      Version		      "1.12.1"
+	      Version		      "1.15.1"
 	      Array {
 		Type			"Cell"
 		Dimension		17
@@ -493,6 +497,7 @@ Library {
 	      }
 	      ForceParamTrailComments off
 	      GenerateComments	      on
+	      CommentStyle	      "Auto"
 	      IgnoreCustomStorageClasses on
 	      IgnoreTestpoints	      off
 	      IncHierarchyInIds	      off
@@ -515,6 +520,7 @@ Library {
 	      CustomSymbolStrBlkIO    "rtb_$N$M"
 	      CustomSymbolStrTmpVar   "$N$M"
 	      CustomSymbolStrMacro    "$R$N$M"
+	      CustomSymbolStrUtil     "$N$C"
 	      DefineNamingRule	      "None"
 	      ParamNamingRule	      "None"
 	      SignalNamingRule	      "None"
@@ -531,12 +537,12 @@ Library {
 	    Simulink.GRTTargetCC {
 	      $BackupClass	      "Simulink.TargetCC"
 	      $ObjectID		      16
-	      Version		      "1.12.1"
+	      Version		      "1.15.1"
 	      Array {
 		Type			"Cell"
-		Dimension		15
+		Dimension		14
 		Cell			"IncludeMdlTerminateFcn"
-		Cell			"CombineOutputUpdateFcns"
+		Cell			"GenerateAllocFcn"
 		Cell			"SuppressErrorStatus"
 		Cell			"ERTCustomFileBanners"
 		Cell			"GenerateSampleERTMain"
@@ -549,21 +555,22 @@ Library {
 		Cell			"SupportComplex"
 		Cell			"SupportAbsoluteTime"
 		Cell			"SupportContinuousTime"
-		Cell			"GenerateAllocFcn"
 		PropName		"DisabledProps"
 	      }
 	      TargetFcnLib	      "ansi_tfl_table_tmw.mat"
 	      TargetLibSuffix	      ""
 	      TargetPreCompLibLocation ""
-	      CodeReplacementLibrary  "ANSI_C"
+	      GenFloatMathFcnCalls    "NOT IN USE"
+	      TargetLangStandard      "C89/C90 (ANSI)"
+	      CodeReplacementLibrary  "None"
 	      UtilityFuncGeneration   "Auto"
 	      ERTMultiwordTypeDef     "System defined"
 	      ERTMultiwordLength      256
 	      MultiwordLength	      2048
 	      GenerateFullHeader      on
+	      InferredTypesCompatibility off
 	      GenerateSampleERTMain   off
 	      GenerateTestInterfaces  off
-	      IsPILTarget	      off
 	      ModelReferenceCompliant on
 	      ParMdlRefBuildCompliant on
 	      CompOptLevelCompliant   on
@@ -580,18 +587,23 @@ Library {
 	      LogVarNameModifier      "rt_"
 	      MatFileLogging	      on
 	      MultiInstanceERTCode    off
+	      CodeInterfacePackaging  "Nonreusable function"
 	      SupportNonFinite	      on
 	      SupportComplex	      on
 	      PurelyIntegerCode	      off
 	      SupportContinuousTime   on
 	      SupportNonInlinedSFcns  on
 	      SupportVariableSizeSignals off
-	      EnableShiftOperators    on
 	      ParenthesesLevel	      "Nominal"
+	      CastingMode	      "Nominal"
+	      MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization"
 	      ModelStepFunctionPrototypeControlCompliant off
-	      CPPClassGenCompliant    off
+	      CPPClassGenCompliant    on
 	      AutosarCompliant	      off
 	      GRTInterface	      on
+	      GenerateAllocFcn	      off
+	      UseToolchainInfoCompliant	on
+	      GenerateSharedConstants on
 	      UseMalloc		      off
 	      ExtMode		      off
 	      ExtModeStaticAlloc      off
@@ -605,10 +617,38 @@ Library {
 	      RTWCAPIStates	      off
 	      RTWCAPIRootIO	      off
 	      GenerateASAP2	      off
+	      MultiInstanceErrorCode  "Error"
 	    }
 	    PropName		    "Components"
 	  }
 	}
+	SlCovCC.ConfigComp {
+	  $ObjectID		  17
+	  Version		  "1.15.1"
+	  Description		  "Simulink Coverage Configuration Component"
+	  Name			  "Simulink Coverage"
+	  RecordCoverage	  off
+	  CovPath		  "/"
+	  CovSaveName		  "covdata"
+	  CovMetricSettings	  "dw"
+	  CovNameIncrementing	  off
+	  CovHtmlReporting	  on
+	  CovForceBlockReductionOff on
+	  CovEnableCumulative	  on
+	  CovSaveCumulativeToWorkspaceVar on
+	  CovSaveSingleToWorkspaceVar on
+	  CovCumulativeVarName	  "covCumulativeData"
+	  CovCumulativeReport	  off
+	  CovReportOnPause	  on
+	  CovModelRefEnable	  "Off"
+	  CovExternalEMLEnable	  off
+	  CovSFcnEnable		  on
+	  CovBoundaryAbsTol	  1e-05
+	  CovBoundaryRelTol	  0.01
+	  CovUseTimeInterval	  off
+	  CovStartTime		  0
+	  CovStopTime		  0
+	}
 	PropName		"Components"
       }
       Name		      "Configuration"
@@ -682,7 +722,6 @@ Library {
     }
     Block {
       BlockType		      BusCreator
-      Inputs		      "4"
       DisplayOption	      "none"
       OutDataTypeStr	      "Inherit: auto"
       NonVirtualBus	      off
@@ -739,6 +778,7 @@ Library {
     }
     Block {
       BlockType		      Goto
+      GotoTag		      "A"
       IconDisplay	      "Tag"
       TagVisibility	      "local"
     }
@@ -821,10 +861,15 @@ Library {
       Permissions	      "ReadWrite"
       PermitHierarchicalResolution "All"
       TreatAsAtomicUnit	      off
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
       CheckFcnCallInpInsideContextMsg off
       SystemSampleTime	      "-1"
+      RTWSystemCode	      "Auto"
       RTWFcnNameOpts	      "Auto"
       RTWFileNameOpts	      "Auto"
+      FunctionInterfaceSpec   "void_void"
+      FunctionWithSeparateData off
       RTWMemSecFuncInitTerm   "Inherit from model"
       RTWMemSecFuncExecute    "Inherit from model"
       RTWMemSecDataConstants  "Inherit from model"
@@ -834,9 +879,12 @@ Library {
       DataTypeOverride	      "UseLocalSettings"
       DataTypeOverrideAppliesTo	"AllNumericTypes"
       MinMaxOverflowLogging   "UseLocalSettings"
+      Opaque		      off
+      MaskHideContents	      off
       SFBlockType	      "NONE"
-      Variant		      off
       GeneratePreprocessorConditionals off
+      ContentPreviewEnabled   off
+      IsWebBlock	      off
     }
     Block {
       BlockType		      Sum
@@ -884,8 +932,8 @@ Library {
   }
   System {
     Name		    "CDS_PARTS"
-    Location		    [694, 249, 1730, 1296]
-    Open		    off
+    Location		    [694, 33, 1730, 1080]
+    Open		    on
     ModelBrowserVisibility  off
     ModelBrowserWidth	    200
     ScreenColor		    "white"
@@ -898,7 +946,7 @@ Library {
     ShowPageBoundaries	    off
     ZoomFactor		    "148"
     ReportName		    "simulink-default.rpt"
-    SIDHighWatermark	    "374"
+    SIDHighWatermark	    "379"
     Block {
       BlockType		      SubSystem
       Name		      " I/O "
@@ -907,16 +955,11 @@ Library {
       Position		      [271, 113, 317, 182]
       ZOrder		      -6
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			" I/O "
-	Location		[1319, 176, 2347, 1191]
+	Location		[694, 33, 1730, 1080]
 	Open			off
 	ModelBrowserVisibility	off
 	ModelBrowserWidth	200
@@ -928,7 +971,7 @@ Library {
 	TiledPaperMargins	[0.500000, 0.500000, 0.500000, 0.500000]
 	TiledPageScale		1
 	ShowPageBoundaries	off
-	ZoomFactor		"78"
+	ZoomFactor		"86"
 	Block {
 	  BlockType		  SubSystem
 	  Name			  "16x16-bit DACs"
@@ -938,13 +981,8 @@ Library {
 	  ZOrder		  -1
 	  BackgroundColor	  "cyan"
 	  DropShadow		  on
-	  MinAlgLoopOccurrences	  off
-	  PropExecContextOutsideSubsystem off
-	  RTWSystemCode		  "Auto"
-	  FunctionWithSeparateData off
-	  Opaque		  off
 	  RequestExecContextInheritance	off
-	  MaskHideContents	  off
+	  Variant		  off
 	  System {
 	    Name		    "16x16-bit DACs"
 	    Location		    [386, 80, 1303, 1110]
@@ -1238,6 +1276,64 @@ Library {
 	    }
 	  }
 	}
+	Block {
+	  BlockType		  SubSystem
+	  Name			  "2x20-bit DACs"
+	  SID			  "375"
+	  Ports			  []
+	  Position		  [590, 371, 750, 499]
+	  ZOrder		  1
+	  RequestExecContextInheritance	off
+	  Variant		  off
+	  System {
+	    Name		    "2x20-bit DACs"
+	    Location		    [694, 33, 1730, 1080]
+	    Open		    off
+	    ModelBrowserVisibility  off
+	    ModelBrowserWidth	    200
+	    ScreenColor		    "white"
+	    PaperOrientation	    "landscape"
+	    PaperPositionMode	    "auto"
+	    PaperType		    "usletter"
+	    PaperUnits		    "inches"
+	    TiledPaperMargins	    [0.500000, 0.500000, 0.500000, 0.500000]
+	    TiledPageScale	    1
+	    ShowPageBoundaries	    off
+	    ZoomFactor		    "100"
+	    Block {
+	      BlockType		      Reference
+	      Name		      "DAC_0"
+	      SID		      "378"
+	      Description	      "type=GSC_20AO8,\ncard_num=0     "
+	      Ports		      [8]
+	      Position		      [165, 102, 200, 268]
+	      ZOrder		      1
+	      BackgroundColor	      "cyan"
+	      DropShadow	      on
+	      AttributesFormatString  "%<Description>"
+	      LibraryVersion	      "1.6"
+	      SourceBlock	      "dac20/Subsystem"
+	      SourceType	      "SubSystem"
+	      ContentPreviewEnabled   off
+	    }
+	    Block {
+	      BlockType		      Reference
+	      Name		      "DAC_1"
+	      SID		      "379"
+	      Description	      "type=GSC_20AO8,\ncard_num=1     "
+	      Ports		      [8]
+	      Position		      [265, 102, 300, 268]
+	      ZOrder		      2
+	      BackgroundColor	      "cyan"
+	      DropShadow	      on
+	      AttributesFormatString  "%<Description>"
+	      LibraryVersion	      "1.6"
+	      SourceBlock	      "dac20/Subsystem"
+	      SourceType	      "SubSystem"
+	      ContentPreviewEnabled   off
+	    }
+	  }
+	}
 	Block {
 	  BlockType		  SubSystem
 	  Name			  "8x18-bit DACs"
@@ -1247,16 +1343,11 @@ Library {
 	  ZOrder		  -2
 	  BackgroundColor	  "cyan"
 	  DropShadow		  on
-	  MinAlgLoopOccurrences	  off
-	  PropExecContextOutsideSubsystem off
-	  RTWSystemCode		  "Auto"
-	  FunctionWithSeparateData off
-	  Opaque		  off
 	  RequestExecContextInheritance	off
-	  MaskHideContents	  off
+	  Variant		  off
 	  System {
 	    Name		    "8x18-bit DACs"
-	    Location		    [8, 44, 862, 924]
+	    Location		    [694, 33, 1730, 1080]
 	    Open		    off
 	    ModelBrowserVisibility  off
 	    ModelBrowserWidth	    200
@@ -1283,14 +1374,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1306,14 +1390,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1329,14 +1406,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1352,14 +1422,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1375,14 +1438,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1398,14 +1454,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1421,14 +1470,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1444,14 +1486,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1467,14 +1502,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1490,14 +1518,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1513,14 +1534,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	    Block {
 	      BlockType		      Reference
@@ -1536,14 +1550,7 @@ Library {
 	      LibraryVersion	      "1.6"
 	      SourceBlock	      "dac18/Subsystem"
 	      SourceType	      "SubSystem"
-	      ShowPortLabels	      "FromPortIcon"
-	      SystemSampleTime	      "-1"
-	      FunctionWithSeparateData "off"
-	      RTWMemSecFuncInitTerm   "Inherit from model"
-	      RTWMemSecFuncExecute    "Inherit from model"
-	      RTWMemSecDataConstants  "Inherit from model"
-	      RTWMemSecDataInternal   "Inherit from model"
-	      RTWMemSecDataParameters "Inherit from model"
+	      ContentPreviewEnabled   off
 	    }
 	  }
 	}
@@ -1563,6 +1570,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx0/ADC0"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1580,6 +1588,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx1/ADC1"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1597,6 +1606,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx2/ADC2"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1614,6 +1624,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx3/ADC3"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1631,6 +1642,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx4/ADC4"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1648,6 +1660,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx5/ADC5"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1665,6 +1678,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx6/ADC6"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1682,6 +1696,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx7/ADC7"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1699,6 +1714,7 @@ Library {
 	  FontSize		  14
 	  SourceBlock		  "cdsAdcx8/ADC8"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1715,6 +1731,7 @@ Library {
 	  LibraryVersion	  "1.2"
 	  SourceBlock		  "cdsAdcx9/ADC9"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  BusSelector
@@ -1753,6 +1770,7 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsContec1616DIO/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -1769,6 +1787,7 @@ Library {
 	  LibraryVersion	  "1.3"
 	  SourceBlock		  "cdsCDO32/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  SubSystem
@@ -1780,13 +1799,8 @@ Library {
 	  BackgroundColor	  "lightBlue"
 	  AncestorBlock		  "CDS_PARTS2/IO_PARTS/Contec6464\nModules"
 	  LibraryVersion	  "*"
-	  MinAlgLoopOccurrences	  off
-	  PropExecContextOutsideSubsystem off
-	  RTWSystemCode		  "Auto"
-	  FunctionWithSeparateData off
-	  Opaque		  off
 	  RequestExecContextInheritance	off
-	  MaskHideContents	  off
+	  Variant		  off
 	  System {
 	    Name		    "Contec6464\nModules"
 	    Location		    [208, 44, 1083, 924]
@@ -2330,49 +2344,77 @@ Library {
 	    Annotation {
 	      SID		      "98:321"
 	      Name		      "CONTEC6464 Binary I/O Modules "
-	      Position		      [157, 21]
+	      Position		      [157, 21, 420, 41]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -1
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:322"
 	      Name		      "Card 0 "
-	      Position		      [152, 111]
+	      Position		      [152, 111, 206, 131]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -2
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:323"
 	      Name		      "Card 1 "
-	      Position		      [327, 111]
+	      Position		      [327, 111, 381, 131]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -3
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:324"
 	      Name		      "Card 2 "
-	      Position		      [507, 111]
+	      Position		      [507, 111, 561, 131]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -4
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:325"
 	      Name		      "User Application Parts *********************************"
-	      Position		      [262, 86]
+	      Position		      [262, 86, 728, 106]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -5
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:326"
 	      Name		      "IOP Parts *********************************"
-	      Position		      [222, 361]
+	      Position		      [222, 361, 594, 381]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -6
 	      FontName		      "times"
 	      FontSize		      18
 	    }
 	    Annotation {
 	      SID		      "98:327"
 	      Name		      "Card 3 "
-	      Position		      [697, 111]
+	      Position		      [697, 111, 751, 131]
+	      InternalMargins	      [0, 0, 0, 0]
+	      FixedHeight	      off
+	      FixedWidth	      off
+	      ZOrder		      -7
 	      FontName		      "times"
 	      FontSize		      18
 	    }
@@ -2383,8 +2425,7 @@ Library {
 	  Name			  "DigitalIO"
 	  SID			  "99"
 	  Tag			  "cdsDio"
-	  Description		  "support for 8 bit input 8 bit output DIO PCI card\nACCESS I/O Products model DIO-24D               "
-	  " "
+	  Description		  "support for 8 bit input 8 bit output DIO PCI card\nACCESS I/O Products model DIO-24D                "
 	  Ports			  [1, 1]
 	  Position		  [50, 912, 115, 978]
 	  ZOrder		  -20
@@ -2394,6 +2435,7 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsDio/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -2406,11 +2448,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag2"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2424,11 +2467,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag3"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2442,11 +2486,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag4"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2460,11 +2505,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag5"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2478,11 +2524,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag6"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2496,11 +2543,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag7"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2514,11 +2562,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag8"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2532,11 +2581,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag9"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -2554,6 +2604,7 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsIPCx/SignalName"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -2570,6 +2621,7 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsIPCx/SignalName"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -2587,6 +2639,7 @@ Library {
 	  LibraryVersion	  "1.4"
 	  SourceBlock		  "cdsRio/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -2604,6 +2657,7 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsRio1/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -2620,39 +2674,60 @@ Library {
 	  LibraryVersion	  "1.1"
 	  SourceBlock		  "cdsIPCx/SignalName"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Annotation {
 	  SID			  "335"
 	  Name			  "Binary I/O Modules *******************************************************************"
-	  Position		  [397, 831]
+	  Position		  [397, 831, 1151, 851]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontName		  "times"
 	  FontSize		  18
 	}
 	Annotation {
 	  SID			  "336"
 	  Name			  "Digital to Analog (DAC) Modules ********"
-	  Position		  [187, 316]
+	  Position		  [187, 316, 512, 336]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -2
 	  FontName		  "times"
 	  FontSize		  18
 	}
 	Annotation {
 	  SID			  "337"
 	  Name			  "Real-time Communications ********"
-	  Position		  [162, 566]
+	  Position		  [162, 566, 438, 586]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -3
 	  FontName		  "times"
 	  FontSize		  18
 	}
 	Annotation {
 	  SID			  "338"
 	  Name			  " aLIGO Real-time Code Generator - I/O Parts Library"
-	  Position		  [385, 20]
+	  Position		  [385, 20, 903, 46]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -4
 	  FontName		  "times"
 	  FontSize		  24
 	}
 	Annotation {
 	  SID			  "339"
 	  Name			  "Analog to Digial (ADC) Modules ***************************************************"
-	  Position		  [387, 66]
+	  Position		  [387, 66, 1095, 86]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -5
 	  FontName		  "times"
 	  FontSize		  18
 	}
@@ -2666,13 +2741,8 @@ Library {
       Position		      [366, 336, 411, 404]
       ZOrder		      -1
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"C Code"
 	Location		[857, 306, 1877, 1289]
@@ -2744,12 +2814,14 @@ Library {
 	  DisplayOption		  "bar"
 	}
 	Line {
+	  ZOrder		  1
 	  SrcBlock		  "Function Name"
 	  SrcPort		  1
 	  DstBlock		  "Demux"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  2
 	  SrcBlock		  "Mux"
 	  SrcPort		  1
 	  DstBlock		  "Function Name"
@@ -2767,13 +2839,8 @@ Library {
       DropShadow	      on
       AncestorBlock	      "CDS_PARTS/C Code"
       LibraryVersion	      "*"
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"DAQ Channels"
 	Location		[857, 306, 1877, 1289]
@@ -2812,9 +2879,13 @@ Library {
 	  SID			  "6:7"
 	  Name			  "#DAQ Channels\n\nONE_DAQ_CHANNEL 2048\nANOTHER_DAQ_CHANNEL 1024\nSCIENCE_FRAME_CHAN* 1024\nUINT32_CHAN ui"
 	  "nt32 2048\nDAQ_CHANNEL_AT_DEFAULT_RATE"
-	  Position		  [66, 131]
+	  Position		  [66, 131, 294, 231]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
 	  HorizontalAlignment	  "left"
 	  DropShadow		  on
+	  ZOrder		  -1
 	  FontSize		  14
 	}
       }
@@ -2830,11 +2901,12 @@ Library {
       BackgroundColor	      "yellow"
       ShowName		      off
       AttributesFormatString  "%<Description>"
-      LibraryVersion	      "1.281"
+      LibraryVersion	      "1.358"
       UserDataPersistent      on
       UserData		      "DataTag12"
       SourceBlock	      "simulink/Model-Wide\nUtilities/DocBlock"
       SourceType	      "DocBlock"
+      ContentPreviewEnabled   off
       DocumentType	      "Text"
     }
     Block {
@@ -2845,13 +2917,8 @@ Library {
       Position		      [462, 113, 508, 182]
       ZOrder		      -4
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"EpicsParts"
 	Location		[1419, 271, 2439, 1254]
@@ -3330,12 +3397,14 @@ Library {
 	  SourceType		  "SubSystem"
 	}
 	Line {
+	  ZOrder		  1
 	  SrcBlock		  "Ground"
 	  SrcPort		  1
 	  DstBlock		  "EpicsMomentary"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  2
 	  SrcBlock		  "Ground1"
 	  SrcPort		  1
 	  DstBlock		  "EpicsBinIn"
@@ -3344,14 +3413,22 @@ Library {
 	Annotation {
 	  SID			  "332"
 	  Name			  "RCG EPICS Parts Library ******************************"
-	  Position		  [287, 31]
+	  Position		  [287, 31, 752, 51]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontName		  "times"
 	  FontSize		  18
 	}
 	Annotation {
 	  SID			  "333"
 	  Name			  "Custom For Guardian Scripts ***************************"
-	  Position		  [272, 481]
+	  Position		  [272, 481, 732, 501]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -2
 	  FontName		  "times"
 	  FontSize		  18
 	}
@@ -3367,13 +3444,8 @@ Library {
       DropShadow	      on
       FontSize		      12
       FontWeight	      "bold"
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"Filters/\nGDS"
 	Location		[1419, 271, 2439, 1254]
@@ -3762,7 +3834,11 @@ Library {
 	Annotation {
 	  SID			  "334"
 	  Name			  "aLIGO RCG - Filter Modules and GDS Parts"
-	  Position		  [197, 25]
+	  Position		  [197, 25, 524, 48]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontName		  "Times New Roman"
 	  FontSize		  18
 	}
@@ -3776,13 +3852,8 @@ Library {
       Position		      [368, 220, 414, 289]
       ZOrder		      -7
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"MatrixParts"
 	Location		[857, 306, 1877, 1289]
@@ -4196,36 +4267,42 @@ Library {
 	  SourceType		  "SubSystem"
 	}
 	Line {
+	  ZOrder		  1
 	  SrcBlock		  "Mux"
 	  SrcPort		  1
 	  DstBlock		  "cdsMuxMatrix"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  2
 	  SrcBlock		  "cdsMuxMatrix"
 	  SrcPort		  1
 	  DstBlock		  "Demux"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  3
 	  SrcBlock		  "Mux1"
 	  SrcPort		  1
 	  DstBlock		  "cdsFiltMuxMatrix"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  4
 	  SrcBlock		  "cdsFiltMuxMatrix"
 	  SrcPort		  1
 	  DstBlock		  "Demux1"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  5
 	  SrcBlock		  "Mux2"
 	  SrcPort		  1
 	  DstBlock		  "RampMuxMatrix"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  6
 	  SrcBlock		  "RampMuxMatrix"
 	  SrcPort		  1
 	  DstBlock		  "Demux2"
@@ -4234,14 +4311,22 @@ Library {
 	Annotation {
 	  SID			  "340"
 	  Name			  " aLIGO Real-time Code Generator - Matrix Parts Library ***************"
-	  Position		  [310, 30]
+	  Position		  [310, 30, 864, 53]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontName		  "Times New Roman"
 	  FontSize		  18
 	}
 	Annotation {
 	  SID			  "341"
 	  Name			  " Legacy Parts Built to Support HEPI Controls **************************"
-	  Position		  [325, 440]
+	  Position		  [325, 440, 894, 463]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -2
 	  FontName		  "Times New Roman"
 	  FontSize		  18
 	}
@@ -4255,17 +4340,12 @@ Library {
       Position		      [461, 221, 507, 290]
       ZOrder		      -8
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"Osc/Phase"
-	Location		[694, 249, 1730, 1296]
-	Open			on
+	Location		[694, 33, 1730, 1080]
+	Open			off
 	ModelBrowserVisibility	off
 	ModelBrowserWidth	200
 	ScreenColor		"white"
@@ -4288,11 +4368,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag40"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4306,11 +4387,12 @@ Library {
 	  BackgroundColor	  "magenta"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag41"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4324,11 +4406,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag42"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4342,11 +4425,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag43"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4360,11 +4444,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag44"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4378,11 +4463,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag45"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4396,11 +4482,12 @@ Library {
 	  BackgroundColor	  "yellow"
 	  ShowName		  off
 	  AttributesFormatString  "%<Description>"
-	  LibraryVersion	  "1.281"
+	  LibraryVersion	  "1.358"
 	  UserDataPersistent	  on
 	  UserData		  "DataTag46"
 	  SourceBlock		  "simulink/Model-Wide\nUtilities/DocBlock"
 	  SourceType		  "DocBlock"
+	  ContentPreviewEnabled	  off
 	  DocumentType		  "Text"
 	}
 	Block {
@@ -4438,6 +4525,7 @@ Library {
 	  LibraryVersion	  "1.5"
 	  SourceBlock		  "cdsNoise/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4453,6 +4541,7 @@ Library {
 	  LibraryVersion	  "1.10"
 	  SourceBlock		  "cdsOscFixedPhase/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4469,6 +4558,7 @@ Library {
 	  LibraryVersion	  "1.6"
 	  SourceBlock		  "cdsOsc/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4484,6 +4574,7 @@ Library {
 	  LibraryVersion	  "1.10"
 	  SourceBlock		  "cdsOscSetPhase/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4500,6 +4591,7 @@ Library {
 	  LibraryVersion	  "1.2"
 	  SourceBlock		  "cdsPhase/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4516,6 +4608,7 @@ Library {
 	  LibraryVersion	  "1.2"
 	  SourceBlock		  "cdsWfsPhase/Subsystem"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Block {
 	  BlockType		  Reference
@@ -4532,20 +4625,24 @@ Library {
 	  LibraryVersion	  "1.6"
 	  SourceBlock		  "cdsSatCount/Saturation Count Name"
 	  SourceType		  "SubSystem"
+	  ContentPreviewEnabled	  off
 	}
 	Line {
+	  ZOrder		  1
 	  SrcBlock		  "Ground"
 	  SrcPort		  1
 	  DstBlock		  "Oscillator Name"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  2
 	  SrcBlock		  "Ground1"
 	  SrcPort		  1
 	  DstBlock		  "Noise Generator"
 	  DstPort		  1
 	}
 	Line {
+	  ZOrder		  3
 	  SrcBlock		  "Ground2"
 	  SrcPort		  1
 	  DstBlock		  "Oscillator Fixed Phase Name"
@@ -4554,7 +4651,11 @@ Library {
 	Annotation {
 	  SID			  "342"
 	  Name			  "RCG OSC/Phase Parts Library"
-	  Position		  [182, 21]
+	  Position		  [182, 21, 406, 41]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontName		  "times"
 	  FontSize		  18
 	}
@@ -4569,13 +4670,8 @@ Library {
       ZOrder		      -9
       DropShadow	      on
       LibraryVersion	      "1.216"
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"RT Links"
 	Location		[857, 306, 1877, 1289]
@@ -4695,13 +4791,8 @@ Library {
       Position		      [270, 336, 315, 404]
       ZOrder		      -10
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"WatchDogs"
 	Location		[1319, 176, 2347, 1191]
@@ -4974,13 +5065,8 @@ Library {
       Position		      [366, 112, 413, 182]
       ZOrder		      -11
       DropShadow	      on
-      MinAlgLoopOccurrences   off
-      PropExecContextOutsideSubsystem off
-      RTWSystemCode	      "Auto"
-      FunctionWithSeparateData off
-      Opaque		      off
       RequestExecContextInheritance off
-      MaskHideContents	      off
+      Variant		      off
       System {
 	Name			"simLinkParts"
 	Location		[694, 249, 1730, 1296]
@@ -5014,6 +5100,7 @@ Library {
 	  ShowName		  off
 	  Inputs		  "'signal1','signal2'"
 	  DisplayOption		  "bar"
+	  InheritFromInputs	  on
 	}
 	Block {
 	  BlockType		  BusSelector
@@ -5163,7 +5250,6 @@ Library {
 	  SID			  "187"
 	  Position		  [40, 540, 80, 570]
 	  ZOrder		  -14
-	  GotoTag		  "A"
 	}
 	Block {
 	  BlockType		  Ground
@@ -5289,13 +5375,21 @@ Library {
 	Annotation {
 	  SID			  "343"
 	  Name			  "MUXs"
-	  Position		  [185, 561]
+	  Position		  [185, 561, 244, 587]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -1
 	  FontSize		  24
 	}
 	Annotation {
 	  SID			  "344"
 	  Name			  "BUS CREATOR"
-	  Position		  [306, 563]
+	  Position		  [306, 563, 426, 583]
+	  InternalMargins	  [0, 0, 0, 0]
+	  FixedHeight		  off
+	  FixedWidth		  off
+	  ZOrder		  -2
 	  FontSize		  18
 	}
       }
@@ -5346,24 +5440,37 @@ Library {
       LibraryVersion	      "1.6"
       SourceBlock	      "cdsParameters/Subsystem"
       SourceType	      "SubSystem"
+      ContentPreviewEnabled   off
     }
     Annotation {
       SID		      "364"
       Name		      "Note: \nIn V2.8 and later:\nBIQUAD IIR filter algorithm set \nas default.\nshmem_daq=1 set as defau"
       "lt, so no\nlonger a required setting.\n"
-      Position		      [122, 333]
+      Position		      [122, 333, 322, 405]
+      InternalMargins	      [0, 0, 0, 0]
+      FixedHeight	      off
+      FixedWidth	      off
+      ZOrder		      -1
       FontWeight	      "bold"
     }
     Annotation {
       SID		      "345"
       Name		      "One cdsParameters block is\nrequired per User Model.\nPart is shown with the 6\nrequired fields. Ad"
       "ditional\noptions described in DOC block. "
-      Position		      [122, 121]
+      Position		      [122, 121, 316, 173]
+      InternalMargins	      [0, 0, 0, 0]
+      FixedHeight	      off
+      FixedWidth	      off
+      ZOrder		      -2
     }
     Annotation {
       SID		      "346"
-      Name		      "Matlab Parts Library for Use with aLIGO Real-time Code Generator - V3.0"
-      Position		      [330, 30]
+      Name		      "Matlab Parts Library for Use with aLIGO Real-time Code Generator - V3.3"
+      Position		      [330, 30, 876, 50]
+      InternalMargins	      [0, 0, 0, 0]
+      FixedHeight	      off
+      FixedWidth	      off
+      ZOrder		      -3
       FontName		      "times"
       FontSize		      18
     }
diff --git a/src/epics/simLink/lib/dac20.mdl b/src/epics/simLink/lib/dac20.mdl
new file mode 100644
index 000000000..cfa82d943
--- /dev/null
+++ b/src/epics/simLink/lib/dac20.mdl
@@ -0,0 +1,873 @@
+Library {
+  Name			  "dac20"
+  Version		  7.5
+  MdlSubVersion		  0
+  SavedCharacterEncoding  "windows-1252"
+  LibraryType		  "BlockLibrary"
+  SaveDefaultBlockParams  on
+  ScopeRefreshTime	  0.035000
+  OverrideScopeRefreshTime on
+  DisableAllScopes	  off
+  MaxMDLFileLineLength	  120
+  Created		  "Mon Mar 06 14:36:11 2006"
+  Creator		  "rolf"
+  UpdateHistory		  "UpdateHistoryNever"
+  ModifiedByFormat	  "%<Auto>"
+  LastModifiedBy	  "controls"
+  ModifiedDateFormat	  "%<Auto>"
+  LastModifiedDate	  "Thu Feb 16 11:18:49 2012"
+  RTWModifiedTimeStamp	  251291927
+  ModelVersionFormat	  "1.%<AutoIncrement:6>"
+  ConfigurationManager	  "None"
+  SampleTimeColors	  off
+  SampleTimeAnnotations	  off
+  LibraryLinkDisplay	  "none"
+  WideLines		  off
+  ShowLineDimensions	  off
+  ShowPortDataTypes	  off
+  ShowLoopsOnError	  on
+  IgnoreBidirectionalLines off
+  ShowStorageClass	  off
+  ShowTestPointIcons	  on
+  ShowSignalResolutionIcons on
+  ShowViewerIcons	  on
+  SortedOrder		  off
+  ExecutionContextIcon	  off
+  ShowLinearizationAnnotations on
+  BlockNameDataTip	  off
+  BlockParametersDataTip  off
+  BlockDescriptionStringDataTip	off
+  ToolBar		  on
+  StatusBar		  on
+  BrowserShowLibraryLinks off
+  BrowserLookUnderMasks	  off
+  SimulationMode	  "normal"
+  LinearizationMsg	  "none"
+  Profile		  off
+  ParamWorkspaceSource	  "MATLABWorkspace"
+  RecordCoverage	  off
+  CovSaveName		  "covdata"
+  CovMetricSettings	  "dw"
+  CovNameIncrementing	  off
+  CovHtmlReporting	  on
+  CovForceBlockReductionOff on
+  covSaveCumulativeToWorkspaceVar on
+  CovSaveSingleToWorkspaceVar on
+  CovCumulativeReport	  off
+  CovReportOnPause	  on
+  CovModelRefEnable	  "Off"
+  CovExternalEMLEnable	  off
+  ExtModeBatchMode	  off
+  ExtModeEnableFloating	  on
+  ExtModeTrigType	  "manual"
+  ExtModeTrigMode	  "normal"
+  ExtModeTrigPort	  "1"
+  ExtModeTrigElement	  "any"
+  ExtModeTrigDuration	  1000
+  ExtModeTrigDurationFloating "auto"
+  ExtModeTrigHoldOff	  0
+  ExtModeTrigDelay	  0
+  ExtModeTrigDirection	  "rising"
+  ExtModeTrigLevel	  0
+  ExtModeArchiveMode	  "off"
+  ExtModeAutoIncOneShot	  off
+  ExtModeIncDirWhenArm	  off
+  ExtModeAddSuffixToVar	  off
+  ExtModeWriteAllDataToWs off
+  ExtModeArmWhenConnect	  on
+  ExtModeSkipDownloadWhenConnect off
+  ExtModeLogAll		  on
+  ExtModeAutoUpdateStatusClock on
+  ShowModelReferenceBlockVersion off
+  ShowModelReferenceBlockIO off
+  Array {
+    Type		    "Handle"
+    Dimension		    1
+    Simulink.ConfigSet {
+      $ObjectID		      1
+      Version		      "1.10.0"
+      Array {
+	Type			"Handle"
+	Dimension		8
+	Simulink.SolverCC {
+	  $ObjectID		  2
+	  Version		  "1.10.0"
+	  StartTime		  "0.0"
+	  StopTime		  "10.0"
+	  AbsTol		  "auto"
+	  FixedStep		  "auto"
+	  InitialStep		  "auto"
+	  MaxNumMinSteps	  "-1"
+	  MaxOrder		  5
+	  ZcThreshold		  "auto"
+	  ConsecutiveZCsStepRelTol "10*128*eps"
+	  MaxConsecutiveZCs	  "1000"
+	  ExtrapolationOrder	  4
+	  NumberNewtonIterations  1
+	  MaxStep		  "auto"
+	  MinStep		  "auto"
+	  MaxConsecutiveMinStep	  "1"
+	  RelTol		  "1e-3"
+	  SolverMode		  "SingleTasking"
+	  Solver		  "ode45"
+	  SolverName		  "ode45"
+	  SolverJacobianMethodControl "auto"
+	  ShapePreserveControl	  "DisableAll"
+	  ZeroCrossControl	  "UseLocalSettings"
+	  ZeroCrossAlgorithm	  "Nonadaptive"
+	  AlgebraicLoopSolver	  "TrustRegion"
+	  SolverResetMethod	  "Fast"
+	  PositivePriorityOrder	  off
+	  AutoInsertRateTranBlk	  off
+	  SampleTimeConstraint	  "Unconstrained"
+	  InsertRTBMode		  "Whenever possible"
+	}
+	Simulink.DataIOCC {
+	  $ObjectID		  3
+	  Version		  "1.10.0"
+	  Decimation		  "1"
+	  ExternalInput		  "[t, u]"
+	  FinalStateName	  "xFinal"
+	  InitialState		  "xInitial"
+	  LimitDataPoints	  on
+	  MaxDataPoints		  "1000"
+	  LoadExternalInput	  off
+	  LoadInitialState	  off
+	  SaveFinalState	  off
+	  SaveCompleteFinalSimState off
+	  SaveFormat		  "Array"
+	  SaveOutput		  on
+	  SaveState		  off
+	  SignalLogging		  on
+	  DSMLogging		  on
+	  InspectSignalLogs	  off
+	  SaveTime		  on
+	  ReturnWorkspaceOutputs  off
+	  StateSaveName		  "xout"
+	  TimeSaveName		  "tout"
+	  OutputSaveName	  "yout"
+	  SignalLoggingName	  "logsout"
+	  DSMLoggingName	  "dsmout"
+	  OutputOption		  "RefineOutputTimes"
+	  OutputTimes		  "[]"
+	  ReturnWorkspaceOutputsName "out"
+	  Refine		  "1"
+	}
+	Simulink.OptimizationCC {
+	  $ObjectID		  4
+	  Version		  "1.10.0"
+	  Array {
+	    Type		    "Cell"
+	    Dimension		    7
+	    Cell		    "BooleansAsBitfields"
+	    Cell		    "PassReuseOutputArgsAs"
+	    Cell		    "PassReuseOutputArgsThreshold"
+	    Cell		    "ZeroExternalMemoryAtStartup"
+	    Cell		    "ZeroInternalMemoryAtStartup"
+	    Cell		    "OptimizeModelRefInitCode"
+	    Cell		    "NoFixptDivByZeroProtection"
+	    PropName		    "DisabledProps"
+	  }
+	  BlockReduction	  off
+	  BooleanDataType	  off
+	  ConditionallyExecuteInputs on
+	  InlineParams		  off
+	  UseIntDivNetSlope	  off
+	  InlineInvariantSignals  off
+	  OptimizeBlockIOStorage  on
+	  BufferReuse		  on
+	  EnhancedBackFolding	  off
+	  StrengthReduction	  off
+	  EnforceIntegerDowncast  on
+	  ExpressionFolding	  on
+	  BooleansAsBitfields	  off
+	  BitfieldContainerType	  "uint_T"
+	  EnableMemcpy		  on
+	  MemcpyThreshold	  64
+	  PassReuseOutputArgsAs	  "Structure reference"
+	  ExpressionDepthLimit	  2147483647
+	  FoldNonRolledExpr	  on
+	  LocalBlockOutputs	  on
+	  RollThreshold		  5
+	  SystemCodeInlineAuto	  off
+	  StateBitsets		  off
+	  DataBitsets		  off
+	  UseTempVars		  off
+	  ZeroExternalMemoryAtStartup on
+	  ZeroInternalMemoryAtStartup on
+	  InitFltsAndDblsToZero	  off
+	  NoFixptDivByZeroProtection off
+	  EfficientFloat2IntCast  off
+	  EfficientMapNaN2IntZero on
+	  OptimizeModelRefInitCode off
+	  LifeSpan		  "inf"
+	  MaxStackSize		  "Inherit from target"
+	  BufferReusableBoundary  on
+	  SimCompilerOptimization "Off"
+	  AccelVerboseBuild	  off
+	}
+	Simulink.DebuggingCC {
+	  $ObjectID		  5
+	  Version		  "1.10.0"
+	  RTPrefix		  "error"
+	  ConsistencyChecking	  "none"
+	  ArrayBoundsChecking	  "none"
+	  SignalInfNanChecking	  "none"
+	  SignalRangeChecking	  "none"
+	  ReadBeforeWriteMsg	  "UseLocalSettings"
+	  WriteAfterWriteMsg	  "UseLocalSettings"
+	  WriteAfterReadMsg	  "UseLocalSettings"
+	  AlgebraicLoopMsg	  "warning"
+	  ArtificialAlgebraicLoopMsg "warning"
+	  SaveWithDisabledLinksMsg "warning"
+	  SaveWithParameterizedLinksMsg	"none"
+	  CheckSSInitialOutputMsg on
+	  UnderspecifiedInitializationDetection	"Classic"
+	  MergeDetectMultiDrivingBlocksExec "none"
+	  CheckExecutionContextPreStartOutputMsg off
+	  CheckExecutionContextRuntimeOutputMsg	off
+	  SignalResolutionControl "TryResolveAllWithWarning"
+	  BlockPriorityViolationMsg "warning"
+	  MinStepSizeMsg	  "warning"
+	  TimeAdjustmentMsg	  "none"
+	  MaxConsecutiveZCsMsg	  "error"
+	  SolverPrmCheckMsg	  "none"
+	  InheritedTsInSrcMsg	  "warning"
+	  DiscreteInheritContinuousMsg "warning"
+	  MultiTaskDSMMsg	  "error"
+	  MultiTaskCondExecSysMsg "error"
+	  MultiTaskRateTransMsg	  "error"
+	  SingleTaskRateTransMsg  "none"
+	  TasksWithSamePriorityMsg "warning"
+	  SigSpecEnsureSampleTimeMsg "warning"
+	  CheckMatrixSingularityMsg "none"
+	  IntegerOverflowMsg	  "warning"
+	  Int32ToFloatConvMsg	  "warning"
+	  ParameterDowncastMsg	  "error"
+	  ParameterOverflowMsg	  "error"
+	  ParameterUnderflowMsg	  "none"
+	  ParameterPrecisionLossMsg "warning"
+	  ParameterTunabilityLossMsg "warning"
+	  FixptConstUnderflowMsg  "none"
+	  FixptConstOverflowMsg	  "none"
+	  FixptConstPrecisionLossMsg "none"
+	  UnderSpecifiedDataTypeMsg "none"
+	  UnnecessaryDatatypeConvMsg "none"
+	  VectorMatrixConversionMsg "none"
+	  InvalidFcnCallConnMsg	  "error"
+	  FcnCallInpInsideContextMsg "Use local settings"
+	  SignalLabelMismatchMsg  "none"
+	  UnconnectedInputMsg	  "warning"
+	  UnconnectedOutputMsg	  "warning"
+	  UnconnectedLineMsg	  "warning"
+	  SFcnCompatibilityMsg	  "none"
+	  UniqueDataStoreMsg	  "none"
+	  BusObjectLabelMismatch  "warning"
+	  RootOutportRequireBusObject "warning"
+	  AssertControl		  "UseLocalSettings"
+	  EnableOverflowDetection off
+	  ModelReferenceIOMsg	  "none"
+	  ModelReferenceVersionMismatchMessage "none"
+	  ModelReferenceIOMismatchMessage "none"
+	  ModelReferenceCSMismatchMessage "none"
+	  UnknownTsInhSupMsg	  "warning"
+	  ModelReferenceDataLoggingMessage "warning"
+	  ModelReferenceSymbolNameMessage "warning"
+	  ModelReferenceExtraNoncontSigs "error"
+	  StateNameClashWarn	  "warning"
+	  SimStateInterfaceChecksumMismatchMsg "warning"
+	  StrictBusMsg		  "Warning"
+	  BusNameAdapt		  "WarnAndRepair"
+	  NonBusSignalsTreatedAsBus "none"
+	  LoggingUnavailableSignals "error"
+	  BlockIODiagnostic	  "none"
+	}
+	Simulink.HardwareCC {
+	  $ObjectID		  6
+	  Version		  "1.10.0"
+	  ProdBitPerChar	  8
+	  ProdBitPerShort	  16
+	  ProdBitPerInt		  32
+	  ProdBitPerLong	  32
+	  ProdIntDivRoundTo	  "Undefined"
+	  ProdEndianess		  "Unspecified"
+	  ProdWordSize		  32
+	  ProdShiftRightIntArith  on
+	  ProdHWDeviceType	  "32-bit Generic"
+	  TargetBitPerChar	  8
+	  TargetBitPerShort	  16
+	  TargetBitPerInt	  32
+	  TargetBitPerLong	  32
+	  TargetShiftRightIntArith on
+	  TargetIntDivRoundTo	  "Undefined"
+	  TargetEndianess	  "Unspecified"
+	  TargetWordSize	  32
+	  TargetTypeEmulationWarnSuppressLevel 0
+	  TargetPreprocMaxBitsSint 32
+	  TargetPreprocMaxBitsUint 32
+	  TargetHWDeviceType	  "Specified"
+	  TargetUnknown		  on
+	  ProdEqTarget		  on
+	}
+	Simulink.ModelReferenceCC {
+	  $ObjectID		  7
+	  Version		  "1.10.0"
+	  UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+	  CheckModelReferenceTargetMessage "error"
+	  EnableParallelModelReferenceBuilds off
+	  ParallelModelReferenceMATLABWorkerInit "None"
+	  ModelReferenceNumInstancesAllowed "Multi"
+	  PropagateVarSize	  "Infer from blocks in model"
+	  ModelReferencePassRootInputsByReference on
+	  ModelReferenceMinAlgLoopOccurrences off
+	  PropagateSignalLabelsOutOfModel off
+	  SupportModelReferenceSimTargetCustomCode off
+	}
+	Simulink.SFSimCC {
+	  $ObjectID		  8
+	  Version		  "1.10.0"
+	  SFSimEnableDebug	  on
+	  SFSimOverflowDetection  on
+	  SFSimEcho		  on
+	  SimBlas		  on
+	  SimCtrlC		  on
+	  SimExtrinsic		  on
+	  SimIntegrity		  on
+	  SimUseLocalCustomCode	  off
+	  SimBuildMode		  "sf_incremental_build"
+	}
+	Simulink.RTWCC {
+	  $BackupClass		  "Simulink.RTWCC"
+	  $ObjectID		  9
+	  Version		  "1.10.0"
+	  Array {
+	    Type		    "Cell"
+	    Dimension		    6
+	    Cell		    "IncludeHyperlinkInReport"
+	    Cell		    "GenerateTraceInfo"
+	    Cell		    "GenerateTraceReport"
+	    Cell		    "GenerateTraceReportSl"
+	    Cell		    "GenerateTraceReportSf"
+	    Cell		    "GenerateTraceReportEml"
+	    PropName		    "DisabledProps"
+	  }
+	  SystemTargetFile	  "grt.tlc"
+	  GenCodeOnly		  off
+	  MakeCommand		  "make_rtw"
+	  GenerateMakefile	  on
+	  TemplateMakefile	  "grt_default_tmf"
+	  GenerateReport	  off
+	  SaveLog		  off
+	  RTWVerbose		  on
+	  RetainRTWFile		  off
+	  ProfileTLC		  off
+	  TLCDebug		  off
+	  TLCCoverage		  off
+	  TLCAssert		  off
+	  ProcessScriptMode	  "Default"
+	  ConfigurationMode	  "Optimized"
+	  ConfigAtBuild		  off
+	  RTWUseLocalCustomCode	  off
+	  RTWUseSimCustomCode	  off
+	  IncludeHyperlinkInReport off
+	  LaunchReport		  off
+	  TargetLang		  "C"
+	  IncludeBusHierarchyInRTWFileBlockHierarchyMap	off
+	  IncludeERTFirstTime	  off
+	  GenerateTraceInfo	  off
+	  GenerateTraceReport	  off
+	  GenerateTraceReportSl	  off
+	  GenerateTraceReportSf	  off
+	  GenerateTraceReportEml  off
+	  GenerateCodeInfo	  off
+	  RTWCompilerOptimization "Off"
+	  CheckMdlBeforeBuild	  "Off"
+	  CustomRebuildMode	  "OnUpdate"
+	  Array {
+	    Type		    "Handle"
+	    Dimension		    2
+	    Simulink.CodeAppCC {
+	      $ObjectID		      10
+	      Version		      "1.10.0"
+	      Array {
+		Type			"Cell"
+		Dimension		19
+		Cell			"IgnoreCustomStorageClasses"
+		Cell			"IgnoreTestpoints"
+		Cell			"InsertBlockDesc"
+		Cell			"SFDataObjDesc"
+		Cell			"SimulinkDataObjDesc"
+		Cell			"DefineNamingRule"
+		Cell			"SignalNamingRule"
+		Cell			"ParamNamingRule"
+		Cell			"InlinedPrmAccess"
+		Cell			"CustomSymbolStr"
+		Cell			"CustomSymbolStrGlobalVar"
+		Cell			"CustomSymbolStrType"
+		Cell			"CustomSymbolStrField"
+		Cell			"CustomSymbolStrFcn"
+		Cell			"CustomSymbolStrFcnArg"
+		Cell			"CustomSymbolStrBlkIO"
+		Cell			"CustomSymbolStrTmpVar"
+		Cell			"CustomSymbolStrMacro"
+		Cell			"ReqsInCode"
+		PropName		"DisabledProps"
+	      }
+	      ForceParamTrailComments off
+	      GenerateComments	      on
+	      IgnoreCustomStorageClasses on
+	      IgnoreTestpoints	      off
+	      IncHierarchyInIds	      off
+	      MaxIdLength	      31
+	      PreserveName	      off
+	      PreserveNameWithParent  off
+	      ShowEliminatedStatement off
+	      IncAutoGenComments      off
+	      SimulinkDataObjDesc     off
+	      SFDataObjDesc	      off
+	      IncDataTypeInIds	      off
+	      MangleLength	      1
+	      CustomSymbolStrGlobalVar "$R$N$M"
+	      CustomSymbolStrType     "$N$R$M"
+	      CustomSymbolStrField    "$N$M"
+	      CustomSymbolStrFcn      "$R$N$M$F"
+	      CustomSymbolStrFcnArg   "rt$I$N$M"
+	      CustomSymbolStrBlkIO    "rtb_$N$M"
+	      CustomSymbolStrTmpVar   "$N$M"
+	      CustomSymbolStrMacro    "$R$N$M"
+	      DefineNamingRule	      "None"
+	      ParamNamingRule	      "None"
+	      SignalNamingRule	      "None"
+	      InsertBlockDesc	      off
+	      SimulinkBlockComments   on
+	      EnableCustomComments    off
+	      InlinedPrmAccess	      "Literals"
+	      ReqsInCode	      off
+	      UseSimReservedNames     off
+	    }
+	    Simulink.GRTTargetCC {
+	      $BackupClass	      "Simulink.TargetCC"
+	      $ObjectID		      11
+	      Version		      "1.10.0"
+	      Array {
+		Type			"Cell"
+		Dimension		17
+		Cell			"GeneratePreprocessorConditionals"
+		Cell			"IncludeMdlTerminateFcn"
+		Cell			"CombineOutputUpdateFcns"
+		Cell			"SuppressErrorStatus"
+		Cell			"ERTCustomFileBanners"
+		Cell			"GenerateSampleERTMain"
+		Cell			"GenerateTestInterfaces"
+		Cell			"ModelStepFunctionPrototypeControlCompliant"
+		Cell			"CPPClassGenCompliant"
+		Cell			"MultiInstanceERTCode"
+		Cell			"PurelyIntegerCode"
+		Cell			"SupportNonFinite"
+		Cell			"SupportComplex"
+		Cell			"SupportAbsoluteTime"
+		Cell			"SupportContinuousTime"
+		Cell			"SupportNonInlinedSFcns"
+		Cell			"PortableWordSizes"
+		PropName		"DisabledProps"
+	      }
+	      TargetFcnLib	      "ansi_tfl_table_tmw.mat"
+	      TargetLibSuffix	      ""
+	      TargetPreCompLibLocation ""
+	      TargetFunctionLibrary   "ANSI_C"
+	      UtilityFuncGeneration   "Auto"
+	      ERTMultiwordTypeDef     "System defined"
+	      ERTCodeCoverageTool     "None"
+	      ERTMultiwordLength      256
+	      MultiwordLength	      2048
+	      GenerateFullHeader      on
+	      GenerateSampleERTMain   off
+	      GenerateTestInterfaces  off
+	      IsPILTarget	      off
+	      ModelReferenceCompliant on
+	      ParMdlRefBuildCompliant on
+	      CompOptLevelCompliant   on
+	      IncludeMdlTerminateFcn  on
+	      GeneratePreprocessorConditionals "Disable all"
+	      CombineOutputUpdateFcns off
+	      SuppressErrorStatus     off
+	      ERTFirstTimeCompliant   off
+	      IncludeFileDelimiter    "Auto"
+	      ERTCustomFileBanners    off
+	      SupportAbsoluteTime     on
+	      LogVarNameModifier      "rt_"
+	      MatFileLogging	      on
+	      MultiInstanceERTCode    off
+	      SupportNonFinite	      on
+	      SupportComplex	      on
+	      PurelyIntegerCode	      off
+	      SupportContinuousTime   on
+	      SupportNonInlinedSFcns  on
+	      SupportVariableSizeSignals off
+	      EnableShiftOperators    on
+	      ParenthesesLevel	      "Nominal"
+	      PortableWordSizes	      off
+	      ModelStepFunctionPrototypeControlCompliant off
+	      CPPClassGenCompliant    off
+	      AutosarCompliant	      off
+	      UseMalloc		      off
+	      ExtMode		      off
+	      ExtModeStaticAlloc      off
+	      ExtModeTesting	      off
+	      ExtModeStaticAllocSize  1000000
+	      ExtModeTransport	      0
+	      ExtModeMexFile	      "ext_comm"
+	      ExtModeIntrfLevel	      "Level1"
+	      RTWCAPISignals	      off
+	      RTWCAPIParams	      off
+	      RTWCAPIStates	      off
+	      GenerateASAP2	      off
+	    }
+	    PropName		    "Components"
+	  }
+	}
+	PropName		"Components"
+      }
+      Name		      "Configuration"
+      CurrentDlgPage	      "Solver"
+      ConfigPrmDlgPosition    " [ 520, 214, 1400, 844 ] "
+    }
+    PropName		    "ConfigurationSets"
+  }
+  BlockDefaults {
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    NamePlacement	    "normal"
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    ShowName		    on
+    BlockRotation	    0
+    BlockMirror		    off
+  }
+  AnnotationDefaults {
+    HorizontalAlignment	    "center"
+    VerticalAlignment	    "middle"
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    UseDisplayTextAsClickCallback off
+  }
+  LineDefaults {
+    FontName		    "Helvetica"
+    FontSize		    9
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+  }
+  BlockParameterDefaults {
+    Block {
+      BlockType		      Inport
+      Port		      "1"
+      UseBusObject	      off
+      BusObject		      "BusObject"
+      BusOutputAsStruct	      off
+      PortDimensions	      "-1"
+      VarSizeSig	      "Inherit"
+      SampleTime	      "-1"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      DataType		      "auto"
+      OutDataType	      "fixdt(1,16,0)"
+      OutScaling	      "[]"
+      OutDataTypeStr	      "Inherit: auto"
+      LockScale		      off
+      SignalType	      "auto"
+      SamplingMode	      "auto"
+      LatchByDelayingOutsideSignal off
+      LatchInputForFeedbackSignals off
+      Interpolate	      on
+    }
+    Block {
+      BlockType		      SubSystem
+      ShowPortLabels	      "FromPortIcon"
+      Permissions	      "ReadWrite"
+      PermitHierarchicalResolution "All"
+      TreatAsAtomicUnit	      off
+      CheckFcnCallInpInsideContextMsg off
+      SystemSampleTime	      "-1"
+      RTWFcnNameOpts	      "Auto"
+      RTWFileNameOpts	      "Auto"
+      RTWMemSecFuncInitTerm   "Inherit from model"
+      RTWMemSecFuncExecute    "Inherit from model"
+      RTWMemSecDataConstants  "Inherit from model"
+      RTWMemSecDataInternal   "Inherit from model"
+      RTWMemSecDataParameters "Inherit from model"
+      SimViewingDevice	      off
+      DataTypeOverride	      "UseLocalSettings"
+      MinMaxOverflowLogging   "UseLocalSettings"
+    }
+  }
+  System {
+    Name		    "dac20"
+    Location		    [705, 270, 1376, 903]
+    Open		    on
+    ModelBrowserVisibility  off
+    ModelBrowserWidth	    200
+    ScreenColor		    "white"
+    PaperOrientation	    "landscape"
+    PaperPositionMode	    "auto"
+    PaperType		    "usletter"
+    PaperUnits		    "inches"
+    TiledPaperMargins	    [0.500000, 0.500000, 0.500000, 0.500000]
+    TiledPageScale	    1
+    ShowPageBoundaries	    off
+    ZoomFactor		    "100"
+    ReportName		    "simulink-default.rpt"
+    SIDHighWatermark	    17
+    Block {
+      BlockType		      Inport
+      Name		      "In1"
+      SID		      10
+      Position		      [45, 123, 75, 137]
+      ShowName		      off
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In9"
+      SID		      11
+      Position		      [30, 243, 60, 257]
+      Port		      "2"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In3"
+      SID		      12
+      Position		      [30, 283, 60, 297]
+      Port		      "3"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In4"
+      SID		      13
+      Position		      [30, 323, 60, 337]
+      Port		      "4"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In5"
+      SID		      14
+      Position		      [30, 358, 60, 372]
+      Port		      "5"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In6"
+      SID		      15
+      Position		      [30, 393, 60, 407]
+      Port		      "6"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In7"
+      SID		      16
+      Position		      [30, 428, 60, 442]
+      Port		      "7"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      Inport
+      Name		      "In8"
+      SID		      17
+      Position		      [30, 463, 60, 477]
+      Port		      "8"
+      IconDisplay	      "Port number"
+      OutDataType	      "sfix(16)"
+      OutScaling	      "2^0"
+    }
+    Block {
+      BlockType		      SubSystem
+      Name		      "Subsystem"
+      SID		      1
+      Ports		      [8]
+      Position		      [125, 290, 165, 380]
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"Subsystem"
+	Location		[1439, 152, 1734, 728]
+	Open			on
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"usletter"
+	PaperUnits		"inches"
+	TiledPaperMargins	[0.500000, 0.500000, 0.500000, 0.500000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"100"
+	Block {
+	  BlockType		  Inport
+	  Name			  "In0"
+	  SID			  2
+	  Position		  [25, 28, 55, 42]
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In1"
+	  SID			  3
+	  Position		  [25, 63, 55, 77]
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In2"
+	  SID			  4
+	  Position		  [25, 98, 55, 112]
+	  Port			  "3"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In3"
+	  SID			  5
+	  Position		  [25, 133, 55, 147]
+	  Port			  "4"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In4"
+	  SID			  6
+	  Position		  [25, 163, 55, 177]
+	  Port			  "5"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In5"
+	  SID			  7
+	  Position		  [25, 198, 55, 212]
+	  Port			  "6"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In6"
+	  SID			  8
+	  Position		  [25, 233, 55, 247]
+	  Port			  "7"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "In7"
+	  SID			  9
+	  Position		  [25, 268, 55, 282]
+	  Port			  "8"
+	  IconDisplay		  "Port number"
+	  OutDataType		  "sfix(16)"
+	  OutScaling		  "2^0"
+	}
+      }
+    }
+    Line {
+      SrcBlock		      "In1"
+      SrcPort		      1
+      Points		      [25, 0; 0, 170]
+      DstBlock		      "Subsystem"
+      DstPort		      1
+    }
+    Line {
+      SrcBlock		      "In3"
+      SrcPort		      1
+      Points		      [5, 0; 0, 30]
+      DstBlock		      "Subsystem"
+      DstPort		      3
+    }
+    Line {
+      SrcBlock		      "In4"
+      SrcPort		      1
+      DstBlock		      "Subsystem"
+      DstPort		      4
+    }
+    Line {
+      SrcBlock		      "In5"
+      SrcPort		      1
+      Points		      [10, 0; 0, -25]
+      DstBlock		      "Subsystem"
+      DstPort		      5
+    }
+    Line {
+      SrcBlock		      "In6"
+      SrcPort		      1
+      Points		      [20, 0; 0, -50]
+      DstBlock		      "Subsystem"
+      DstPort		      6
+    }
+    Line {
+      SrcBlock		      "In7"
+      SrcPort		      1
+      Points		      [30, 0; 0, -75]
+      DstBlock		      "Subsystem"
+      DstPort		      7
+    }
+    Line {
+      SrcBlock		      "In8"
+      SrcPort		      1
+      Points		      [40, 0; 0, -100]
+      DstBlock		      "Subsystem"
+      DstPort		      8
+    }
+    Line {
+      SrcBlock		      "In9"
+      SrcPort		      1
+      Points		      [20, 0; 0, 60]
+      DstBlock		      "Subsystem"
+      DstPort		      2
+    }
+  }
+}
diff --git a/src/epics/util/feCodeGen.pl b/src/epics/util/feCodeGen.pl
index 629155449..3455949cb 100755
--- a/src/epics/util/feCodeGen.pl
+++ b/src/epics/util/feCodeGen.pl
@@ -19,6 +19,7 @@ require "lib/Switch.pm";
 require "lib/Gain.pm";
 require "lib/Abs.pm";
 require "lib/MATH.pm";
+require "lib/Dac20.pm";
 
 #// \b REQUIRED \b ARGUMENTS: \n
 #//	- Model file name with .mdl extension \n
@@ -1412,12 +1413,15 @@ for($ii=0;$ii<$partCnt;$ii++)
 		for (0 .. $dacCnt-1) {
 			if($dacType[$_] eq "GSC_16AO16") {
 				$dac16Cnt ++;
+			}elsif($dacType[$_] eq "GSC_20AO8") {
+			        $dac20Cnt ++;
 			} else {
 				$dac18Cnt ++;
 			}
 		}
 		print OUTH "\#define TARGET_DAC16_COUNT $dac16Cnt\n";
 		print OUTH "\#define TARGET_DAC18_COUNT $dac18Cnt\n";
+		print OUTH "\#define TARGET_DAC20_COUNT $dac20Cnt\n";
 	} else {
 		if($virtualiop) {
 			print OUTH "\#define TARGET_ADC_COUNT 0\n";
@@ -1426,6 +1430,7 @@ for($ii=0;$ii<$partCnt;$ii++)
 		}
 		print OUTH "\#define TARGET_DAC16_COUNT 0\n";
 		print OUTH "\#define TARGET_DAC18_COUNT 0\n";
+		print OUTH "\#define TARGET_DAC20_COUNT 0\n";
 	}
 	print OUTH "\#define TARGET_DAQ_FLAG $no_daq\n";
 	print OUTH "\#endif\n";
@@ -2147,9 +2152,11 @@ for($ii=0;$ii<$adcCnt;$ii++)
 for($ii=0;$ii<$dacCnt;$ii++)
 {
    if ($dacType[$ii] eq "GSC_16AO16") {
-   ("CDS::Dac::createDac16Medm") -> ($epicsScreensDir,$sysname,$usite,$dcuId,$medmTarget,$ii);
+      ("CDS::Dac::createDac16Medm") -> ($epicsScreensDir,$sysname,$usite,$dcuId,$medmTarget,$ii);
+   } elsif ($dacType[$ii] eq "GSC_20AO8") {
+      ("CDS::Dac20::createDac20Medm") -> ($epicsScreensDir,$sysname,$usite,$dcuId,$medmTarget,$ii);
    } else {
-   ("CDS::Dac18::createDac18Medm") -> ($epicsScreensDir,$sysname,$usite,$dcuId,$medmTarget,$ii);
+      ("CDS::Dac18::createDac18Medm") -> ($epicsScreensDir,$sysname,$usite,$dcuId,$medmTarget,$ii);
    }
 }
 
diff --git a/src/epics/util/lib/Dac.pm b/src/epics/util/lib/Dac.pm
index a997e6f78..1815b49dd 100644
--- a/src/epics/util/lib/Dac.pm
+++ b/src/epics/util/lib/Dac.pm
@@ -13,7 +13,8 @@ require "lib/medmGen.pm";
 # DAC cards we support
 %board_types = (
 	GSC_16AO16 => 1, # General Standards board
-        GSC_18AO8 => 1 # 18-bit General Standards DAC board
+        GSC_18AO8 => 1, # 18-bit General Standards DAC board
+	GSC_20AO8 => 1 # 20-bit General Standards DAC board
 );
 $default_board_type = "GSC_16AO16";
 
diff --git a/src/epics/util/lib/Dac18.pm b/src/epics/util/lib/Dac18.pm
index d4a895668..77351b4b1 100644
--- a/src/epics/util/lib/Dac18.pm
+++ b/src/epics/util/lib/Dac18.pm
@@ -13,7 +13,8 @@ require "lib/medmGen.pm";
 # DAC cards we support
 %board_types = (
 	GSC_16AO16 => 1, # General Standards board
-        GSC_18AO8 => 1 # 18-bit General Standards DAC board
+        GSC_18AO8 => 1, # 18-bit General Standards DAC board
+	GSC_20AO8 => 1 # 20-bit General Standards DAC board
 );
 $default_board_type = "GSC_16AO16";
 
diff --git a/src/include/drv/cdsHardware.h b/src/include/drv/cdsHardware.h
index 615cd800d..8dd6ebe7b 100644
--- a/src/include/drv/cdsHardware.h
+++ b/src/include/drv/cdsHardware.h
@@ -39,7 +39,7 @@
 #define GSC_16AI64SSA		0
 #define GSC_18AISS6C		1
 #define GSC_16AO16		2
-// vacant			3
+#define GSC_20AO8               3
 #define CON_32DO		4
 #define ACS_16DIO		5
 #define ACS_8DIO		6
@@ -69,6 +69,7 @@ typedef struct CDS_REMOTE_NODES {
 #define MAX_IO_MODULES		24
 #define OVERFLOW_LIMIT_16BIT	32760
 #define OVERFLOW_LIMIT_18BIT	131060
+#define OVERFLOW_LIMIT_20BIT    512240
 #define OVERFLOW_CNTR_LIMIT	0x1000000
 #define MAX_ADC_WAIT		1000000		// Max time (usec) to wait for ADC data transfer in iop app
 #define MAX_ADC_WAIT_CARD_0	23		// Max time (usec) to wait for 1st ADC card data ready
diff --git a/src/include/drv/gsc20ao8.c b/src/include/drv/gsc20ao8.c
new file mode 100644
index 000000000..c47532907
--- /dev/null
+++ b/src/include/drv/gsc20ao8.c
@@ -0,0 +1,172 @@
+///     \file gsc20ao8.c
+///     \brief File contains the initialization routine and various register read/write
+///<            operations for the General Standards 20bit, 8 channel DAC modules. \n
+///< For board info, see 
+///<    <a href="http://www.generalstandards.com/view-products2.php?BD_family=18ao8">GSC 18AO8 Manual</a>
+
+#include "gsc20ao8.h"
+
+// *****************************************************************************
+/// \brief Routine to initialize GSC 20AO8 DAC modules.
+///     @param[in,out] *pHardware Pointer to global data structure for storing I/O 
+///<            register mapping information.
+///     @param[in] *dacdev PCI address information passed by the mapping code in map.c
+///     @return Status from board enable command.
+// *****************************************************************************
+int gsc20ao8Init(CDS_HARDWARE *pHardware, struct pci_dev *dacdev)
+{
+  int devNum;					/// @param devNum Index into CDS_HARDWARE struct for adding board info.
+  char *_dac_add;				/// @param *_dac_add DAC register address space
+  static unsigned int pci_io_addr;		/// @param pci_io_addr Bus address of PCI card I/O register.
+  int pedStatus;				/// @param pedStatus Status return from call to enable device.
+  volatile GSA_20BIT_DAC_REG *dac20bitPtr;	/// @param *dac20bitPtr Pointer to DAC control registers.
+  int timer = 0;
+
+	  /// Get index into CDS_HARDWARE struct based on total number of DAC cards found by mapping routine
+          /// in map.c
+          devNum = pHardware->dacCount;
+          /// Enable the device, PCI required
+          pedStatus = pci_enable_device(dacdev);
+          /// Register module as Master capable, required for DMA
+          pci_set_master(dacdev);
+          /// Get the PLX chip PCI address, it is advertised at address 0
+          pci_read_config_dword(dacdev,PCI_BASE_ADDRESS_0,&pci_io_addr);
+          printk("pci0 = 0x%x\n",pci_io_addr);
+          _dac_add = ioremap_nocache((unsigned long)pci_io_addr, 0x200);
+          /// Set up a pointer to DMA registers on PLX chip
+          dacDma[devNum] = (PLX_9056_DMA *)_dac_add;
+
+          /// Get the DAC register address
+          pci_read_config_dword(dacdev,PCI_BASE_ADDRESS_2,&pci_io_addr);
+	  // Send some info to dmesg
+          printk("dac pci2 = 0x%x\n",pci_io_addr);
+          _dac_add = ioremap_nocache((unsigned long)pci_io_addr, 0x200);
+	  // Send some info to dmesg
+          printk("DAC I/O address=0x%x  0x%lx\n", pci_io_addr,(long)_dac_add);
+
+          dac20bitPtr = (GSA_20BIT_DAC_REG *)_dac_add;
+          dacPtr[devNum] = (GSC_DAC_REG *)_dac_add;
+
+	  // Send some info to dmesg
+          printk("DAC BCR = 0x%x\n",dac20bitPtr->BCR);
+          /// Reset the DAC board and wait for it to finish (3msec)
+
+          dac20bitPtr->BCR |= GSAO_20BIT_RESET;
+
+	  timer = 6000;
+          do{
+		udelay(1000);
+		timer -= 1;
+          }while(dac20bitPtr->BCR & GSAO_20BIT_RESET != 0 &&
+	  	 timer > 0 &&
+		 dac20bitPtr->PRIMARY_STATUS == 1);
+	  printk("DAC PSR after init = 0x%x and timer = %d\n",dac20bitPtr->PRIMARY_STATUS,timer);
+
+          /// Enable 2s complement by clearing offset binary bit
+          dac20bitPtr->BCR &= ~GSAO_20BIT_OFFSET_BINARY;
+	  // Set simultaneous outputs
+          dac20bitPtr->BCR |= GSAO_20BIT_SIMULT_OUT;
+	  // Send some info to dmesg
+          printk("DAC BCR after init = 0x%x\n",dac20bitPtr->BCR);
+          printk("DAC OUTPUT CONFIG = 0x%x\n",dac20bitPtr->OUTPUT_CONFIG);
+
+          /// Enable 10 volt output range
+	  dac20bitPtr->OUTPUT_CONFIG |= GSAO_20BIT_10VOLT_RANGE;
+          // Set differential outputs
+          dac20bitPtr->OUTPUT_CONFIG |= GSAO_20BIT_DIFF_OUTS;
+	  // Enable outputs.
+          dac20bitPtr->BCR |= GSAO_20BIT_OUTPUT_ENABLE;
+	  udelay(1000);
+	  // Set primary status to detect autocal
+	  printk("DAC PSR = 0x%x\n",dac20bitPtr->PRIMARY_STATUS);
+	  dac20bitPtr->PRIMARY_STATUS = 2;
+	   	udelay(1000);
+	  printk("DAC PSR after reset = 0x%x\n",dac20bitPtr->PRIMARY_STATUS);
+
+	  // Start Calibration
+	  dac20bitPtr->BCR |= GSAO_20BIT_AUTOCAL_SET;
+	  // Wait for autocal to complete
+	  timer = 0;
+          do{
+	   	udelay(1000);
+	  	// printk("DAC PSR in autocal = 0x%x\n",dac20bitPtr->PRIMARY_STATUS);
+		timer += 1;
+          }while((dac20bitPtr->BCR &  GSAO_20BIT_AUTOCAL_SET) != 0);
+
+	  printk("DAC after autocal PSR = 0x%x\n",dac20bitPtr->PRIMARY_STATUS);
+	  if(dac20bitPtr->BCR & GSAO_20BIT_AUTOCAL_PASS) 
+		  printk("DAC AUTOCAL SUCCESS in %d milliseconds \n",timer);
+	  else
+		  printk("DAC AUTOCAL FAILED in %d milliseconds \n",timer);
+	  printk("DAC PSR = 0x%x\n",dac20bitPtr->PRIMARY_STATUS);
+
+	  // If 20bit DAC, need to enable outputs.
+          dac20bitPtr->BCR |= GSAO_20BIT_OUTPUT_ENABLE;
+          printk("DAC OUTPUT CONFIG after init = 0x%x with BCR = 0x%x\n",dac20bitPtr->OUTPUT_CONFIG, dac20bitPtr->BCR);
+
+          pHardware->pci_dac[devNum] =
+                (long) pci_alloc_consistent(dacdev,0x200,&dac_dma_handle[devNum]);
+          pHardware->dacConfig[devNum] = (int) (dac20bitPtr->ASY_CONFIG);
+
+	  // Return the device type to main code.
+          pHardware->dacType[devNum] = GSC_20AO8;
+          pHardware->dacCount ++;
+
+	  /// Call patch in map.c needed to properly write to native PCIe module
+          set_8111_prefetch(dacdev);
+          return(pedStatus);
+}
+
+// *****************************************************************************
+/// \brief Function enables DAC modules to begin receiving external clocking signals.
+///     @param[in] *pHardware Pointer to global data structure for storing I/O 
+///<            register mapping information.
+// *****************************************************************************
+int gsc20ao8Enable(CDS_HARDWARE *pHardware)
+{
+   int ii;
+
+   for (ii = 0; ii < pHardware -> dacCount; ii++)
+   {
+      if (pHardware->dacType[ii] == GSC_20AO8) {
+        volatile GSA_20BIT_DAC_REG *dac20bitPtr = (volatile GSA_20BIT_DAC_REG *)(dacPtr[ii]);
+        dac20bitPtr->OUTPUT_CONFIG |= GSAO_20BIT_EXT_CLOCK_SRC;
+        dac20bitPtr->BUF_OUTPUT_OPS |= GSAO_20BIT_ENABLE_CLOCK;
+        printk("Triggered 20-bit DAC\n");
+      }
+   }
+
+   return(0);
+}
+
+
+// *****************************************************************************
+/// \brief This routine sets up the DAC DMA registers once on code initialization.
+///     @param[in] modNum ID number of board to be accessed.
+// *****************************************************************************
+int gsc20ao8DmaSetup(int modNum)
+{
+  dacDma[modNum]->DMA1_MODE = GSAI_DMA_MODE_NO_INTR;
+  dacDma[modNum]->DMA1_PCI_ADD = (int)dac_dma_handle[modNum];
+  dacDma[modNum]->DMA1_LOC_ADD = GSAO_20BIT_DMA_LOCAL_ADDR;
+#ifdef OVERSAMPLE_DAC
+  dacDma[modNum]->DMA1_BTC = 0x20*OVERSAMPLE_TIMES;
+#else
+  dacDma[modNum]->DMA1_BTC = 0x20;
+#endif
+  dacDma[modNum]->DMA1_DESC = 0x0;
+  return(1);
+}
+
+
+// *****************************************************************************
+/// \brief This routine starts a DMA operation to a DAC module.
+///< It must first be setup by the gsc20ao8DmaSetup call.
+// *****************************************************************************
+void gsc20ao8DmaStart(int modNum)
+{
+        // dacDma[modNum]->DMA1_PCI_ADD = ((int)dac_dma_handle[modNum]);
+        dacDma[modNum]->DMA_CSR = GSAI_DMA1_START;
+}
+
+
diff --git a/src/include/drv/gsc20ao8.h b/src/include/drv/gsc20ao8.h
new file mode 100644
index 000000000..2b16953ba
--- /dev/null
+++ b/src/include/drv/gsc20ao8.h
@@ -0,0 +1,43 @@
+/* GSA 20-bit DAC Module Defs ********************************************************* */
+typedef struct GSA_20BIT_DAC_REG {
+        unsigned int BCR;               /* 0x00 */
+        unsigned int digital_io_ports;  /* 0x04 */
+        unsigned int reserved;		/* 0x08 */
+        unsigned int reserved0;		/* 0x0c */
+        unsigned int reserved1;		/* 0x10 */
+        unsigned int reserved2;   	/* 0x14 */
+        unsigned int reserved3;     	/* 0x18 */
+        unsigned int AUX_SYNC_IO_CTRL;  /* 0x1c */
+        unsigned int reserved4;		/* 0x20 */
+        unsigned int reserved5;		/* 0x24 */
+        unsigned int reserved6;		/* 0x28 */
+        unsigned int reserved7;		/* 0x2c */
+        unsigned int PRIMARY_STATUS;    /* 0x30 */
+        unsigned int ASY_CONFIG;        /* 0x34 */
+        unsigned int AUTOCAL_VALS;      /* 0x38 */
+        unsigned int BUF_OUTPUT_OPS;    /* 0x3C */
+        unsigned int OUT_BUF_THRESH;    /* 0x40 */
+        unsigned int OUT_BUF_SIZE;      /* 0x44 RO */
+        unsigned int OUTPUT_BUF;        /* 0x48 WO */
+        unsigned int RATE_GEN_A;        /* 0x4C */
+        unsigned int RATE_GEN_B;        /* 0x50 */
+        unsigned int OUTPUT_CONFIG;     /* 0x54 */
+} GSA_20BIT_DAC_REG;
+
+#define DAC_20BIT_SS_ID         0x3574  /* Subsystem ID to find module on PCI bus       */
+#define GSAO_20BIT_RESET        (1 << 31)
+#define GSAO_20BIT_OFFSET_BINARY        (1 << 25)
+#define GSAO_20BIT_10VOLT_RANGE (2 << 8)
+#define GSAO_20BIT_EXT_CLOCK_SRC        (2 << 12)
+#define GSAO_20BIT_EXT_TRIG_SRC (2 << 14)
+#define GSAO_20BIT_DIFF_OUTS    (1 << 16)
+#define GSAO_20BIT_ENABLE_CLOCK (1 << 5)
+#define GSAO_20BIT_SIMULT_OUT   (1 << 18)
+#define GSAO_20BIT_DIO_RW       0x80    // Set first nibble write, second read for Watchdog
+#define GSAO_20BIT_PRELOAD      64      // Number of data points to preload DAC FIFO on startup (8 chan x 8 values)
+#define GSAO_20BIT_MASK         0x1fffff
+#define GSAO_20BIT_CHAN_COUNT   8
+#define GSAO_20BIT_DMA_LOCAL_ADDR   0x48
+#define GSAO_20BIT_AUTOCAL_SET		(1 << 28)
+#define GSAO_20BIT_AUTOCAL_PASS		(1 << 29)
+#define GSAO_20BIT_OUTPUT_ENABLE       0x80    // Enable DAC Outputs
-- 
GitLab