anchor.diff:  :Debug.Off
   :Debug.0
   set "DEBUG=0"
  +set "DEBUG.ENTRY=rem"
   set "IF_DEBUG=if .%DEBUG%.==.1."
  -set "FUNCTION=rem"
  -set "RETURN=exit /b"
  +set "FUNCTION0=rem"
  +set FUNCTION=%MACRO.GETEXP% %&% %MACRO% ( %\n%
  +  call set "FUNCTION.NAME=%%0" %\n%
  +  call set "ARGS=%%*"%\n%
  +  set "DEBUG.RETVARS=" %\n%
  +  if not defined MACRO.ARGS set "MACRO.ARGS=%'!%MACRO.EXP%'!%" %\n%
  +  setlocal %!%MACRO.ARGS%!% %\n%
  +) %/MACRO%
  +set "RETURN0=exit /b"
   set "RETURN#=exit /b & rem"
   set "EXEC.ARGS= %EXEC.ARGS%"
   set "EXEC.ARGS=%EXEC.ARGS: -d=%"
   set "EXEC.ARGS=%EXEC.ARGS:~1%"
   :# Optimization to speed things up in non-debug mode
  +if not defined LOGFILE set "ECHO.D=rem"
   if .%LOGFILE%.==.NUL. set "ECHO.D=rem"
  +if not defined LOGFILE set "ECHOVARS.D=rem"
   if .%LOGFILE%.==.NUL. set "ECHOVARS.D=rem"
   goto :eof
   
   :Debug.On
   :Debug.1
   set "DEBUG=1"
  +set "DEBUG.ENTRY=:Debug.Entry"
   set "IF_DEBUG=if .%DEBUG%.==.1."
  -set "FUNCTION=call :Debug.Entry"
  -set "RETURN=call :Debug.Return & exit /b"
  +set "FUNCTION0=call call :Debug.Entry0 %%0 %%*"
  +set FUNCTION=%MACRO.GETEXP% %&% %MACRO% ( %\n%
  +  call set "FUNCTION.NAME=%%0" %\n%
  +  call set "ARGS=%%*"%\n%
  +  if %!%DEBUG%!%==1 ( %# Build the debug message and display it #% %\n%
  +    if defined ^^%>%DEBUGOUT ( %# If we use a debugging stream distinct from stdout #% %\n%
  +      call :Echo.2DebugOut call %!%FUNCTION.NAME%!% %!%ARGS%!%%# Use a helper routine, as delayed redirection does not work #%%\n%
  +    ) else ( %# Output directly here, which is faster #% %\n%
  +      echo%!%INDENT%!% call %!%FUNCTION.NAME%!% %!%ARGS%!%%\n%
  +    ) %\n%
  +    if defined LOGFILE ( %# If we have to send a copy to a log file #% %\n%
  +      call :Echo.2LogFile call %!%FUNCTION.NAME%!% %!%ARGS%!%%# Use a helper routine, as delayed redirection does not work #%%\n%
  +    ) %\n%
  +    call set "INDENT=%'!%INDENT%'!%  " %\n%
  +  ) %\n%
  +  set "DEBUG.RETVARS=" %\n%
  +  if not defined MACRO.ARGS set "MACRO.ARGS=%'!%MACRO.EXP%'!%" %\n%
  +  setlocal %!%MACRO.ARGS%!% %\n%
  +) %/MACRO%
  +set "RETURN0=call :Debug.Return0 & exit /b"
   :# Macro for displaying comments on the return log line
   set RETURN#=set "RETURN#ERR=%'!%ERRORLEVEL%'!%" %&% %MACRO% ( %\n%
  -  set RETVAL=%!%ARGS:~1%!%%\n%
  -  call :Debug.Return %!%RETURN#ERR%!% %\n%
  +  set RETVAL=%!%MACRO.ARGS:~1%!%%\n%
  +  call :Debug.Return0 %!%RETURN#ERR%!% %\n%
     %ON_MACRO_EXIT% set "INDENT=%'!%INDENT%'!%" %/ON_MACRO_EXIT% %&% set "RETURN#ERR=" %&% exit /b %\n%
   ) %/MACRO%
   set "EXEC.ARGS= %EXEC.ARGS%"
  
positive.code: :# Find Microsoft's 16-bits development tools
  
  :find16
  %FUNCTION% find16 %*
  :# Microsoft assembler
  :# If specified on the command line, and looking reasonably valid, then use it.
  if not "%MASM%" == "" if exist "%MASM%\BIN\ML.EXE" goto :find16.found_masm
  
negative.code: :#   2016-04-13 JFL Display libraries found in the output summary.            *
  :#                  Generate a list of HAS_<lib> flags for the C compiler.    *
  :#   2016-04-22 JFL Renamed the MULTIOS library as SYSLIB.		      *
  :#   2016-07-12 JFL Added option -o to set the %OUTDIR% path.		      *
  :#   2016-08-24 JFL Added CONV variable definition for the conv.exe tool.     *
  :#   2016-09-01 JFL Merged in the latest batch debugging library updates.     *
  :#   2016-09-05 JFL Updated macro %USE_SDK% to avoid recording duplicates.    *
  :#		    Fixed macros ADD_POST_MAKE_ACTION & ADD_POST_MAKE_ACTION. *
  :#                  Fixed a warning when running on Chinese Windows.          *
  :#                                                                            *
  :#         Copyright 2016 Hewlett Packard Enterprise Development LP          *
  :# Licensed under the Apache 2.0 license  www.apache.org/licenses/LICENSE-2.0 *
  :#*****************************************************************************
  
  setlocal enableextensions enabledelayedexpansion
  set "VERSION=2016-09-05"
  set "SCRIPT=%~nx0"
  set "SPATH=%~dp0" & set "SPATH=!SPATH:~0,-1!"
  set "ARG0=%~f0"
  set  ARGS=%*
  :# FOREACHLINE macro. (Change the delimiter to none to catch the whole lines.)
  set FOREACHLINE=for /f "delims="
  
  :# Initialize ERRORLEVEL with known values
  set "TRUE.EXE=(call,)"	&:# Macro to silently set ERRORLEVEL to 0
  set "FALSE.EXE=(call)"	&:# Macro to silently set ERRORLEVEL to 1
  
  set "POPARG=call :PopArg"
  call :Macro.Init
  