(setq *sysvar-names*
 '("ACADLSPASDOC" "ACADPREFIX" "ACADVER" "ACISOUTVER" "ADCSTATE" "AFLAGS" "ANGBASE"
   "ANGDIR" "APBOX" "APERTURE" "AREA" "ASSISTSTATE" "ATTDIA" "ATTMODE" "ATTREQ"
   "AUDITCTL" "AUNITS" "AUPREC" "AUTOSNAP" "BACKGROUNDPLOT" "BACKZ" "BINDTYPE" "BLIPMODE"
   "CECOLOR" "CELTSCALE" "CELTYPE" "CELWEIGHT" "CHAMFERA" "CHAMFERB" "CHAMFERC" "CHAMFERD"
   "CHAMMODE" "CIRCLERAD" "CLAYER" "CMDACTIVE" "CMDECHO" "CMDNAMES" "CMLJUST" "CMLSCALE"
   "CMLSTYLE" "COMPASS" "COORDS" "CPLOTSTYLE" "CPROFILE" "CTAB" "CTABLESTYLE" "CURSORSIZE"
   "CVPORT" "DBCSTATE" "DBMOD" "DCTCUST" "DCTMAIN" "DEFLPLSTYLE" "DEFPLSTYLE" "DELOBJ"
   "DEMANDLOAD" "DIASTAT" "DIMADEC" "DIMALT" "DIMALTD" "DIMALTF" "DIMALTRND" "DIMALTTD"
   "DIMALTTZ" "DIMALTU" "DIMALTZ" "DIMAPOST" "DIMASO" "DIMASSOC" "DIMASZ" "DIMATFIT"
   "DIMAUNIT" "DIMAZIN" "DIMBLK" "DIMBLK1" "DIMBLK2" "DIMCEN" "DIMCLRD" "DIMCLRE"
   "DIMCLRT" "DIMDEC" "DIMDLE" "DIMDLI" "DIMDSEP" "DIMEXE" "DIMEXO" "DIMFIT" "DIMFRAC"
   "DIMGAP" "DIMJUST" "DIMLDRBLK" "DIMLFAC" "DIMLIM" "DIMLUNIT" "DIMLWD" "DIMLWE" "DIMPOST"
   "DIMRND" "DIMSAH" "DIMSCALE" "DIMSD1" "DIMSD2" "DIMSE1" "DIMSE2" "DIMSHO" "DIMSOXD"
   "DIMSTYLE" "DIMTAD" "DIMTDEC" "DIMTFAC" "DIMTIH" "DIMTIX" "DIMTM" "DIMTMOVE" "DIMTOFL"
   "DIMTOH" "DIMTOL" "DIMTOLJ" "DIMTP" "DIMTSZ" "DIMTVP" "DIMTXSTY" "DIMTXT" "DIMTZIN"
   "DIMUNIT" "DIMUPT" "DIMZIN" "DISPSILH" "DISTANCE" "DONUTID" "DONUTOD" "DRAGMODE" "DRAGP1"
   "DRAGP2" "DRAWORDERCTL" "DWGCHECK" "DWGCODEPAGE" "DWGNAME" "DWGPREFIX" "DWGTITLED"
   "EDGEMODE" "ELEVATION" "ERRNO" "EXPERT" "EXPLMODE" "EXTMAX" "EXTMIN" "EXTNAMES" "FACETRATIO"
   "FACETRES" "FIELDDISPLAY" "FIELDEVAL" "FILEDIA" "FILLETRAD" "FILLMODE" "FONTALT" "FONTMAP"
   "FRONTZ" "FULLOPEN" "GRIDMODE" "GRIDUNIT" "GRIPBLOCK" "GRIPCOLOR" "GRIPHOT" "GRIPHOVER"
   "GRIPOBJLIMIT" "GRIPS" "GRIPSIZE" "GRIPTIPS" "HALOGAP" "HANDLES" "HIDEPRECISION" "HIDETEXT"
   "HIGHLIGHT" "HPANG" "HPASSOC" "HPBOUND" "HPDOUBLE" "HPDRAWORDER" "HPGAPTOL" "HPNAME" "HPSCALE"
   "HPSPACE" "HYPERLINKBASE" "IMAGEHLT" "INDEXCTL" "INETLOCATION" "INSBASE" "INSNAME" "INSUNITS"
   "INSUNITSDEFSOURCE" "INSUNITSDEFTARGET" "INTERSECTIONCOLOR" "INTERSECTIONDISPLAY" "ISAVEBAK"
   "ISAVEPERCENT" "ISOLINES" "LASTANGLE" "LASTPOINT" "LAYOUTREGENCTL" "LENSLENGTH" "LIMCHECK"
   "LIMMAX" "LIMMIN" "LISPINIT" "LOCALE" "LOCALROOTPREFIX" "LOGFILEMODE" "LOGFILENAME"
   "LOGFILEPATH" "LOGINNAME" "LTFAKTOR" "LUNITS" "LUPREC" "LWDEFAULT" "LWDISPLAY" "LWUNITS"
   "MAXACTVP" "MAXSORT" "MBUTTONPAN" "MEASUREINIT" "MEASUREMENT" "MENUCTL" "MENUECHO" "MENUNAME"
   "MIRRTEXT" "MODEMACRO" "MSOLESCALE" "MTEXTED" "MTEXTFIXED" "MTJIGSTRING" "MYDOCUMENTSPREFIX"
   "NOMUTT" "OBSCUREDCOLOR" "OBSCUREDLTYPE" "OFFSETDIST" "OFFSETGAPTYPE" "OLEFRAME" "OLEHIDE"
   "OLEQUALITY" "OLESTARTUP" "ORTHOMODE" "OSMODE" "OSNAPCOORD" "PALETTEOPAQUE" "PAPERUPDATE"
   "PDMODE" "PDSIZE" "PEDITACCEPT" "PELLIPSE" "PERIMETER" "PFACEVMAX" "PICKADD" "PICKAUTO"
   "PICKBOX" "PICKDRAG" "PICKFIRST" "PICKSTYLE" "PLATFORM" "PLINEGEN" "PLINETYPE" "PLINEWID"
   "PLOTOFFSET" "PLOTROTMODE" "PLQUIET" "POLARADDANG" "POLARANG" "POLARDIST" "POLARMODE"
   "POLYSIDES" "POPUPS" "PRODUCT" "PROGRAM" "PROJECTNAME" "PROJMODE" "PROXYGRAPHICS"
   "PROXYNOTICE" "PROXYSHOW" "PROXYWEBSEARCH" "PSLTSCALE" "PSTYLEMODE" "PSTYLEPOLICY" "PSVPSCALE"
   "PUCSBASE" "QTEXTMODE" "RASTERDPI" "RASTERPREVIEW" "REFEDITNAME" "REGENMODE" "RE-INIT"
   "REMEMBERFOLDERS" "REPORTERROR" "ROAMABLEROOTPREFIX" "RTDISPLAY" "SAVEFILE" "SAVEFILEPATH"
   "SAVENAME" "SAVETIME" "SCREENBOXES" "SCREENMODE" "SCREENSIZE" "SDI" "SHADEDGE" "SHADEDIF"
   "SHORTCUTMENU" "SHPNAME" "SIGWARN" "SKETCHINC" "SKPOLY" "SNAPANG" "SNAPBASE" "SNAPISOPAIR"
   "SNAPMODE" "SNAPSTYL" "SNAPTYPE" "SNAPUNIT" "SOLIDCHECK" "SPLFRAME" "SPLINESEGS" "SPLINETYPE"
   "SSFOUND" "SSLOCATE" "SSMAUTOOPEN" "SSMSTATE" "STANDARDSVIOLATION" "STARTUP" "SURFTAB1"
   "SURFTAB2" "SURFTYPE" "SURFU" "SURFV" "SYSCODEPAGE" "TABMODE" "TARGET" "TBCUSTOMIZE"
   "TDCREATE" "TDUCREATE" "TDUPDATE" "TDUUPDATE" "TEMPPREFIX" "TEXTEVAL" "TEXTFILL" "TEXTQLTY"
   "TEXTSIZE" "TEXTSTYLE" "THICKNESS" "TILEMODE" "TOOLTIPS" "TPSTATE" "TRACEWID" "TRACKPATH"
   "TRAYICONS" "TRAYNOTIFY" "TRAYTIMEOUT" "TREEDEPTH" "TREEMAX" "TRIMMODE" "TSPACEFAC"
   "TSPACETYPE" "TSTACKALIGN" "TSTACKSIZE" "UCSAXISANG" "UCSBASE" "UCSFOLLOW" "UCSICON"
   "UCSNAME" "UCSORG" "UCSORTHO" "UCSVIEW" "UCSVP" "UCSXDIR" "UCSYDIR" "UNDOCTL" "UNDOMARKS"
   "UNITMODE" "UPDATETHUMBNAIL" "USERI1-5" "USERR1-5" "USERS1-5" "VIEWCTR" "VIEWDIR" "VIEWMODE"
   "VIEWSIZE" "VIEWTWIST" "VISRETAIN" "VPMAXIMIZEDSTATE" "VSMAX" "VSMIN" "WHIPARC" "WHIPTHREAD"
   "WMFBKGND" "WMFFOREGND" "WORLDUCS" "WORLDVIEW" "WRITESTAT" "XCLIPFRAME" "XEDIT" "XFADECTL"
   "XLOADCTL" "XLOADPATH" "XREFCTL" "XREFNOTIFY" "XREFTYPE" "ZOOMFACTOR"
   )
 )
 (setq *epsilon* 1e-10)
 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ;*********** ab hier hab' ich Fuchsi's Code reinkopiert *******
 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 (defun watch-sysvars( / )
   (vl-bb-set '*watched-sysvars*
     (mapcar
       (function(lambda(v / )(cons v(getvar v))))
       *sysvar-names*
     )
   )
 )

 (defun compare-sysvars( / _compare changes)
   (defun _compare( a b / )
     (not
       (cond
         ( (member(type a)'(list real))
           (equal a b *epsilon*)
         )
         ('default (= a b))
       )
     )
   )
   (foreach pair (vl-bb-ref '*watched-sysvars*)
     (if(_compare(getvar(car pair))(cdr pair))
       (setq changes
         (cons
           (cons
             pair
             (list(cons(car pair)(getvar(car pair))))
           )
           changes
         )
       )
     )
   )
   (reverse changes)
 )