diff -Naur wfdb-10.2.0/MANIFEST wfdb-10.2.1/MANIFEST
--- wfdb-10.2.0/MANIFEST	Mon Oct 15 16:20:26 2001
+++ wfdb-10.2.1/MANIFEST	Fri Nov 16 16:19:55 2001
@@ -1,583 +1,589 @@
-wfdb-10.2.0/
-wfdb-10.2.0/app/
-wfdb-10.2.0/app/12lead.pro
-wfdb-10.2.0/app/ann2rr.c
-wfdb-10.2.0/app/bxb.c
-wfdb-10.2.0/app/calsig.c
-wfdb-10.2.0/app/cshsetwfdb
-wfdb-10.2.0/app/ecgeval.c
-wfdb-10.2.0/app/epic.c
-wfdb-10.2.0/app/fir.c
-wfdb-10.2.0/app/ihr.c
-wfdb-10.2.0/app/Makefile
-wfdb-10.2.0/app/Makefile.dos
-wfdb-10.2.0/app/Makefile.top
-wfdb-10.2.0/app/Makefile.tpl
-wfdb-10.2.0/app/mfilt.c
-wfdb-10.2.0/app/mrgann.c
-wfdb-10.2.0/app/mxm.c
-wfdb-10.2.0/app/nst.c
-wfdb-10.2.0/app/plotstm.c
-wfdb-10.2.0/app/pscgen.c
-wfdb-10.2.0/app/pschart.c
-wfdb-10.2.0/app/pschart.pro
-wfdb-10.2.0/app/psfd.c
-wfdb-10.2.0/app/psfd.pro
-wfdb-10.2.0/app/rdann.c
-wfdb-10.2.0/app/rdsamp.c
-wfdb-10.2.0/app/README
-wfdb-10.2.0/app/rr2ann.c
-wfdb-10.2.0/app/rxr.c
-wfdb-10.2.0/app/sampfreq.c
-wfdb-10.2.0/app/sample8.hea
-wfdb-10.2.0/app/sample.c
-wfdb-10.2.0/app/setwfdb
-wfdb-10.2.0/app/setwfdb.bat
-wfdb-10.2.0/app/sigamp.c
-wfdb-10.2.0/app/skewedit.c
-wfdb-10.2.0/app/snip.c
-wfdb-10.2.0/app/sortann.c
-wfdb-10.2.0/app/sqrs125.c
-wfdb-10.2.0/app/sqrs.c
-wfdb-10.2.0/app/sumann.c
-wfdb-10.2.0/app/sumstats.c
-wfdb-10.2.0/app/tach.c
-wfdb-10.2.0/app/view.c
-wfdb-10.2.0/app/vsetup.c
-wfdb-10.2.0/app/wfdbcat.c
-wfdb-10.2.0/app/wfdbcollate.c
-wfdb-10.2.0/app/wfdbdesc.c
-wfdb-10.2.0/app/wfdbwhich.c
-wfdb-10.2.0/app/wrann.c
-wfdb-10.2.0/app/wrsamp.c
-wfdb-10.2.0/app/wvscript.c
-wfdb-10.2.0/app/xform.c
-wfdb-10.2.0/check-manifest
-wfdb-10.2.0/checkpkg/
-wfdb-10.2.0/checkpkg/appcheck
-wfdb-10.2.0/checkpkg/expected/
-wfdb-10.2.0/checkpkg/expected/100s.a2r
-wfdb-10.2.0/checkpkg/expected/100s.mix
-wfdb-10.2.0/checkpkg/expected/100s.qrs
-wfdb-10.2.0/checkpkg/expected/100s.wra
-wfdb-10.2.0/checkpkg/expected/100w.dat
-wfdb-10.2.0/checkpkg/expected/100w.hea
-wfdb-10.2.0/checkpkg/expected/100x.atr
-wfdb-10.2.0/checkpkg/expected/100x.dat
-wfdb-10.2.0/checkpkg/expected/100x.hea
-wfdb-10.2.0/checkpkg/expected/100z.hea
-wfdb-10.2.0/checkpkg/expected/ann2rr.out
-wfdb-10.2.0/checkpkg/expected/bxb.out
-wfdb-10.2.0/checkpkg/expected/ecgeval.out
-wfdb-10.2.0/checkpkg/expected/fir.dat
-wfdb-10.2.0/checkpkg/expected/fir.hea
-wfdb-10.2.0/checkpkg/expected/ihr.out
-wfdb-10.2.0/checkpkg/expected/lcheck.log-NETFILES
-wfdb-10.2.0/checkpkg/expected/lcheck.log-no-NETFILES
-wfdb-10.2.0/checkpkg/expected/mfilt.dat
-wfdb-10.2.0/checkpkg/expected/mfilt.hea
-wfdb-10.2.0/checkpkg/expected/pschart.ps
-wfdb-10.2.0/checkpkg/expected/psfd.ps
-wfdb-10.2.0/checkpkg/expected/rdann.out
-wfdb-10.2.0/checkpkg/expected/rdsamp.out
-wfdb-10.2.0/checkpkg/expected/rxr.out
-wfdb-10.2.0/checkpkg/expected/sampfreq.out
-wfdb-10.2.0/checkpkg/expected/sigamp.out
-wfdb-10.2.0/checkpkg/expected/snip.atr
-wfdb-10.2.0/checkpkg/expected/snip.dat
-wfdb-10.2.0/checkpkg/expected/snip.hea
-wfdb-10.2.0/checkpkg/expected/sumann.out
-wfdb-10.2.0/checkpkg/expected/sumstats.out
-wfdb-10.2.0/checkpkg/expected/tach.out
-wfdb-10.2.0/checkpkg/expected/udb/
-wfdb-10.2.0/checkpkg/expected/udb/100z.hea
-wfdb-10.2.0/checkpkg/expected/wfd00001.dat
-wfdb-10.2.0/checkpkg/expected/wfd00001.hea
-wfdb-10.2.0/checkpkg/expected/wfd00002.dat
-wfdb-10.2.0/checkpkg/expected/wfd00002.hea
-wfdb-10.2.0/checkpkg/expected/wfdbcat.out
-wfdb-10.2.0/checkpkg/expected/wfdbdesc.out
-wfdb-10.2.0/checkpkg/expected/wfdbwhich.out
-wfdb-10.2.0/checkpkg/expected/wfd.hea
-wfdb-10.2.0/checkpkg/expected/xform-1.out
-wfdb-10.2.0/checkpkg/expected/xform-2.out
-wfdb-10.2.0/checkpkg/expected/xform.all
-wfdb-10.2.0/checkpkg/expected/xform.dat
-wfdb-10.2.0/checkpkg/expected/xform.hea
-wfdb-10.2.0/checkpkg/input/
-wfdb-10.2.0/checkpkg/input/100x.hea
-wfdb-10.2.0/checkpkg/input/ecgeval
-wfdb-10.2.0/checkpkg/input/sumstats
-wfdb-10.2.0/checkpkg/input/xform
-wfdb-10.2.0/checkpkg/lcheck.c
-wfdb-10.2.0/checkpkg/libcheck
-wfdb-10.2.0/checkpkg/Makefile
-wfdb-10.2.0/checkpkg/Makefile.top
-wfdb-10.2.0/checkpkg/Makefile.tpl
-wfdb-10.2.0/conf/
-wfdb-10.2.0/conf/cygwin.def
-wfdb-10.2.0/conf/exestrip
-wfdb-10.2.0/conf/generic.def
-wfdb-10.2.0/conf/generic-slib.def
-wfdb-10.2.0/conf/hpux.def
-wfdb-10.2.0/conf/hpux-slib.def
-wfdb-10.2.0/configure
-wfdb-10.2.0/conf/linux.def
-wfdb-10.2.0/conf/linux-slib.def
-wfdb-10.2.0/conf/solaris.def
-wfdb-10.2.0/conf/solaris-slib.def
-wfdb-10.2.0/conf/version.def
-wfdb-10.2.0/convert/
-wfdb-10.2.0/convert/a2m.c
-wfdb-10.2.0/convert/ad2m.c
-wfdb-10.2.0/convert/edf2mit.c
-wfdb-10.2.0/convert/m2a.c
-wfdb-10.2.0/convert/Makefile
-wfdb-10.2.0/convert/Makefile.dos
-wfdb-10.2.0/convert/Makefile.top
-wfdb-10.2.0/convert/Makefile.tpl
-wfdb-10.2.0/convert/makeid.c
-wfdb-10.2.0/convert/md2a.c
-wfdb-10.2.0/convert/readid.c
-wfdb-10.2.0/convert/README
-wfdb-10.2.0/convert/revise.c
-wfdb-10.2.0/COPYING
-wfdb-10.2.0/data/
-wfdb-10.2.0/data/100s.atr
-wfdb-10.2.0/data/100s.dat
-wfdb-10.2.0/data/100s.hea
-wfdb-10.2.0/data/16.hea
-wfdb-10.2.0/data/16l.hea
-wfdb-10.2.0/data/16x10.hea
-wfdb-10.2.0/data/16x11.hea
-wfdb-10.2.0/data/16x12.hea
-wfdb-10.2.0/data/16x13.hea
-wfdb-10.2.0/data/16x14.hea
-wfdb-10.2.0/data/16x15.hea
-wfdb-10.2.0/data/16x16.hea
-wfdb-10.2.0/data/16x1.hea
-wfdb-10.2.0/data/16x2.hea
-wfdb-10.2.0/data/16x3.hea
-wfdb-10.2.0/data/16x4.hea
-wfdb-10.2.0/data/16x5.hea
-wfdb-10.2.0/data/16x6.hea
-wfdb-10.2.0/data/16x7.hea
-wfdb-10.2.0/data/16x8.hea
-wfdb-10.2.0/data/16x9.hea
-wfdb-10.2.0/data/8.hea
-wfdb-10.2.0/data/8l.hea
-wfdb-10.2.0/data/8x10.hea
-wfdb-10.2.0/data/8x11.hea
-wfdb-10.2.0/data/8x12.hea
-wfdb-10.2.0/data/8x13.hea
-wfdb-10.2.0/data/8x14.hea
-wfdb-10.2.0/data/8x15.hea
-wfdb-10.2.0/data/8x16.hea
-wfdb-10.2.0/data/8x1.hea
-wfdb-10.2.0/data/8x2.hea
-wfdb-10.2.0/data/8x3.hea
-wfdb-10.2.0/data/8x4.hea
-wfdb-10.2.0/data/8x5.hea
-wfdb-10.2.0/data/8x6.hea
-wfdb-10.2.0/data/8x7.hea
-wfdb-10.2.0/data/8x8.hea
-wfdb-10.2.0/data/8x9.hea
-wfdb-10.2.0/data/ahalist
-wfdb-10.2.0/data/ahatape.hea
-wfdb-10.2.0/data/ahaxlist
-wfdb-10.2.0/data/b.hea
-wfdb-10.2.0/data/culist
-wfdb-10.2.0/data/dblist
-wfdb-10.2.0/data/esclist
-wfdb-10.2.0/data/Makefile
-wfdb-10.2.0/data/Makefile.dos
-wfdb-10.2.0/data/Makefile.top
-wfdb-10.2.0/data/Makefile.tpl
-wfdb-10.2.0/data/mitlist
-wfdb-10.2.0/data/mittape.hea
-wfdb-10.2.0/data/mitxlist
-wfdb-10.2.0/data/multi.hea
-wfdb-10.2.0/data/nstlist
-wfdb-10.2.0/data/null.hea
-wfdb-10.2.0/data/README
-wfdb-10.2.0/data/t10240.hea
-wfdb-10.2.0/data/t1024.hea
-wfdb-10.2.0/data/t4096.hea
-wfdb-10.2.0/data/t512.hea
-wfdb-10.2.0/data/wfdbcal
-wfdb-10.2.0/data/wfdbpath.mac
-wfdb-10.2.0/doc/
-wfdb-10.2.0/doc/a2m.1
-wfdb-10.2.0/doc/ann2rr.1
-wfdb-10.2.0/doc/annot.5
-wfdb-10.2.0/doc/appguide.int
-wfdb-10.2.0/doc/bxb.1
-wfdb-10.2.0/doc/calsig.1
-wfdb-10.2.0/doc/coherence.1
-wfdb-10.2.0/doc/cover.ag
-wfdb-10.2.0/doc/cover.pg
-wfdb-10.2.0/doc/ctotexi.c
-wfdb-10.2.0/doc/dbag.ht0
-wfdb-10.2.0/doc/dbag.tex
-wfdb-10.2.0/doc/dbu.hlp
-wfdb-10.2.0/doc/dbu.ht0
-wfdb-10.2.0/doc/dbu.tex
-wfdb-10.2.0/doc/dir.db
-wfdb-10.2.0/doc/dir.top
-wfdb-10.2.0/doc/ecgeval.1
-wfdb-10.2.0/doc/epic.1
-wfdb-10.2.0/doc/eval.tex
-wfdb-10.2.0/doc/fft.1
-wfdb-10.2.0/doc/fir.1
-wfdb-10.2.0/doc/fixag.sed
-wfdb-10.2.0/doc/fixag.sh
-wfdb-10.2.0/doc/fixpg.sed
-wfdb-10.2.0/doc/fixpg.sh
-wfdb-10.2.0/doc/foot.ht0
-wfdb-10.2.0/doc/header.5
-wfdb-10.2.0/doc/hrfft.1
-wfdb-10.2.0/doc/icons/
-wfdb-10.2.0/doc/icons/contents.png
-wfdb-10.2.0/doc/icons/cross_ref.png
-wfdb-10.2.0/doc/icons/foot.png
-wfdb-10.2.0/doc/icons/next_gr.png
-wfdb-10.2.0/doc/icons/next.png
-wfdb-10.2.0/doc/icons/prev_gr.png
-wfdb-10.2.0/doc/icons/previous.png
-wfdb-10.2.0/doc/icons/up_gr.png
-wfdb-10.2.0/doc/icons/up.png
-wfdb-10.2.0/doc/ihr.1
-wfdb-10.2.0/doc/index.ht0
-wfdb-10.2.0/doc/install.tex
-wfdb-10.2.0/doc/intro.ht0
-wfdb-10.2.0/doc/.latex2html-init
-wfdb-10.2.0/doc/log10.1
-wfdb-10.2.0/doc/lomb.1
-wfdb-10.2.0/doc/Makefile
-wfdb-10.2.0/doc/Makefile.top
-wfdb-10.2.0/doc/Makefile.tpl
-wfdb-10.2.0/doc/makeinfo.sh
-wfdb-10.2.0/doc/manhtml.sh
-wfdb-10.2.0/doc/maninst.sh
-wfdb-10.2.0/doc/memse.1
-wfdb-10.2.0/doc/mfilt.1
-wfdb-10.2.0/doc/mrgann.1
-wfdb-10.2.0/doc/mxm.1
-wfdb-10.2.0/doc/nst.1
-wfdb-10.2.0/doc/plot2d.1
-wfdb-10.2.0/doc/plotstm.1
-wfdb-10.2.0/doc/pschart.1
-wfdb-10.2.0/doc/psfd.1
-wfdb-10.2.0/doc/rdann.1
-wfdb-10.2.0/doc/rdsamp.1
-wfdb-10.2.0/doc/README
-wfdb-10.2.0/doc/rxr.1
-wfdb-10.2.0/doc/sampfreq.1
-wfdb-10.2.0/doc/sample.1
-wfdb-10.2.0/doc/setwfdb.1
-wfdb-10.2.0/doc/sigamp.1
-wfdb-10.2.0/doc/signal.5
-wfdb-10.2.0/doc/skewedit.1
-wfdb-10.2.0/doc/snip.1
-wfdb-10.2.0/doc/sortann.1
-wfdb-10.2.0/doc/sqrs.1
-wfdb-10.2.0/doc/sumann.1
-wfdb-10.2.0/doc/sumstats.1
-wfdb-10.2.0/doc/tach.1
-wfdb-10.2.0/doc/texi2html
-wfdb-10.2.0/doc/texindex.c
-wfdb-10.2.0/doc/tmac.dif
-wfdb-10.2.0/doc/view.1
-wfdb-10.2.0/doc/wave.1
-wfdb-10.2.0/doc/wfdb.3
-wfdb-10.2.0/doc/wfdbcal.5
-wfdb-10.2.0/doc/wfdbcat.1
-wfdb-10.2.0/doc/wfdbcollate.1
-wfdb-10.2.0/doc/wfdbdesc.1
-wfdb-10.2.0/doc/wfdbwhich.1
-wfdb-10.2.0/doc/wrann.1
-wfdb-10.2.0/doc/wrsamp.1
-wfdb-10.2.0/doc/wview.1
-wfdb-10.2.0/doc/xform.1
-wfdb-10.2.0/examples/
-wfdb-10.2.0/examples/dblibver.c
-wfdb-10.2.0/examples/example10.c
-wfdb-10.2.0/examples/example1.c
-wfdb-10.2.0/examples/example2.c
-wfdb-10.2.0/examples/example3.c
-wfdb-10.2.0/examples/example4.c
-wfdb-10.2.0/examples/example5.c
-wfdb-10.2.0/examples/example6.c
-wfdb-10.2.0/examples/example7.c
-wfdb-10.2.0/examples/example8.c
-wfdb-10.2.0/examples/example9.c
-wfdb-10.2.0/examples/exannstr.c
-wfdb-10.2.0/examples/exgetvec.c
-wfdb-10.2.0/examples/exputvec.c
-wfdb-10.2.0/examples/Makefile
-wfdb-10.2.0/examples/Makefile.dos
-wfdb-10.2.0/examples/Makefile.top
-wfdb-10.2.0/examples/Makefile.tpl
-wfdb-10.2.0/examples/psamples.c
-wfdb-10.2.0/examples/README
-wfdb-10.2.0/examples/refhr.c
-wfdb-10.2.0/fortran/
-wfdb-10.2.0/fortran/example.f
-wfdb-10.2.0/fortran/Makefile
-wfdb-10.2.0/fortran/README
-wfdb-10.2.0/fortran/wfdbf.c
-wfdb-10.2.0/INSTALL
-wfdb-10.2.0/install.sh
-wfdb-10.2.0/lib/
-wfdb-10.2.0/lib/annot.c
-wfdb-10.2.0/lib/calib.c
-wfdb-10.2.0/lib/COPYING.LIB
-wfdb-10.2.0/lib/db.h
-wfdb-10.2.0/lib/ecgcodes.h
-wfdb-10.2.0/lib/ecgmap.h
-wfdb-10.2.0/lib/Makefile
-wfdb-10.2.0/lib/Makefile.dos
-wfdb-10.2.0/lib/Makefile.top
-wfdb-10.2.0/lib/Makefile.tpl
-wfdb-10.2.0/lib/makelib
-wfdb-10.2.0/lib/README
-wfdb-10.2.0/lib/signal.c
-wfdb-10.2.0/lib/twfdbdll.def
-wfdb-10.2.0/lib/wfdbdll.def
-wfdb-10.2.0/lib/wfdb.h
-wfdb-10.2.0/lib/wfdbinit.c
-wfdb-10.2.0/lib/wfdbio.c
-wfdb-10.2.0/lib/wfdblib.h
-wfdb-10.2.0/Makefile
-wfdb-10.2.0/Makefile.top
-wfdb-10.2.0/Makefile.tpl
-wfdb-10.2.0/MANIFEST
-wfdb-10.2.0/NEWS
-wfdb-10.2.0/psd/
-wfdb-10.2.0/psd/coherence.c
-wfdb-10.2.0/psd/fft.c
-wfdb-10.2.0/psd/hrfft
-wfdb-10.2.0/psd/hrlomb
-wfdb-10.2.0/psd/hrmem
-wfdb-10.2.0/psd/hrplot
-wfdb-10.2.0/psd/log10.c
-wfdb-10.2.0/psd/lomb.c
-wfdb-10.2.0/psd/Makefile
-wfdb-10.2.0/psd/Makefile.dos
-wfdb-10.2.0/psd/Makefile.top
-wfdb-10.2.0/psd/Makefile.tpl
-wfdb-10.2.0/psd/memse.c
-wfdb-10.2.0/psd/plot2d
-wfdb-10.2.0/psd/plot3d
-wfdb-10.2.0/psd/README
-wfdb-10.2.0/README
-wfdb-10.2.0/README.NETFILES
-wfdb-10.2.0/uninstall.sh
-wfdb-10.2.0/wave/
-wfdb-10.2.0/wave/analysis.hlp
-wfdb-10.2.0/wave/analyze.c
-wfdb-10.2.0/wave/annot.c
-wfdb-10.2.0/wave/annpan.c
-wfdb-10.2.0/wave/anntab
-wfdb-10.2.0/wave/bitmaps.h
-wfdb-10.2.0/wave/buttons.hlp
-wfdb-10.2.0/wave/demo.txt
-wfdb-10.2.0/wave-doc/
-wfdb-10.2.0/wave-doc/color/
-wfdb-10.2.0/wave-doc/color/allow-edit.ps
-wfdb-10.2.0/wave-doc/color/calibrate.ps
-wfdb-10.2.0/wave-doc/color/file-analyze.ps
-wfdb-10.2.0/wave-doc/color/file-load.ps
-wfdb-10.2.0/wave-doc/color/file-print.ps
-wfdb-10.2.0/wave-doc/color/file-save.ps
-wfdb-10.2.0/wave-doc/color/find-window.ps
-wfdb-10.2.0/wave-doc/color/help-topics.ps
-wfdb-10.2.0/wave-doc/color/level-window.ps
-wfdb-10.2.0/wave-doc/color/main-control-panel.ps
-wfdb-10.2.0/wave-doc/color/main-window.ps
-wfdb-10.2.0/wave-doc/color/main-with-hr.ps
-wfdb-10.2.0/wave-doc/color/main-with-markers.ps
-wfdb-10.2.0/wave-doc/color/Makefile
-wfdb-10.2.0/wave-doc/color/mimic.ps
-wfdb-10.2.0/wave-doc/color/netscape-new-helper.ps
-wfdb-10.2.0/wave-doc/color/print-setup-window.ps
-wfdb-10.2.0/wave-doc/color/scope-window.ps
-wfdb-10.2.0/wave-doc/color/search-template.ps
-wfdb-10.2.0/wave-doc/color/stdev.ps
-wfdb-10.2.0/wave-doc/color/titlebar.ps
-wfdb-10.2.0/wave-doc/color/title-with-parens.ps
-wfdb-10.2.0/wave-doc/color/type-menu.ps
-wfdb-10.2.0/wave-doc/color/wave-icon.ps
-wfdb-10.2.0/wave-doc/color/wave-menu.ps
-wfdb-10.2.0/wave-doc/grey/
-wfdb-10.2.0/wave-doc/grey/allow-edit.ps
-wfdb-10.2.0/wave-doc/grey/analysis-commands.ps
-wfdb-10.2.0/wave-doc/grey/analyze-window.ps
-wfdb-10.2.0/wave-doc/grey/annotation-template.ps
-wfdb-10.2.0/wave-doc/grey/attach-to-signals.ps
-wfdb-10.2.0/wave-doc/grey/calibrate.ps
-wfdb-10.2.0/wave-doc/grey/chart1.ps
-wfdb-10.2.0/wave-doc/grey/chart2.ps
-wfdb-10.2.0/wave-doc/grey/file-analyze.ps
-wfdb-10.2.0/wave-doc/grey/file-load.ps
-wfdb-10.2.0/wave-doc/grey/file-print.ps
-wfdb-10.2.0/wave-doc/grey/file-save.ps
-wfdb-10.2.0/wave-doc/grey/find-window.ps
-wfdb-10.2.0/wave-doc/grey/fulldisc.ps
-wfdb-10.2.0/wave-doc/grey/help-intro.ps
-wfdb-10.2.0/wave-doc/grey/help-topics.ps
-wfdb-10.2.0/wave-doc/grey/level-window.ps
-wfdb-10.2.0/wave-doc/grey/load-window.ps
-wfdb-10.2.0/wave-doc/grey/log-window.ps
-wfdb-10.2.0/wave-doc/grey/main-control-panel.ps
-wfdb-10.2.0/wave-doc/grey/main-window.ps
-wfdb-10.2.0/wave-doc/grey/main-with-hr.ps
-wfdb-10.2.0/wave-doc/grey/main-with-markers.ps
-wfdb-10.2.0/wave-doc/grey/Makefile
-wfdb-10.2.0/wave-doc/grey/mimic.ps
-wfdb-10.2.0/wave-doc/grey/netscape-new-helper.ps
-wfdb-10.2.0/wave-doc/grey/noedit.ps
-wfdb-10.2.0/wave-doc/grey/nomatch.ps
-wfdb-10.2.0/wave-doc/grey/notice-quit.ps
-wfdb-10.2.0/wave-doc/grey/print-setup-window.ps
-wfdb-10.2.0/wave-doc/grey/scope-window.ps
-wfdb-10.2.0/wave-doc/grey/search-template.ps
-wfdb-10.2.0/wave-doc/grey/spot-help.ps
-wfdb-10.2.0/wave-doc/grey/stdev.ps
-wfdb-10.2.0/wave-doc/grey/system-menu.ps
-wfdb-10.2.0/wave-doc/grey/titlebar.ps
-wfdb-10.2.0/wave-doc/grey/title-with-parens.ps
-wfdb-10.2.0/wave-doc/grey/type-menu.ps
-wfdb-10.2.0/wave-doc/grey/view-window.ps
-wfdb-10.2.0/wave-doc/grey/wave-icon.ps
-wfdb-10.2.0/wave-doc/grey/wave-menu.ps
-wfdb-10.2.0/wave-doc/guide/
-wfdb-10.2.0/wave-doc/guide/chart2.png
-wfdb-10.2.0/wave-doc/guide/cover.wug
-wfdb-10.2.0/wave-doc/guide/dossify-html
-wfdb-10.2.0/wave-doc/guide/example.xws
-wfdb-10.2.0/wave-doc/guide/fancybox.perl
-wfdb-10.2.0/wave-doc/guide/fixindex
-wfdb-10.2.0/wave-doc/guide/fixinfo
-wfdb-10.2.0/wave-doc/guide/fixlinks
-wfdb-10.2.0/wave-doc/guide/fulldisc.png
-wfdb-10.2.0/wave-doc/guide/html.sty
-wfdb-10.2.0/wave-doc/guide/icons/
-wfdb-10.2.0/wave-doc/guide/icons/contents.png
-wfdb-10.2.0/wave-doc/guide/icons/cross_ref.png
-wfdb-10.2.0/wave-doc/guide/icons/foot.png
-wfdb-10.2.0/wave-doc/guide/icons/index.png
-wfdb-10.2.0/wave-doc/guide/icons/next_gr.png
-wfdb-10.2.0/wave-doc/guide/icons/next.png
-wfdb-10.2.0/wave-doc/guide/icons/prev_gr.png
-wfdb-10.2.0/wave-doc/guide/icons/previous.png
-wfdb-10.2.0/wave-doc/guide/icons/up_gr.png
-wfdb-10.2.0/wave-doc/guide/icons/up.png
-wfdb-10.2.0/wave-doc/guide/icons/wave.png
-wfdb-10.2.0/wave-doc/guide/.latex2html-init
-wfdb-10.2.0/wave-doc/guide/Makefile
-wfdb-10.2.0/wave-doc/guide/manhtml
-wfdb-10.2.0/wave-doc/guide/saveroot
-wfdb-10.2.0/wave-doc/guide/savewin
-wfdb-10.2.0/wave-doc/guide/stdev.c
-wfdb-10.2.0/wave-doc/guide/wave2d
-wfdb-10.2.0/wave-doc/guide/wug.tex
-wfdb-10.2.0/wave-doc/guide/xview.7
-wfdb-10.2.0/wave-doc/guide/xwdtops
-wfdb-10.2.0/wave-doc/guide/xwdtops-grey
-wfdb-10.2.0/wave-doc/Makefile
-wfdb-10.2.0/wave-doc/ppm/
-wfdb-10.2.0/wave-doc/ppm/allow-edit.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/attach-to-signals.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/calibrate.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/file-analyze.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/file-load.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/file-print.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/file-save.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/find-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/help-topics.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/level-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/log-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/main-control-panel.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/main-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/main-with-markers.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/Makefile
-wfdb-10.2.0/wave-doc/ppm/mimic.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/netscape-new-helper.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/print-setup-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/scope-window.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/search-template.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/stdev.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/titlebar.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/title-with-parens.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/type-menu.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/wave-icon.ppm.gz
-wfdb-10.2.0/wave-doc/ppm/wave-menu.ppm.gz
-wfdb-10.2.0/wave/edit.c
-wfdb-10.2.0/wave/editing.hlp
-wfdb-10.2.0/wave/faq.hlp
-wfdb-10.2.0/wave/gcc-patches
-wfdb-10.2.0/wave/grid.c
-wfdb-10.2.0/wave/help.c
-wfdb-10.2.0/wave/helppan.c
-wfdb-10.2.0/wave/init.c
-wfdb-10.2.0/wave/intro.hlp
-wfdb-10.2.0/wave/log.hlp
-wfdb-10.2.0/wave/logpan.c
-wfdb-10.2.0/wave/mainpan.c
-wfdb-10.2.0/wave/Makefile
-wfdb-10.2.0/wave/Makefile.top
-wfdb-10.2.0/wave/Makefile.tpl
-wfdb-10.2.0/wave/makewave
-wfdb-10.2.0/wave/mglass_mask.xbm
-wfdb-10.2.0/wave/mglass.xbm
-wfdb-10.2.0/wave/modepan.c
-wfdb-10.2.0/wave/nomake
-wfdb-10.2.0/wave/printing.hlp
-wfdb-10.2.0/waverc/
-wfdb-10.2.0/waverc/Makefile
-wfdb-10.2.0/waverc/Makefile.top
-wfdb-10.2.0/waverc/Makefile.tpl
-wfdb-10.2.0/waverc/urlvhead
-wfdb-10.2.0/waverc/wave-remote.c
-wfdb-10.2.0/waverc/wave-remote-test.c
-wfdb-10.2.0/waverc/wavescript.c
-wfdb-10.2.0/wave/README
-wfdb-10.2.0/wave/resource.hlp
-wfdb-10.2.0/wave/scope.c
-wfdb-10.2.0/wave/search.c
-wfdb-10.2.0/wave/sig.c
-wfdb-10.2.0/wave/soelim.c
-wfdb-10.2.0/wave/wave.c
-wfdb-10.2.0/wave/wave.h
-wfdb-10.2.0/wave/wave.hl0
-wfdb-10.2.0/wave/wave.inf
-wfdb-10.2.0/wave/wave.info
-wfdb-10.2.0/wave/wavemenu.def
-wfdb-10.2.0/wave/wave.prf
-wfdb-10.2.0/wave/Wave.res
-wfdb-10.2.0/wave/wave.xbm
-wfdb-10.2.0/wave/xvwave.c
-wfdb-10.2.0/wave/xvwave.h
-wfdb-10.2.0/wview/
-wfdb-10.2.0/wview/clean
-wfdb-10.2.0/wview/ecg.ico
-wfdb-10.2.0/wview/html/
-wfdb-10.2.0/wview/html/addnft1.png
-wfdb-10.2.0/wview/html/addnft2.png
-wfdb-10.2.0/wview/html/addnft3.png
-wfdb-10.2.0/wview/html/addnft4.png
-wfdb-10.2.0/wview/html/addnft5.png
-wfdb-10.2.0/wview/html/addnft6.png
-wfdb-10.2.0/wview/html/example.xws
-wfdb-10.2.0/wview/html/wave.png
-wfdb-10.2.0/wview/html/wvsetup.ht0
-wfdb-10.2.0/wview/makefile
-wfdb-10.2.0/wview/wview.c
-wfdb-10.2.0/wview/wview.def
-wfdb-10.2.0/wview/wview.h
-wfdb-10.2.0/wview/wview.hlp
-wfdb-10.2.0/wview/wview.hpj
-wfdb-10.2.0/wview/wview.rc
-wfdb-10.2.0/wview/wview.rtf
-wfdb-10.2.0/wview/wvscript.c
+
+app/
+app/12lead.pro
+app/ann2rr.c
+app/bxb.c
+app/calsig.c
+app/cshsetwfdb
+app/ecgeval.c
+app/epic.c
+app/fir.c
+app/ihr.c
+app/Makefile
+app/Makefile.dos
+app/Makefile.top
+app/Makefile.tpl
+app/mfilt.c
+app/mrgann.c
+app/mxm.c
+app/nst.c
+app/plotstm.c
+app/pscgen.c
+app/pschart.c
+app/pschart.pro
+app/psfd.c
+app/psfd.pro
+app/rdann.c
+app/rdsamp.c
+app/README
+app/rr2ann.c
+app/rxr.c
+app/sampfreq.c
+app/sample8.hea
+app/sample.c
+app/setwfdb
+app/setwfdb.bat
+app/sigamp.c
+app/skewedit.c
+app/snip.c
+app/sortann.c
+app/sqrs125.c
+app/sqrs.c
+app/sumann.c
+app/sumstats.c
+app/tach.c
+app/view.c
+app/vsetup.c
+app/wfdbcat.c
+app/wfdbcollate.c
+app/wfdbdesc.c
+app/wfdbwhich.c
+app/wrann.c
+app/wrsamp.c
+app/wvscript.c
+app/xform.c
+check-manifest
+checkpkg/
+checkpkg/appcheck
+checkpkg/expected/
+checkpkg/expected/100s.a2r
+checkpkg/expected/100s.mix
+checkpkg/expected/100s.qrs
+checkpkg/expected/100s.wra
+checkpkg/expected/100w.dat
+checkpkg/expected/100w.hea
+checkpkg/expected/100x.atr
+checkpkg/expected/100x.dat
+checkpkg/expected/100x.hea
+checkpkg/expected/100z.hea
+checkpkg/expected/ann2rr.out
+checkpkg/expected/bxb.out
+checkpkg/expected/ecgeval.out
+checkpkg/expected/fir.dat
+checkpkg/expected/fir.hea
+checkpkg/expected/ihr.out
+checkpkg/expected/lcheck.log-NETFILES
+checkpkg/expected/lcheck.log-no-NETFILES
+checkpkg/expected/mfilt.dat
+checkpkg/expected/mfilt.hea
+checkpkg/expected/pschart.ps
+checkpkg/expected/psfd.ps
+checkpkg/expected/rdann.out
+checkpkg/expected/rdsamp.out
+checkpkg/expected/rxr.out
+checkpkg/expected/sampfreq.out
+checkpkg/expected/sigamp.out
+checkpkg/expected/snip.atr
+checkpkg/expected/snip.dat
+checkpkg/expected/snip.hea
+checkpkg/expected/sumann.out
+checkpkg/expected/sumstats.out
+checkpkg/expected/tach.out
+checkpkg/expected/udb/
+checkpkg/expected/udb/100z.hea
+checkpkg/expected/wfd00001.dat
+checkpkg/expected/wfd00001.hea
+checkpkg/expected/wfd00002.dat
+checkpkg/expected/wfd00002.hea
+checkpkg/expected/wfdbcat.out
+checkpkg/expected/wfdbdesc.out
+checkpkg/expected/wfdbwhich.out
+checkpkg/expected/wfd.hea
+checkpkg/expected/xform-1.out
+checkpkg/expected/xform-2.out
+checkpkg/expected/xform.all
+checkpkg/expected/xform.dat
+checkpkg/expected/xform.hea
+checkpkg/input/
+checkpkg/input/100x.hea
+checkpkg/input/ecgeval
+checkpkg/input/sumstats
+checkpkg/input/xform
+checkpkg/lcheck.c
+checkpkg/libcheck
+checkpkg/Makefile
+checkpkg/Makefile.top
+checkpkg/Makefile.tpl
+conf/
+conf/cygwin.def
+conf/exestrip
+conf/generic.def
+conf/generic-slib.def
+conf/hpux.def
+conf/hpux-slib.def
+configure
+conf/linux.def
+conf/linux-slib.def
+conf/solaris.def
+conf/solaris-slib.def
+conf/version.def
+convert/
+convert/a2m.c
+convert/ad2m.c
+convert/edf2mit.c
+convert/m2a.c
+convert/Makefile
+convert/Makefile.dos
+convert/Makefile.top
+convert/Makefile.tpl
+convert/makeid.c
+convert/md2a.c
+convert/readid.c
+convert/README
+convert/revise.c
+COPYING
+data/
+data/100s.atr
+data/100s.dat
+data/100s.hea
+data/16.hea
+data/16l.hea
+data/8.hea
+data/8l.hea
+data/ahalist
+data/ahaxlist
+data/culist
+data/dblist
+data/esclist
+data/Makefile
+data/Makefile.dos
+data/Makefile.top
+data/Makefile.tpl
+data/mitlist
+data/mitxlist
+data/multi.hea
+data/nstlist
+data/null.hea
+data/pipe/
+data/pipe/16x10.hea
+data/pipe/16x11.hea
+data/pipe/16x12.hea
+data/pipe/16x13.hea
+data/pipe/16x14.hea
+data/pipe/16x15.hea
+data/pipe/16x16.hea
+data/pipe/16x1.hea
+data/pipe/16x2.hea
+data/pipe/16x3.hea
+data/pipe/16x4.hea
+data/pipe/16x5.hea
+data/pipe/16x6.hea
+data/pipe/16x7.hea
+data/pipe/16x8.hea
+data/pipe/16x9.hea
+data/pipe/8x10.hea
+data/pipe/8x11.hea
+data/pipe/8x12.hea
+data/pipe/8x13.hea
+data/pipe/8x14.hea
+data/pipe/8x15.hea
+data/pipe/8x16.hea
+data/pipe/8x1.hea
+data/pipe/8x2.hea
+data/pipe/8x3.hea
+data/pipe/8x4.hea
+data/pipe/8x5.hea
+data/pipe/8x6.hea
+data/pipe/8x7.hea
+data/pipe/8x8.hea
+data/pipe/8x9.hea
+data/README
+data/tape/
+data/tape/102040.hea
+data/tape/1024.hea
+data/tape/4096.hea
+data/tape/512.hea
+data/tape/6144d.hea
+data/tape/ahatape.hea
+data/tape/mittape.hea
+data/wfdbcal
+data/wfdbpath.mac
+doc/
+doc/a2m.1
+doc/ann2rr.1
+doc/annot.5
+doc/appguide.int
+doc/bxb.1
+doc/calsig.1
+doc/coherence.1
+doc/cover.ag
+doc/cover.pg
+doc/ctotexi.c
+doc/dbag.ht0
+doc/dbag.tex
+doc/dbu.hlp
+doc/dbu.ht0
+doc/dbu.tex
+doc/dfa.1
+doc/dir.db
+doc/dir.top
+doc/ecgeval.1
+doc/epic.1
+doc/eval.tex
+doc/fft.1
+doc/fir.1
+doc/fixag.sed
+doc/fixag.sh
+doc/fixpg.sed
+doc/fixpg.sh
+doc/foot.ht0
+doc/header.5
+doc/hrfft.1
+doc/icons/
+doc/icons/contents.png
+doc/icons/cross_ref.png
+doc/icons/foot.png
+doc/icons/next_gr.png
+doc/icons/next.png
+doc/icons/prev_gr.png
+doc/icons/previous.png
+doc/icons/up_gr.png
+doc/icons/up.png
+doc/ihr.1
+doc/index.ht0
+doc/install.tex
+doc/intro.ht0
+doc/.latex2html-init
+doc/log10.1
+doc/lomb.1
+doc/Makefile
+doc/Makefile.top
+doc/Makefile.tpl
+doc/makeinfo.sh
+doc/manhtml.sh
+doc/maninst.sh
+doc/memse.1
+doc/mfilt.1
+doc/mrgann.1
+doc/mxm.1
+doc/nst.1
+doc/plot2d.1
+doc/plotstm.1
+doc/plt.1
+doc/pschart.1
+doc/psfd.1
+doc/rdann.1
+doc/rdsamp.1
+doc/README
+doc/rxr.1
+doc/sampfreq.1
+doc/sample.1
+doc/setwfdb.1
+doc/sigamp.1
+doc/signal.5
+doc/skewedit.1
+doc/snip.1
+doc/sortann.1
+doc/sqrs.1
+doc/sumann.1
+doc/sumstats.1
+doc/tach.1
+doc/texi2html
+doc/texindex.c
+doc/tmac.dif
+doc/view.1
+doc/wave.1
+doc/wfdb.3
+doc/wfdbcal.5
+doc/wfdbcat.1
+doc/wfdbcollate.1
+doc/wfdbdesc.1
+doc/wfdbwhich.1
+doc/wrann.1
+doc/wrsamp.1
+doc/wview.1
+doc/xform.1
+examples/
+examples/dblibver.c
+examples/example10.c
+examples/example1.c
+examples/example2.c
+examples/example3.c
+examples/example4.c
+examples/example5.c
+examples/example6.c
+examples/example7.c
+examples/example8.c
+examples/example9.c
+examples/exannstr.c
+examples/exgetvec.c
+examples/exputvec.c
+examples/Makefile
+examples/Makefile.dos
+examples/Makefile.top
+examples/Makefile.tpl
+examples/psamples.c
+examples/README
+examples/refhr.c
+fortran/
+fortran/example.f
+fortran/fsamples.f
+fortran/Makefile
+fortran/README
+fortran/wfdbf.c
+INSTALL
+install.sh
+lib/
+lib/annot.c
+lib/calib.c
+lib/COPYING.LIB
+lib/db.h
+lib/ecgcodes.h
+lib/ecgmap.h
+lib/Makefile
+lib/Makefile.dos
+lib/Makefile.top
+lib/Makefile.tpl
+lib/makelib
+lib/README
+lib/signal.c
+lib/twfdbdll.def
+lib/wfdbdll.def
+lib/wfdb.h
+lib/wfdbinit.c
+lib/wfdbio.c
+lib/wfdblib.h
+lib/wfdblib.h0
+Makefile
+Makefile.top
+Makefile.tpl
+MANIFEST
+NEWS
+psd/
+psd/coherence.c
+psd/fft.c
+psd/hrfft
+psd/hrlomb
+psd/hrmem
+psd/hrplot
+psd/log10.c
+psd/lomb.c
+psd/Makefile
+psd/Makefile.dos
+psd/Makefile.top
+psd/Makefile.tpl
+psd/memse.c
+psd/plot2d
+psd/plot3d
+psd/README
+README
+README.NETFILES
+uninstall.sh
+wave/
+wave/analysis.hlp
+wave/analyze.c
+wave/annot.c
+wave/annpan.c
+wave/anntab
+wave/bitmaps.h
+wave/buttons.hlp
+wave/demo.txt
+wave-doc/
+wave-doc/color/
+wave-doc/color/allow-edit.ps
+wave-doc/color/calibrate.ps
+wave-doc/color/file-analyze.ps
+wave-doc/color/file-load.ps
+wave-doc/color/file-print.ps
+wave-doc/color/file-save.ps
+wave-doc/color/find-window.ps
+wave-doc/color/help-topics.ps
+wave-doc/color/level-window.ps
+wave-doc/color/main-control-panel.ps
+wave-doc/color/main-window.ps
+wave-doc/color/main-with-hr.ps
+wave-doc/color/main-with-markers.ps
+wave-doc/color/Makefile
+wave-doc/color/mimic.ps
+wave-doc/color/netscape-new-helper.ps
+wave-doc/color/print-setup-window.ps
+wave-doc/color/scope-window.ps
+wave-doc/color/search-template.ps
+wave-doc/color/stdev.ps
+wave-doc/color/titlebar.ps
+wave-doc/color/title-with-parens.ps
+wave-doc/color/type-menu.ps
+wave-doc/color/wave-icon.ps
+wave-doc/color/wave-menu.ps
+wave-doc/grey/
+wave-doc/grey/allow-edit.ps
+wave-doc/grey/analysis-commands.ps
+wave-doc/grey/analyze-window.ps
+wave-doc/grey/annotation-template.ps
+wave-doc/grey/attach-to-signals.ps
+wave-doc/grey/calibrate.ps
+wave-doc/grey/chart1.ps
+wave-doc/grey/chart2.ps
+wave-doc/grey/file-analyze.ps
+wave-doc/grey/file-load.ps
+wave-doc/grey/file-print.ps
+wave-doc/grey/file-save.ps
+wave-doc/grey/find-window.ps
+wave-doc/grey/fulldisc.ps
+wave-doc/grey/help-intro.ps
+wave-doc/grey/help-topics.ps
+wave-doc/grey/level-window.ps
+wave-doc/grey/load-window.ps
+wave-doc/grey/log-window.ps
+wave-doc/grey/main-control-panel.ps
+wave-doc/grey/main-window.ps
+wave-doc/grey/main-with-hr.ps
+wave-doc/grey/main-with-markers.ps
+wave-doc/grey/Makefile
+wave-doc/grey/mimic.ps
+wave-doc/grey/netscape-new-helper.ps
+wave-doc/grey/noedit.ps
+wave-doc/grey/nomatch.ps
+wave-doc/grey/notice-quit.ps
+wave-doc/grey/print-setup-window.ps
+wave-doc/grey/scope-window.ps
+wave-doc/grey/search-template.ps
+wave-doc/grey/spot-help.ps
+wave-doc/grey/stdev.ps
+wave-doc/grey/system-menu.ps
+wave-doc/grey/titlebar.ps
+wave-doc/grey/title-with-parens.ps
+wave-doc/grey/type-menu.ps
+wave-doc/grey/view-window.ps
+wave-doc/grey/wave-icon.ps
+wave-doc/grey/wave-menu.ps
+wave-doc/guide/
+wave-doc/guide/chart2.png
+wave-doc/guide/cover.wug
+wave-doc/guide/dossify-html
+wave-doc/guide/example.xws
+wave-doc/guide/fancybox.perl
+wave-doc/guide/fixindex
+wave-doc/guide/fixinfo
+wave-doc/guide/fixlinks
+wave-doc/guide/fulldisc.png
+wave-doc/guide/html.sty
+wave-doc/guide/icons/
+wave-doc/guide/icons/contents.png
+wave-doc/guide/icons/cross_ref.png
+wave-doc/guide/icons/foot.png
+wave-doc/guide/icons/index.png
+wave-doc/guide/icons/next_gr.png
+wave-doc/guide/icons/next.png
+wave-doc/guide/icons/prev_gr.png
+wave-doc/guide/icons/previous.png
+wave-doc/guide/icons/up_gr.png
+wave-doc/guide/icons/up.png
+wave-doc/guide/icons/wave.png
+wave-doc/guide/.latex2html-init
+wave-doc/guide/Makefile
+wave-doc/guide/manhtml
+wave-doc/guide/saveroot
+wave-doc/guide/savewin
+wave-doc/guide/stdev.c
+wave-doc/guide/wave2d
+wave-doc/guide/wug.tex
+wave-doc/guide/xview.7
+wave-doc/guide/xwdtops
+wave-doc/guide/xwdtops-grey
+wave-doc/Makefile
+wave-doc/ppm/
+wave-doc/ppm/allow-edit.ppm.gz
+wave-doc/ppm/attach-to-signals.ppm.gz
+wave-doc/ppm/calibrate.ppm.gz
+wave-doc/ppm/file-analyze.ppm.gz
+wave-doc/ppm/file-load.ppm.gz
+wave-doc/ppm/file-print.ppm.gz
+wave-doc/ppm/file-save.ppm.gz
+wave-doc/ppm/find-window.ppm.gz
+wave-doc/ppm/help-topics.ppm.gz
+wave-doc/ppm/level-window.ppm.gz
+wave-doc/ppm/log-window.ppm.gz
+wave-doc/ppm/main-control-panel.ppm.gz
+wave-doc/ppm/main-window.ppm.gz
+wave-doc/ppm/main-with-markers.ppm.gz
+wave-doc/ppm/Makefile
+wave-doc/ppm/mimic.ppm.gz
+wave-doc/ppm/netscape-new-helper.ppm.gz
+wave-doc/ppm/print-setup-window.ppm.gz
+wave-doc/ppm/scope-window.ppm.gz
+wave-doc/ppm/search-template.ppm.gz
+wave-doc/ppm/stdev.ppm.gz
+wave-doc/ppm/titlebar.ppm.gz
+wave-doc/ppm/title-with-parens.ppm.gz
+wave-doc/ppm/type-menu.ppm.gz
+wave-doc/ppm/wave-icon.ppm.gz
+wave-doc/ppm/wave-menu.ppm.gz
+wave/edit.c
+wave/editing.hlp
+wave/faq.hlp
+wave/grid.c
+wave/help.c
+wave/helppan.c
+wave/init.c
+wave/intro.hlp
+wave/log.hlp
+wave/logpan.c
+wave/mainpan.c
+wave/Makefile
+wave/Makefile.top
+wave/Makefile.tpl
+wave/makewave
+wave/mglass_mask.xbm
+wave/mglass.xbm
+wave/modepan.c
+wave/nomake
+wave/printing.hlp
+waverc/
+waverc/Makefile
+waverc/Makefile.top
+waverc/Makefile.tpl
+waverc/urlvhead
+waverc/wave-remote.c
+waverc/wave-remote-test.c
+waverc/wavescript.c
+wave/README
+wave/resource.hlp
+wave/scope.c
+wave/search.c
+wave/sig.c
+wave/soelim.c
+wave/wave.c
+wave/wave.h
+wave/wave.hl0
+wave/wave.inf
+wave/wave.info
+wave/wavemenu.def
+wave/wave.prf
+wave/Wave.res
+wave/wave.xbm
+wave/xview-patches
+wave/xvwave.c
+wave/xvwave.h
+wview/
+wview/clean
+wview/ecg.ico
+wview/html/
+wview/html/addnft1.png
+wview/html/addnft2.png
+wview/html/addnft3.png
+wview/html/addnft4.png
+wview/html/addnft5.png
+wview/html/addnft6.png
+wview/html/example.xws
+wview/html/wave.png
+wview/html/wvsetup.ht0
+wview/makefile
+wview/wview.c
+wview/wview.def
+wview/wview.h
+wview/wview.hlp
+wview/wview.hpj
+wview/wview.rc
+wview/wview.rtf
+wview/wvscript.c
diff -Naur wfdb-10.2.0/Makefile wfdb-10.2.1/Makefile
--- wfdb-10.2.0/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/Makefile	Fri Nov 16 16:18:44 2001
@@ -39,12 +39,12 @@
 # create source archives, type `make tarballs';  or to make a binary archive,
 # type `make bin-tarball'.  Making archives requires PGP, gzip, and GNU tar).
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -52,7 +52,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
@@ -274,7 +274,8 @@
 # is correct.
 tarballs:	clean
 	cd ..; tar --create --file $(PACKAGE).tar.gz --verbose --gzip \
-          '--exclude=$(PACKAGE)/*CVS' $(PACKAGE) | tee $(PACKAGE)-MANIFEST
+          '--exclude=$(PACKAGE)/*CVS' $(PACKAGE) | sed s+${PACKAGE}/++ | \
+	  tee $(PACKAGE)-MANIFEST
 	cd ..; tar --create --file $(PACKAGE)-no-docs.tar.gz \
 	  --verbose --gzip \
           '--exclude=$(PACKAGE)/*doc' \
diff -Naur wfdb-10.2.0/Makefile.tpl wfdb-10.2.1/Makefile.tpl
--- wfdb-10.2.0/Makefile.tpl	Mon Oct 15 13:37:09 2001
+++ wfdb-10.2.1/Makefile.tpl	Fri Nov 16 16:18:37 2001
@@ -106,7 +106,8 @@
 # is correct.
 tarballs:	clean
 	cd ..; tar --create --file $(PACKAGE).tar.gz --verbose --gzip \
-          '--exclude=$(PACKAGE)/*CVS' $(PACKAGE) | tee $(PACKAGE)-MANIFEST
+          '--exclude=$(PACKAGE)/*CVS' $(PACKAGE) | sed s+${PACKAGE}/++ | \
+	  tee $(PACKAGE)-MANIFEST
 	cd ..; tar --create --file $(PACKAGE)-no-docs.tar.gz \
 	  --verbose --gzip \
           '--exclude=$(PACKAGE)/*doc' \
diff -Naur wfdb-10.2.0/NEWS wfdb-10.2.1/NEWS
--- wfdb-10.2.0/NEWS	Mon Oct 15 13:42:22 2001
+++ wfdb-10.2.1/NEWS	Wed Nov  7 14:37:49 2001
@@ -1,3 +1,13 @@
+10.2.1:
+	Most users will no longer need to set the WFDB path explicitly, as a
+	result of several minor changes in the default path and in the
+	installer for the WFDB Software Package.
+
+	The environment variable WFDBNOSORT was replaced by WFDBANNSORT, and
+        the environment variable WFDBGVMODE was introduced (see 'Annotation
+        Order' and 'Multi-Frequency Records', in the WFDB Programmer's Guide,
+	for details).
+
 10.2.0:
 	The 10.2 series differs from all earlier releases in that the WFDB
 	library no longer imposes any fixed limits on the numbers of annotators
diff -Naur wfdb-10.2.0/app/Makefile wfdb-10.2.1/app/Makefile
--- wfdb-10.2.0/app/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/app/Makefile	Fri Nov 16 16:18:43 2001
@@ -33,12 +33,12 @@
 # type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,7 +46,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/app/bxb.c wfdb-10.2.1/app/bxb.c
--- wfdb-10.2.0/app/bxb.c	Wed Feb  9 22:18:02 2000
+++ wfdb-10.2.1/app/bxb.c	Wed Nov  7 10:58:28 2001
@@ -1,9 +1,9 @@
 /* file: bxb.c		G. Moody	14 December 1987
-			Last revised:	 9 February 2000
+			Last revised:	 7 November 2001
 
 -------------------------------------------------------------------------------
 bxb: ANSI/AAMI-standard beat-by-beat annotation file comparator
-Copyright (C) 2000 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free Software
@@ -27,8 +27,8 @@
 AAMI/ANSI EC38:1998, the American National Standard for ambulatory ECGs, and
 in AAMI EC57:1998, the American National Standard for Testing and Reporting
 Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms.
-These standards are available from AAMI, Suite 400, 3330 Washington Blvd.,
-Arlington, VA 22201 USA (http://www.aami.org/)
+These standards are available from AAMI, 1110 N Glebe Road, Suite 220,
+Arlington, VA 22201 USA (http://www.aami.org/).
 
 The -f, -O, -t, and -w options modify the comparison algorithm used by bxb in
 ways not permitted by EC38:1998 or EC57:1998.  These options are provided for
diff -Naur wfdb-10.2.0/app/epic.c wfdb-10.2.1/app/epic.c
--- wfdb-10.2.0/app/epic.c	Wed Mar 21 12:27:13 2001
+++ wfdb-10.2.1/app/epic.c	Wed Nov  7 10:58:58 2001
@@ -1,9 +1,9 @@
 /* file: epic.c		G. Moody	 3 March 1992
-			Last revised:	  4 May 1999
+			Last revised:	 7 November 2001
 
 -------------------------------------------------------------------------------
 epic: ANSI/AAMI-standard episode-by-episode annotation file comparator
-Copyright (C) 1999 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free Software
@@ -27,10 +27,12 @@
 algorithms described in ANSI/AAMI EC38:1998, the American National Standard for
 Ambulatory electrocardiographs and ANSI/AAMI EC57:1998, the American National
 Standard for Testing and reporting performance results of cardiac rhythm and
-ST segment measurement algorithms (both available from AAMI, Suite 400, 3330
-Washington Blvd., Arlington, VA 22201 USA).  The relevant provisions of these
-standards are described in file `eval.doc'.  Information about using this
-program is contained in file `epic.1'.
+ST segment measurement algorithms;  both standards are available from AAMI,
+1110 N Glebe Road, Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
+The relevant provisions of these standards are described in file `eval.tex',
+and information about using this program is contained in file `epic.1' (both
+of these files are included in the 'doc' directory of the WFDB Software
+Package).
 
 The -f and -t options modify the comparison algorithm used by epic in ways
 not permitted by these standards.  These options are provided for the use of
diff -Naur wfdb-10.2.0/app/rxr.c wfdb-10.2.1/app/rxr.c
--- wfdb-10.2.0/app/rxr.c	Wed Feb  9 22:17:01 2000
+++ wfdb-10.2.1/app/rxr.c	Wed Nov  7 10:59:15 2001
@@ -1,9 +1,9 @@
 /* file: rxr.c		G. Moody	16 August 1989
-			Last revised:   9 February 2000
+			Last revised:   7 November 2001
 
 -------------------------------------------------------------------------------
 rxr: ANSI/AAMI-standard run-by-run annotation file comparator
-Copyright (C) 2000 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free Software
@@ -27,7 +27,7 @@
 AAMI/ANSI EC38:1998, the American National Standard for ambulatory ECGs, and
 in AAMI EC57:1998, the American National Standard for Testing and Reporting
 Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms.
-These standards are available from AAMI, Suite 400, 3330 Washington Blvd.,
+These standards are available from AAMI, 1110 N Glebe Road, Suite 220,
 Arlington, VA 22201 USA (http://www.aami.org/)
 
 The -f, -t, and -w options modify the comparison algorithm used by rxr in ways
diff -Naur wfdb-10.2.0/app/sumstats.c wfdb-10.2.1/app/sumstats.c
--- wfdb-10.2.0/app/sumstats.c	Wed Feb  9 22:06:48 2000
+++ wfdb-10.2.1/app/sumstats.c	Wed Nov  7 10:59:34 2001
@@ -1,8 +1,8 @@
 /* file: sumstats.c	G. Moody	17 August 1989
-   			Last revised:	9 February 2000
+   			Last revised:	7 November 2001
 -------------------------------------------------------------------------------
 sumstats: Derive aggregate statistics from bxb, rxr, or epic line-format output
-Copyright (C) 2000 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free Software
@@ -28,8 +28,7 @@
 EC57:1998, based on the earlier AAMI ECAR:1987), and in sections 4.2.14.4.1
 and 4.2.14.4.2 of the American National Standard, "Ambulatory electrocardio-
 graphs" (ANSI/AAMI EC38:1998).  These standards are available from AAMI,
-Suite 400, 3330 Washington Blvd., Arlington, VA 22201 USA
-(http://www.aami.org/).
+1110 N Glebe Road, Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 */
 
 #include <stdio.h>
diff -Naur wfdb-10.2.0/checkpkg/Makefile wfdb-10.2.1/checkpkg/Makefile
--- wfdb-10.2.0/checkpkg/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/checkpkg/Makefile	Fri Nov 16 16:18:43 2001
@@ -31,12 +31,12 @@
 # directory).  To print a set of source listings, type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -44,7 +44,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/checkpkg/expected/lcheck.log-NETFILES wfdb-10.2.1/checkpkg/expected/lcheck.log-NETFILES
--- wfdb-10.2.0/checkpkg/expected/lcheck.log-NETFILES	Tue Sep 11 10:03:44 2001
+++ wfdb-10.2.1/checkpkg/expected/lcheck.log-NETFILES	Wed Nov  7 16:53:27 2001
@@ -10,7 +10,7 @@
 [OK]:  WFDB_DEFFREQ = 250
 [OK]:  WFDB_DEFGAIN = 200
 [OK]:  WFDB_DEFRES = 12
-[OK]:  Default WFDB path = . http://www.physionet.org/physiobank/database
+[OK]:  Default WFDB path = . /usr/database http://www.physionet.org/physiobank/database
 [OK]:  WFDB path modified successfully
 [OK]:  sampfreq(NULL) returned 0
 [OK]:  setsampfreq changed sampling frequency successfully
diff -Naur wfdb-10.2.0/checkpkg/expected/lcheck.log-no-NETFILES wfdb-10.2.1/checkpkg/expected/lcheck.log-no-NETFILES
--- wfdb-10.2.0/checkpkg/expected/lcheck.log-no-NETFILES	Tue Sep 11 10:03:57 2001
+++ wfdb-10.2.1/checkpkg/expected/lcheck.log-no-NETFILES	Wed Nov  7 16:54:02 2001
@@ -10,7 +10,7 @@
 [OK]:  WFDB_DEFFREQ = 250
 [OK]:  WFDB_DEFGAIN = 200
 [OK]:  WFDB_DEFRES = 12
-[OK]:  Default WFDB path = . http://www.physionet.org/physiobank/database
+[OK]:  Default WFDB path = . /usr/database http://www.physionet.org/physiobank/database
 [OK]:  WFDB path modified successfully
 [OK]:  sampfreq(NULL) returned 0
 [OK]:  setsampfreq changed sampling frequency successfully
diff -Naur wfdb-10.2.0/conf/version.def wfdb-10.2.1/conf/version.def
--- wfdb-10.2.0/conf/version.def	Tue Aug 14 10:07:14 2001
+++ wfdb-10.2.1/conf/version.def	Wed Nov  7 22:21:35 2001
@@ -1,10 +1,10 @@
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
diff -Naur wfdb-10.2.0/configure wfdb-10.2.1/configure
--- wfdb-10.2.0/configure	Fri Sep  7 11:35:59 2001
+++ wfdb-10.2.1/configure	Thu Oct 25 15:06:18 2001
@@ -199,6 +199,10 @@
 rm conf/site.def conf/site-slib.def
 
 echo
+echo "Adding $DIR/database to the default WFDB path ..."
+sed "s+DBDIR+$DIR/database+" <lib/wfdblib.h0 >lib/wfdblib.h
+
+echo
 echo "Looking for the XView libraries ..."
 if [ -d /usr/openwin -o -d /usr/local/openwin -o -d /opt/openwin ]
 then
diff -Naur wfdb-10.2.0/convert/Makefile wfdb-10.2.1/convert/Makefile
--- wfdb-10.2.0/convert/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/convert/Makefile	Fri Nov 16 16:18:43 2001
@@ -33,12 +33,12 @@
 # type `make listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,7 +46,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/data/16x1.hea wfdb-10.2.1/data/16x1.hea
--- wfdb-10.2.0/data/16x1.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x1.hea	Wed Dec 31 19:00:00 1969
@@ -1,4 +0,0 @@
-#  Use this record to read or write 1 signal via standard I/O.
-
-16x1 1
-- 16
diff -Naur wfdb-10.2.0/data/16x10.hea wfdb-10.2.1/data/16x10.hea
--- wfdb-10.2.0/data/16x10.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x10.hea	Wed Dec 31 19:00:00 1969
@@ -1,13 +0,0 @@
-#  Use this record to read or write 10 signals via standard I/O.
-
-16x10 10
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x11.hea wfdb-10.2.1/data/16x11.hea
--- wfdb-10.2.0/data/16x11.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x11.hea	Wed Dec 31 19:00:00 1969
@@ -1,14 +0,0 @@
-#  Use this record to read or write 11 signals via standard I/O.
-
-16x11 11
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x12.hea wfdb-10.2.1/data/16x12.hea
--- wfdb-10.2.0/data/16x12.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x12.hea	Wed Dec 31 19:00:00 1969
@@ -1,15 +0,0 @@
-#  Use this record to read or write 12 signals via standard I/O.
-
-16x12 12
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x13.hea wfdb-10.2.1/data/16x13.hea
--- wfdb-10.2.0/data/16x13.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x13.hea	Wed Dec 31 19:00:00 1969
@@ -1,16 +0,0 @@
-#  Use this record to read or write 13 signals via standard I/O.
-
-16x13 13
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x14.hea wfdb-10.2.1/data/16x14.hea
--- wfdb-10.2.0/data/16x14.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x14.hea	Wed Dec 31 19:00:00 1969
@@ -1,17 +0,0 @@
-#  Use this record to read or write 14 signals via standard I/O.
-
-16x14 14
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x15.hea wfdb-10.2.1/data/16x15.hea
--- wfdb-10.2.0/data/16x15.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x15.hea	Wed Dec 31 19:00:00 1969
@@ -1,18 +0,0 @@
-#  Use this record to read or write 15 signals via standard I/O.
-
-16x15 15
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x16.hea wfdb-10.2.1/data/16x16.hea
--- wfdb-10.2.0/data/16x16.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x16.hea	Wed Dec 31 19:00:00 1969
@@ -1,19 +0,0 @@
-#  Use this record to read or write 16 signals via standard I/O.
-
-16x16 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x2.hea wfdb-10.2.1/data/16x2.hea
--- wfdb-10.2.0/data/16x2.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x2.hea	Wed Dec 31 19:00:00 1969
@@ -1,5 +0,0 @@
-#  Use this record to read or write 2 signals via standard I/O.
-
-16x2 2
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x3.hea wfdb-10.2.1/data/16x3.hea
--- wfdb-10.2.0/data/16x3.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x3.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-#  Use this record to read or write 3 signals via standard I/O.
-
-16x3 3
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x4.hea wfdb-10.2.1/data/16x4.hea
--- wfdb-10.2.0/data/16x4.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x4.hea	Wed Dec 31 19:00:00 1969
@@ -1,7 +0,0 @@
-#  Use this record to read or write 4 signals via standard I/O.
-
-16x4 4
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x5.hea wfdb-10.2.1/data/16x5.hea
--- wfdb-10.2.0/data/16x5.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x5.hea	Wed Dec 31 19:00:00 1969
@@ -1,8 +0,0 @@
-#  Use this record to read or write 5 signals via standard I/O.
-
-16x5 5
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x6.hea wfdb-10.2.1/data/16x6.hea
--- wfdb-10.2.0/data/16x6.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x6.hea	Wed Dec 31 19:00:00 1969
@@ -1,9 +0,0 @@
-#  Use this record to read or write 6 signals via standard I/O.
-
-16x6 6
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x7.hea wfdb-10.2.1/data/16x7.hea
--- wfdb-10.2.0/data/16x7.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x7.hea	Wed Dec 31 19:00:00 1969
@@ -1,10 +0,0 @@
-#  Use this record to read or write 7 signals via standard I/O.
-
-16x7 7
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x8.hea wfdb-10.2.1/data/16x8.hea
--- wfdb-10.2.0/data/16x8.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x8.hea	Wed Dec 31 19:00:00 1969
@@ -1,11 +0,0 @@
-#  Use this record to read or write 8 signals via standard I/O.
-
-16x8 8
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/16x9.hea wfdb-10.2.1/data/16x9.hea
--- wfdb-10.2.0/data/16x9.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/16x9.hea	Wed Dec 31 19:00:00 1969
@@ -1,12 +0,0 @@
-#  Use this record to read or write 9 signals via standard I/O.
-
-16x9 9
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
-- 16
diff -Naur wfdb-10.2.0/data/8x1.hea wfdb-10.2.1/data/8x1.hea
--- wfdb-10.2.0/data/8x1.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x1.hea	Wed Dec 31 19:00:00 1969
@@ -1,4 +0,0 @@
-#  Use this record to read or write 1 signal via standard I/O.
-
-8x1 1
-- 8
diff -Naur wfdb-10.2.0/data/8x10.hea wfdb-10.2.1/data/8x10.hea
--- wfdb-10.2.0/data/8x10.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x10.hea	Wed Dec 31 19:00:00 1969
@@ -1,13 +0,0 @@
-#  Use this record to read or write 10 signals via standard I/O.
-
-8x10 10
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x11.hea wfdb-10.2.1/data/8x11.hea
--- wfdb-10.2.0/data/8x11.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x11.hea	Wed Dec 31 19:00:00 1969
@@ -1,14 +0,0 @@
-#  Use this record to read or write 11 signals via standard I/O.
-
-8x11 11
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x12.hea wfdb-10.2.1/data/8x12.hea
--- wfdb-10.2.0/data/8x12.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x12.hea	Wed Dec 31 19:00:00 1969
@@ -1,15 +0,0 @@
-#  Use this record to read or write 12 signals via standard I/O.
-
-8x12 12
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x13.hea wfdb-10.2.1/data/8x13.hea
--- wfdb-10.2.0/data/8x13.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x13.hea	Wed Dec 31 19:00:00 1969
@@ -1,16 +0,0 @@
-#  Use this record to read or write 13 signals via standard I/O.
-
-8x13 13
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x14.hea wfdb-10.2.1/data/8x14.hea
--- wfdb-10.2.0/data/8x14.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x14.hea	Wed Dec 31 19:00:00 1969
@@ -1,17 +0,0 @@
-#  Use this record to read or write 14 signals via standard I/O.
-
-8x14 14
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x15.hea wfdb-10.2.1/data/8x15.hea
--- wfdb-10.2.0/data/8x15.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x15.hea	Wed Dec 31 19:00:00 1969
@@ -1,18 +0,0 @@
-#  Use this record to read or write 15 signals via standard I/O.
-
-8x15 15
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x16.hea wfdb-10.2.1/data/8x16.hea
--- wfdb-10.2.0/data/8x16.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x16.hea	Wed Dec 31 19:00:00 1969
@@ -1,19 +0,0 @@
-#  Use this record to read or write 16 signals via standard I/O.
-
-8x16 16
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x2.hea wfdb-10.2.1/data/8x2.hea
--- wfdb-10.2.0/data/8x2.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x2.hea	Wed Dec 31 19:00:00 1969
@@ -1,5 +0,0 @@
-#  Use this record to read or write 2 signals via standard I/O.
-
-8x2 2
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x3.hea wfdb-10.2.1/data/8x3.hea
--- wfdb-10.2.0/data/8x3.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x3.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-#  Use this record to read or write 3 signals via standard I/O.
-
-8x3 3
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x4.hea wfdb-10.2.1/data/8x4.hea
--- wfdb-10.2.0/data/8x4.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x4.hea	Wed Dec 31 19:00:00 1969
@@ -1,7 +0,0 @@
-#  Use this record to read or write 4 signals via standard I/O.
-
-8x4 4
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x5.hea wfdb-10.2.1/data/8x5.hea
--- wfdb-10.2.0/data/8x5.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x5.hea	Wed Dec 31 19:00:00 1969
@@ -1,8 +0,0 @@
-#  Use this record to read or write 5 signals via standard I/O.
-
-8x5 5
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x6.hea wfdb-10.2.1/data/8x6.hea
--- wfdb-10.2.0/data/8x6.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x6.hea	Wed Dec 31 19:00:00 1969
@@ -1,9 +0,0 @@
-#  Use this record to read or write 6 signals via standard I/O.
-
-8x6 6
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x7.hea wfdb-10.2.1/data/8x7.hea
--- wfdb-10.2.0/data/8x7.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x7.hea	Wed Dec 31 19:00:00 1969
@@ -1,10 +0,0 @@
-#  Use this record to read or write 7 signals via standard I/O.
-
-8x7 7
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x8.hea wfdb-10.2.1/data/8x8.hea
--- wfdb-10.2.0/data/8x8.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x8.hea	Wed Dec 31 19:00:00 1969
@@ -1,11 +0,0 @@
-#  Use this record to read or write 8 signals via standard I/O.
-
-8x8 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/8x9.hea wfdb-10.2.1/data/8x9.hea
--- wfdb-10.2.0/data/8x9.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/8x9.hea	Wed Dec 31 19:00:00 1969
@@ -1,12 +0,0 @@
-#  Use this record to read or write 9 signals via standard I/O.
-
-8x9 9
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
-- 8
diff -Naur wfdb-10.2.0/data/Makefile wfdb-10.2.1/data/Makefile
--- wfdb-10.2.0/data/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/data/Makefile	Fri Nov 16 16:18:43 2001
@@ -33,12 +33,12 @@
 # listing'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -46,7 +46,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/data/ahatape.hea wfdb-10.2.1/data/ahatape.hea
--- wfdb-10.2.0/data/ahatape.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/ahatape.hea	Wed Dec 31 19:00:00 1969
@@ -1,7 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track AHA DB
-# distribution tape with 4096-byte blocks.  The tape must be positioned to
-# the beginning of the ECG data file before using this record.
-
-ahatape 2 250
-/dev/nrmt0 16 0 12 0 0 0 4096
-/dev/nrmt0 16 0 12 0 0 0 4096
diff -Naur wfdb-10.2.0/data/b.hea wfdb-10.2.1/data/b.hea
--- wfdb-10.2.0/data/b.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/b.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 6144-byte blocks containing 2 signals in 8-bit difference format.
-
-b 2 250
-/dev/rmt0 16 0 12 0 0 0 6144
-/dev/rmt0 16 0 12 0 0 0 6144
diff -Naur wfdb-10.2.0/data/mittape.hea wfdb-10.2.1/data/mittape.hea
--- wfdb-10.2.0/data/mittape.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/mittape.hea	Wed Dec 31 19:00:00 1969
@@ -1,7 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track MIT-BIH DB
-# distribution tape with 4096-byte blocks.  The tape must be positioned to
-# the beginning of the ECG data file before using this record.
-
-mittape 2 360
-/dev/nrmt0 16 0 11 1024 0 0 4096
-/dev/nrmt0 16 0 11 1024 0 0 4096
diff -Naur wfdb-10.2.0/data/pipe/16x1.hea wfdb-10.2.1/data/pipe/16x1.hea
--- wfdb-10.2.0/data/pipe/16x1.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x1.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,4 @@
+#  Use this record to read or write 1 signal via standard I/O.
+
+16x1 1
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x10.hea wfdb-10.2.1/data/pipe/16x10.hea
--- wfdb-10.2.0/data/pipe/16x10.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x10.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,13 @@
+#  Use this record to read or write 10 signals via standard I/O.
+
+16x10 10
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x11.hea wfdb-10.2.1/data/pipe/16x11.hea
--- wfdb-10.2.0/data/pipe/16x11.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x11.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,14 @@
+#  Use this record to read or write 11 signals via standard I/O.
+
+16x11 11
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x12.hea wfdb-10.2.1/data/pipe/16x12.hea
--- wfdb-10.2.0/data/pipe/16x12.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x12.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,15 @@
+#  Use this record to read or write 12 signals via standard I/O.
+
+16x12 12
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x13.hea wfdb-10.2.1/data/pipe/16x13.hea
--- wfdb-10.2.0/data/pipe/16x13.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x13.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,16 @@
+#  Use this record to read or write 13 signals via standard I/O.
+
+16x13 13
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x14.hea wfdb-10.2.1/data/pipe/16x14.hea
--- wfdb-10.2.0/data/pipe/16x14.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x14.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,17 @@
+#  Use this record to read or write 14 signals via standard I/O.
+
+16x14 14
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x15.hea wfdb-10.2.1/data/pipe/16x15.hea
--- wfdb-10.2.0/data/pipe/16x15.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x15.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,18 @@
+#  Use this record to read or write 15 signals via standard I/O.
+
+16x15 15
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x16.hea wfdb-10.2.1/data/pipe/16x16.hea
--- wfdb-10.2.0/data/pipe/16x16.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x16.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,19 @@
+#  Use this record to read or write 16 signals via standard I/O.
+
+16x16 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x2.hea wfdb-10.2.1/data/pipe/16x2.hea
--- wfdb-10.2.0/data/pipe/16x2.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x2.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,5 @@
+#  Use this record to read or write 2 signals via standard I/O.
+
+16x2 2
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x3.hea wfdb-10.2.1/data/pipe/16x3.hea
--- wfdb-10.2.0/data/pipe/16x3.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x3.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,6 @@
+#  Use this record to read or write 3 signals via standard I/O.
+
+16x3 3
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x4.hea wfdb-10.2.1/data/pipe/16x4.hea
--- wfdb-10.2.0/data/pipe/16x4.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x4.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,7 @@
+#  Use this record to read or write 4 signals via standard I/O.
+
+16x4 4
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x5.hea wfdb-10.2.1/data/pipe/16x5.hea
--- wfdb-10.2.0/data/pipe/16x5.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x5.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,8 @@
+#  Use this record to read or write 5 signals via standard I/O.
+
+16x5 5
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x6.hea wfdb-10.2.1/data/pipe/16x6.hea
--- wfdb-10.2.0/data/pipe/16x6.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x6.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,9 @@
+#  Use this record to read or write 6 signals via standard I/O.
+
+16x6 6
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x7.hea wfdb-10.2.1/data/pipe/16x7.hea
--- wfdb-10.2.0/data/pipe/16x7.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x7.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,10 @@
+#  Use this record to read or write 7 signals via standard I/O.
+
+16x7 7
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x8.hea wfdb-10.2.1/data/pipe/16x8.hea
--- wfdb-10.2.0/data/pipe/16x8.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x8.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,11 @@
+#  Use this record to read or write 8 signals via standard I/O.
+
+16x8 8
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/16x9.hea wfdb-10.2.1/data/pipe/16x9.hea
--- wfdb-10.2.0/data/pipe/16x9.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/16x9.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,12 @@
+#  Use this record to read or write 9 signals via standard I/O.
+
+16x9 9
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
+- 16
diff -Naur wfdb-10.2.0/data/pipe/8x1.hea wfdb-10.2.1/data/pipe/8x1.hea
--- wfdb-10.2.0/data/pipe/8x1.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x1.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,4 @@
+#  Use this record to read or write 1 signal via standard I/O.
+
+8x1 1
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x10.hea wfdb-10.2.1/data/pipe/8x10.hea
--- wfdb-10.2.0/data/pipe/8x10.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x10.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,13 @@
+#  Use this record to read or write 10 signals via standard I/O.
+
+8x10 10
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x11.hea wfdb-10.2.1/data/pipe/8x11.hea
--- wfdb-10.2.0/data/pipe/8x11.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x11.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,14 @@
+#  Use this record to read or write 11 signals via standard I/O.
+
+8x11 11
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x12.hea wfdb-10.2.1/data/pipe/8x12.hea
--- wfdb-10.2.0/data/pipe/8x12.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x12.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,15 @@
+#  Use this record to read or write 12 signals via standard I/O.
+
+8x12 12
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x13.hea wfdb-10.2.1/data/pipe/8x13.hea
--- wfdb-10.2.0/data/pipe/8x13.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x13.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,16 @@
+#  Use this record to read or write 13 signals via standard I/O.
+
+8x13 13
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x14.hea wfdb-10.2.1/data/pipe/8x14.hea
--- wfdb-10.2.0/data/pipe/8x14.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x14.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,17 @@
+#  Use this record to read or write 14 signals via standard I/O.
+
+8x14 14
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x15.hea wfdb-10.2.1/data/pipe/8x15.hea
--- wfdb-10.2.0/data/pipe/8x15.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x15.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,18 @@
+#  Use this record to read or write 15 signals via standard I/O.
+
+8x15 15
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x16.hea wfdb-10.2.1/data/pipe/8x16.hea
--- wfdb-10.2.0/data/pipe/8x16.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x16.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,19 @@
+#  Use this record to read or write 16 signals via standard I/O.
+
+8x16 16
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x2.hea wfdb-10.2.1/data/pipe/8x2.hea
--- wfdb-10.2.0/data/pipe/8x2.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x2.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,5 @@
+#  Use this record to read or write 2 signals via standard I/O.
+
+8x2 2
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x3.hea wfdb-10.2.1/data/pipe/8x3.hea
--- wfdb-10.2.0/data/pipe/8x3.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x3.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,6 @@
+#  Use this record to read or write 3 signals via standard I/O.
+
+8x3 3
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x4.hea wfdb-10.2.1/data/pipe/8x4.hea
--- wfdb-10.2.0/data/pipe/8x4.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x4.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,7 @@
+#  Use this record to read or write 4 signals via standard I/O.
+
+8x4 4
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x5.hea wfdb-10.2.1/data/pipe/8x5.hea
--- wfdb-10.2.0/data/pipe/8x5.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x5.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,8 @@
+#  Use this record to read or write 5 signals via standard I/O.
+
+8x5 5
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x6.hea wfdb-10.2.1/data/pipe/8x6.hea
--- wfdb-10.2.0/data/pipe/8x6.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x6.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,9 @@
+#  Use this record to read or write 6 signals via standard I/O.
+
+8x6 6
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x7.hea wfdb-10.2.1/data/pipe/8x7.hea
--- wfdb-10.2.0/data/pipe/8x7.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x7.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,10 @@
+#  Use this record to read or write 7 signals via standard I/O.
+
+8x7 7
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x8.hea wfdb-10.2.1/data/pipe/8x8.hea
--- wfdb-10.2.0/data/pipe/8x8.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x8.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,11 @@
+#  Use this record to read or write 8 signals via standard I/O.
+
+8x8 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/pipe/8x9.hea wfdb-10.2.1/data/pipe/8x9.hea
--- wfdb-10.2.0/data/pipe/8x9.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/pipe/8x9.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,12 @@
+#  Use this record to read or write 9 signals via standard I/O.
+
+8x9 9
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
+- 8
diff -Naur wfdb-10.2.0/data/t1024.hea wfdb-10.2.1/data/t1024.hea
--- wfdb-10.2.0/data/t1024.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/t1024.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 1024-byte blocks.
-
-t1024 2 250
-/dev/rmt0 16 0 12 0 0 0 1024
-/dev/rmt0 16 0 12 0 0 0 1024
diff -Naur wfdb-10.2.0/data/t10240.hea wfdb-10.2.1/data/t10240.hea
--- wfdb-10.2.0/data/t10240.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/t10240.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 10240-byte blocks.
-
-t10240 2 250
-/dev/rmt0 16 0 12 0 0 0 10240
-/dev/rmt0 16 0 12 0 0 0 10240
diff -Naur wfdb-10.2.0/data/t4096.hea wfdb-10.2.1/data/t4096.hea
--- wfdb-10.2.0/data/t4096.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/t4096.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 4096-byte blocks.
-
-t4096 2 250
-/dev/rmt0 16 0 12 0 0 0 4096
-/dev/rmt0 16 0 12 0 0 0 4096
diff -Naur wfdb-10.2.0/data/t512.hea wfdb-10.2.1/data/t512.hea
--- wfdb-10.2.0/data/t512.hea	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/data/t512.hea	Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-# Use this record on a UNIX system to read directly from a 9-track tape with
-# 512-byte blocks.
-
-t512 2 250
-/dev/rmt0 16 0 12 0 0 0 512
-/dev/rmt0 16 0 12 0 0 0 512
diff -Naur wfdb-10.2.0/data/tape/102040.hea wfdb-10.2.1/data/tape/102040.hea
--- wfdb-10.2.0/data/tape/102040.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/102040.hea	Wed Nov  7 11:31:14 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 10240-byte blocks.
+
+10240 2 250
+/dev/rmt0 16 0 12 0 0 0 10240
+/dev/rmt0 16 0 12 0 0 0 10240
diff -Naur wfdb-10.2.0/data/tape/1024.hea wfdb-10.2.1/data/tape/1024.hea
--- wfdb-10.2.0/data/tape/1024.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/1024.hea	Wed Nov  7 11:31:10 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 1024-byte blocks.
+
+1024 2 250
+/dev/rmt0 16 0 12 0 0 0 1024
+/dev/rmt0 16 0 12 0 0 0 1024
diff -Naur wfdb-10.2.0/data/tape/4096.hea wfdb-10.2.1/data/tape/4096.hea
--- wfdb-10.2.0/data/tape/4096.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/4096.hea	Wed Nov  7 11:31:00 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 4096-byte blocks.
+
+4096 2 250
+/dev/rmt0 16 0 12 0 0 0 4096
+/dev/rmt0 16 0 12 0 0 0 4096
diff -Naur wfdb-10.2.0/data/tape/512.hea wfdb-10.2.1/data/tape/512.hea
--- wfdb-10.2.0/data/tape/512.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/512.hea	Wed Nov  7 11:30:54 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 512-byte blocks.
+
+512 2 250
+/dev/rmt0 16 0 12 0 0 0 512
+/dev/rmt0 16 0 12 0 0 0 512
diff -Naur wfdb-10.2.0/data/tape/6144d.hea wfdb-10.2.1/data/tape/6144d.hea
--- wfdb-10.2.0/data/tape/6144d.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/6144d.hea	Wed Nov  7 11:33:29 2001
@@ -0,0 +1,6 @@
+# Use this record on a UNIX system to read directly from a 9-track tape with
+# 6144-byte blocks containing 2 signals in 8-bit difference format.
+
+6144d 2 250
+/dev/rmt0 8 0 12 0 0 0 6144
+/dev/rmt0 8 0 12 0 0 0 6144
diff -Naur wfdb-10.2.0/data/tape/ahatape.hea wfdb-10.2.1/data/tape/ahatape.hea
--- wfdb-10.2.0/data/tape/ahatape.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/ahatape.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,7 @@
+# Use this record on a UNIX system to read directly from a 9-track AHA DB
+# distribution tape with 4096-byte blocks.  The tape must be positioned to
+# the beginning of the ECG data file before using this record.
+
+ahatape 2 250
+/dev/nrmt0 16 0 12 0 0 0 4096
+/dev/nrmt0 16 0 12 0 0 0 4096
diff -Naur wfdb-10.2.0/data/tape/mittape.hea wfdb-10.2.1/data/tape/mittape.hea
--- wfdb-10.2.0/data/tape/mittape.hea	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/data/tape/mittape.hea	Thu Jun 24 11:38:28 1999
@@ -0,0 +1,7 @@
+# Use this record on a UNIX system to read directly from a 9-track MIT-BIH DB
+# distribution tape with 4096-byte blocks.  The tape must be positioned to
+# the beginning of the ECG data file before using this record.
+
+mittape 2 360
+/dev/nrmt0 16 0 11 1024 0 0 4096
+/dev/nrmt0 16 0 11 1024 0 0 4096
diff -Naur wfdb-10.2.0/doc/Makefile wfdb-10.2.1/doc/Makefile
--- wfdb-10.2.0/doc/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/doc/Makefile	Fri Nov 16 16:18:43 2001
@@ -95,18 +95,14 @@
 #    the Applications Guide, type `make appguide' (but read `tmac.dif' first,
 #    unless you are using groff). To print the Programmer's Guide, type
 #    `make guide'.
-#  - Finally, if you can't or don't wish to print your own copies, nicely
-#    printed and bound copies are available from MIT (see `../../../ORDER.4M').
-# Sources for ghostscript, groff, gtbl, TeX, LaTeX, texi2dvi, and dvips are
-# all freely available (see `../SOURCES').
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -114,7 +110,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
@@ -274,7 +270,7 @@
 # package, specify the command needed to format them from the texinfo source
 # files.  If you have the GNU `makeinfo' utility (the preferred formatter),
 # uncomment the next line.
-MAKEINFO = makeinfo --force
+MAKEINFO = makeinfo --force --no-warn
 # Otherwise, you can use GNU emacs to do the job by uncommenting the next line.
 # MAKEINFO = ./makeinfo.sh
 
diff -Naur wfdb-10.2.0/doc/Makefile.top wfdb-10.2.1/doc/Makefile.top
--- wfdb-10.2.0/doc/Makefile.top	Wed May 31 05:48:43 2000
+++ wfdb-10.2.1/doc/Makefile.top	Fri Nov 16 14:22:18 2001
@@ -95,8 +95,4 @@
 #    the Applications Guide, type `make appguide' (but read `tmac.dif' first,
 #    unless you are using groff). To print the Programmer's Guide, type
 #    `make guide'.
-#  - Finally, if you can't or don't wish to print your own copies, nicely
-#    printed and bound copies are available from MIT (see `../../../ORDER.4M').
-# Sources for ghostscript, groff, gtbl, TeX, LaTeX, texi2dvi, and dvips are
-# all freely available (see `../SOURCES').
 # _____________________________________________________________________________
diff -Naur wfdb-10.2.0/doc/Makefile.tpl wfdb-10.2.1/doc/Makefile.tpl
--- wfdb-10.2.0/doc/Makefile.tpl	Mon Oct 15 14:39:48 2001
+++ wfdb-10.2.1/doc/Makefile.tpl	Fri Oct 26 13:08:32 2001
@@ -44,7 +44,7 @@
 # package, specify the command needed to format them from the texinfo source
 # files.  If you have the GNU `makeinfo' utility (the preferred formatter),
 # uncomment the next line.
-MAKEINFO = makeinfo --force
+MAKEINFO = makeinfo --force --no-warn
 # Otherwise, you can use GNU emacs to do the job by uncommenting the next line.
 # MAKEINFO = ./makeinfo.sh
 
diff -Naur wfdb-10.2.0/doc/a2m.1 wfdb-10.2.1/doc/a2m.1
--- wfdb-10.2.0/doc/a2m.1	Sun Feb  6 23:46:29 2000
+++ wfdb-10.2.1/doc/a2m.1	Fri Oct 26 14:06:04 2001
@@ -1,4 +1,4 @@
-.TH A2M 1 "6 February 2000" "WFDB software 10.0" "WFDB applications"
+.TH A2M 1 "26 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 a2m, ad2m, m2a, md2a \- utilities for converting between MIT and AHA DB formats
 .SH SYNOPSIS
@@ -26,7 +26,8 @@
 type 0 input files, 5 minutes for type 1 or 3, or 2 hours and 30 minutes for
 type 2).
 .TP
-\fB-t\fI type\fR Convert an input file of the specified \fItype\fR (0:
+\fB-t\fI type\fR
+Convert an input file of the specified \fItype\fR (0:
 a file produced by a DB application using \fIputann\fR and
 `WFDB_AHA_WRITE' mode; 1: an AHA DB `short format' tape file; 2: an
 AHA DB `long format' tape file; 3: an AHA DB compressed (\fI*.ano\fR)
@@ -77,13 +78,12 @@
 .br
 	ad2m -i 1201.cmp -r 1201 -c
 .br
-	a2m -i 1201.ano -r 1201 -a atruth -t 3
+	a2m -i 1201.ano -r 1201 -a atr -t 3
 .br
-These commands produce files \fI1201.dat\fR (the signal file),
-\fI1201.header\fR (the header file, named \fI1201.hea\fR under MS-DOS), and
-\fI1201.atruth\fR (the reference annotation file, named \fI1201.atr\fR under
-MS-DOS), all in the current directory.  Run \fIad2m\fR first, so that the
-new header file is available for the use of \fIa2m\fR.
+These commands produce files \fI1201.dat\fR (the signal file), \fI1201.hea\fR
+(the header file), and \fI1201.atr\fR (the reference annotation file), all in
+the current directory.  Run \fIad2m\fR first, so that the new header file is
+available for the use of \fIa2m\fR.
 .SS "AHA DB short format tape"
 .PP
 To obtain the same files given a `short format' 9-track distribution tape,
@@ -92,7 +92,7 @@
 .br
 	ad2m -i 1201.tap -r 1201
 .br
-	a2m -i 1201.ann -r 1201 -a atruth -t 1
+	a2m -i 1201.ann -r 1201 -a atr -t 1
 .br
 The names for the files copied from the tape are arbitrary, but do not
 use names of files to be generated by \fIad2m\fR or \fIa2m\fR (see the
@@ -111,7 +111,7 @@
 .br
 	ad2m -i 1001.tap -r 1001 -t 3:0:0
 .br
-	a2m -i 1001.ann -r 1001 -a atruth -t 2
+	a2m -i 1001.ann -r 1001 -a atr -t 2
 .br
 The \fB-t 3:0:0\fR option is necessary to prevent \fIad2m\fR from truncating
 the signal file after the first 35 minutes.
@@ -124,7 +124,7 @@
 .br
 	ad2m -i 1001.tap -r 1201 -f 2:25:0
 .br
-	a2m -i 1001.ann -r 1201 -a atruth -t 1
+	a2m -i 1001.ann -r 1201 -a atr -t 1
 .br
 In this case, the \fB-f\fR option instructs \fIad2m\fR to skip the first
 two hours and 25 minutes of the `long-format' AHA signal file, and to reformat
@@ -137,11 +137,11 @@
 To keep both versions (1001 and 1201) on-line, make the `long format' version
 first (see above), then type:
 .br
-	a2m -i 1001.ann -r 1201 -a atruth -t 1
+	a2m -i 1001.ann -r 1201 -a atr -t 1
 .br
 to make a `short format' reference annotation file.  Continue (under UNIX) by:
 .br
-	cp 1001.header 1201.header
+	cp 1001.hea 1201.hea
 .br
 or (under MS-DOS) by:
 .br
diff -Naur wfdb-10.2.0/doc/ann2rr.1 wfdb-10.2.1/doc/ann2rr.1
--- wfdb-10.2.0/doc/ann2rr.1	Mon Feb 19 12:41:45 2001
+++ wfdb-10.2.1/doc/ann2rr.1	Tue Oct 16 21:14:14 2001
@@ -79,7 +79,7 @@
 \fB-F\fI frequency\fR
 Assume the specified sampling \fIfrequency\fR.  This option has no effect unless
 it is necessary for \fBrr2ann\fR to create a header file;  in this case, a sampling
-frequency of 250 Hz is assumed if the \fB-F\fB option is omitted.
+frequency of 250 Hz is assumed if the \fB-F\fR option is omitted.
 .TP
 \fB-h\fR
 Print a usage summary.
diff -Naur wfdb-10.2.0/doc/appguide.int wfdb-10.2.1/doc/appguide.int
--- wfdb-10.2.0/doc/appguide.int	Mon Oct 15 17:51:15 2001
+++ wfdb-10.2.1/doc/appguide.int	Thu Nov 15 22:38:02 2001
@@ -1,5 +1,5 @@
 \" file: appguide.int		G. Moody	July 1989
-\"				Last revised:  15 October 2001
+\"				Last revised:  15 November 2001
 \" Table of contents and introduction to the WFDB Applications Guide.
 \"
 \" To print this document using GNU groff, use:
@@ -35,63 +35,65 @@
 bxb	ANSI/AAMI-standard beat-by-beat annotation comparator	6
 calsig	calibrate signals of a DB record	8
 coherence	estimate coherence and cross-spectrum of two time series	10
-ecgeval	generate and run ECG analyzer evaluation script	11
-epic	ANSI/AAMI-standard episode-by-episode annotation comparator	12
-fft	fast Fourier transform	14
-fir	general-purpose FIR filter for WFDB records	16
-hrfft, hrlomb, hrmem, hrplot	calculate and plot heart rate power spectra	18
-ihr	calculate instantaneous heart rate	20
-log10	calculate common logarithms of two-column data	21
-lomb	estimate power spectrum using the Lomb periodogram method	22
-memse	estimate power spectrum using maximum entropy (all poles) method	23
-mfilt	general-purpose median filter for WFDB records	25
-mrgann	merge annotation files	26
-mxm	ANSI/AAMI-standard measurement-by-measurement comparator	28
-nst	noise stress test for ECG analysis programs	30
-plot2d, plot3d	make 2-D or 3-D plots from text files of data, using \fIgnuplot\fR	33
-plotstm	produce scatter plot of ST measurement errors on a PostScript device	35
-pschart	produce annotated `chart recordings' on a PostScript device	36
-psfd	produce annotated `full-disclosure' plots on a PostScript device	40
-rdann	read a WFDB annotation file	44
-rdsamp	read WFDB signal files	46
-rxr	ANSI/AAMI-standard run-by-run annotation comparator	47
-sampfreq	show sampling frequency for a record	49
-sample	digitize and replay analog signals (MS-DOS only)	50
-setwfdb, cshsetwfdb	set WFDB environment variables	54
-sigamp	measure signal amplitudes of a WFDB record	56
-skewedit	edit skew fields of header file(s)	57
-snip	copy an excerpt of a WFDB record	58
-sortann	rearrange annotations in canonical order	59
-sqrs	single-channel QRS detector	61
-sumann	summarize the contents of a WFDB annotation file	63
-sumstats	derive aggregate statistics from bxb, rxr, etc., line-format output	64
-tach	heart rate tachometer	65
-view, vsetup	WFDB browser for MS-DOS	67
-wave	waveform analyzer, viewer, and editor for the X Window System	70
-wfdbcat	copy WFDB records to standard output	80
-wfdbcollate	collate WFDB records into a multi-segment record	81
-wfdbdesc	read signal specifications	83
-wfdbwhich	find a WFDB file and print its pathname	84
-wrann	write a WFDB annotation file	85
-wrsamp	write WFDB signal files	86
-wview	WFDB browser for MS Windows	88
-xform	sampling frequency, amplitude, and format conversion for WFDB records	92
+dfa	detrended fluctuation analysis	11
+ecgeval	generate and run ECG analyzer evaluation script	12
+epic	ANSI/AAMI-standard episode-by-episode annotation comparator	13
+fft	fast Fourier transform	15
+fir	general-purpose FIR filter for WFDB records	17
+hrfft, hrlomb, hrmem, hrplot	calculate and plot heart rate power spectra	19
+ihr	calculate instantaneous heart rate	21
+log10	calculate common logarithms of two-column data	22
+lomb	estimate power spectrum using the Lomb periodogram method	23
+memse	estimate power spectrum using maximum entropy (all poles) method	24
+mfilt	general-purpose median filter for WFDB records	26
+mrgann	merge annotation files	27
+mxm	ANSI/AAMI-standard measurement-by-measurement comparator	29
+nst	noise stress test for ECG analysis programs	31
+plot2d, plot3d	make 2-D or 3-D plots from text files of data, using \fIgnuplot\fR	34
+plotstm	produce scatter plot of ST measurement errors on a PostScript device	36
+plt	make 2-D plots	37
+pschart	produce annotated `chart recordings' on a PostScript device	42
+psfd	produce annotated `full-disclosure' plots on a PostScript device	46
+rdann	read a WFDB annotation file	50
+rdsamp	read WFDB signal files	52
+rxr	ANSI/AAMI-standard run-by-run annotation comparator	53
+sampfreq	show sampling frequency for a record	55
+sample	digitize and replay analog signals (MS-DOS only)	56
+setwfdb, cshsetwfdb	set WFDB environment variables	60
+sigamp	measure signal amplitudes of a WFDB record	62
+skewedit	edit skew fields of header file(s)	63
+snip	copy an excerpt of a WFDB record	64
+sortann	rearrange annotations in canonical order	65
+sqrs, sqrs125	single-channel QRS detector	67
+sumann	summarize the contents of a WFDB annotation file	69
+sumstats	derive aggregate statistics from bxb, rxr, etc., line-format output	70
+tach	heart rate tachometer	71
+view, vsetup	WFDB browser for MS-DOS	73
+wave	waveform analyzer, viewer, and editor for the X Window System	76
+wfdbcat	copy WFDB records to standard output	86
+wfdbcollate	collate WFDB records into a multi-segment record	87
+wfdbdesc	read signal specifications	89
+wfdbwhich	find a WFDB file and print its pathname	90
+wrann	write a WFDB annotation file	91
+wrsamp	write WFDB signal files	92
+wview	WFDB browser for MS Windows	94
+xform	sampling frequency, amplitude, and format conversion for WFDB records	98
 
 
 \fBSection 3: WFDB library\fP
-wfdb	Waveform Database library	94
+wfdb	Waveform Database library	100
 
 
 \fBSection 5: WFDB file formats\fP
-annot	WFDB annotation file formats	97
-header	WFDB header file format	98
-signal	WFDB signal file formats	105
-wfdbcal	WFDB calibration file format	107
+annot	WFDB annotation file formats	103
+header	WFDB header file format	104
+signal	WFDB signal file formats	111
+wfdbcal	WFDB calibration file format	113
 
 
 \fBAppendices\fP
-	\fIInstalling the WFDB Software Package\fP	109
-	\fIEvaluating ECG Analyzers\fP	113
+	\fIInstalling the WFDB Software Package\fP	115
+	\fIEvaluating ECG Analyzers\fP	118
 .TE
 
 .LP
@@ -120,8 +122,8 @@
 If you have not used any of these programs before, you should be sure that
 your environment is set up properly so that WFDB applications can find their
 input files.  See setwfdb(1) in this guide for information about doing this;
-a more detailed discussion may be found in the first chapter of the WFDB
-Programmer's Guide, in the section about the database path.
+a more detailed discussion may be found in the first chapter of the \fIWFDB
+Programmer's Guide\fP, in the section about the database path.
 .PP
 Certain types of command arguments are used by many of the applications
 described in this guide.  These include:
@@ -131,19 +133,16 @@
 4-digit numbers, and European ST-T Database record names begin with lowercase
 `e', followed by a 4-digit number.  Record names may contain letters, digits,
 and underscores.  Case is significant in record names that contain letters,
-even in environments such as MS-DOS for which case translation is normally
+even in environments such as MS-Windows for which case translation is normally
 performed by the operating system on file names;  thus `e0104' is the name
 of a record found in the European ST-T Database, whereas `E0104' is not.
-Under MS-DOS, furthermore, only the first eight characters of a record name
-are significant. A record name is \fInot\fP a file name.  See the \fIWFDB
-Programmer's Guide\fP for further details on record names.
+A record name is \fInot\fP a file name.  See the \fIWFDB Programmer's Guide\fP
+for further details on record names.
 .IP \fIannotator\fP
 Where this appears, substitute an annotator name.  The annotator name
-`atruth' (shortened to `atr' under MS-DOS and on CD-ROMs) is used to
-name the set of \fIreference annotations\fP supplied by the database
-developers.  Annotator names may contain letters, digits, and
-underscores, as for record names.  Note that, under MS-DOS, only the
-first three characters of an annotator name are significant.
+`atr' is used to name the set of \fIreference annotations\fP supplied by
+the database developers.  Annotator names may contain letters, digits, and
+underscores, as for record names.
 .IP \fItime\fP
 Where this appears, substitute a string in \fIstandard time format\fP.
 \fITime\fP arguments generally specify elapsed times from the beginning
@@ -176,11 +175,7 @@
 order to make these pages accessible to \fIman\fR.
 .PP
 An HTML version of this guide is also available;  point your Web browser to
-\fBhttp://www.physionet.org/physiotools/dbag/\fR to read it.  The HTML version
-of this guide is also supplied on our CD-ROMs that include the WFDB Software
-Package;  begin by pointing your browser to \fBfile:///cdrom/dbag/dbag.htm\fR
-(under UNIX, if the mount point for your CD-ROM is \fB/cdrom\fR), or to
-\fBfile:///d|/html/dbag.htm\fR (under MS-DOS, if your CD-ROM is the D: drive).
+\fBhttp://www.physionet.org/physiotools/dbag/\fR to read it.
 .PP
 The notations that appear at the bottom of each page indicate the date when
 that page was last revised, and (in most cases) the version of the WFDB
diff -Naur wfdb-10.2.0/doc/bxb.1 wfdb-10.2.1/doc/bxb.1
--- wfdb-10.2.0/doc/bxb.1	Thu Feb 10 00:01:17 2000
+++ wfdb-10.2.1/doc/bxb.1	Wed Nov  7 10:52:25 2001
@@ -1,4 +1,4 @@
-.TH BXB 1 "9 February 2000" "MIT DB software 10.1" "WFDB applications"
+.TH BXB 1 "7 November 2001" "MIT DB software 10.2,1" "WFDB applications"
 .SH NAME
 bxb \- ANSI/AAMI-standard beat-by-beat annotation comparator
 .SH SYNOPSIS
@@ -6,16 +6,16 @@
 .SH DESCRIPTION
 .PP
 Using options \fB-C\fR, \fB-L\fR, or \fB-S\fR, \fIbxb\fR implements the
-beat-by-beat comparison algorithms described in AAMI/ANSI EC38:1998, the
-\fIAmerican National Standard for Ambulatory ECGs\fR, and in AAMI EC57:1998,
-the \fIAmerican National Standard for Testing and Reporting Performance Results
-of Cardiac Rhythm and ST Segment Measurement Algorithms\fR.  \fIbxb\fR is the
-reference implementation of these algorithms, and must be used to obtain the
-beat-by-beat performance statistics cited in EC38 and EC57 in order to be in
-compliance with these standards (see EC38, section 5.2.14, and EC57, section
-4.2).  The \fB-C\fR, \fB-L\fR, and \fB-S\fR options also gather statistics on
-RR interval errors, which were considered for inclusion in EC38, but were
-eventually dropped from it.
+beat-by-beat comparison algorithms described in ANSI/AAMI EC38:1998, the
+\fIAmerican National Standard for Ambulatory ECGs\fR, and in ANSI/AAMI
+EC57:1998, the \fIAmerican National Standard for Testing and Reporting
+Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms\fR.
+\fIbxb\fR is the reference implementation of these algorithms, and must be used
+to obtain the beat-by-beat performance statistics cited in EC38 and EC57 in
+order to be in compliance with these standards (see EC38, section 5.2.14, and
+EC57, section 4.2).  The \fB-C\fR, \fB-L\fR, and \fB-S\fR options also gather
+statistics on RR interval errors, which were considered for inclusion in EC38,
+but were eventually dropped from it.
 .PP
 Input to this program consists of two annotation files associated with the same
 \fIrecord\fR.  One of these is designated the \fIreference\fR annotation file,
@@ -155,8 +155,8 @@
 \fIAmerican National Standard ANSI/AAMI EC57:1998, Testing and Reporting
 Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms\fR
 .br
-The last two publications are available from AAMI, 3330 Washington Blvd.,
-Suite 400, Arlington, VA 22201 USA (http://www.aami.org/).
+The last two publications are available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/calsig.1 wfdb-10.2.1/doc/calsig.1
--- wfdb-10.2.0/doc/calsig.1	Wed May 24 16:26:26 2000
+++ wfdb-10.2.1/doc/calsig.1	Wed Oct 31 20:30:11 2001
@@ -1,4 +1,4 @@
-.TH CALSIG 1 "24 May 2000" "MIT DB software 10.1.4" "WFDB applications"
+.TH CALSIG 1 "31 October 2001" "MIT DB software 10.2.1" "WFDB applications"
 .SH NAME
 calsig \- calibrate signals of a WFDB record
 .SH SYNOPSIS
@@ -34,10 +34,10 @@
 .PP
 \fIOptions\fR include:
 .TP
-\fB-c\fI file\fR Obtain calibration pulse specifications from the
-specified \fIfile\fR (see \fIwfdbcal\fR(5); default: obtain this
-information from the file specified by the environment variable
-\fBWFDBCAL\fR, or interactively).
+\fB-c\fI file\fR
+Obtain calibration pulse specifications from the specified \fIfile\fR (see
+\fIwfdbcal\fR(5); default: obtain this information from the file specified by
+the environment variable \fBWFDBCAL\fR, or interactively).
 .TP
 \fB-f\fI time\fR
 Begin at the specified \fItime\fR in \fIrecord\fR (default: the beginning of
diff -Naur wfdb-10.2.0/doc/cover.ag wfdb-10.2.1/doc/cover.ag
--- wfdb-10.2.0/doc/cover.ag	Sat Mar 11 21:22:05 2000
+++ wfdb-10.2.1/doc/cover.ag	Wed Nov  7 11:58:01 2001
@@ -45,7 +45,7 @@
 
 
 
-MARCH 2000
+NOVEMBER 2001
 .bp
 
 
diff -Naur wfdb-10.2.0/doc/cover.pg wfdb-10.2.1/doc/cover.pg
--- wfdb-10.2.0/doc/cover.pg	Sun Jan 30 04:13:17 2000
+++ wfdb-10.2.1/doc/cover.pg	Wed Nov  7 11:58:22 2001
@@ -45,7 +45,7 @@
 
 
 
-JANUARY 2000
+NOVEMBER 2001
 .bp
 
 
diff -Naur wfdb-10.2.0/doc/dbag.ht0 wfdb-10.2.1/doc/dbag.ht0
--- wfdb-10.2.0/doc/dbag.ht0	Tue Dec 12 13:19:50 2000
+++ wfdb-10.2.1/doc/dbag.ht0	Wed Nov  7 12:02:19 2001
@@ -11,14 +11,15 @@
 <B>Up:</B> <A HREF="../index.htm">Catalog of documents</A>
 <H1 ALIGN=CENTER>WFDB Applications Guide</H1>
 <P ALIGN=CENTER><STRONG>Tenth Edition<BR>
-11 March 2000<BR>
+(Revised for release 10.2.1)<BR>
+7 November 2001<BR>
 <BR> 
 <BR> 
 <BR> 
 George B. Moody<BR> 
 Harvard-MIT Division of Health Sciences and Technology</STRONG></P><P>
 <P>
-Copyright &#169;1980-2000 George B. Moody
+Copyright &#169;1980-2001 George B. Moody
 <P>
 The most recent versions of the programs described in this guide may be freely
 downloaded from <A HREF="http://www.physionet.org/">PhysioNet</A>.  For
@@ -32,11 +33,7 @@
 <P>
 A <A HREF="dbag.ps">PostScript version</A> of this guide is
 available.  The latest version can be downloaded from
-<A HREF="http://www.physionet.org">PhysioNet</A>.  Printed
-copies of this guide are available for $10 each
-(including shipping by surface mail) by writing to the address above.
-Please make checks payable to ``Beth Israel Hospital Biomedical
-Engineering Division.''
+<A HREF="http://www.physionet.org">PhysioNet</A>.
 <P>
 Permission is granted to make and distribute verbatim copies of this
 guide provided that the copyright notice and this permission notice are
diff -Naur wfdb-10.2.0/doc/dbag.tex wfdb-10.2.1/doc/dbag.tex
--- wfdb-10.2.0/doc/dbag.tex	Sun Jan 30 04:13:17 2000
+++ wfdb-10.2.1/doc/dbag.tex	Wed Nov  7 11:59:20 2001
@@ -17,7 +17,7 @@
 @center Harvard-MIT Division of Health Sciences and Technology
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1992 -- 2000 George B. Moody
+Copyright @copyright{} 1992 -- 2001 George B. Moody
 @sp 2
 The most recent versions of the software described in this guide may be
 freely downloaded from @code{http://www.physionet.org/}. For further
@@ -33,10 +33,7 @@
 
 An HTML version of this guide is available;  point your web browser to
 @code{http://www.physionet.org/physiotools/dbag/} to view it.
-Additional printed copies of this guide are available for US$10 each
-(including shipping by surface mail) by writing to the address above.
-Please make checks payable to ``Beth Israel Hospital Biomedical
-Engineering Division.''
+
 
 
 @sp 2
diff -Naur wfdb-10.2.0/doc/dbu.ht0 wfdb-10.2.1/doc/dbu.ht0
--- wfdb-10.2.0/doc/dbu.ht0	Sun Jan 30 04:13:17 2000
+++ wfdb-10.2.1/doc/dbu.ht0	Wed Nov  7 12:04:04 2001
@@ -11,15 +11,15 @@
 <B>Up:</B> <A HREF="../index.htm">Catalog of documents</A>
 <H1 ALIGN=CENTER>WFDB Programmer's Guide</H1>
 <P ALIGN=CENTER><STRONG>Tenth Edition<BR>
-(Revised and with corrections for WFDB library version 10.1.0)<BR>
-11 January 2000<BR>
+(Revised and with corrections for WFDB library version 10.2.1)<BR>
+7 November 2001<BR>
 <BR> 
 <BR> 
 <BR> 
 George B. Moody<BR> 
 Harvard-MIT Division of Health Sciences and Technology<BR></STRONG></P><P>
 <P>
-Copyright &#169;1980-2000 George B. Moody.
+Copyright &#169;1980-2001 George B. Moody.
 <P>
 The most recent versions of the software described in this guide are freely
 downloadable from <A HREF="http://www.physionet.org/">PhysioNet</A>.  For
diff -Naur wfdb-10.2.0/doc/dbu.tex wfdb-10.2.1/doc/dbu.tex
--- wfdb-10.2.0/doc/dbu.tex	Mon Oct 15 17:35:41 2001
+++ wfdb-10.2.1/doc/dbu.tex	Fri Nov 16 00:38:16 2001
@@ -9,7 +9,7 @@
 @sp 5
 @center @titlefont{WFDB Programmer's Guide}
 @sp 4
-@center Tenth Edition (revised and with additions for WFDB library version 10.2.0)
+@center Tenth Edition (revised and with additions for WFDB library version 10.2.1)
 @center @today
 @sp 5
 @center George B. Moody
@@ -33,10 +33,6 @@
 
 An HTML version of this guide is available;  point your web browser to
 @code{http://@-www.@-physio@-net.@-org/@-physio@-tools/@-dbpg/} to view it.
-Additional printed copies of this guide are available for US$10 each
-(including shipping by surface mail) by writing to the address above.
-Please make checks payable to ``Beth Israel Hospital Biomedical
-Engineering Division.''
 
 @sp 2
 Permission is granted to make and distribute verbatim copies of this
@@ -64,8 +60,8 @@
 @ifinfo
 This guide documents the Waveform Database interface library (the WFDB
 library).  This file contains the text of the Tenth Edition of
-the @cite{WFDB Programmer's Guide} (January, 2000), with
-additional material for release 10.2.0 of the WFDB library.
+the @cite{WFDB Programmer's Guide} (November,2001), with
+revisions for release 10.2.1 of the WFDB library.
 @end ifinfo
 
 @menu
@@ -109,23 +105,23 @@
 @cindex MIT DB
 @cindex AHA DB
 
-This guide documents the Waveform Database interface library (the @dfn{WFDB
-library}), a package of C-callable functions that provide clean and
-uniform access to digitized, annotated signals stored in a variety of
-formats.  These functions were designed for use with the MIT-BIH
-Arrhythmia Database (@dfn{MIT DB}) and the AHA Database for the
-Evaluation of Ventricular Arrhythmia Detectors (@dfn{AHA DB}).  In
-February 1990, the predefined annotation set was expanded to accommodate
-the needs of the European ST-T Database (@dfn{ESC DB}).  The WFDB library
-is sufficiently general, however, to be useful for dealing with any
-similar collection of digitized signals, which may or may not be
-annotated.  The WFDB library has evolved to support the development of
-several databases that include signals such as blood pressure,
-respiration, oxygen saturation, EEG, as well as ECGs.  Among these
-multi-parameter databases are the MIT-BIH Polysomnographic Database, the
-MGH/Marquette Foundation Waveform Database, and the not yet completed
-MIMIC Database.  Thus the WFDB library is considerably more than an
-@emph{ECG} database interface.
+This guide documents the Waveform Database interface library (the
+@dfn{WFDB library}), a package of C-callable functions that provide
+clean and uniform access to digitized, annotated signals stored in a
+variety of formats.  These functions were originally designed for use
+with databases of electrocardiograms, including the MIT-BIH Arrhythmia
+Database (@dfn{MIT DB}) and the AHA Database for the Evaluation of
+Ventricular Arrhythmia Detectors (@dfn{AHA DB}).  In February 1990, the
+predefined annotation set was expanded to accommodate the needs of the
+European ST-T Database (@dfn{ESC DB}).  The WFDB library is sufficiently
+general, however, to be useful for dealing with any similar collection
+of digitized signals, which may or may not be annotated.  The WFDB
+library has evolved to support the development of numerous other
+databases that include signals such as blood pressure, respiration,
+oxygen saturation, EEG, as well as ECGs.  Among these multi-parameter
+databases are the MIT-BIH Polysomnographic Database, the MGH/Marquette
+Foundation Waveform Database, and the MIMIC Database.  Thus the WFDB
+library is considerably more than an @emph{ECG} database interface.
 
 This guide describes how to write C-language programs that use databases
 of ECGs and other signals.  A standard set of such programs is included
@@ -161,7 +157,7 @@
 @cindex tape
 
 The databases for which the WFDB library was designed consist of a small
-number of ECG @dfn{records}, each of which is quite large (typically a
+number of @dfn{records}, each of which is quite large (typically a
 megabyte or more).  Database records usually originate as multi-channel
 analog tape recordings that have been digitized and stored as disk
 files.  For this historical reason, they are often referred to as
@@ -173,8 +169,7 @@
 therefore qualitatively different from those for which conventional
 database management software is written.
 
-@cindex MS-DOS file names
-@cindex UNIX file names
+@cindex file names
 Records are identified by @dfn{record names}, which are three-digit
 numbers for MIT DB records, four-digit numbers for AHA DB records, and
 four-digit numbers prefixed by @samp{e} for ESC DB records.  You may
@@ -186,15 +181,11 @@
 @samp{E0104} is not.  A record is comprised of several files, which
 contain signals, annotations, and specifications of signal attributes;
 each file belonging to a given record normally includes the record name
-as part of its name.  (On writable UNIX and Macintosh file systems, the
-record name is usually the last part of the file name; the opposite
-convention is used on CD-ROM and MS-DOS file systems, because of their
-restrictions on the length of file name suffixes.)  A record is an
-extensible collection of files, which need not all be located in the
-same directory, or even on the same physical device.  Thus it is
-possible, for example, to create on a magnetic disk a file of your own
-annotations for a record distributed on a CD-ROM, and to treat your file
-as part of the record.
+as the first part of its name.  A record is an extensible collection of
+files, which need not all be located in the same directory, or even on
+the same physical device.  Thus it is possible, for example, to create
+on a magnetic disk a file of your own annotations for a record
+distributed on a CD-ROM, and to treat your file as part of the record.
 
 @node     Concepts 2, Concepts 3, Concepts 1, Overview
 @unnumberedsec Signals, Samples, and Time
@@ -221,7 +212,7 @@
 analog-to-digital converter units, or @dfn{adu}.  The @dfn{gain} defined
 for each signal specifies how many adus correspond to one @dfn{physical
 unit} (usually one millivolt, the nominal amplitude of a normal QRS
-complex on a body-surface lead roughly parallel to the mean cardiac
+complex on a body-surface ECG lead roughly parallel to the mean cardiac
 electrical axis).  All signals in a given record are usually sampled at
 the same frequency, but not necessarily at the same gain
 (@pxref{Multi-Frequency Records}, for exceptions to
@@ -247,7 +238,7 @@
 @unnumberedsec Annotations
 @cindex annotation
 @cindex annotator
-@cindex @code{atruth}
+@cindex @code{atr}
 @cindex beat label
 @cindex label (beat)
 @cindex QRS label
@@ -264,18 +255,17 @@
 sample number of the sample with which the annotation is associated.
 Annotations may be associated with a single signal, if desired.  Like
 samples in signals, annotations are kept in time and signal order in
-annotation files (but @pxref{Annotation Order} for exceptions to this
-rule).  No more than one annotation in a given annotation
-file may be associated with any given sample of any given signal.  There
-may be many annotation files associated with the same record, however;
-they are distinguished by @dfn{annotator names}.  The annotator name
-@file{atruth} (under MS-DOS, @file{atr}) is reserved to identify
-@dfn{reference annotation files} supplied by the developers of the
-databases to document correct beat labels.  You may use other annotator
-names (which may contain letters, digits and underscores, as for record
-names) to identify annotation files that you create.  You may wish to
-adopt the convention that the annotator name is the name of the file's
-creator (a program or a person).
+annotation files (but @pxref{Annotation Order}, for exceptions to this
+rule).  No more than one annotation in a given annotation file may be
+associated with any given sample of any given signal.  There may be many
+annotation files associated with the same record, however; they are
+distinguished by @dfn{annotator names}.  The annotator name @file{atr}
+is reserved to identify @dfn{reference annotation files} supplied by the
+developers of the databases to document correct beat labels.  You may
+use other annotator names (which may contain letters, digits and
+underscores, as for record names) to identify annotation files that you
+create.  You may wish to adopt the convention that the annotator name is
+the name of the file's creator (a program or a person).
 
 Annotations are visible to the WFDB library user as C structures, the
 fields of which specify time, beat type, and several user-definable
@@ -342,9 +332,12 @@
 include page numbers for the second edition.  Newcomers to C should have a copy
 for ready reference while reading this guide.)  It may also be helpful to have
 a copy of a database directory, such as the @cite{MIT-BIH Arrhythmia Database
-Directory}.  The @cite{WFDB Applications Guide} will be useful as a reference
-for existing WFDB library-based applications (available from PhysioNet,
-@code{http://@-www.@-physio@-net.@-org/}).
+Directory}
+(@code{http://@-www.@-physionet.@-org/@-physio@-bank/@-data@-base/@-mitdb/@-mitdbdir/}).
+The @cite{WFDB Applications Guide}
+(@code{http://@-www.@-physionet.@-org/@-physio@-tools/@-dbag/}) will be useful
+as a reference for existing WFDB library-based applications (available from
+PhysioNet, @code{http://@-www.@-physio@-net.@-org/}).
 
 You should have access to a computer that has the WFDB library and at
 least one or two database records on-line, or access to the World Wide Web,
@@ -356,21 +349,22 @@
 favorite editor, and you should know how to compile it and how to run
 the resulting executable program.
 
-Resist all temptation to plunge into the esoteric details of file formats.
-(Those who find such details irresistible will find them in Section 5 of the
-@cite{WFDB Applications Guide}; note, however, that support for new file
-formats is added to the WFDB library from time to time, so that the information
-you find there may be incomplete.)  The WFDB library provides an efficient
-means of reading and writing files in many formats; it is not a trivial task to
-duplicate it, and time spent doing so is time that could be spent doing
-something useful, enjoyable, or possibly both.  If you really think you need to
-understand the file formats in order to translate them into whatever the
-ECGWhizz Model 666 needs, consider instead writing a format translator using
-the WFDB library to read the files; then you will at least have a program that
-requires only recompilation with a new version of the WFDB library when file
-formats change.  @emph{In extremis}, use @file{rdann} and @file{rdsamp} ---
-MS-DOS executables of which are available from PhysioNet and included on all
-CD-ROM databases of ECGs --- to translate files into text format.
+Resist all temptation to plunge into the esoteric details of file
+formats.  (Those who find such details irresistible will find them in
+Section 5 of the @cite{WFDB Applications Guide}; note, however, that
+support for new file formats is added to the WFDB library from time to
+time, so that the information you find there may be incomplete.)  The
+WFDB library provides an efficient means of reading and writing files in
+many formats; it is not a trivial task to duplicate it, and time spent
+doing so is time that could be spent doing something useful, enjoyable,
+or possibly both.  If you really think you need to understand the file
+formats in order to translate them into whatever the ECGWhizz Model 666
+needs, consider instead writing a format translator using the WFDB
+library to read the files; then you will at least have a program that
+requires only recompilation with a new version of the WFDB library when
+file formats change.  @emph{In extremis}, use @file{rdann} and
+@file{rdsamp} --- available from PhysioNet in source and ready-to run
+formats --- to translate files into text format.
 
 Chapter 1 of this guide begins with a simple example program that reads
 a few samples from a database record.  This example should help you
@@ -397,19 +391,19 @@
 descriptions of the application programs that are distributed with the
 WFDB library as part of the WFDB software package.
 
-@cindex MS-DOS file names
 @cindex operating systems (supported)
-The WFDB library has been written with portability in mind.  It runs on a
-wide variety of machines and operating systems, including UNIX (BSD 4.x,
-System V, SunOS, Solaris, HP-UX, OSF/1, Version 7, XENIX, VENIX, ULTRIX,
-Linux, AIX, AUX, SCO, Coherent, and more), MS-DOS, MS-Windows, VMS, and
-the Macintosh OS.  This guide was written for UNIX users (with notes for
-MS-DOS users where differences exist), but others should find only minor
-differences.
-
 Another appendix discusses porting the WFDB library to new machines or
 operating systems, and includes notes on adding support for new file
 formats, annotation codes, and other enhancements (@pxref{Extensions}).
+The WFDB library has been written with portability in mind.  It runs on
+a wide variety of machines and operating systems, including Unix (BSD
+4.x, System V, SunOS, Solaris, HP-UX, OSF/1, Version 7, XENIX, VENIX,
+ULTRIX, GNU/Linux, OpenBSD, IRIX, AIX, AUX, Darwin, MacOS/X, SCO,
+Coherent, and more), MS-DOS, MS-Windows, VMS, and the Macintosh OS.
+This guide was written for Unix users (with notes for MS-Windows and
+MS-DOS users where differences exist), but others should find only minor
+differences.
+
 At the end of the guide is a list of sources for databases and other
 materials that may be useful to readers (@pxref{Sources}).
 
@@ -429,7 +423,7 @@
 WFDB library was known as the DB library, and this guide was the @cite{ECG
 Database Programmer's Guide}.  The name of the library was changed because
 of confusion caused by the recent proliferation of another library with
-the same name (a reimplementation of the Berkeley UNIX DBM library).
+the same name (a reimplementation of the Berkeley Unix DBM library).
 The names of this guide, and of the @cite{WFDB Applications Guide} (formerly
 the @cite{ECG Database Applications Guide}), have been changed in view of
 the increasingly broad range of applications in which the library is being
@@ -472,21 +466,28 @@
 You can format and print copies of this guide using TeX if you have it (see
 @file{makefile} in the @file{doc} directory of the library distribution for
 instructions on doing so).  You may obtain a preformatted version suitable for
-output on any PostScript device from @code{http://www.physionet.org}, or you
-can obtain nicely printed copies for $10 each from the author (address above;
-please make checks payable to ``Beth Israel Hospital Biomedical Engineering
-Division'').
+output on any PostScript device from @code{http://www.physionet.org/}.
 @end ifinfo
 
 @node     Recent changes, Usage, Overview, Top
 @comment  node-name,  next,  previous,  up
 @unnumberedsec Recent changes
 
-This section contains a brief summary of changes to the WFDB library and to
-this guide since the first printing of the ninth edition of this guide in July,
-1995.  See @file{NEWS}, in the top-level directory of the WFDB Software
-Package distribution, for details on these changes, and for information on any
-more recent changes that may not be described here.
+This section contains a brief summary of changes to the WFDB library and
+to this guide since the first printing of the tenth edition of this
+guide in June, 1999.  See @file{NEWS}, in the top-level directory of the
+WFDB Software Package distribution, for information on any more recent
+changes that may not be described here.
+
+@unnumberedsubsec Changes in version 10.2.1
+
+Most users will no longer need to set the WFDB path explicitly, as a result
+of several minor changes in the default path and in the installer for the
+WFDB Software Package.
+
+The environment variable @code{WFDBNOSORT} was replaced by @code{WFDBANNSORT},
+and the environment variable @code{WFDBGVMODE} was introduced
+(@pxref{Annotation Order}, and @pxref{Multi-Frequency Records}, for details).
 
 @unnumberedsubsec Changes in version 10.2.0
 
@@ -497,7 +498,7 @@
 @file{<wfdb/wfdb.h>}) specified limits on these parameters that could be
 modified only by recompiling the WFDB library.  These symbols are still defined
 for compatibility with older applications that use them (typically to determine
-the size of statically allocated arrays).
+the size of static arrays).
 
 Since version 10.1.1, record names may include path information (see the notes
 for version 10.1.1 below), but if such names are used to generate names of WFDB
@@ -507,7 +508,7 @@
 attempt to create the directory (including, if necessary, any non-existent
 parent directories).  This feature simplifies the use of record names that
 include directory information, as is common when reading data from a CD-ROM or
-a web server such as PhysioNet.  For example, using the default WFDB path
+a web server such as PhysioNet.  For example, using the WFDB path
 (@file{. http://@-www.@-physio@-net.@-org/@-physio@-bank/@-data@-base}), if the
 current directory, @file{.}, does not contain a subdirectory named
 @file{mitdb}, the command:
@@ -586,17 +587,19 @@
 @unnumberedsubsec Changes in version 10.0.1
 @cindex NETFILES
 
-Beginning with version 10.0.1, the WFDB library supports reading not only local
-files, but also remote files made available by web (HTTP) or FTP servers.  To
-make use of this feature, link your application with both the WFDB library and
-the @file{libwww} library (freely available for all versions of UNIX, and for
-most recent versions of MS Windows, from @file{http://www.w3.org/Library}).
-(In some cases, notably under Linux, @code{libwww} is linked together with the
-dynamically-loaded version of the WFDB library, so that you do not need to link
-@code{libwww} explicitly.)  All access to remote files is read-only.  If you do
-not wish to allow access to remote files, or if @code{libwww} is not available
-for your OS, simply do not define the symbol NETFILES when compiling the WFDB
-library.  For further details, see @file{wfdbio.c} in the WFDB library sources.
+Beginning with version 10.0.1, the WFDB library supports reading not
+only local files, but also remote files made available by web (HTTP) or
+FTP servers.  To make use of this feature, link your application with
+both the WFDB library and the @file{libwww} library (freely available
+for all versions of Unix, and for most recent versions of MS Windows,
+from @file{http://www.w3.org/Library}).  (In some cases, notably under
+GNU/Linux, @code{libwww} is linked together with the dynamically-loaded
+version of the WFDB library, so that you do not need to link
+@code{libwww} explicitly.)  All access to remote files is read-only.  If
+you do not wish to allow access to remote files, or if @code{libwww} is
+not available for your OS, simply do not define the symbol NETFILES when
+compiling the WFDB library.  For further details, see @file{wfdbio.c} in
+the WFDB library sources.
 
 The WFDB environment variable may now contain whitespace (space, tab, or
 newline characters) as path component separators under any OS.  Multiple
@@ -604,7 +607,7 @@
 separator.  Use a @samp{.} to specify the current directory as a path component
 when using whitespace as a path component separator.  A semicolon (@samp{;}) is
 also acceptable as a path component separator under any OS.  A colon (@samp{:})
-is still acceptable as a path component separator under UNIX (Linux, etc.),
+is still acceptable as a path component separator under Unix (Linux, etc.),
 provided only that the colon is not immediately followed by @samp{//}.
 
 If the WFDB path includes components of the forms
@@ -629,154 +632,23 @@
 definitions, library source file names, and names of environment variables
 (e.g., the DB environment variable is now the WFDB environment variable).
 
-Version 10.0.0 is functionally identical with version 9.7.4, except for the
-name changes.  It should be possible to recompile existing applications
-written for DB library version 9.x without modification, and to link them
-with WFDB library version 10.0.0.  This is possible because two sets of
-@code{#include} files are provided with the WFDB library.  The first set,
-accessible via @code{#include <wfdb/...>}, works with applications written
-as described in this guide.  The alternate set, accessible via
-@code{#include <ecg/...>}, is compatible with DB 9.x applications as
-described in previous editions of this guide.
-
-@unnumberedsubsec Changes in version 9.7.4
-
-Annotations written out-of-order were not being sorted within @code{oannclose}
-(which instead printed a message explaining how to sort them using
-@samp{sortann}).  This has now been fixed for all environments in which
-@samp{sortann} can be run as another process by @samp{oannclose} (these
-include all currently supported library configurations other than as a
-Windows DLL).  Once again, thanks to Bob Farrell for reporting this bug
-and pointing out the (one-character!) fix.
-
-This problem affected only user-written applications that write annotations
-out-of-order.  If @samp{sortann} was run manually as instructed, output
-annotation files would be identical to those produced using version 9.7.4.
-
-The functions @samp{iannclose} and @samp{oannclose} were incorrectly
-documented in previous versions of this guide, which indicated that they
-did not accept inputs.  In fact, each of these functions requires a
-single argument that specifies the annotator to which the call applies
-(@pxref{iannclose and oannclose, , @code{iannclose} and @code{oannclose}}).
-
-@unnumberedsubsec Changes in version 9.7.3
-
-If an annotation has been read, and @code{iannclose} has been used to close the
-input annotation file, and @code{annopen} has subsequently opened a new
-annotation file for input using the @samp{+xxx} syntax for the record
-number, and the new input file is empty, then @code{getann} formerly
-returned a ``phantom'' annotation at the same location as the last
-annotation in the previous input file.  This caused @samp{wfdbcollate} to
-insert extra annotations in its output files in some cases;  there are
-no other known applications that triggered this bug, which has now been fixed.
-
-@unnumberedsubsec Changes in version 9.7.2
-
-Correct results are now obtained when using @code{strtim("i")}, even
-when the input record is a multi-segment, multi-frequency record with
-skew correction required and frames do not necessarily begin on byte
-boundaries.  The correct samples are now returned by @code{getvec} or
-@code{getframe} following multiple skips (calls to @code{isigsettime} or
-@code{isgsettime}) in such records.  Thanks once again to Bob Farrell
-for reporting the problem and for his test cases that helped in finding
-and correcting its causes.
-
-@unnumberedsubsec Changes in version 9.7.1
-
-Minor changes for Win32 compatibility (thanks again to Bob Farrell).
-
-@unnumberedsubsec Changes in version 9.7
-
-Support for compiling the WFDB library as a 32-bit MS Windows DLL has been
-added (thanks to Bob Farrell).  Define the symbols @code{_WIN32} and 
-@code{_WINDLL} when building the DLL, and define the symbol @code{_WIN32}
-when compiling an application that uses the DLL.
-
-The string @samp{%r} is replaced by the record name wherever it appears in the
-WFDB path (@pxref{WFDB path}.  The string @samp{%@var{N}r}, where @var{N} is
-a non-zero digit, is replaced by the first @var{N} characters of the
-record name.  When followed by any other character, @samp{%} is an
-`escape';  thus, for example, to insert a literal @samp{%} in the WFDB
-path, use @samp{%%}.
-
-It is now possible to write annotations out-of-order using @code{putann}
-(@pxref{Annotation Order}).
-
-@unnumberedsubsec Changes in version 9.6.2
-
-Version 5.0 and later versions of Apple's ISO 9660 CD-ROM driver for the
-Macintosh handle version number suffixes more sensibly than do earlier
-versions.  When compiling the WFDB library on the Macintosh, the new driver
-behavior is assumed by default;  if you are still using a pre-5.0 version
-of this driver, define the symbol FIXISOCD when compiling the WFDB library.
-
-@unnumberedsubsec Changes in version 9.6.1
-
-A new annotation type (@code{LINK}) has been defined
-(@pxref{Annotation Codes}).
-
-@unnumberedsubsec Changes in version 9.6
-
-A new function was added to the WFDB library (@pxref{getspf}).
-
-A number of changes in the implementation of existing WFDB library functions now
-make use of high-resolution mode (@pxref{Multi-Frequency Records}) almost
-completely transparent to WFDB applications.  The recommended practice is to call
-@code{setgvmode(WFDB_HIGHRES)} @emph{before} calling @code{annopen},
-@code{wfdbinit}, @code{getvec}, @code{sampfreq}, @code{strtim}, or @code{timstr}.
-By doing so, all @code{WFDB_Time} data visible to the application are in units of
-the high-resolution sampling intervals(@pxref{setgvmode}).
-
-Note that the resolution of annotation times in annotation files created while
-in high-resolution mode remains that of the low-resolution sampling intervals.
-This may change in a future version of the WFDB library.
-
-@unnumberedsubsec Changes in version 9.5
-
-The number of signals that may be read simultaneously, @code{WFDB_MAXSIG},
-was increased from 16 to 32. [This limit has been eliminated entirely as of
-version 10.2.0.]
-
-@unnumberedsubsec Changes in version 9.4.2
-
-Support for use of the WFDB library with Fortran programs was added
-(@pxref{other languages}).
-
-@unnumberedsubsec Changes in version 9.4.1
-
-In release 9.4.0 only, WFDB library function @code{setheader} did not properly
-interpret the skew setting made by @code{wfdbsetskew} in the case of an
-oversampled signal in a multi-frequency record.  This has been corrected.
-
-@unnumberedsubsec Changes in version 9.4
-
-Four new functions were added to the WFDB library to simplify management of
-records with signal files containing prologs or intersignal skews.
-
-@pxref{wfdbgetskew}
-
-@pxref{wfdbsetskew}
-
-@pxref{wfdbgetstart}
-
-@pxref{wfdbsetstart}
-
-Also, @pxref{Glossary}, for definitions of @dfn{prolog} and @dfn{skew}.
-
-@code{newheader} and @code{setheader} now write header files containing skew
-and byte offset fields if you have previously set non-zero values for these
-parameters using @code{wfdbsetskew} or @code{wfdbsetstart}.
-
-If @code{wfdberror} is invoked before any errors have occurred, the character
-string it returns now contains the WFDB library version number.  Versions earlier
-than 9.4 returned an empty string in this case.
+Version 10.0.0 of the WFDB library is functionally identical with the
+final release (version 9.7.4) of the DB library, except for the name
+changes.  It should be possible to recompile existing applications
+written for DB library version 9.x without modification, and to link
+them with WFDB library version 10.0.0.  This is possible because two
+sets of @code{#include} files are provided with the WFDB library.  The
+first set, accessible via @code{#include <wfdb/...>}, works with
+applications written as described in this guide.  The alternate set,
+accessible via @code{#include <ecg/...>}, is compatible with DB 9.x
+applications as described in previous editions of this guide.
 
 @node     Usage, Functions, Recent changes, Top
 @chapter Using the WFDB Library
 
 This chapter gives a brief overview of the steps needed to compile,
 load, and run a program that uses the WFDB library.  It assumes that you
-are able to log onto a UNIX-based computer on which the WFDB Software
+are able to log onto a Unix-based computer on which the WFDB Software
 Package has been installed
 (@pxref{Installation, , Installing the WFDB Software Package}),
 and that you know how to create a source file using a text editor such
@@ -788,14 +660,15 @@
 * print samples::		A trivial example program.
 * compiling::			Compiling a C program with the WFDB library.
 * other languages::             Using the WFDB library with C++ or Fortran.
-* WFDB path::			The database path (environment variable WFDB).
+* WFDB path::			WFDB library environment variables.
 * running example::		Running the example program.
 * name restrictions::		Names to avoid when writing your programs.
+* WFDB path syntax::		Customizing the WFDB path.
 * exercises 1::			A few questions.
 @end menu
 
 @node     print samples, compiling, Usage, Usage
-@section A Trivial Example Program
+@section A Trivial Example Program in C
 
 Suppose we wish to print the first ten samples of record @file{100s}.
 (Record @file{100s} is the first minute of MIT-BIH Arrhythmia Database
@@ -850,24 +723,37 @@
 @cindex compiling
 @cindex loader options
 
-To compile the example program on a UNIX system, we can say:
+To compile the example program on a Unix system, we can say:
 
 @example
 cc -o psamples psamples.c -lwfdb
 @end example
 
 @noindent
-to produce an executable program called @code{psamples}.  You may use any
-other compiler options you choose, but the @samp{-lwfdb} option must
-appear in the @code{cc} command line following any and all source
-(@file{*.c}) and object (@file{*.o}) file names, in order to instruct
-the loader to search the WFDB library for any functions that the program
-needs (in this case, @code{isigopen} and @code{getvec}).  Some programs
-will need additional libraries, and the corresponding @samp{-l} options
-can usually be given before or after the @samp{-lwfdb} option.
+to produce an executable program called @code{psamples}.  (Your C
+compiler may be named @file{gcc}, @file{acc}, @file{CC}, or something
+else, rather than @file{cc}, but under any version of Unix, it will
+almost certainly work as shown above.)  You may use any other compiler
+options you choose, but the @samp{-lwfdb} option must appear in the
+@code{cc} command line following any and all source (@file{*.c}) and
+object (@file{*.o}) file names, in order to instruct the loader to
+search the WFDB library for any functions that the program needs (in
+this case, @code{isigopen} and @code{getvec}).  Some programs will need
+additional libraries, and the corresponding @samp{-l} options can
+usually be given before or after the @samp{-lwfdb} option.
+
+Under MS-Windows, it will be easiest to use @file{gcc}, the GNU C/C++
+compiler, which is included in the freely available Cygwin software
+development system (@code{http://@-source@-.redhat@-.com/@-cygwin/}),
+and also in the freely available MinGW package
+(@code{http://@-www@-.mingw@-.org/}).  An MS-DOS version of @file{gcc}
+is available in the free djgpp package
+(@code{http://@-www@-.delorie@-.com/@-djgpp/}). These are used within a
+Cygwin terminal emulator window or an MS-DOS box in exactly the same way
+as described above for Unix C compilers.
 
-Each MS-DOS C or C++ compiler has its own idiosyncratic syntax, so no general
-rule can be given for MS-DOS.  With Microsoft C/C++, use:
+Each proprietary C or C++ compiler has its own idiosyncratic syntax, so no
+general rule can be given for these.  With Microsoft C/C++, use:
 
 @example
 cl psamples.c -link wfdb
@@ -892,207 +778,137 @@
 @cindex C++ bindings
 
 If you prefer to write your applications in C++, you may do so, but note
-that the WFDB library is written in C.  (Most C++ compilers can be run in
-ANSI/ISO C compatibility mode in order to compile the WFDB library
+that the WFDB library is written in C.  (Most C++ compilers can be run
+in ANSI/ISO C compatibility mode in order to compile the WFDB library
 itself.)  Each C++ source file that uses WFDB library functions must
-include @file{<wfdb/wfdb.h>}, in order to instruct your compiler to use C
-conventions for argument passing and to use unmangled names for the WFDB
-library functions.  In order for this to work, your C++ compiler should
-predefine @samp{__cplusplus} or @samp{c_plusplus}; if it predefines
-neither of these symbols, modify @file{<wfdb/wfdb.h>} so that the symbols
-@samp{wfdb_CPP} and @samp{wfdb_PROTO} are defined at the top of the file.
-Compile and link your program using whatever standard methods are
-supported by your compiler for linking C++ programs with C libraries.
-See your compiler manual for further information.
+include @file{<wfdb/wfdb.h>}, in order to instruct your compiler to use
+C conventions for argument passing and to use unmangled names for the
+WFDB library functions.  In order for this to work, your C++ compiler
+should predefine @samp{__cplusplus} or @samp{c_plusplus}; if it
+predefines neither of these symbols, modify @file{<wfdb/wfdb.h>} so that
+the symbols @samp{wfdb_CPP} and @samp{wfdb_PROTO} are defined at the top
+of the file, or define @samp{__cplusplus} in each of your source files
+before including @file{<wfdb/wfdb.h>}.  Compile and link your program
+using whatever standard methods are supported by your compiler for
+linking C++ programs with C libraries.  See your compiler manual for
+further information.
 
 @cindex Fortran bindings
 @cindex wrappers for Fortran
 A set of wrapper functions is also available for those who wish to use
 the WFDB library together with applications written in Fortran.  These
-functions provide a thin `wrapper' around the WFDB library functions, by
+functions, defined in @file{wfdbf.c}, provide a thin `wrapper' around the WFDB library functions, by
 accepting Fortran-compatible arguments (there are no structures, and all
-arguments are passed by reference rather than by value).  You will still
-need a C or C++ compiler to compile the WFDB library and the wrapper
-functions themselves.  The Fortran wrapper functions are not discussed
-in this guide; for further information, refer to @file{fortran/readme.doc}
-in the WFDB Software Package (included in version 9.4 and later versions).
+arguments are passed by reference rather than by value).  For example,
+here is the Fortran equivalent of the example program in the previous
+section:
+
+@page
+@example
+        integer i, v(2), g
+
+        i = isigopen("100s", 2)
+        do i = 1, 10
+         g = getvec(v)
+         write (6,3) v(1), v(2)
+ 3      format("v(1) = ", i4, "    v(2) = ", i4)
+        end do
+        end
+@end example
+
+@noindent
+To compile this program using @code{g77} (the GNU Fortran compiler), save it as
+@file{fsamples.f}, copy @file{wfdbf.c} from the @file{fortran} directory of the
+WFDB Software Package sources or from
+@code{http://@-www.@-physio@-net.@-org/@-physio@-tools/@-wfdb/@-fortran/@-wfdbf.c},
+then type:
+
+@example
+g77 -o fsamples -fwritable-strings fsamples.f wfdbf.c -lwfdb
+@end example
+
+@noindent
+The Fortran wrapper functions are not discussed in this guide; for further
+information, refer to @file{fortran/README} in the WFDB Software Package.
 
 @cindex Matlab bindings
 @cindex Octave bindings
-@cindex wrappers for Matlab or Octave
+@cindex Scilab bindings
+@cindex wrappers for Matlab, Octave, or Scilab
 It should be possible to write a similar set of wrapper functions for use with
-Matlab or Octave (a freely available open-source language that is compatible
-with Matlab, available from @code{http://www.che.wisc.edu/octave/}).  At this
-time, such wrappers are not available, but a reimplementation of a useful
-subset of the WFDB library in native m-code (contributed by Jose Garcia Moros
-and Salvador Olmos) is available from
-@code{http://www.physionet.org/physiotools/matlab/}.
+Matlab, Octave (a freely available open-source language that is compatible with
+Matlab, available from @code{http://www.che.wisc.edu/octave/}), or Scilab (an
+open-source scientific software package for numerical computations, with a
+language similar to that of Matlab, available from
+@code{http://www-rocq.@-inria.@-fr/@-scilab/}).  At this time, such wrappers
+are not available, but a reimplementation of a useful subset of the WFDB
+library in native m-code (contributed by Jose Garcia Moros and Salvador Olmos)
+is available from
+@code{http://www.@-physio@-net.@-org/@-physio@-tools/@-matlab/}.  Jesus Olivan
+Palacios has written a tutorial (available at
+@code{http://www.@-neurotraces.@-com/@-scilab/@-sciteam/}) on using the WFDB
+Software Package with Scilab.
 
 @node     WFDB path, running example, other languages, Usage
 @comment  node-name,  next,  previous,  up
-@section The Database Path
+@section The Database Path and Other Environment Variables
 @cindex database path (setting)
 @cindex path (database)
 @cindex directories for WFDB files
 @cindex WFDB files (finding)
 @cindex finding WFDB files
 @cindex @code{WFDB} (environment variable)
+@cindex @code{WFDBCAL} (environment variable)
+@cindex @code{WFDBGVMODE} (environment variable)
+@cindex @code{WFDBANNSORT} (environment variable)
 
-When WFDB applications @emph{read} database files, they must be able to
-find them in various locations that may vary from system to system.
-The WFDB library refers to a character string that consists of an ordered
-list of locations to be searched @emph{for input files}.  This string
-is called the @dfn{database path}, or the @dfn{WFDB path}.  Under UNIX and
-VMS, the WFDB path is a colon-separated list of prefixes, in the format
-used for the Bourne shell's @code{PATH} variable.  Under MS-DOS and on
-the Macintosh, the WFDB path is in the format used for the MS-DOS
-@code{PATH} variable, with semicolons used to separate prefixes (colons
-retain their customary meanings, as drive letter suffixes under MS-DOS,
-or as directory separators on the Macintosh).  When a WFDB file must be
-opened for input, the WFDB library attempts to locate it by attaching each
-of the components of the WFDB path (one at a time) as a prefix to the file
-name.  If two or more matching files exist in different locations in
-the WFDB path, the WFDB library opens only the file that resides in the
-first of these locations named in the WFDB path.  Any other matching
-files are effectively invisible to WFDB applications unless the WFDB path is
-rearranged.
-
-@cindex NETFILES
-Alternatively, components of the WFDB path may be separated by
-whitespace (under any operating system), and the WFDB path may contain
-@code{http://} and @code{ftp://} URL prefixes (other schema, such as
-@code{file://} and @code{https://}, may also be supported if they are
-supported by your version of @code{libwww}).  If @code{NETFILES}
-support is not compiled into the WFDB library, any WFDB path components
-containing @file{://} are ignored.  (These
-features were first introduced in WFDB library version 10.1.0.)
-
-When WFDB applications @emph{write} database files, these files are
-generally written to the current directory.  (As an example, an
-application that analyzes one or more signals in a record may record its
-findings in an annotation file in the current directory.)
-
-Note particularly that the current directory is @emph{not} necessarily
-part of the WFDB path.  In order to be sure that your WFDB applications can
-read any WFDB files that you have previously written in the current
-directory, be sure that your WFDB path includes an empty (null) component,
-which corresponds to the current directory.  In most cases, this null
-component should be the first in the WFDB path.  Thus, if you write into
-the current directory a modified version of an existing WFDB file, any
-later actions that would read this file will read your modified version
-rather than the original.
-
-@cindex database path (default)
+WFDB applications make use of several @dfn{environment variables}, which are
+named @code{WFDB}, @code{WFDBCAL}, @code{WFDBGVMODE}, and @code{WFDBANNSORT}.
+If these variables have not been otherwise defined by the user, their values
+are those given by @code{DEFWFDB}, @code{DEFWFDBCAL}, @code{DEFWFDBGVMODE},
+and @code{DEFWFDBANNSORT} (defined in @file{wfdblib.h} at the
+time the WFDB library was compiled).  Unless you have a non-standard
+setup, you may not need to set these variables, but it will be helpful
+to read this section to understand how they influence the behavior of
+WFDB applications.
 
-A default WFDB path may be specified at the time the WFDB library is
-compiled, by defining a value for the symbol @code{DEFWFDBP} in
-@file{wfdblib.h}.  On most systems, the environment variable @code{WFDB}, if
-set, specifies the value of the WFDB path, and overrides the default value
-if any.  On the Macintosh, for which the concept of environment
+When WFDB applications @emph{read} database files, they must be able to
+find them in various locations that may vary from system to system.  The
+WFDB library refers to a character string that consists of an ordered
+list of locations to be searched @emph{for input files}.  This string is
+called the @dfn{database path}, or the @dfn{WFDB path}.
+
+On most systems, the environment variable @code{WFDB}, if set, specifies
+the value of the WFDB path, and overrides the default value.  If you
+need to use a non-default WFDB path, you must set the @code{WFDB}
+environment variable appropriately before running any WFDB applications,
+so that the WFDB path can be examined by the running program.  The WFDB
+software package includes easily customizable shell scripts (batch
+files) that illustrate how to do this for popular shells and command
+interpreters; see @emph{setwfdb}(1), in the @cite{WFDB Applications
+Guide}.  (On the Macintosh, for which the concept of environment
 variables is foreign, the WFDB path may be set only by using
-@code{DEFWFDBP}.
-
-@cindex indirect WFDB path
-@cindex file containing WFDB path
-@cindex database path file (indirect)
-
-If the WFDB library finds that the value assigned to the WFDB path is of the
-form @samp{@@@var{file}}, it replaces that value with the contents of
-the specified @var{file}.  (This feature was first introduced in WFDB
-library version 8.0.)  Indirect WFDB path files may be nested up to ten
-levels (this arbitrary limit is imposed to avoid infinite recursion if
-the contents of the indirect file are incorrect).  This method of
-indirect assignment is useful on the Macintosh, where recompilation of
-the WFDB library would otherwise be necessary in order to change the WFDB
-path.  It may also be useful under MS-DOS to reduce the need for
-environment space, or if the length of the command needed to set the
-@code{WFDB} environment variable would otherwise approach or exceed the
-128-byte limit for MS-DOS commands.
-
-If a WFDB header file (@pxref{Database Files}) specifies that a signal
-file is to be found in a directory that is not already in the WFDB path,
-that directory is appended to the end of the WFDB path; in this case, if
-the WFDB path is not set, it is created with an initial null component
-followed by the directory that contains the signal file.  (This feature
-was first introduced in WFDB library version 6.2.)
-
-The string @samp{%r} is replaced by the current record name wherever it appears
-in the WFDB path;  @samp{%@var{N}r} is replaced by the first @var{N}
-digits of the record name, if @var{N} is a non-zero digit.  For example,
-if (under UNIX) the WFDB path is @samp{:/cdrom/mimicdb/%3r:/cdrom/mitdb},
-a request to read a file associated with record 055n will cause the WFDB
-library to look first in the current directory (since the WFDB path begins
-with an empty component), then in @samp{/cdrom/mimicdb/055}, and then in
-@samp{/cdrom/mitdb}.  If @samp{%} is followed by any character other than
-@samp{r} or a non-zero digit followed by @samp{r}), that character is used
-as is in the WFDB path;  thus a literal @samp{%} can be included in the WFDB
-path by `escaping' it as @samp{%%}.  (Substitutions of @samp{%}-strings
-in the WFDB path were first introduced in WFDB library version 9.7.)
-
-Before the example program can be run successfully, @code{WFDB} must be
-set appropriately and placed in the environment where it can be examined
-by the running program.  If you use the Bourne shell (@code{sh}), the
-GNU Bourne Again shell (@code{bash}), or the Korn shell (@code{ksh}), do
-so by typing
-
-@example
-. setwfdb
-@end example
-
-@noindent
-@cindex @code{.profile}
-@cindex @code{setwfdb}
-(or by placing this command in your @file{.profile}, which will cause
-@code{WFDB} to be set automatically whenever you log in).  If you use the
-C-shell (@code{csh}) or a variant of it (such as @code{ecsh} or @code{tcsh}),
-type
-
-@example
-source /usr/local/bin/cshsetwfdb
-@end example
-
-@noindent
-@cindex @code{.cshrc}
-@cindex @code{cshsetwfdb}
-(or put this command in your @file{.cshrc}).  These shell scripts should
-be available on any system on which the WFDB library itself is available,
-although they may not be in @file{/usr/local/bin} as shown above.  If
-you cannot find the script you need, consult an expert (such as the
-person who installed the WFDB library on your system).  Note that the
-default value for @code{WFDB} obtained in this way begins with the current
-directory, and includes all standard directories in which database
-records are kept.  Thus, if you create your own database records or
-files, you may keep them in your own directory without special
-arrangements.
-
-Under MS-DOS, you may set @code{WFDB} using the batch file
-@file{setwfdb.bat} (created during installation of the WFDB Software
-Package), or you may include the contents of that file in your
-@file{autoexec.bat} file, which will cause @code{WFDB} to be set automatically
-whenever your system is rebooted.  Since environment space under
-MS-DOS is an operating system resource and is often in very short
-supply, you may need to allocate additional environment space within
-your @file{config.sys} file, with a line of the form
-
-@example
-shell=c:\command.com /p /e:512
-@end example
-
-@noindent
-See your MS-DOS manual for further information.
+@code{DEFWFDB}.)  For further information, @pxref{WFDB path syntax}.
 
 @cindex calibration file
 @cindex @code{WFDBCAL} (environment variable)
-These shell scripts usually set the @code{WFDBCAL} environment variable,
-which is important if you make use of records that contain signals other
-than ECGs.  @code{WFDBCAL} names a @dfn{calibration file} located in one
-of the directories named by @code{WFDB}.  (Beginning with WFDB library
-version 8.3, the symbol @code{DEFWFDBC} may be defined in @file{wfdblib.h}
-to specify the name of a default calibration file, to be used by the WFDB
-library if @code{WFDBCAL} has not been set.)  Each signal type may be
-represented by an entry in the calibration file.  Entries specify the
-characteristics of any calibration pulses that may be present, and
-customary scales for plotting the signals.
+The shell scripts that set @code{WFDB} also set the @code{WFDBCAL}
+environment variable, which is important if you make use of records that
+contain signals other than ECGs.  @code{WFDBCAL} names a
+@dfn{calibration file} located in one of the directories named by
+@code{WFDB}.  (The symbol @code{DEFWFDBCAL} is usually defined in
+@file{wfdblib.h} to specify the name of a default calibration file, to
+be used by the WFDB library if @code{WFDBCAL} has not been set.)  Each
+signal type may be represented by an entry in the calibration file.
+Entries specify the characteristics of any calibration pulses that may
+be present, and customary scales for plotting the signals.
+
+@cindex annotation (canonical order)
+@cindex canonical order of annotations
+The other environment variables are less frequently used than @code{WFDB}
+and @code{WFDBCAL}, and in most cases, the compiled-in defaults will be
+appropriate (@pxref{Annotation Order}, and @pxref{Multi-Frequency Records},
+for details).
 
 @node     running example, name restrictions, WFDB path, Usage
 @section Running the Example Program
@@ -1124,7 +940,7 @@
 The left column contains samples from signal 0, and the right column
 contains those from signal 1.
 
-@node     name restrictions, exercises 1, running example, Usage
+@node     name restrictions, WFDB path syntax, running example, Usage
 @section A Note on Identifiers
 @cindex function name restrictions
 @cindex external identifiers (restrictions)
@@ -1147,7 +963,115 @@
 and data types defined within @file{<wfdb/wfdb.h>}.  Use these identifiers
 as needed in your programs, but avoid redefining them.
 
-@node     exercises 1, , name restrictions, Usage
+@node     WFDB path syntax, exercises 1, name restrictions, Usage
+@section More About the WFDB Path
+
+When a WFDB file must be opened for input, the WFDB library attempts to
+locate it by attaching each of the components of the WFDB path (one at a
+time) as a prefix to the file name.  If two or more matching files exist
+in different locations in the WFDB path, the WFDB library opens only the
+file that resides in the first of these locations.  Any other matching
+files are effectively invisible to WFDB applications unless the WFDB
+path is rearranged.
+
+@cindex database path (default)
+
+The default WFDB path is specified at the time the WFDB library is
+compiled, by defining a value for the symbol @code{DEFWFDB} in
+@file{wfdblib.h}.  Current versions of the WFDB library are compiled
+with a three-component default WFDB path; the first component is empty
+(i.e., it refers to the current directory), the second component names
+the @dfn{system-wide database directory} (which contains the sample WFDB
+files supplied with the WFDB software package), and the third component
+is @code{http://www.physionet.org/physiobank/database} (referring to the
+PhysioBank data archives).  Note that this default may be changed at the
+time the WFDB library is compiled.  Normally, however, this means that
+any record available from PhysioBank is readable by any WFDB application
+provided that PhysioBank is accessible from the user's computer and that
+the database name is included in the record name (for example,
+@file{slpdb/slp60} or @file{nsrdb/16265}).
+
+Under Unix and VMS, the WFDB path can be given as a colon-separated list
+of prefixes, in the format used for the Bourne shell's @code{PATH}
+variable.  Under MS-Windows, MS-DOS, and MacOS, the WFDB path can be
+given in the format used for the MS-DOS @code{PATH} variable, with
+semicolons used to separate prefixes (colons retain their customary
+meanings, as drive letter suffixes under MS-DOS, or as directory
+separators on the Macintosh).  Alternatively, components of the WFDB
+path may be separated by whitespace (under any operating system); this
+also implies that embedded spaces are not permitted within path
+components.  @strong{For this reason, avoid using directories with names
+such as @file{My Documents}, or their subdirectories, to store WFDB files.}
+
+When WFDB applications @emph{write} database files, these files are
+generally written to the current directory.  (As an example, an
+application that analyzes one or more signals in a record may record its
+findings in an annotation file in the current directory.)  If the record
+name (as provided by the application to the WFDB library) contains path
+information, however, output files are written to the corresponding
+subdirectory of the current directory.  (For example, if a WFDB
+application writes an annotation file for record @code{edb/e0103}, the
+file will be written in the @code{edb} subdirectory of the current
+directory.  The @code{edb} subdirectory will be created by the WFDB
+library if does not exist already.  This feature was introduced in WFDB
+library version 10.2.0.)
+
+Note particularly that the current directory is @emph{not} necessarily
+part of the WFDB path.  If you modify your WFDB path, you must
+explicitly include an empty (null) component, which corresponds to the
+current directory, in order to be sure that your WFDB applications can
+read any WFDB files that you have previously written.  In most cases,
+this null component should be the first in the WFDB path.  Thus, if you
+write into the current directory a modified version of an existing WFDB
+file, any later actions that would read this file will read your
+modified version rather than the original.
+
+@cindex NETFILES
+The WFDB path may contain @code{http://} and @code{ftp://} URL prefixes
+(other schema, such as @code{file://} and @code{https://}, may also be
+supported if they are supported by your version of @code{libwww}).  If
+NETFILES support is not compiled into the WFDB library, any WFDB
+path components containing @file{://} are ignored.  (These features were
+first introduced in WFDB library version 10.1.0.)
+
+@cindex indirect WFDB path
+@cindex file containing WFDB path
+@cindex database path file (indirect)
+
+If the WFDB library finds that the value assigned to the WFDB path is of the
+form @samp{@@@var{file}}, it replaces that value with the contents of
+the specified @var{file}.  (This feature was first introduced in WFDB
+library version 8.0.)  Indirect WFDB path files may be nested up to ten
+levels (this arbitrary limit is imposed to avoid infinite recursion if
+the contents of the indirect file are incorrect).  This method of
+indirect assignment is useful on the Macintosh, where recompilation of
+the WFDB library would otherwise be necessary in order to change the WFDB
+path.  It may also be useful under MS-DOS to reduce the need for
+environment space, or if the length of the command needed to set the
+@code{WFDB} environment variable would otherwise approach or exceed the
+128-byte limit for MS-DOS commands.
+
+If a WFDB header file (@pxref{Database Files}) specifies that a signal
+file is to be found in a directory that is not already in the WFDB path,
+that directory is appended to the end of the WFDB path; in this case, if
+the WFDB path is not set, it is created with an initial null component
+followed by the directory that contains the signal file.  (This feature
+was first introduced in WFDB library version 6.2.)
+
+The string @samp{%r} is replaced by the current record name wherever it appears
+in the WFDB path;  @samp{%@var{N}r} is replaced by the first @var{N}
+digits of the record name, if @var{N} is a non-zero digit.  For example,
+if (under Unix) the WFDB path is @samp{:/cdrom/mimicdb/%3r:/cdrom/mitdb},
+a request to read a file associated with record 055n will cause the WFDB
+library to look first in the current directory (since the WFDB path begins
+with an empty component), then in @samp{/cdrom/mimicdb/055}, and then in
+@samp{/cdrom/mitdb}.  If @samp{%} is followed by any character other than
+@samp{r} or a non-zero digit followed by @samp{r}, that character is used
+as is in the WFDB path;  thus a literal @samp{%} can be included in the WFDB
+path by `escaping' it as @samp{%%}.  (Substitutions of @samp{%}-strings
+in the WFDB path were first introduced in WFDB library version 9.7.)
+
+@node     exercises 1, , WFDB path syntax, Usage
 @section Exercises
 
 These exercises should require only a few minutes.  If you work through
@@ -1155,14 +1079,45 @@
 the most common errors in using the WFDB library.
 
 @enumerate
+
+@item
+Compile the example program in this chapter and run it.  If the WFDB
+Software Package has not already been installed on your system,
+download and install the most recent version from PhysioNet first
+(@pxref{Installation, , Installing the WFDB Software Package}).
+
 @item
 Find out where database records are kept on your system.  What records
-are available?
+are available locally?
+
+@item
+Modify the example program so that you can specify the record to be
+opened, either as a command-line argument or by having the program prompt
+you to type a record name.  If you are unfamiliar with command-line
+argument processing, @pxref{Example 2}.
 
 @item
-Run the example program in this chapter @emph{without} setting the WFDB
-path.  Try doing so from your home directory, and from the directory
-where record @file{100s} is kept.  Can you explain the results?
+Use the modified version of the example to read samples from records
+@file{mitdb/200}, @file{edb/e0103}, @file{slpdb/slp04}, and
+@file{mimicdb/237/237}.  The last two of these records have 4 and 6 signals
+respectively, so you will need to make a few additional changes to the program
+in order to read these records successfully.
+
+@item
+Once again using the modified version of the example, what happens if
+you omit the path information from one of the records in the previous
+exercise (for example, if you try to open @file{e0103} instead of
+@file{edb/e0103}?  Figure out how to set the WFDB path so that the
+program will work properly in this case.  (Hint: use the application
+@file{wfdbwhich}, included with the WFDB Software Package, to find the
+header file for record @file{edb/e0103}; this information will help
+you to determine how to set the WFDB path.)
+
+@item
+If you use MS-DOS or MS-Windows, explore and explain what happens in
+the previous exercise if you type the record name using upper-case
+letters, or if you type a @samp{\} (backslash) instead of @samp{/}
+(forward slash).  (Hint: record names are @emph{not} filenames!)
 
 @item
 What happens when you compile the example program as shown, but with the
@@ -1251,16 +1206,16 @@
 the gruesome details of how the data are actually stored.  You should
 know, however, that there are files that contain digitized signals,
 other files that contain annotations, and still others (called
-@file{header} files) that describe attributes of the signals such as
+@dfn{header} files) that describe attributes of the signals such as
 sampling frequency.  The database path lists directories in which
 database files are found; the WFDB library functions can find them given
 only the record (and annotator) names, provided that @code{WFDB} has been
 properly set (@pxref{WFDB path}).  WFDB library functions responsible for
-opening signal files find them by reading the @file{header} file (which
+opening signal files find them by reading the header file (which
 contains their names) first.
 
 The first part of this chapter describes functions that extract
-information from @file{header} files in order to gain access to signal
+information from header files in order to gain access to signal
 and annotation files.  The following two sections describe functions
 that deal with signal and annotation files.  Many readers will not need
 to go any further; the remaining sections deal with special-purpose
@@ -1356,7 +1311,7 @@
 @code{putann(0, &annot)} will write an annotation for annotator @file{b}.
 Input annotation files will be found if they are located in any of the
 directories specified by @code{WFDB} (@pxref{WFDB path}); output annotators
-are created in the current directory (but note that, under UNIX at
+are created in the current directory (but note that, under Unix at
 least, it is possible to specify annotator names such as @file{/here} or
 @file{zzz/there} or even @file{../somewhere/else}; @pxref{Annotation
 Files}, for details of how file names are constructed from annotator and
@@ -1386,10 +1341,9 @@
 @item @t{ 0}
 Failure: no input signals available
 @item @t{-1}
-Failure: unable to read @file{header} file (probably incorrect record
-name)
+Failure: unable to read header file (probably incorrect record name)
 @item @t{-2}
-Failure: incorrect @file{header} file format
+Failure: incorrect header file format
 @end table
 @c @end group
 
@@ -1400,7 +1354,7 @@
 @var{record} after discarding the @samp{+}.  Otherwise, @code{isigopen}
 closes any previously opened input signal files, and takes all of
 @var{record} as the record name.  If the record name is @samp{-},
-@code{isigopen} reads the standard input rather than a @file{header}
+@code{isigopen} reads the standard input rather than a @file{hea}
 file.  @var{Siarray} is a pointer to an array of @code{WFDB_Siginfo}
 structures
 @iftex
@@ -1429,7 +1383,7 @@
 allocate storage for the @code{WFDB_Siginfo} structures; @code{isigopen}
 will fill them in with information about the signals.  @dfn{Signal
 numbers} are assigned in the order in which signals are specified in the
-@file{header} file for the record; on return from @code{isigopen},
+@file{hea} file for the record; on return from @code{isigopen},
 information for signal @var{i} will be found in @var{siarray[i]}.  For
 example, we can read the @code{gain} attributes of each signal in record
 @file{100s} like this:
@@ -1467,7 +1421,7 @@
 number of signals determined from the first call (@code{nsig}).
 
 An error message is produced if @code{isigopen} is unable to open
-@emph{any} of the signals listed in the @file{header} file.  It is not
+@emph{any} of the signals listed in the header file.  It is not
 considered an error if only some of the signals can be opened, however.
 A signal will not be opened if its signal file is unreadable, if an
 input buffer cannot be allocated for it, or if opening all of the
@@ -1494,11 +1448,11 @@
 @ifinfo
 -@var{nsig}
 @end ifinfo
-members of @var{siarray}, based on information from the @file{header} file
+members of @var{siarray}, based on information from the header file
 for @var{record}, but @emph{no signals are actually opened}.  The value
-returned in this case is the number of signals named in the @file{header} file.
+returned in this case is the number of signals named in the @file{hea} file.
 Note, however, that there is no guarantee that all (or indeed any) of the
-signals named in the @file{header} file are available to be opened.
+signals named in the @file{hea} file are available to be opened.
 The features described in this paragraph were first introduced in
 version 4.4 of the WFDB library.
 
@@ -1519,9 +1473,9 @@
 Success: the returned value is the number of output signals; this number
 should match @var{nsig}
 @item @t{-1}
-Failure: unable to read @file{header} file
+Failure: unable to read header file
 @item @t{-2}
-Failure: incorrect @file{header} file format
+Failure: incorrect header file format
 @item @t{-3}
 Failure: unable to open output signal(s)
 @end table
@@ -1530,8 +1484,8 @@
 @noindent
 This function opens output signal files.  Use it only if signals are to
 be @emph{written} using @code{putvec}.  The signal specifications,
-including the file names, are read from the @file{header} file for a
-specified record.  Unmodified MIT or AHA database @file{header} files
+including the file names, are read from the header file for a
+specified record.  Unmodified MIT or AHA database @file{hea} files
 cannot be used, since @code{osigopen} would attempt to overwrite the
 (write-protected) signal files named within.  If @var{record} begins
 with @samp{+}, previously opened output signal files are left open, and
@@ -1539,7 +1493,7 @@
 discarding the @samp{+}.  Otherwise, @code{osigopen} closes any
 previously opened output signal files, and takes all of @var{record} as
 the record name.  If the record name is @samp{-}, @code{osigopen} reads
-the standard input rather than a @file{header} file.  @var{siarray} is a
+the standard input rather than a @file{hea} file.  @var{siarray} is a
 pointer to an uninitialized array of @code{WFDB_Siginfo} structures;
 @var{siarray} must contain at least @var{nsig} members.  The caller must
 allocate storage for the @code{WFDB_Siginfo} structures.  On return,
@@ -1547,7 +1501,7 @@
 the signal specifications.
 
 No more than @var{nsig} (additional) output signals will be opened by
-@code{osigopen}, even if the @file{header} contains specifications for
+@code{osigopen}, even if the header file contains specifications for
 more than @var{nsig} signals.  For example, this code fragment
 
 @example
@@ -1598,7 +1552,7 @@
 @noindent
 This function opens output signals as does @code{osigopen}, but the
 signal specifications, including the signal file names, are supplied by
-the caller to @code{osigfopen}, rather than read from a @file{header}
+the caller to @code{osigfopen}, rather than read from a header
 file as in @code{osigopen}.  Any previously open output signals are
 closed by @code{osigfopen}.  @var{siarray} is a pointer to an array of
 @code{WFDB_Siginfo} structures
@@ -1645,10 +1599,10 @@
 (not an error for programs that don't need them; no error
 message is printed if @var{nsig} is 0)
 @item @t{-1}
-Failure: unable to read @file{header} file (probably incorrect record
+Failure: unable to read header file (probably incorrect record
 name)
 @item @t{-2}
-Failure: incorrect @file{header} file format
+Failure: incorrect header file format
 @item @t{-3}
 Failure: unable to open input annotation file
 @item @t{-4}
@@ -1732,7 +1686,7 @@
 
 @noindent
 This function reads a sample from each input signal.  The caller should
-allocate storage for an array of WFDB_Samples (integers) and pass a
+allocate storage for an array of @code{WFDB_Sample}s (integers) and pass a
 pointer to this array to @code{getvec}.  (The length of the array must
 be no less than the number of input signals, as obtained from
 @code{isigopen} or @code{wfdbinit}.)  On return, @var{vector[i]}
@@ -1801,20 +1755,19 @@
 @c @end group
 
 @noindent
-This function reads a vector of samples, including at least one sample
-from each open input signal.  If all signals are sampled at the same
-frequency, only one sample is read from each signal.  Otherwise, signals
-sampled at multiples of the frame frequency are represented by two or
-more consecutive elements of the returned @var{vector}.  For example,
-if the frame frequency is 125 Hz, signal 0 is sampled at 500 Hz, and the
-remaining 3 signals are sampled at 125 Hz each, then the returned
-@var{vector} has 7 valid components: the first 4 are samples of signal
-0, and the remaining 3 are samples of signals 1, 2, and 3.  The caller
-should allocate storage for an array of WFDB_Samples (integers) and pass a
-pointer to this array to @code{getframe}.  The length of @var{vector}
-must be determined by summing the values of the @code{spf} (samples per
-frame) fields in the @code{WFDB_Siginfo} structures associated with the
-input signals
+This function reads a vector of samples, including at least one sample from
+each open input signal.  If all signals are sampled at the same frequency, only
+one sample is read from each signal.  Otherwise, signals sampled at multiples
+of the frame frequency are represented by two or more consecutive elements of
+the returned @var{vector}.  For example, if the frame frequency is 125 Hz,
+signal 0 is sampled at 500 Hz, and the remaining 3 signals are sampled at 125
+Hz each, then the returned @var{vector} has 7 valid components: the first 4 are
+samples of signal 0, and the remaining 3 are samples of signals 1, 2, and 3.
+The caller should allocate storage for an array of @code{WFDB_Sample}s
+(integers) and pass a pointer to this array to @code{getframe}.  The length of
+@var{vector} must be determined by summing the values of the @code{spf}
+(samples per frame) fields in the @code{WFDB_Siginfo} structures associated
+with the input signals
 @iftex
 (@pxref{isigopen, , @code{isigopen}}).
 @end iftex
@@ -1847,13 +1800,12 @@
 @c @end group
 
 @noindent
-This function writes a sample to each input signal.  The caller should
-fill an array of WFDB_Samples with the samples and pass a pointer to this
-array to @code{putvec}.  (The length of the array must be no less than
-the number of output signals, as given to @code{osigfopen} or
-@code{osigopen}.)  On entry, @var{vector[i]} contains the next sample
-from signal @var{i}.  For example, this modified version of the previous
-example
+This function writes a sample to each input signal.  The caller should fill an
+array of @code{WFDB_Sample}s with the samples and pass a pointer to this array
+to @code{putvec}.  (The length of the array must be no less than the number of
+output signals, as given to @code{osigfopen} or @code{osigopen}.)  On entry,
+@var{vector[i]} contains the next sample from signal @var{i}.  For example,
+this modified version of the previous example
 @iftex
 (@pxref{getvec, , @code{getvec}})
 @end iftex
@@ -1896,13 +1848,10 @@
 @ifinfo
 (@pxref{wfdbquit}).
 @end ifinfo
-This example uses record @file{8l} (@pxref{Piped and Local Records}) for
-the output signal specifications; the output signal files will be named
-@file{data0} and @file{data1} in the current directory.  The array of
-@code{WFDB_Siginfo} structures is declared @code{static}, a practice that is
-recommended for all arrays and data structures of any substantial size,
-to avoid run-time stack overflow.  Several of the example programs in
-chapter 6 illustrate the use of @code{putvec}; for example,
+This example uses record @file{8l} (@pxref{Piped and Local Records}) for the
+output signal specifications; the output signal files will be named
+@file{data0} and @file{data1} in the current directory.  Several of the example
+programs in chapter 6 illustrate the use of @code{putvec}; for example,
 @pxref{Example 6}.
 
 @cindex annotation I/O
@@ -1942,7 +1891,7 @@
 pointed to by @var{annot}.  The caller must allocate storage for the
 annotation structure.  Input annotators are numbered 0, 1, 2, etc.  This
 short program uses @code{getann} to read the contents of the reference
-(@file{atruth}) annotation file for record @file{100s}:
+(@file{atr}) annotation file for record @file{100s}:
 
 @example
 #include <wfdb/wfdb.h>
@@ -1952,7 +1901,7 @@
     WFDB_Anninfo a;
     WFDB_Annotation annot;
 
-    a.name = "atruth"; a.stat = WFDB_READ;
+    a.name = "atr"; a.stat = WFDB_READ;
     if (annopen("100s", &a, 1) < 0)
         exit(1);
     while (getann(0, &annot) == 0)
@@ -2172,7 +2121,7 @@
 occasionally cause incorrect results.  To avoid this problem when using
 that version of the library, make at least one call to @code{getann}
 before using @code{iannsettime}.  The bug was corrected in version 4.0
-of the WFDB library.
+of the library.
 
 @page
 @node     conversion, calibration, non-sequential, Functions
@@ -2310,7 +2259,7 @@
 
 @example
 int setannstr(int @var{code}, char *@var{string})
-int setanndesc(int@var{code}, char *@var{string})
+int setanndesc(int @var{code}, char *@var{string})
 int setecgstr(int @var{code}, char *@var{string})
 @end example
 @noindent
@@ -2377,7 +2326,7 @@
 strings and times in units of sample intervals.  Normally they should be
 invoked after @code{isigopen}, @code{wfdbinit}, or @code{sampfreq}, any of
 which will determine the duration of a sample interval and the base time
-from a @file{header} file, or after defining these quantities using
+from a header file, or after defining these quantities using
 @code{setsampfreq} and @code{setbasetime}.  If this is not done, or if
 these time-conversion functions are used after @code{wfdbquit}, they will
 perform conversions in units of seconds (i.e., the sample interval is
@@ -2412,7 +2361,7 @@
 @code{mstimstr}, with leading zero digits and colons suppressed.  If
 @var{t} is zero or negative, it is taken to represent negated elapsed
 time from the beginning of the record, and it is converted to a time of
-day using the base time for the record as indicated by the @file{header}
+day using the base time for the record as indicated by the @file{hea}
 file or the caller
 @iftex
 (@pxref{setbasetime, , @code{setbasetime}});
@@ -2489,7 +2438,7 @@
 
 If the argument is bracketed (as in the second, third, and fourth examples), it
 is taken as a time of day, and @code{strtim} uses the base time defined
-by the @file{header} file or by the caller
+by the header file or by the caller
 @iftex
 (@pxref{setbasetime, , @code{setbasetime}});
 @end iftex
@@ -2539,7 +2488,7 @@
 @cindex conversion between Julian date and string
 
 @example
-char *datstr(DB_Dwfdbe @var{date})
+char *datstr(WFDB_Date @var{date})
 @end example
 @noindent
 @strong{Return:}
@@ -2581,6 +2530,8 @@
 French and American national holidays is @code{strdat("14/7/1789")} --
 @code{strdat("4/7/1776")}.
 
+@sp 2
+
 @node aduphys and physadu, , datstr and strdat, conversion
 
 The next four functions convert between analog-to-digital converter
@@ -2594,8 +2545,8 @@
 @var{s}, irrespective of the @code{baseline} values specified in the
 header file).  Normally, these functions should be invoked after
 @code{isigopen} or @code{wfdbinit}, either of which will determine the
-gain from the @file{header} file.  If this is not done, or if the
-@file{header} file indicates that the gain is uncalibrated, or if the
+gain from the @file{hea} file.  If this is not done, or if the
+header file indicates that the gain is uncalibrated, or if the
 specified input signal is not currently open, a gain of @code{WFDB_DEFGAIN}
 (defined in @file{<wfdb/wfdb.h>}) ADC units per millivolt, and a baseline
 of zero, are assumed.  If the physical units
@@ -2728,6 +2679,7 @@
 @findex calopen (6.0)
 @cindex calibration file (reading)
 @cindex reading calibration files
+@cindex @code{WFDBCAL} (environment variable)
 
 @example
 int calopen(char *@var{file})
@@ -2876,10 +2828,10 @@
 @section Miscellaneous WFDB Functions
 
 @menu
-* newheader::			Creating a @file{header} file for a new WFDB
+* newheader::			Creating a @file{hea} file for a new WFDB
 				record.
-* setheader::			Creating or changing a @file{header} file.
-* setmsheader::                 Creating a @file{header} for a multi-segment
+* setheader::			Creating or changing a @file{hea} file.
+* setmsheader::                 Creating a @file{hea} for a multi-segment
                                 record.
 * wfdbquit::			Closing WFDB files.
 * iannclose and oannclose::     Closing annotation files.
@@ -2898,8 +2850,8 @@
 * wfdbfile::			Obtaining the pathname of a WFDB file.
 * wfdbflush::			Flushing buffered output annotations and
 				samples.
-* getinfo::			Reading info strings from a @file{header} file.
-* putinfo::			Writing info strings into a @file{header} file.
+* getinfo::			Reading info strings from a @file{hea} file.
+* putinfo::			Writing info strings into a @file{hea} file.
 * setibsize::			Setting the default input buffer size.
 * setobsize::			Setting the default output buffer size.
 * wfdbgetskew::                 Reading intersignal skew.
@@ -2913,8 +2865,8 @@
 @node     newheader, setheader, miscellaneous functions, miscellaneous functions
 @unnumberedsubsec newheader
 @findex newheader
-@cindex @code{header} files (creating)
-@cindex creating @file{header} files
+@cindex header files (creating)
+@cindex creating header files
 
 @example
 int newheader(char *@var{record})
@@ -2925,18 +2877,20 @@
 @item @t{ 0}
 Success
 @item @t{-1}
-Failure: unable to create @file{header} file
+Failure: unable to create header file
 @end table
 @c @end group
 
 @cindex record names (restrictions)
 @noindent
-This function creates a @file{header} file (in the current directory).
+This function creates a @file{hea} file (in the current directory, unless
+@var{record} includes path information).
 Use @code{newheader} just after you have finished writing the signal
 files, but before calling @code{wfdbquit}.  If @var{record} begins with
 @samp{+}, the @samp{+} is discarded and the remainder of @var{record} is
-taken as the record name.  Otherwise, all of @var{record} is taken to be
-the record name.  If the record name is @samp{-}, the @file{header} file
+taken as the record name.  Otherwise, all of @var{record} (excluding any
+path information) is taken to be
+the record name.  If the record name is @samp{-}, the header file
 is written to the standard output.  Record names may include letters in
 lower or upper case, digits, and underscores (@samp{_}); they may not
 include any other characters.  If @var{record} does not conform to these
@@ -2958,10 +2912,10 @@
 @node     setheader, setmsheader, newheader, miscellaneous functions
 @unnumberedsubsec setheader
 @findex setheader (5.0)
-@cindex @code{header} files (creating)
-@cindex @code{header} files (modifying)
-@cindex creating @file{header} files
-@cindex modifying @file{header} files
+@cindex header files (creating)
+@cindex header files (modifying)
+@cindex creating header files
+@cindex modifying header files
 
 @example
 int setheader(char *@var{record}, WFDB_Siginfo *@var{siarray}, unsigned int @var{nsig})
@@ -2972,20 +2926,20 @@
 @item @t{ 0}
 Success
 @item @t{-1}
-Failure: unable to create @file{header} file
+Failure: unable to create header file
 @end table
 @c @end group
 
 @noindent
-This function creates or recreates a @file{header} file (in the current
+This function creates or recreates a header file (in the current
 directory) for the specified @var{record}, based on the contents of the
 first @var{nsig} members of @var{siarray}.  The preferred way to create
 a header file for a new record is using @code{newheader}, which records
 signal checksum and length variables maintained by @code{putvec}.  The
-intended use of @code{setheader} is for editing @file{header} files,
+intended use of @code{setheader} is for editing header files,
 e.g., to change recorded signal gains from a calibration program, or to add
-signal descriptions.  In the following code fragment, the @file{header}
-file for record @file{old} is used to create a @file{header} file for
+signal descriptions or ``info'' strings.  In the following code fragment, the
+header file for record @file{old} is used to create a header file for
 record @file{new}:
 
 @example
@@ -3004,10 +2958,10 @@
 @end example
 
 @noindent
-The @file{header} file for record @file{new} will contain the same signal
+The header file for record @file{new} will contain the same signal
 information as that for record @file{old}, except that the @code{gain}
 for signal 0 will have been changed as shown.  Any ``info'' strings in
-the @file{header} file for record @file{old} must be copied explicitly;
+the @file{hea} file for record @file{old} must be copied explicitly;
 @iftex
 @pxref{getinfo, , @code{getinfo}}, and @pxref{putinfo, , @code{putinfo}}.
 @end iftex
@@ -3021,9 +2975,9 @@
 @node     setmsheader, wfdbquit, setheader, miscellaneous functions
 @unnumberedsubsec setmsheader
 @findex setmsheader (9.1)
-@cindex @code{header} files (creating)
+@cindex header files (creating)
 @cindex multi-segment records (creating)
-@cindex creating @file{header} files
+@cindex creating header files
 
 @example
 int setmsheader(char *@var{record}, char *@var{snarray}[], unsigned int @var{nsegments})
@@ -3039,7 +2993,7 @@
 Failure: segment name too long, or insufficient memory
 @item @t{-3}
 Failure: attempt to nest multi-segment records, or unreadable segment
-@file{header}
+header
 @item @t{-4}
 Failure: segment length unspecified, or numbers of signals or sampling
 frequencies don't match between segments
@@ -3047,22 +3001,20 @@
 @c @end group
 
 @noindent
-This function creates a @file{header} file (in the current directory)
-for a multi-segment @var{record} (@pxref{Multi-Segment Records}.
-@var{snarray} contains the names of the segments, each of which must be
-an existing (single-segment) record; @var{nsegments} specifies the
-number of segments in @var{snarray}.  Once a @file{header} has been
-created by @code{setmsheader}, any WFDB application can read the
-concatenated signal files of the constituent segment simply by opening
-the multi-segment record (using @code{isigopen} or @code{wfdbinit}).  Note
-that the signal files themselves are not modified in any way, nor are
-they copied; rather, the other WFDB library functions that read signals
-(@code{getvec}, @code{getframe}, @code{isigsettime}, and
-@code{isgsettime}) automatically switch among the signal files of the
-segments as required.  For an example of the use of @code{setmsheader},
-see @file{app/wfdbcollate.c} (@file{app/wfdbcoll.c} under MS-DOS) in the WFDB
-Software Package.  (This function was first introduced in WFDB library
-version 9.1.)
+This function creates a header file (in the current directory) for a
+multi-segment @var{record} (@pxref{Multi-Segment Records}.  @var{snarray}
+contains the names of the segments, each of which must be an existing
+(single-segment) record; @var{nsegments} specifies the number of segments in
+@var{snarray}.  Once a header has been created by @code{setmsheader}, any WFDB
+application can read the concatenated signal files of the constituent segment
+simply by opening the multi-segment record (using @code{isigopen} or
+@code{wfdbinit}).  Note that the signal files themselves are not modified in
+any way, nor are they copied; rather, the other WFDB library functions that
+read signals (@code{getvec}, @code{getframe}, @code{isigsettime}, and
+@code{isgsettime}) automatically switch among the signal files of the segments
+as required.  For an example of the use of @code{setmsheader}, see
+@file{app/wfdbcollate.c} in the WFDB Software Package.  (This function was
+first introduced in WFDB library version 9.1.)
 
 @c @group
 @node     wfdbquit, iannclose and oannclose, setmsheader, miscellaneous functions
@@ -3071,6 +3023,8 @@
 @cindex closing WFDB files
 @cindex flushing WFDB I/O
 @cindex I/O (completing)
+@cindex annotation (canonical order)
+@cindex canonical order of annotations
 
 @example
 void wfdbquit(void)
@@ -3125,6 +3079,8 @@
 @unnumberedsubsec iannclose
 @findex iannclose (9.1)
 @cindex closing annotation files
+@cindex annotation (canonical order)
+@cindex canonical order of annotations
 
 @example
 void iannclose(WFDB_Annotator @var{an})
@@ -3228,9 +3184,9 @@
 @item @t{(WFDB_Frequency)>0.}
 Success: the returned value is the sampling frequency in Hz
 @item @t{(WFDB_Frequency)-1.}
-Failure: unable to read @file{header} file
+Failure: unable to read header file
 @item @t{(WFDB_Frequency)-2.}
-Failure: incorrect @file{header} file format
+Failure: incorrect header file format
 @end table
 @c @end group
 
@@ -3286,7 +3242,7 @@
 @ifinfo
 (@pxref{timstr and strtim}).
 @end ifinfo
-Use @code{setsampfreq} before creating a new @file{header} file
+Use @code{setsampfreq} before creating a new @file{hea} file
 @iftex
 (@pxref{newheader, , @code{newheader}}).
 @end iftex
@@ -3324,7 +3280,7 @@
 the date should be separated from the time by a space or tab character.  If
 @var{string} is empty or @code{NULL}, the current date and time are read
 from the system clock.  Use @code{setbasetime} after defining the sampling
-frequency and before creating a @file{header} file
+frequency and before creating a header file
 @iftex
 (@pxref{newheader, , @code{newheader}}).
 @end iftex
@@ -3354,13 +3310,13 @@
 @code{WFDB_LOWRES}, @code{getvec} decimates any signals sampled at multiples of
 the frame rate, so that one sample is returned per signal per frame (i.e., the
 oversampled signals are resampled by simple averaging of the samples for each
-signal within each frame).  If @var{mode} is @code{WFDB_HIGHRES}, each sample of
-any oversampled signal is returned by successive invocations of @code{getvec},
-and each sample of any signal sampled at a lower frequency is returned by two
-or more successive invocations of @code{getvec} (i.e., the less frequently
-sampled signals are resampled using zero-order interpolation).  @code{getvec}
-operates in @code{WFDB_LOWRES} mode by default.  @code{WFDB_LOWRES} and
-@code{WFDB_HIGHRES} are defined in @file{<wfdb/wfdb.h>}.
+signal within each frame).  If @var{mode} is @code{WFDB_HIGHRES}, each sample
+of any oversampled signal is returned by successive invocations of
+@code{getvec}, and each sample of any signal sampled at a lower frequency is
+returned by two or more successive invocations of @code{getvec} (i.e., the less
+frequently sampled signals are resampled using zero-order interpolation).
+@code{getvec} operates in @code{WFDB_LOWRES} mode by default.
+@code{WFDB_LOWRES} and @code{WFDB_HIGHRES} are defined in @file{<wfdb/wfdb.h>}.
 
 In WFDB library version 9.6 and later versions, @code{setgvmode} also affects
 how annotations are read and written.  If @code{setgvmode(WFDB_HIGHRES)} is
@@ -3399,6 +3355,8 @@
 frame (hence @code{sampfreq(NULL)/getspf()} is the number of frames
 per second).
 
+@sp 2
+
 @c @group
 @node     counter conversion, setwfdb, getspf, miscellaneous functions
 @cindex base counter value
@@ -3441,7 +3399,7 @@
 
 @noindent
 This function returns the currently-defined counter frequency.  The
-counter frequency is set by the functions that read @file{header}
+counter frequency is set by the functions that read header
 files, or by @code{setcfreq}.  If the counter frequency has not been
 defined explicitly, @code{getcfreq} returns the sampling frequency.
 
@@ -3455,7 +3413,7 @@
 
 @noindent
 This function sets the counter frequency.  Use @code{setcfreq}
-before creating a @file{header} file
+before creating a @file{hea} file
 @iftex
 (@pxref{newheader, , @code{newheader}}).
 @end iftex
@@ -3463,7 +3421,7 @@
 (@pxref{newheader}).
 @end ifinfo
 The effect of @code{setcfreq} is nullified by later invoking any of the
-functions that read @file{header} files.  If @var{freq} is zero or
+functions that read header files.  If @var{freq} is zero or
 negative, the counter frequency is treated as equivalent to the sampling
 frequency.
 
@@ -3483,7 +3441,7 @@
 
 @noindent
 This function returns the base counter value, which is set by the
-functions that read @file{header} files, or by @code{setbasecount}.
+functions that read header files, or by @code{setbasecount}.
 If the base counter value has not been set explicitly,
 @code{getbasecount} returns zero.
 
@@ -3497,7 +3455,7 @@
 
 @noindent
 This function sets the base counter value.  Use @code{setbasecount}
-before creating a @file{header} file
+before creating a header file
 @iftex
 (@pxref{newheader, , @code{newheader}}).
 @end iftex
@@ -3505,7 +3463,7 @@
 (@pxref{newheader}).
 @end ifinfo
 The effect of @code{setbasecount} is nullified by later invoking any of the
-functions that read @file{header} files.
+functions that read @file{hea} files.
 
 @c @group
 @node     setwfdb, getwfdb, counter conversion, miscellaneous functions
@@ -3526,13 +3484,13 @@
 null-terminated string that specifies the desired database path (but see
 the next paragraph for an exception).  The string contains a list of
 locations where input files may be found.  These locations may be
-absolute directory names (such as @samp{/usr/local/database} under UNIX,
+absolute directory names (such as @samp{/usr/local/database} under Unix,
 or @samp{d:/database} under MS-DOS), relative directory names (e.g.,
 @code{../mydata}), or URL prefixes (e.g.,
 @samp{http://www.physio@-net.org/physio@-bank/database}).  If NETFILES
 support is unavailable, any URL prefixes in the string are ignored.  The
 special form @samp{.} refers to the current directory.  Entries in the
-list may be separated by whitespace or by semicolons; under UNIX, colons
+list may be separated by whitespace or by semicolons; under Unix, colons
 may also be used as separators.  An empty component, indicated by an
 initial or terminal separator, or by two consecutive separators, will be
 understood to specify the current directory (which may also be indicated
@@ -3633,14 +3591,14 @@
 @noindent
 This function attempts to locate an existing WFDB file by searching the
 database path (@pxref{WFDB path}).  Normally, the file is specified by its
-@var{type} (e.g., @file{header}, or an annotator name such as @file{atruth})
+@var{type} (e.g., @file{hea}, or an annotator name such as @file{atr})
 and by the @var{record} to which it belongs.  A file that does not include a
 record name as part of its name can be found by @code{wfdbfile} if the name is
 passed in the @var{type} variable and @var{record} is @code{NULL}.  The string
 returned by @code{wfdbfile} includes the appropriate component of the database
 path; since the database path may include empty or non-absolute components, the
 string is not necessarily an absolute pathname.  If the WFDB library has been
-compiled with @code{NETFILES} support, and the WFDB path includes one or more
+compiled with NETFILES support, and the WFDB path includes one or more
 URL prefixes, the string returned may be a URL rather than a pathname.  If the
 file cannot be found, @code{wfdbfile} returns @code{NULL}.  (This function was
 first introduced in WFDB library version 4.3.)
@@ -3665,8 +3623,8 @@
 @node     getinfo, putinfo, wfdbflush, miscellaneous functions
 @unnumberedsubsec getinfo
 @findex getinfo (4.0)
-@cindex @code{header} info (reading) 
-@cindex info (in @code{header} files)
+@cindex header info (reading) 
+@cindex info (in header files)
 
 @example
 char *getinfo(char *@var{record})
@@ -3680,9 +3638,9 @@
 @c @end group
 
 @noindent
-This function reads an ``info'' string from the @file{header} file for
+This function reads an ``info'' string from the @file{hea} file for
 the specified @var{record}.  Info strings are null-terminated and do not
-contain newline characters.  The @file{header} files of some records may
+contain newline characters.  The @file{hea} files of some records may
 contain no info strings;  others may contain more than one info string.
 To read additional info strings after the first, use @code{getinfo(NULL)}.
 For example, the following code fragment may be used to read and print
@@ -3705,8 +3663,8 @@
 @node     putinfo, setibsize, getinfo, miscellaneous functions
 @unnumberedsubsec putinfo
 @findex putinfo (4.0)
-@cindex @code{header} info (writing)
-@cindex info (in @code{header} files)
+@cindex header info (writing)
+@cindex info (in header files)
 
 @example
 int putinfo(char *@var{s})
@@ -3717,17 +3675,17 @@
 @item @t{ 0}
 Success
 @item @t{-1}
-Failure: @code{header} not initialized
+Failure: header not initialized
 @end table
 @c @end group
 
 @noindent
 This function writes @var{s} as an ``info'' string into the
-@file{header} file that was created by the most recent invocation of
+@file{hea} file that was created by the most recent invocation of
 @code{newheader}.  The string argument, @var{s}, must be null-terminated
 and should not contain newline characters.  No more than 254 characters
 may be written in a single invocation of @code{putinfo}.  Two or more
-info strings may be written to the same @code{header} by successive
+info strings may be written to the same header by successive
 invocations of @code{putinfo}.  Note that @code{newheader} or
 @code{setheader} must be used before @code{putinfo}.  (This function was
 first introduced in WFDB library version 4.0.)
@@ -3763,7 +3721,7 @@
 default input buffers will be @var{size} bytes;  if @var{size} is zero,
 the system default buffer size (@code{BUFSIZ}) is used.  Note that
 the default buffer size has no effect on reading signals for which
-an explicit buffer size is given in the @file{header} file, i.e.,
+an explicit buffer size is given in the header file, i.e.,
 those for which the @code{bsize} field of the @code{WFDB_Siginfo} structure
 @iftex
 (@pxref{WFDB_Siginfo structures, , Signal Information Structures})
@@ -3805,7 +3763,7 @@
 positive, the default output buffers will be @var{size} bytes; if
 @var{size} is zero, the system default buffer size (@code{BUFSIZ}) is
 used.  Note that the default buffer size has no effect on writing
-signals for which an explicit buffer size is given in the @file{header}
+signals for which an explicit buffer size is given in the @file{hea}
 file read by @code{osigopen}, or in the @code{bsize} field of the
 @code{WFDB_Siginfo} structure
 @iftex
@@ -3836,13 +3794,13 @@
 @c @end group
 
 @noindent
-This function returns the @dfn{skew} (as recorded in the @file{header}
+This function returns the @dfn{skew} (as recorded in the @file{hea}
 file, but in frame intervals rather than in sample intervals) of the
 specified input signal, or 0 if @var{s} is not a valid input signal
 number.  Since sample vectors returned by @code{getvec} or
 @code{getframe} are already corrected for skew, @code{wfdbgetskew} is
 useful primarily for programs that need to rewrite existing
-@file{header} files, where it is necessary to preserve the previously
+@file{hea} files, where it is necessary to preserve the previously
 recorded skews.  The following code fragment demonstrates how this can
 be done:
 
@@ -3870,7 +3828,7 @@
 Note that this function does not @emph{determine} the skew between
 signals;  the problem of doing so is not possible to solve in the
 general case.  @code{wfdbgetskew} merely reports what has previously been
-determined by other means and recorded in the @file{header} file for the input
+determined by other means and recorded in the header file for the input
 record.  (This function was first introduced in WFDB library version 9.4.)
 
 @c @group
@@ -3891,7 +3849,7 @@
 example of the use of @code{wfdbsetskew}, @pxref{wfdbgetskew}.  Note that
 @code{wfdbsetskew} has no effect on the skew correction performed by
 @code{getframe} (or @code{getvec}), which is determined solely by the
-skews that were recorded in the @file{header} file at the time the input
+skews that were recorded in the header file at the time the input
 signals were opened.  (This function was first introduced in WFDB library
 version 9.4.)
 
@@ -3918,15 +3876,15 @@
 @noindent
 This function returns the number of bytes in the @dfn{prolog} of the
 signal file that contains the specified input signal, as recorded in the
-@file{header} file.  Note that @code{wfdbgetstart} does not
+header file.  Note that @code{wfdbgetstart} does not
 @emph{determine} the length of the prolog by inspection of the signal
 file; it merely reports what has been determined by other means and
-recorded in the @file{header} file.  Since the prolog is not readable
+recorded in the @file{hea} file.  Since the prolog is not readable
 using the WFDB library, and since functions such as @code{isigopen} and
 @code{isigsettime} take the prolog into account when calculating byte
 offsets for @code{getframe} and @code{getvec}, @code{wfdbgetstart} is
 useful primarily for programs that need to rewrite existing
-@file{header} files, where it is necessary to preserve the previously
+@file{hea} files, where it is necessary to preserve the previously
 recorded byte offsets.  For an example of how this can be done,
 @pxref{wfdbgetskew}.  (This function was first introduced in WFDB library
 version 9.4.)
@@ -3951,7 +3909,7 @@
 For an example of the use of @code{wfdbsetstart}, @pxref{wfdbgetskew}.  Note
 that @code{wfdbsetstart} has no effect on the calculations of byte offsets
 within signal files as performed by @code{isigsettime}, which are
-determined solely by the contents of the @file{header} file at the time
+determined solely by the contents of the @file{hea} file at the time
 the signals were opened.  (This function was first introduced in WFDB library
 version 9.4.)
 
@@ -4132,7 +4090,7 @@
 
 @item int bsize
 @cindex block size
-the block size, in bytes.  For signal files that reside on UNIX character
+the block size, in bytes.  For signal files that reside on Unix character
 device special files (or their equivalents), the @code{bsize} field
 indicates how many bytes must be read or written at a time
 (@pxref{Special Files}).  For ordinary disk files, @code{bsize} is zero.
@@ -4184,7 +4142,7 @@
 @cindex signal file checksum
 a 16-bit checksum of all samples.  This field is not usually accessed by
 application programs; @code{newheader} records checksums calculated by
-@code{putvec} when it creates a new @file{header} file, and
+@code{putvec} when it creates a new @file{hea} file, and
 @code{getvec} compares checksums that it calculates against @code{cksum}
 at the end of the record, provided that the entire record was read
 through without skipping samples.
@@ -4270,7 +4228,6 @@
 @cindex MIT-format annotation file
 @cindex standard annotation file
 @cindex format (annotation file)
-@cindex MS-DOS file names
 @cindex information structure (annotator)
 @cindex structure (annotator information)
 
@@ -4283,22 +4240,18 @@
 @table @code
 @item char *name
 @cindex annotator name
-the annotator name.  The name @file{atruth} is reserved for a @dfn{reference
+the annotator name.  The name @file{atr} is reserved for a @dfn{reference
 annotation file} supplied by the creator of the database record to document its
 contents as accurately and thoroughly as possible.  You may use other annotator
 names to identify annotation files that you create; unless there are compelling
 reasons not to do so, follow the convention that the annotator name is the name
 of the file's creator (a program or a person).  To avoid confusion, do not use
-@samp{dat}, @samp{data@var{n}}, @samp{d@var{n}}, @samp{hea}, or @samp{header}
+@samp{dat}, @samp{data@var{n}}, @samp{d@var{n}}, or @samp{hea}
 (all of which are commonly used as parts of WFDB file names) as annotator
 names.  The special name @samp{-} refers to the standard input or output.
 Other annotator names may contain upper- or lower-case letters, digits, and
 underscores.  Annotation files are normally created in the current directory
 and found in any of the directories in the database path (@pxref{WFDB path}).
-Under MS-DOS, note that the only the first three characters of the annotator
-name are used to construct the MS-DOS file name, so be careful to keep
-annotator names distinct from each other and from commonly used MS-DOS file
-name ``extensions''.
 
 @item int stat
 @cindex WFDB_AHA_READ
@@ -4353,7 +4306,7 @@
 @cindex time of annotation
 @cindex reference point (on QRS)
 time of the annotation, in samples from the beginning of the record.
-The times of beat annotations in the @file{atruth} files for the MIT DB
+The times of beat annotations in the @file{atr} files for the MIT DB
 generally coincide with the R-wave peak in signal 0; for the AHA DB,
 they generally coincide with the PQ-junction.
 
@@ -4379,7 +4332,7 @@
 @ifinfo
 -128
 @end ifinfo
-and 127.  In MIT DB @file{atruth} files, the
+and 127.  In MIT DB @file{atr} files, the
 @code{subtyp} field is used with noise and artifact annotations to
 indicate which signals are affected (@pxref{Annotation Codes}).
 The @code{chan} field is intended to indicate the signal to which the
@@ -4398,7 +4351,7 @@
 @cindex @code{aux} string (annotation)
 a free text string.  The first byte is interpreted as an @code{unsigned
 char} that specifies the number of bytes that follow (up to 255).  In
-MIT DB @file{atruth} files, the @code{aux} field is used with rhythm
+MIT DB @file{atr} files, the @code{aux} field is used with rhythm
 change annotations to specify the new rhythm, and with comment
 annotations to store the text of the comment
 @iftex
@@ -4420,7 +4373,6 @@
 @xref{Example 3}, for a short program that examines the contents of a
 @code{WFDB_Annotation}.
 
-
 @node     Annotation Codes, Database Files, Data Types, Top
 @chapter Annotation Codes
 
@@ -4503,7 +4455,7 @@
 @cindex @code{subtyp} (in @code{NOISE} annotation)
 @cindex noisy signals (annotating)
 @item
-In MIT and ESC DB @file{atruth} files, each non-zero bit in the @code{subtyp}
+In MIT and ESC DB @file{atr} files, each non-zero bit in the @code{subtyp}
 field indicates that the corresponding signal contains noise (the least
 significant bit corresponds to signal 0).
 
@@ -4639,22 +4591,17 @@
 @code{WFDB} (@pxref{WFDB path}).
 
 Recall that a WFDB record is not a file; rather, it is an extensible
-@emph{collection} of database files (@pxref{Concepts 1, , Records}).
-Thus, for example, record 100 of the MIT-BIH Arrhythmia Database
-consists of the files named @file{100.hea}, @file{100.dat}, and
-@file{100.atr} in the @file{mitdb} directory of the MIT-BIH Arrhythmia
-Database CD-ROM (or in PhysioBank, within
+@emph{collection} of database files (@pxref{Concepts 1, , Records}).  Thus, for
+example, record 100 of the MIT-BIH Arrhythmia Database consists of the files
+named @file{100.hea}, @file{100.dat}, and @file{100.atr} in the @file{mitdb}
+directory of the MIT-BIH Arrhythmia Database CD-ROM (or in PhysioBank, within
 @code{http://@-www.@-physio@-net.@-org/@-physio@-bank/@-data@-base/@-mitdb/}),
-together with any additional files in other directories
-that you may have associated with record 100 (such as your own
-annotation file).  All files associated with a given record include the
-record name in their file names, either as the first part of the name
-(the default on writable UNIX and Macintosh file systems) or as the
-suffix or extension (on CD-ROM and MS-DOS file systems).  Applications
-that use the WFDB library under UNIX or the Macintosh OS can locate files
-named using either of these conventions.  No explicit action (other than
-choosing the file name, and locating the file in the WFDB path) is needed
-in order to associate a new file with an existing WFDB record.
+together with any additional files in other directories that you may have
+associated with record 100 (such as your own annotation file).  All files
+associated with a given record include the record name as the first part of the
+file name.  No explicit action (other than choosing the file name, and locating
+the file in the WFDB path) is needed in order to associate a new file with an
+existing WFDB record.
 
 To find the location of a database file easily, you can use @file{wfdbwhich},
 an application included with the WFDB Software Package.  Type
@@ -4691,22 +4638,19 @@
 
 @node     Header Files, Signal Files, Database Files, Database Files
 @unnumberedsubsec Header Files
-@cindex @code{header} file
+@cindex @code{hea} file
 
-@dfn{Header files} have names of the form @file{@var{record}.header} on
-writable UNIX and Macintosh file systems, where @var{record} is the
-record name.  (MIT DB records are named 100--124 and 200--234 with some
-numbers missing.  AHA DB records are named 1001--1010, 2001--2010,
-3001--3010, 4001--4010, 5001--5010, 6001--6010, 7001--7010, and
-8001--8010.  ESC DB records are named e0103--e1304, with many numbers
-missing.)  On CD-ROM and MS-DOS file systems, because of restrictions on
-the length of extensions, header files have names of the form
-@file{@var{record}.hea}.  Header files are text files, with lines
+@dfn{Header files} have names of the form @file{@var{record}.hea}, where
+@var{record} is the record name.  (MIT DB records are named 100--124 and
+200--234 with some numbers missing.  AHA DB records are named
+1001--1010, 2001--2010, 3001--3010, 4001--4010, 5001--5010, 6001--6010,
+7001--7010, and 8001--8010.  ESC DB records are named e0103--e1304, with
+many numbers missing.)  Header files are text files, with lines
 terminated by ASCII carriage-return/line-feed pairs, created by
 @code{newheader}, @code{setheader}, or @code{setmsheader}, from which
 @code{isigopen}, @code{osigopen}, and @code{wfdbinit} read the names of
 the signal files and their attributes as given in the array of
-@code{WFDB_Siginfo} objects; @code{sampfreq} also reads a @file{header}
+@code{WFDB_Siginfo} objects; @code{sampfreq} also reads a header
 file to determine the sampling frequency used for a record.
 
 @node     Signal Files, Annotation Files, Header Files, Database Files
@@ -4730,12 +4674,10 @@
 @cindex annotation file
 
 @dfn{Annotation files} have names of the form
-@file{@var{record}.@var{annotator}} (on CD-ROM and MS-DOS file systems,
-@var{annotator} is restricted to three characters).  Those named
-@file{@var{record}.atruth} (@file{@var{record}.atr}) are reference
-annotation files (assumed to be correct).  Annotation files are binary,
-and contain records of variable length that average slightly over 16
-bits per annotation.
+@file{@var{record}.@var{annotator}}.  Those named
+@file{@var{record}.atr} are reference annotation files (assumed to be
+correct).  Annotation files are binary, and contain records of variable
+length that average slightly over 16 bits per annotation.
 
 @node     Calibration Files, AHA Format Files, Annotation Files, Database Files
 @unnumberedsubsec Calibration Files
@@ -4776,12 +4718,12 @@
 loss of information, and doing so reduces the storage requirement by a
 factor of eight.
 
-Yet another format has been used more recently for distribution of AHA
-DB files on floppy diskettes.  This format is compatible with neither
-the original AHA format nor with any of the formats supported directly
-by the WFDB library.  Programs @file{a2m} and @file{ad2m}, supplied with
-the WFDB Software Package, can convert files in this format (as well as
-those in the original AHA format) to the standard formats.
+Yet another format has been used more recently for distribution of AHA DB files
+on floppy diskettes and CD-ROMs.  This format is compatible with neither the
+original AHA format nor with any of the formats supported directly by the WFDB
+library.  Programs @file{a2m} and @file{ad2m}, supplied with the WFDB Software
+Package, can convert files in this format (as well as those in the original AHA
+format) to the standard formats.
 
 @node Standard I/O, Multiplexed Signal Files, AHA Format Files, Database Files
 @section Using Standard I/O for Database Files
@@ -4789,9 +4731,9 @@
 @cindex pipes (as WFDB files)
 
 If @samp{-} is supplied as a record name to any of the functions that
-read or write @file{header} files, the @file{header} file is taken to be
+read or write header files, the @file{hea} file is taken to be
 the standard input or output, as appropriate.  If the name of a signal
-file is specified in the @file{header} file (or in the array of
+file is specified in the @file{hea} file (or in the array of
 @code{WFDB_Siginfo} objects passed to @code{osigfopen}) as @samp{-}, the
 standard input (output) is used by @code{getvec} (@code{putvec}).  If
 the name of an annotator is given in the array of @code{WFDB_Anninfo} objects
@@ -4824,12 +4766,12 @@
 (but @pxref{Multi-Frequency Records}).
 
 Multiplexed signal files can be useful if the storage device is
-sequential-access only (e.g., 9-track tape), if the storage device
-has lengthy seek times (e.g., optical disk), if many signals must
-be recorded and UNIX's per-process limit on open files would otherwise
-be exceeded, or if very high speed is required while the file is
-being created (because of sampling constraints).  CD-ROM signal files
-are multiplexed unless the record contains only one signal.
+sequential-access only (e.g., 9-track tape), if the storage device has lengthy
+seek times (e.g., optical disk), if many signals must be recorded and Unix's
+per-process limit on open files would otherwise be exceeded, or if very high
+speed is required while the file is being created (because of sampling
+constraints).  CD-ROM signal files, and those available from PhysioNet, are
+multiplexed unless the record contains only one signal.
 
 @node     Multi-Frequency Records, Multi-Segment Records, Multiplexed Signal Files, Database Files
 @section Multi-Frequency Records
@@ -4885,7 +4827,15 @@
 converts times in sample numbers into times in frame numbers before writing
 annotations into annotation files.  This permits applications that are not
 ``multi-frequency aware'' to read multi-frequency records with the highest
-possible resolution, with only a one-line change in the source.
+possible resolution.
+
+@cindex @code{WFDBGVMODE} (environment variable)
+The operating mode used by @code{getvec}, if not specified by an explicit call
+to @code{setgvmode}, is determined by the value of the environment variable
+@code{WFDBGVMODE} if it is set, and otherwise by the value of
+@code{DEFWFDBGVMODE} in @file{wfdblib.h} at the time the library was compiled..
+In either case, a value of 0 selects low-resolution mode, and any other value
+selects high-resolution mode.
 
 @node     Multi-Segment Records, Multiple Record Access, Multi-Frequency Records, Database Files
 @section Multi-Segment Records
@@ -4964,14 +4914,14 @@
 @cindex reading 9-track tape
 @cindex signal file (on tape)
 @cindex special files (as signal files)
-@cindex UNIX character devices (as signal files)
+@cindex Unix character devices (as signal files)
 @cindex writing 9-track tape
 
 The @code{fname} component of a @code{WFDB_Siginfo} object can be any
-string acceptable as a file name to your operating system.  Under UNIX,
+string acceptable as a file name to your operating system.  Under Unix,
 for example, signals can be read from (or written to) `special' files
 such as @file{/dev/rmt0} (the raw tape drive).  If I/O must be performed
-in fixed-size blocks (such as for UNIX character devices), the
+in fixed-size blocks (such as for Unix character devices), the
 @code{bsize} component of the @code{WFDB_Siginfo} object must contain the
 appropriate block size in bytes.  In such cases, the WFDB library must
 obtain (using @code{malloc} (see @cite{K&R}, page 167) an amount of
@@ -4979,10 +4929,10 @@
 opened.  For large programs running on 16-bit machines, this can cause
 problems if signal files with large block sizes are read.  (In such
 cases, @code{isigopen} or @code{osigopen} will not open the signal file
-if there is not enough memory to allocate a buffer.)  Under UNIX, if
+if there is not enough memory to allocate a buffer.)  Under Unix, if
 this problem occurs, use the ``piped records'' (@pxref{Piped and Local
 Records}) instead.  The usual method is to read or write the signal file
-using a utility such as UNIX's @code{dd} and to pipe the data to or from
+using a utility such as Unix's @code{dd} and to pipe the data to or from
 the application program.  Although this approach is flexible, there are
 a few drawbacks:
 
@@ -5002,19 +4952,20 @@
 method of operation.
 @end enumerate
 
-Several special-purpose @file{header} files allow application programs
-to read data directly from 9-track tape.  The names of most of these
-records (@file{512}, @file{1024}, @file{4096}, @file{10240}) specify the
-block size in bytes.  These use 16-bit format, 250 Hz samples, 12 bit
-ADC with zero ADC offset, two signals multiplexed into one, and data to
-be read from @file{/dev/rmt0}.  Record @file{b} uses 8-bit difference
-format, 6144 bytes/block, and is otherwise similar to the others.
-Records @file{ahatape} and @file{mittape} can be used to read or write
-an AHA-format signal file on a 9-track tape that has been positioned to
-the beginning of the correct file; the signal file for these is
-@file{/dev/nrmt0} (the non-rewinding raw tape drive).  If the tape
-density is encoded into the tape drive name on your system, additional
-@file{header} files may be needed.
+Several special-purpose header files allow application programs to read data
+directly from 9-track tape.  When the WFDB Software Package is installed, these
+files are copied into the @file{tape} subdirectory of the system-wide database
+directory.  The record names associated with most of these header files
+(@file{tape/512}, @file{tape/1024}, @file{tape/4096}, @file{tape/10240})
+specify the block size in bytes.  These use 16-bit format, 250 Hz samples, 12
+bit ADC with zero ADC offset, two signals multiplexed into one, and data to be
+read from @file{/dev/rmt0}.  Record @file{tape/6144d} uses 8-bit difference
+format, 6144 bytes/block, and is otherwise similar to the others.  Records
+@file{tape/ahatape} and @file{tape/mittape} can be used to read or write an
+AHA-format signal file on a 9-track tape that has been positioned to the
+beginning of the correct file; the signal file for these is @file{/dev/nrmt0}
+(the non-rewinding raw tape drive).  If the tape density is encoded into the
+tape drive name on your system, additional header files may be needed.
 
 @node     Piped and Local Records, NETFILES, Special Files, Database Files
 @section Piped and Local Records
@@ -5023,26 +4974,25 @@
 @cindex signal file (piped)
 @cindex standard I/O (as WFDB files)
 
-@dfn{Piped record} @file{header} files allow application programs to
-read signals from the standard input, or write them to the standard
-output.  Record @file{8} specifies 8-bit format, a 10-bit ADC, zero ADC
-offset, and two signals sampled at 250 Hz, both of which are to be
-acquired from the standard input, or written to the standard output.
-Record @file{16} specifies 16-bit format and a 12-bit ADC, and is
-otherwise identical to record @file{8}.  ADCs from several manufacturers
-can produce output in the format specified by record @file{16}; thus
-such output can be piped directly into an application program using
-record @file{16}.  Signal files in AHA format also match these
-specifications.  Piped records for reading or writing other numbers of
-signals also exist; they are named @file{8x@var{n}} and
-@file{16x@var{n}}, where @var{n} is the number of signals (@var{n} = 1,
-2, @dots{}, 16;  piped record header files can be created with larger
-numbers of signals (use the existing files as a model).
+@dfn{Piped record} header files allow application programs to read signals from
+the standard input, or write them to the standard output.  Record @file{8}
+specifies 8-bit format, a 10-bit ADC, zero ADC offset, and two signals sampled
+at 250 Hz, both of which are to be acquired from the standard input, or written
+to the standard output.  Record @file{16} specifies 16-bit format and a 12-bit
+ADC, and is otherwise identical to record @file{8}.  ADCs from several
+manufacturers can produce output in the format specified by record @file{16};
+thus such output can be piped directly into an application program using record
+@file{16}.  Signal files in AHA format also match these specifications.  Piped
+records for reading or writing other numbers of signals are provided in the
+@file{pipe} subdirectory of the system-wide database directory; they are named
+@file{pipe/8x@var{n}} and @file{pipe/16x@var{n}}, where @var{n} is the number
+of signals (@var{n} = 1, 2, @dots{}, 16; piped record header files can be
+created with larger numbers of signals (use the existing files as a model).
 
 @cindex local record
 @cindex signal file (local)
 Application programs may also read or write signal files in the current
-directory using @dfn{local record} @file{header} files.  Record
+directory using @dfn{local record} header files.  Record
 @file{16l} (``one-six-ell'') specifies up to sixteen format 16
 files, and record @file{8l} (``eight-ell'') specifies up to
 sixteen format 8 files, named @file{data0}, @file{data1},
@@ -5062,26 +5012,27 @@
 @cindex http
 @cindex ftp
 
-If the symbol @code{NETFILES} is defined at the time the WFDB library is
-compiled, then input files located on remote web (HTTP) and FTP servers
-can be read directly.  This capability is implemented using the World
-Wide Web Consortium's @code{libwww} library (which is available on many
-of the platforms supported by the WFDB library).  @code{NETFILES}
-support, if available, is transparent to WFDB applications.  To make use
-of this feature, simply link to the @code{NETFILES}-enabled WFDB library
-(the necessary @code{libwww} functions will be loaded automatically),
-and incorporate one or more URL prefixes in the WFDB path.
+If the symbol @code{WFDB_NETFILES} is defined at the time the WFDB library is
+compiled, then input files located on remote web (HTTP) and FTP servers can be
+read directly.  This capability is implemented using the World Wide Web
+Consortium's @code{libwww} library (which is available on many of the platforms
+supported by the WFDB library).  NETFILES support, if available, is transparent
+to WFDB applications.  To make use of this feature, simply link to the
+NETFILES-enabled WFDB library (the necessary @code{libwww} functions will be
+loaded automatically), and incorporate one or more URL prefixes in the WFDB
+path.
 
 @cindex PhysioBank
 In current versions of the WFDB library, the default WFDB path (defined in the
 WFDB library source file @code{wfdblib.h}, and used as the WFDB path if the
-WFDB environment variable is undefined) is
-@samp{. http://www.physio@-net.org/physio@-bank/data@-base}.  The URL prefix
-(the second component, after the @samp{.} that specifies the current directory)
-points to PhysioBank, an on-line archive for a wide variety of standard
-databases of physiologic signals.  The databases are kept in subdirectories of
-@code{http://www.physio@-net.org/physio@-bank/data@-base}.  For example, the
-MIT-BIH Polysomnographic Database is kept in
+WFDB environment variable is undefined) is @samp{. /usr/database
+http://www.physio@-net.org/physio@-bank/data@-base}.  (The second component,,
+after the @samp{.} that specifies the current directory,may vary, depending on
+your platform and the choices made during installation.)  The URL prefix (the
+third component) points to PhysioBank, an on-line archive for a wide variety of
+standard databases of physiologic signals.  The databases are kept in
+subdirectories of @code{http://www.physio@-net.org/physio@-bank/data@-base}.
+For example, the MIT-BIH Polysomnographic Database is kept in
 @code{http://www.physio@-net.org/physio@-bank/data@-base/slpdb}, so it is
 possible to read record @code{slp37} of that database directly from PhysioBank
 by passing @code{slpdb/slp37} as the @var{record} argument to @code{wfdbinit}
@@ -5089,20 +5040,20 @@
 
 Current implementations of @code{libwww} permit input from @code{http://} URLs
 in much the same way that local files are read, provided that the remote web
-server supports HTTP 1.1 range requests (most do);  this means that it is not
-necessary to download an entire file in order to examine part of it, and you
-may notice little or no speed difference between local file and network file
-input for many applications.  If the remote server does not support range
-requests, however, or if input is from an @code{ftp://} URL, the current
-implementation downloads the entire file to memory, so you may notice a
-significant startup delay if the file is long and your network connection is
-slow, or if the file does not fit into physical memory.
-
-Currently, @code{NETFILES} support is limited to input files;  as
-always, any output files created by the WFDB library are written into
-the current directory.
+server supports HTTP 1.1 range requests (most, including PhysioNet's, do).
+This means that it is not necessary to download an entire file in order to
+examine part of it, and you may notice little or no speed difference between
+local file and network file input for many applications.  If the remote server
+does not support range requests, however, or if input is from an @code{ftp://}
+URL, the current implementation downloads the entire file to memory, so you may
+notice a significant startup delay if the file is long and your network
+connection is slow, or if the file does not fit into physical memory.
+
+Currently, NETFILES support is limited to input files; as always, any output
+files created by the WFDB library are written into the current directory,
+unless the record name contains local path information.
 
-@code{NETFILES} support was introduced in WFDB library version 10.0.1.
+NETFILES support was introduced in WFDB library version 10.0.1.
 
 @node     Annotation Order, , NETFILES, Database Files
 @section Annotation Order
@@ -5123,6 +5074,8 @@
 @cindex location (of annotation)
 @cindex annotation location
 @cindex virtual array of annotations
+@cindex annotation (canonical order)
+@cindex canonical order of annotations
 The combination of the @code{time} and @code{chan} fields of an
 annotation defines a unique @dfn{location} in a virtual array of
 annotations which an annotation file represents.  No two annotations may
@@ -5162,15 +5115,16 @@
 of @code{putann}.
 
 @cindex unsorted annotation files
+@cindex @code{WFDBANNSORT} (environment variable)
 In unusual circumstances, an unsorted annotation file may be useful (for
 example, as an aid for debugging the application that produced it; @file{rdann}
 can be used to list all of the annotations in such a file, in the order in
 which they were written).  In some environments, the use of the ANSI C
 @code{system} function may be a security problem, and you may wish to avoid
 automatic sorting of annotations for this reason.  Set the environment variable
-@code{WFDBNOSORT} (to any value) at run time, or define the symbol
-@code{WFDBNOSORT} when compiling the WFDB library, if you wish to suppress
-automatic annotation sorting by @code{wfdbquit} and @code{oannclose}.
+@code{WFDBANNSORT} to 0 at run time, or define the symbol @code{DEFWFDBANNSORT}
+as 0 when compiling the WFDB library, if you wish to suppress automatic
+annotation sorting by @code{wfdbquit} and @code{oannclose}.
 
 @node Examples, Exercises, Database Files, Top
 @chapter Programming Examples
@@ -5179,7 +5133,7 @@
 The programs in this chapter are useful as models for a variety of
 applications that use the WFDB library.  The line numbers are for
 reference only; they are not part of the programs.  Any of these
-examples can be compiled (under UNIX) using a command of the form
+examples can be compiled (under Unix) using a command of the form
 @example
 cc @var{file.c} -lwfdb
 @end example
@@ -5313,7 +5267,7 @@
 @node     Example 2, Example 3, Example 1, Examples
 @unnumberedsec Example 2: An Annotation Translator
 
-This program translates the @file{atruth} annotations for the record
+This program translates the @file{atr} annotations for the record
 named in its argument into an AHA-format annotation file with the
 annotator name @file{aha}.
 
@@ -5332,8 +5286,8 @@
 @i{12}          fprintf(stderr, "usage: %s record\n", argv[0]);
 @i{13}          exit(1);
 @i{14}      @}
-@i{15}      an[0].name = "atruth"; an[0].stat = WFDB_READ;
-@i{16}      an[1].name = "aha";    an[1].stat = WFDB_AHA_WRITE;
+@i{15}      an[0].name = "atr"; an[0].stat = WFDB_READ;
+@i{16}      an[1].name = "aha"; an[1].stat = WFDB_AHA_WRITE;
 @i{17}      if (annopen(argv[1], an, 2) < 0) exit(2);
 @i{18}      while (getann(0, &annot) == 0 && putann(0, &annot) == 0)
 @i{19}          ;
@@ -5351,12 +5305,12 @@
 
 @item Lines 11--14:
 This is the standard idiom for producing those cryptic error messages
-for which UNIX programs are notorious; @code{argv[0]} is the name by
+for which Unix programs are notorious; @code{argv[0]} is the name by
 which the program was invoked.
 
 @item Lines 15--16:
 These lines set up the annotator information.  Input annotator 0 is the
-@file{atruth} annotation file, and output annotator 0 will be written
+@file{atr} annotation file, and output annotator 0 will be written
 in AHA format.
 
 @item Line 17:
@@ -5372,7 +5326,7 @@
 @item Line 21:
 Since we have carefully defined non-zero exit codes for the various
 errors that this program might encounter, we also define this
-successful exit here.  If this program is run as part of a UNIX shell
+successful exit here.  If this program is run as part of a Unix shell
 script, the exit codes are accessible to the shell, which can determine
 what to do next as a result.  If this line were omitted (as in example
 1), the exit code would be undefined.
@@ -5423,7 +5377,7 @@
 
 @item Line 20:
 This line gives the annotation time as a time of day.  If the base time
-is omitted in the @file{header} file, or if we used
+is omitted in the header file, or if we used
 @code{timstr(annot.time)} instead, we would obtain the elapsed time from
 the beginning of the record.
 
@@ -5696,12 +5650,12 @@
 for the next iteration.
 
 @item Line 32:
-This step is optional.  It creates a @file{header} file for a new record
+This step is optional.  It creates a header file for a new record
 to be called @file{dif}, which we can then open with another program if
 we want to read the signals that this program has written.  Since the
 @var{record} argument for @code{osigopen} was @file{8l}, we can also
 read these files using record @file{8l}; one reason for making a new
-@file{header} file here is that the @file{header} file for @file{8l} may
+@file{hea} file here is that the @file{hea} file for @file{8l} may
 not necessarily indicate the proper sampling frequency for these
 signals.
 
@@ -5730,7 +5684,7 @@
 which would apply a five-point moving average (rectangular window) filter
 to 20 seconds of record @file{100}, beginning 5 minutes into the record.
 The output of the program is readable as record @file{out}, for which a
-@file{header} file is created in the current directory.
+header file is created in the current directory.
 
 @example
  @i{1}  #include <stdio.h>
@@ -5879,7 +5833,7 @@
 we run out of input samples.
 
 @item Line 77:
-The program creates a @file{header} file for record @file{out}, using
+The program creates a header file for record @file{out}, using
 the signal specifications from record @file{16l} and the sampling
 frequency from the input record.
 @end table
@@ -5891,7 +5845,7 @@
 
 This program creates a new record from scratch.  It asks the user for
 information about the signals to be sampled, then records them, and
-finally creates a @file{header} file for the new record.  Details of
+finally creates a @file{hea} file for the new record.  Details of
 data acquisition are hardware-dependent and are not shown here. 
 
 @example
@@ -6017,7 +5971,7 @@
 @item Lines 14--17:
 This code uses @code{newheader} to determine if a legal record name was
 entered (since we don't want to digitize the signals and then find out
-that we can't create the @file{header} file).  The @file{header} file
+that we can't create the header file).  The header file
 created in line 17 will be overwritten in line 111.
 
 @item Lines 57--62:
@@ -6064,16 +6018,16 @@
 DMA channels or interrupts.
 
 @item Line 111:
-All of the information needed to generate the @file{header} file has been
+All of the information needed to generate the header file has been
 stored in WFDB library internal data structures by @code{osigfopen} and 
 @code{putvec};  we call @code{newheader} here (before @code{wfdbquit}) to
-create the new @file{header} file.
+create the new @file{hea} file.
 
 @item Line 112:
 It is still necessary to use @code{wfdbquit} to close the signal file(s),
 even after calling @code{newheader}.  (In fact, it would be possible,
 though not likely to be useful, to record more samples and to generate
-another @file{header} file before calling @code{wfdbquit}.)
+another header file before calling @code{wfdbquit}.)
 @end table
 
 @node     Example 9, Example 10, Example 8, Examples
@@ -6193,7 +6147,7 @@
 @item Lines 42--49:
 This code similarly determines when the averaging should stop.  Unless
 no stop time was specified on the command line and the signal length is
-not defined in the @file{header} file for the record, @code{stoptime}
+not defined in the @file{hea} file for the record, @code{stoptime}
 will have a positive value in line 49, which makes a tiny adjustment so
 that if a beat annotation occurs within 50 milliseconds of the end of the
 averaging period, the beat will not be included in the average.
@@ -6413,11 +6367,11 @@
 it.  Remember to set and export the environment variable @code{WFDB}
 (@pxref{WFDB path}).  It is a good idea to include this step in your
 @file{.profile}, @file{.cshrc}, or @file{autoexec.bat}.  As input, try
-record @file{100s}, input annotator @file{atruth}, and output annotator
+record @file{100s}, input annotator @file{atr}, and output annotator
 @file{normal}.  The program should finish in five seconds or less.
 The annotations will have been written into a file called
 @file{100s.nor} in the current directory.  Now type
-``@code{rdann -r 100s -a atruth}'' and observe the output
+``@code{rdann -r 100s -a atr}'' and observe the output
 for a few seconds, then try ``@code{rdann -r 100s -a nor}'' and notice the
 difference.
 
@@ -6504,7 +6458,7 @@
  @i{6}      WFDB_Anninfo ai;
  @i{7}      int t;
  @i{8}
- @i{9}      ai.name = "atruth";
+ @i{9}      ai.name = "atr";
 @i{10}      ai.stat = WFDB_READ;
 @i{11}      if (annopen(100, ai, 1)) @{
 @i{12}          while (getann(1, annot)) @{
@@ -6577,13 +6531,13 @@
 @code{http://www.physio@-net.org/physio@-bank/data@-base/mitdb/}.)  Read the
 documentation on the annotation comparator, @file{bxb}, and figure out how to
 use it to compare the annotation file produced by your program against the
-reference annotator @file{atruth}.  How does your detector compare to Example
+reference annotator @file{atr}.  How does your detector compare to Example
 10?
 
 @item
 If the previous exercise was too easy, modify your detector so that the
-annotations it generates match those in the @file{atruth} file.  Copying
-the @file{atruth} file is not permitted.  You may find this rather
+annotations it generates match those in the @file{atr} file.  Copying
+the @file{atr} file is not permitted.  You may find this rather
 difficult.  Good luck!
 @end enumerate
 
@@ -6650,12 +6604,12 @@
 
 @item Annotator name
 @cindex annotator name (defined)
-A name associated with an annotation file.  On writable UNIX and
+A name associated with an annotation file.  On writable Unix and
 Macintosh file systems, the annotation file name is constructed from the
 annotator name by appending a @samp{.} and the record name.  On CD-ROMs
 and MS-DOS file systems, the annotator name is restricted to three
 characters, and the annotation file name is constructed from the record
-name by appending a @samp{.} and the annotator name.  UNIX and Macintosh
+name by appending a @samp{.} and the annotator name.  Unix and Macintosh
 versions of the WFDB library can locate and read annotation files named
 using either convention.
 
@@ -6669,19 +6623,17 @@
 In this guide, a program that uses the WFDB library to do
 something.
 
-@item @file{atruth}
-@cindex @code{atruth} (defined)
-The annotator name for the reference annotation files.  On CD-ROMs and
-MS-DOS file systems, @file{atruth} is truncated within the names of the
-reference annotation files to @file{atr};  @code{annopen} accepts either
-@file{atruth} or @file{atr} as the annotator name for these files.
+@item @file{atr}
+@cindex @code{atr} (defined)
+The annotator name for the reference annotation files (originally,
+@file{atruth}, i.e., the "truth" annotations).
 
 @item Base counter value
 @cindex base counter value (defined)
 @cindex counter (base)
 The counter value (q.v.) that corresponds to sample 0.  The base
 counter value is read by @code{getbasecount}, and set by @code{setbasecount}
-(or by any of the functions that read @file{header} files).  If not
+(or by any of the functions that read header files).  If not
 defined explicitly, the base counter value is taken to be 0.
 
 @item Base time
@@ -6719,8 +6671,7 @@
 @cindex CD-ROM (defined)
 A read-only medium used for distribution of the MIT-BIH and ESC
 databases, among others.  CD-ROMs are physically identical in appearance
-to audio compact disks.  CD-ROM readers are available for most
-microcomputers and for many larger systems.
+to audio compact disks.
 
 @item Closing [a record]
 The process of completing I/O associated with a record.
@@ -6734,7 +6685,7 @@
 treated as equivalent to the sampling frequency (q.v.) by the WFDB
 library.  The counter frequency is read by @code{getcfreq},
 and set by @code{setcfreq} (or by any of the functions that read
-@file{header} files).
+header files).
 
 @item Counter value
 @cindex counter value (defined)
@@ -6747,14 +6698,16 @@
 counter values.
 
 @item Database files
-Those files (annotation files, @file{header} files, signal files, and
+Those files (annotation files, header files, signal files, and
 calibration files) that are accessed via the WFDB library.
 
 @item Database path
 @cindex database path (defined)
-The names of the directories in which @file{header}, annotation, and
-calibration files are kept.  The environment variable @code{WFDB} must be
-set by the user and exported accordingly.
+The names of the directories in which header, annotation, and calibration files
+are kept.  (Signal files may be located in these directories or elsewhere;
+header files specify their locations.)  To modify the database path, the
+environment variable @code{WFDB} must be set by the user and exported
+accordingly.
 
 @item DC-coupled signal
 @cindex DC-coupled signal (defined)
@@ -6796,14 +6749,17 @@
 signal prior to digitization.  Gain may vary between signals in a
 record.
 
-@item @file{header} file
-@cindex @code{header} file (defined)
+@item @file{hea}
+@cindex @code{hea} (defined)
+The suffix (extension) that designates a header file (originally
+@file{header}).
+
+@item header file
+@cindex header file (defined)
 A file accessible via the WFDB library that describes the signal files
-associated with a given database record.  A @file{header} file has a name of
-the form `@var{record}@code{.header}', where @var{record} is the record name
-(q.v.).  On CD-ROMs and MS-DOS file systems, @file{header} files have names of
-the form `@code{@var{record}.hea}'.  The WFDB library can locate and read
-@file{header} files named using either convention.
+associated with a given database record.  A header file has a name of
+the form `@var{record}@code{.hea}', where @var{record} is the record name
+(q.v.).
 
 @item High-resolution mode
 @cindex high-resolution mode (defined)
@@ -6815,7 +6771,7 @@
 
 @item Info string
 @cindex info string (defined)
-Free text within a @file{header} file.  Info strings can be read using
+Free text within a header file.  Info strings can be read using
 @code{getinfo} and written using @code{putinfo}.
 
 @item Local record
@@ -6824,6 +6780,24 @@
 typically used for user-created signals.  Records @file{8l} and
 @file{16l} are local records.
 
+@item Location [of an annotation]
+@cindex location (of annotations)
+@cindex annotation location (defined)
+Every annotation has both @code{time} and @code{chan} attributes that
+define its location within a virtual array of annotations.  See
+@dfn{Canonical order of annotations}.
+
+@item Canonical order of annotations
+@cindex annotation (canonical order)
+@cindex canonical order of annotations
+Normally, annotations are arranged in time order within an annotation file.
+Annotations that have identical @code{time} attributes are arranged in
+@code{chan} order.  Annotations that have identical @dfn{locations} (i.e.,
+identical @code{time} and @code{chan} attributes) should not normally occur in
+a single annotation file; if this does happen, the last annotation at any given
+location is treated as a replacement of any previous annotations at that
+location.
+
 @item Low-resolution mode
 @cindex low-resolution mode (defined)
 The default mode for reading a multi-frequency record using
@@ -6840,7 +6814,7 @@
 @item MIT format
 @cindex MIT format (defined)
 The standard format for storage of WFDB records on CD-ROMs, used on the
-MIT, ESC, and MGH DB CD-ROMs, among others.
+MIT, ESC, and MGH DB CD-ROMs, among others, and on PhysioNet.
 
 @item Modification label
 @cindex modification label (defined)
@@ -6874,7 +6848,7 @@
 (single-segment) records.  Multi-segment records do not have their own
 signal files (the signal files of their constituent segments are read
 when it is necessary to read signals of multi-segment records), but they
-have their own @file{header} files (created using @code{setmsheader}),
+have their own header files (created using @code{setmsheader}),
 and may have their own annotation files as well (annotation files for
 the constituent segments of a multi-segment record are @emph{not}
 concatenated automatically when the record is read).  The WFDB Software
@@ -6893,7 +6867,7 @@
 WFDB files made available by an FTP or HTTP (web) server;  readable
 by applications linked with a NETFILES-enabled WFDB library.  A
 NETFILES-enabled WFDB library can be created by compiling the WFDB
-library sources with the symbol @code{NETFILES} defined (to anything;
+library sources with the symbol @code{WFDB_NETFILES} defined (to anything;
 its value is not important, only that it is defined) and then linking
 them with the @code{libwww} library available from the World Wide Web
 Consortium (@code{http://www.w3.org/Library/}).
@@ -6928,14 +6902,24 @@
 normally zero physical units.  For example, physical zero for a pressure
 signal with units of mmHg is 0 mmHg.
 
+@item PhysioNet
+@cindex PhysioNet
+The home of the WFDB library, and a source for recorded physiologic signals and
+software for use with them.  All materials on PhysioNet are freely available.
+The main PhysioNet server is @code{http://www.@-physio@-net.@-org/}, located at
+MIT in Cambridge, Massachusetts; PhysioNet mirror sites are located around the
+world (see @@code{http://www.@-physio@-net.@-org/@-mirrors/} for a list).
+
 @item Piped record
 @cindex piped record (defined)
 A database record for which a signal file is designated as @file{-},
 signifying that it is to be read from the standard input or written to
 the standard output.  Records @file{8} and @file{16} are piped
-records.
+records, as are those defined within the @file{pipe} subdirectory of
+the system-wide database directory (q.v.)
 
 @item Prolog
+@cindex prolog (defined)
 @cindex byte offset
 @cindex cruft (in signal files)
 @cindex prolog (in signal files)
@@ -6946,17 +6930,17 @@
 prologs.  To read such a signal file using the WFDB library, provided that
 the sample data are in a supported format, it is sufficient to record the
 length of the prolog (in bytes) in the appropriate locations in a
-@file{header} file that names the signal file.  If you need to create
-such a @file{header} file, refer to the description of the byte offset
-field in @cite{header(5)} (the specification of the @file{header} file
+header file that names the signal file.  If you need to create
+such a header file, refer to the description of the byte offset
+field in @cite{header(5)} (the specification of the header file
 format in the @cite{WFDB Applications Guide}, or
 @pxref{wfdbsetstart}.
 
 @item Record
 @cindex record (defined)
 An extensible set of files that may include signal files, annotation
-files, and a @file{header} file, all of which are associated with the
-same original signals.  Only the @file{header} file is mandatory.
+files, and a header file, all of which are associated with the
+same original signals.  Only the header file is mandatory.
 Although records are sometimes called tapes for historical reasons,
 records are now more commonly maintained on CD-ROMs or magnetic disks
 than on tape.
@@ -6977,7 +6961,7 @@
 @cindex reference annotation file (defined)
 An annotation file supplied by the creator of a record to document its
 contents as accurately and thoroughly as possible.  The annotator name
-@file{atruth} is reserved for reference annotation files.
+@file{atr} is reserved for reference annotation files.
 
 @item Sample
 @cindex sample (defined)
@@ -7039,7 +7023,7 @@
 order beginning with 0.
 
 @item Skew
-@cindex skew
+@cindex skew (defined)
 @cindex intersignal skew
 The time difference between samples having the same sample number but
 belonging to different signals.  Ideally the skew is zero (or less than
@@ -7048,10 +7032,10 @@
 small differences in the azimuth of the recording and playback heads may
 result in measurable skew among signals.  If the skew can be measured
 (for example, by reference to features of two signals with a known time
-difference), it can be recorded in the @file{header} file for a record;
+difference), it can be recorded in the header file for a record;
 once this has been done, @code{getvec} and @code{getframe} correct for
 skew automatically.  If you need to correct for skew, see
-@cite{skewedit(1)} and @cite{header(1)} (in the @cite{WFDB
+@cite{skewedit(1)} and @cite{header(5)} (in the @cite{WFDB
 Applications Guide}), or @pxref{wfdbsetskew}.  Prospectively, if you
 anticipate that skew may be a problem, it is a good idea to apply an
 easily identifiable synchronization pulse to all your inputs
@@ -7068,6 +7052,20 @@
 (@pxref{timstr and strtim}).
 @end ifinfo
 
+@item System-wide database directory
+@cindex system-wide database directory (defined)
+@cindex WFDB path
+@cindex database path
+The directory that contains local copies of the default WFDB calibration file,
+WFDB sample record @code{100s}, and local, piped, and tape header files.
+This directory is created when the WFDB Software Package is installed, and
+by default it is included in the WFDB path (as the second component, following
+the user's current directory).  It is called the ``system-wide'' database
+directory because it is shared by all users of the system on which it resides.
+Under Unix, the system-wide database directory is usually @file{/usr/database}
+or @file{/usr/local/database};  under MS-DOS or MS-Windows, it is usually
+@file{c:\database}.
+
 @item Tape
 @cindex tape (defined)
 A database record.
@@ -7081,81 +7079,61 @@
 @item WFDB library
 A set of functions (subroutines), able to read and write database files,
 callable by C and C++ programs, and described in this guide.
+
+@item WFDB path
+The database path (q.v.).
 @end table
 
 @node     Installation, WFDB Applications, Glossary, Top
 @appendix Installing the WFDB Software Package
 
+This appendix briefly describes how to install the WFDB Software Package
+on a new system.  The package includes C-language sources for the WFDB
+library and for a variety of applications (@pxref{WFDB Applications}),
+@TeX{} source for this manual, @code{troff} source for Unix @code{man}
+pages for the package, and a one-minute sample record (@samp{100s}).
+
 @menu
 * Distribution::	How to obtain the latest version of the WFDB
 			Software Package.
-* UNIX installation::	Installing the WFDB Software Package on UNIX,
+* Unix installation::	Installing the WFDB Software Package on Unix,
 			GNU/Linux, and similar systems.
-* MS-DOS installation::	Installing the WFDB Software Package on MS-DOS PCs.
+* MS-Windows installation::	Installing the WFDB Software Package on
+                                MS-Windows PCs.
 * Other installation::	Installing the WFDB Software Package on other systems.
 @end menu
 
-@node Distribution, UNIX installation, Installation, Installation
+@node Distribution, Unix installation, Installation, Installation
 @unnumberedsec How to obtain the WFDB Software Package
 
-This appendix briefly describes how to install the WFDB Software Package
-on a new system.  The package includes C-language sources for the WFDB
-library and for a variety of applications (@pxref{WFDB Applications}),
-@TeX{} source for this manual, @code{troff} source for UNIX @code{man}
-pages for the package, and a one-minute sample record (@samp{100s}).
-Except for UNIX-specific and MS-DOS-specific visualization programs and
-an MS-DOS-specific digitization/replay program, all of the software is
-portable between UNIX and MS-DOS, and is usable under VMS and on the
-Macintosh with only minor modifications.
-
 The latest version of the WFDB Software Package can always be downloaded in
 source form from PhysioNet and its mirrors (see
 @code{http://www.physio@-net.org/physio@-tools/wfdb.shtml}); binaries for
-popular operating systems and development snapshots are also usually available
-for downloading there.  For information on obtaining the latest version of the
-WFDB Software Package on CD-ROM, @pxref{Sources}.
-
-The WFDB Software Package is recommended to all who are able to use it, since
-it is freely available in source form and is actively maintained.  The
-predecessor of the WFDB Software Package (the DB Software Package) was included
-in source form in the second and third editions of the MIT-BIH Arrhythmia
-Database CD-ROM, and parts of it have been included on several other CD-ROMs
-that contain databases of ECGs and other signals, including the first edition
-of the MIT-BIH Arrhythmia Database CD-ROM, both editions of the European ST-T
-Database CD-ROM and the MIT-BIH Polysomnographic Database CD-ROM, and on the
-MGH/Marquette Foundation Waveform Database CD-ROMs (@pxref{Sources}).  If you
-have one of these CD-ROMs and you cannot upgrade to the WFDB Software Package,
-see the files @file{readme.doc} (in the root directory of the CD-ROM) and
-@file{lib.doc} (in the @file{lib} directory), or @file{README.TXT} (in the
-@file{software} directory).
+popular operating systems and development snapshots, as well as quick-start
+guides including installation notes for popular operating systems, are also
+usually available there.
 
-@node UNIX installation, MS-DOS installation, Distribution, Installation
-@unnumberedsec UNIX, GNU/Linux, and similar operating systems
+@node Unix installation, MS-Windows installation, Distribution, Installation
+@unnumberedsec Unix, GNU/Linux, and similar operating systems
 
 Before beginning the installation of the WFDB Software Package, obtain and
 install the @code{libwww} package from @code{http://www.w3.org/Library/} or
-from @code{http://www.physionet.org/physiotools/libwww/}.  This package is
-provided with most current versions of GNU/Linux.  (If you have a program
+from @code{http://@-www.physio@-net.org/physio@-tools/libwww/}.  This package
+is provided with most current versions of GNU/Linux.  (If you have a program
 called @code{libwww-config}, then @code{libwww} is installed already.)  You may
 omit this step if you do not wish to have NETFILES support.
 
-Also obtain and install the @code{XView} software from
-@code{http://www.physio@-net.org/physio@-tools/xview/}.  Sources are available,
-as are binaries for several versions of GNU/Linux.  If you are using SunOS or
-Solaris, XView binaries are available in the Open Look Software Development
-package and may be installed already.  (If you have a program called
-@code{textedit}, then @code{XView} is installed already.) If you are able to
-use an existing set of binaries, these are recommended, since the sources may
-take a @emph{long} time to compile.  Be sure that the directory containing
-@code{textedit}, usually @code{/usr/openwin/bin}, is in your @code{PATH}.  You
-may omit this step if you do not wish to use @emph{WAVE}.
-
-Select an existing directory in a writable file system for the WFDB Software
-Package installation; @file{/usr/local/src} is a good choice in most cases.
-Make sure that at least 6 megabytes are available;  most of this space can be
-recovered after the installation is complete. [Obviously, this was written
-in ancient times -- the early 1990s -- when 6 Mb was still enough space for
-most computer users to notice!]
+Also download and install the @code{XView} software from
+@code{http://www.physio@-net.org/physio@-tools/xview/} if you wish to use
+@emph{WAVE}.  Sources are available, as are binaries for several versions of
+GNU/Linux.  If you are using SunOS or Solaris, XView binaries are available in
+the Open Look Software Development package and may be installed already.  (If
+you have a program called @code{textedit}, then @code{XView} is installed
+already.) If you are able to use an existing set of binaries, these are
+recommended, since the sources may take a @emph{long} time to compile.  Be sure
+that the directory containing @code{textedit}, usually @code{/usr/openwin/bin},
+is in your @code{PATH}.  You may omit this step if you do not wish to use
+@emph{WAVE}.
 
 If you have downloaded the software from PhysioNet or another source, you
 will have a @code{gzip}-compressed @code{tar} archive.  Unpack it using
@@ -7171,48 +7149,96 @@
 
 This will create a directory with a name of the form @code{wfdb-}@var{m.n.r},
 where @var{m.n.r} is the version number of the included WFDB library (e.g.,
-@code{10.2.0}).  Enter this directory.
+@code{10.2.1}).  Enter this directory.
 
-If you are installing the software from a CD-ROM, copy the contents of the
-@file{src/wfdb} directory to your writable file system and then enter that
-directory.  One way to do this is to change to the @file{src} directory on the
-CD-ROM and then to type:
+You should now be ready to configure, compile, and install the software, using
+the commands:
 
 @example
-tar cfv - wfdb | ( cd /usr/local/src; tar xfv - )
-cd wfdb
+./configure
+make install
 @end example
 
-In either case, you should now be ready to configure, compile, and install
-the software, using the commands:
+The @code{./configure} command asks where you wish to install the package.
+If you accept the default (@code{/usr}), you will need root permissions when
+runnning @code{make install}.  If you choose another location, follow the
+instructions given by @code{configure} for setting your @code{PATH} and
+@code{LD\_LIBRARY\_PATH} environment variables.
+
+Depending on the speed of your system and of your C compiler, @samp{make} will
+generally require between 1 and 10 minutes.
+
+@node MS-Windows installation, Other installation, Unix installation, Installation
+@unnumberedsec MS-Windows
+
+If you have not already done so, install the Cygwin development environment
+(freely available from @code{http://sources.redhat.com/cygwin/}).  This
+includes @code{gcc} (the GNU C/C++ compiler) as well as a comprehensive
+assortment of other Unix utilities ported to MS-Windows.  Accept the defaults
+suggested by the installer.
+
+@emph{Important:} Although you may be able to compile the WFDB software package
+using a proprietary compiler, this is \emph{not supported}.  The
+@code{Makefile.dos} files in several of the subdirectories of the package's
+source tree can be used with the @code{make} utilities provided with most
+commercial C compilers, although you will need to customize them for your
+compiler. Your feedback is appreciated.
+
+Before beginning the installation of the WFDB Software Package, obtain and
+install the @code{libwww} package from @code{http://www.w3.org/Library/} or
+from @code{http://@-www.physio@-net.org/physio@-tools/libwww/}.  You may
+omit this step if you do not wish to have NETFILES support.
+
+Download
+@code{http://www.physio@-net.org/physio@-tools/binaries/win@-dows/bin/which.exe}
+and put it into a directory in your PATH.  (This utility is needed by
+@code{configure} in a later step.  The sources for @code{which.exe} are
+available within @code{http://www.physio@-net.org/physio@-tools/util@-ities/}.)
+
+Open a Cygwin terminal window (the Cygwin installer will have added this to
+your MS-Windows start menu).  Perform the remaining steps by typing the
+commands given below into the terminal window.
+
+Check that @code{which} and @code{gcc} are accessible by typing the command:
 
 @example
-./configure
-make install
+which gcc
 @end example
 
-The @code{make} command requires root permissions, and installs the package
-in subdirectories of @code{/usr}.  If you do not have root permissions,
-you may install the package in any writable directory by adding an
-appropriate option to the @code{make} command above:
+The output of this command should be:
 
 @example
-make install WFDBROOT=@var{/path/to/another/directory}
+/usr/bin/gcc
 @end example
 
-Note that in this case you will need to add @var{WFDBROOT}@code{/bin}
-to your @code{PATH}, and @var{WFDBROOT}@code{/lib} to your
-@code{LD_LIBRARY_PATH}.
+If you don't see this output, repeat the steps above as necessary to correct
+the problem before continuing.
 
-Depending on the speed of your system and of your C compiler, @samp{make} will
-generally require between 1 and 10 minutes.
+Unpack the @code{gzip}-compressed @code{tar} archive you downloaded earlier,
+using the @code{tar} command included with the Cygwin package:
+
+@example
+tar xfvz wfdb.tar.gz
+@end example
 
-@node MS-DOS installation, Other installation, UNIX installation, Installation
-@unnumberedsec MS-DOS and MS-Windows
+If your browser decompressed the file during the download, use this command
+instead:
+
+@example
+tar xfv wfdb.tar
+@end example
 
-Install your C compiler if you have not already done so, and make sure that
-your hard disk has at least 6 megabytes of free space remaining.  (Most of
-this space can be reclaimed after the installation is complete.)
+This will create a directory with a name of the form @code{wfdb-}@emph{m.n.r},
+where @emph{m.n.r} is the version number of the included WFDB library (e.g.,
+@code{10.2.1}).  Enter this directory.
+
+You should now be ready to configure, compile, and install the software, using
+the commands:
+
+@example
+./configure
+make install
+@end example
 
 If you have Microsoft or Turbo C or C++, and a Microstar Laboratories DAP 1200-
 or 2400-series analog interface board, you can instruct the @file{install}
@@ -7221,45 +7247,32 @@
 successfully, you must first have installed the Microstar @file{#include} files
 and DAP interface library on your system.  Specifically, files @file{c_lib.c},
 @file{clock.h}, and @file{ioutil.h} must be installed in your @file{include}
-directory, and file @file{cdapl.lib} must be installed in a directory in which
-libraries are found by your linker.  (If you are using Microsoft C, copy
-@file{cdapl5.lib} from the Microstar distribution diskettes into your library
-directory, and rename it @file{cdapl.lib}.)
-
-If you have downloaded the @code{gzip}-compressed @code{tar} archive of WFDB
-sources, rename it if necessary (your browser may have changed its name to
-@code{wfdb_tar.gz};  its name must be @code{wfdb.tar.gz} in order to be
-unpacked successfully).  Either GNU/Cygnus @code{gzip} and @code{tar}, other
-versions of these utilities, or WinZip can be used to unpack the source
-archive.
+directory, and the version of the file @file{cdapl.lib} that is compatible with
+your compiler must be installed in a directory in which libraries are found by
+your linker.  Read and customize @code{lib/Makefile.dos} and {\tt
+app/Makefile.dos} as appropriate for your compiler, and use your compiler's
+@code{make} utility to generate @code{wfdb.lib} and then @code{sample.exe}.
 
-If you are installing the software from a CD-ROM, copy the contents of the
-@code{wfdb} directory to a writable directory on your hard drive.
 
-Enter the directory containing the sources and run @code{install} to compile
-and install the WFDB Software Package.
-
-@node Other installation, , MS-DOS installation, Installation
+@node Other installation, , MS-Windows installation, Installation
 @unnumberedsec Other systems
 
-If you are installing the software from a CD-ROM, copy the contents of
-the @file{wfdb} directory to your hard disk.  Note that the text files
-are in UNIX format (i.e., lines are terminated by ASCII line-feed
-characters only).  If your system expects text files in MS-DOS format
-(with both a carriage return and a line-feed at the end of each line;
-VMS is one such system), use @file{u2d.exe} (available from PhysioNet or
-on the CD-ROM) to reformat the text files under MS-DOS.  If your system
-is a Macintosh (which expects that lines are terminated by carriage
-returns only), you will have to reformat the text files yourself, which
-may be done under MS-DOS on a PC using @file{u2m.exe}, or on a Macintosh
-using third-party software.  Additional notes for Macintosh users may be
-found in file @file{MAC} (within the @file{wfdb} directory).
+Copy the contents of @code{http://www.@-physio.@-net/physio@-tools/wfdb/} to
+your hard disk.  Note that the text files are in Unix format (i.e., lines are
+terminated by ASCII line-feed characters only).  If your system expects text
+files in MS-DOS format (with both a carriage return and a line-feed at the end
+of each line; VMS is one such system), use @file{u2d.exe} (available from
+PhysioNet) to reformat the text files under MS-DOS.  If your
+system is a Macintosh (which expects that lines are terminated by carriage
+returns only), you will have to reformat the text files yourself, which may be
+done under MS-DOS on a PC using @file{u2m.exe}, or on a Macintosh using
+third-party software.
 
 The WFDB Software Package is written in highly portable C, and (with the
-exception of a few MS-DOS or UNIX-specific display or data-acquisition
+exception of a few MS-DOS or Unix-specific display or data-acquisition
 programs) should be easy to compile with any K&R or ANSI C compiler.
-The UNIX and MS-DOS @file{make} description files (@file{makefile.unx}
-and @file{makefile.dos} in @file{wfdb} and in each of its subdirectories)
+The Unix and MS-DOS @file{make} description files (@file{Makefile}
+and @file{Makefile.dos} in @file{wfdb} and in each of its subdirectories)
 should get you started.
 
 @node     WFDB Applications, Extensions, Installation, Top
@@ -7269,7 +7282,7 @@
 included with the WFDB Software Package.  Except where noted otherwise,
 these applications are usable on all systems for which the WFDB library is
 available.  For details on using these programs, refer to the @cite{WFDB
-Applications Guide}.  (On UNIX systems, the contents of the
+Applications Guide}.  (On Unix systems, the contents of the
 @cite{Applications Guide} may also be available as on-line @code{man}
 pages.)
 
@@ -7505,8 +7518,9 @@
 option.  The output of @file{rdsamp}, or any similar text, can be
 converted into a WFDB record using @file{wrsamp}.
 
-To copy an excerpt of a longer record, use @file{snip}, which creates new
-@file{header} and signal files for @var{new-record} in the current directory.
+To copy an excerpt of a longer record, use @file{snip}, which creates
+new
+header and signal files for @var{new-record} in the current directory.
 The beginning and end of the excerpt are specified using @samp{-f} and
 @samp{-t} options as for @file{rdsamp}.  Annotator names may follow a @samp{-a}
 option; in this case excerpts from the specified annotation files are copied as
@@ -7514,7 +7528,7 @@
 
 @file{xform} is a more general version of @file{snip}; its main uses are for
 reformatting, rescaling, and sampling rate conversion.  You may create a
-@file{header} file specifying the desired format, sampling frequency, ADC zero
+@file{hea} file specifying the desired format, sampling frequency, ADC zero
 levels, signal gains, etc., and supply it to @file{xform} using the @samp{-o}
 option; if you do not do so, @file{xform} obtains the required information
 interactively.  @file{xform} accepts all of the options used by @file{snip},
@@ -7550,7 +7564,7 @@
 gains and offsets if your signals include standard calibration pulses or
 identifiable signal levels. @file{calsig} incorporates two
 independent algorithms for measuring calibration pulses; it rewrites
-@file{header} files based on its measurements.
+header files based on its measurements.
 
 @node     Graphics, , Signal processing, WFDB Applications
 @unnumberedsec Graphical Applications
@@ -7568,7 +7582,7 @@
 @file{wave} is an X Window System client application for viewing
 and editing WFDB records.  (@file{wave} is not included in the WFDB software
 package, but is available separately; @pxref{Sources}.)  @file{wave} can be
-run on UNIX systems, and can be accessed remotely using networked PCs or
+run on Unix systems, and can be accessed remotely using networked PCs or
 other systems for which X11 servers are available.  Run @file{wave}
 without any arguments to obtain instructions for printing its on-line
 manual.
@@ -7620,7 +7634,7 @@
 system's @file{include} directory after installing the modified WFDB
 library.
 
-The cleanest mechanism for adding additional fields to @file{header} files is
+The cleanest mechanism for adding additional fields to @file{hea} files is
 to include them in `info' strings
 @iftex
 (@pxref{getinfo, , @code{getinfo}}),
@@ -7628,7 +7642,7 @@
 @ifinfo
 (@pxref{getinfo}),
 @end ifinfo
-rather than by modifying the code that reads and writes @file{header}
+rather than by modifying the code that reads and writes @file{hea}
 files (in @file{signal.c}).
 
 A common problem is the need to import signal files generated by other
@@ -7658,22 +7672,22 @@
 encoding.  If you wish to implement variable-length encoding, it may be
 easiest to implement an indexed-search method for @code{isgsettime} in
 such cases.)  If the ADC resolution exceeds the number of bits in a C
-@code{int} on your system, change the @code{typedef} for @samp{Sample}
+@code{int} on your system, change the @code{typedef} for @samp{WFDB_Sample}
 in @file{<wfdb/wfdb.h>} as necessary;  be aware that this change is likely
 to require additional changes to application programs (use @file{lint}
 or an ANSI C compiler to check your code).
 
-Although the WFDB library generally assumes that signal files are ``pure'',
-it is possible to read imported signal files that contain prologs
-(data that precede the first sample).  To do so, you must construct a
-@file{header} file in which the @code{format} fields encode the length
-of the prolog in bytes.  For example, a signal file with a 512-byte
-prolog followed by format 16 samples would be specified using @samp{16+512}
-in the @code{format} field or fields (if the file contains more than one
-signal, the @code{format} fields for all signals in the file must be
-identical).  Note that this facility is provided only for signal file
-import;  the WFDB library is not equipped to create signal files with
-embedded prologs.
+Although the WFDB library generally assumes that signal files are ``pure'', it
+is possible to read imported signal files that contain prologs (data that
+precede the first sample).  To do so, you must construct a header file in which
+the @code{format} fields encode the length of the prolog in bytes (you can do
+this manually, or use @code{wfdbsetstart}, @pxref{wfdbsetstart}, for this
+purpose).  For example, a signal file with a 512-byte prolog followed by format
+16 samples would be specified using @samp{16+512} in the @code{format} field or
+fields (if the file contains more than one signal, the @code{format} fields for
+all signals in the file must be identical).  Note that this facility is
+provided only for signal file import; the WFDB library is not equipped to
+create signal files with embedded prologs.
 
 In a similar fashion, though with substantially more effort in most
 cases, you may define a new format for annotation files.  Add additional
@@ -7740,14 +7754,15 @@
 contained within @file{wfdbio.c}; it is unlikely that any other code will
 require changes for a port.
 
-If you encounter errors while compiling @file{signal.c}, you may wish to
-try using the functions provided in that file as alternatives to the
-standard macros @code{r16} and @code{w16}; the fully-expanded versions
-of these macros are quite complex and are known to cause difficulty for
-at least one C compiler.  (Define the symbol @samp{BROKEN_CC} while compiling
-@file{signal.c} in order to obtain the function versions of @code{r16}
-and @code{w16}.)  While compiling @file{signal.c}, it may be necessary
-to disable code optimization for some C compilers.
+If you encounter errors while compiling @file{signal.c}, you may wish to try
+using the functions provided in that file as alternatives to the standard
+macros @code{r16} and @code{w16}; the fully-expanded versions of these macros
+are quite complex and are known to cause difficulty for at least one (now
+obsolete) C compiler.  (Define the symbol @samp{BROKEN_CC} while compiling
+@file{signal.c} in order to obtain the function versions of @code{r16} and
+@code{w16}.)  While compiling @file{signal.c}, it may be necessary to disable
+code optimization for some C compilers;  no current compilers are known to
+have such limitations, however.
 
 @node     Sources, Answers, Extensions, Top
 @appendix Sources
@@ -7853,7 +7868,7 @@
 @itemx @ @ @ Results of Cardiac Rhythm and ST Segment Measurement Algorithms
 @display
 Association for the Advancement of Medical Instrumentation
-3330 Washington Boulevard, Suite 400
+1110 N Glebe Road, Suite 220
 Arlington, VA 22201 USA
 
 WWW: @code{http://www.aami.org/}
@@ -7892,7 +7907,6 @@
 telefax: +1 732 981 9667
 @end display
 
-@sp 1
 @cindex GNU emacs
 @item GNU emacs
 @itemx gcc (the GNU portable C/C++ compiler)
@@ -7922,7 +7936,7 @@
 software.
 
 @sp 1
-@item @TeX{} for UNIX systems
+@item @TeX{} for Unix systems
 
 This software is available by anonymous FTP from CTAN (Comprehensive TeX
 Archive Network) mirrors, including @code{ftp.tex.ac.uk}, @code{ftp.dante.de},
@@ -7930,11 +7944,13 @@
 @TeX{}, etc. available.  CTAN is indexed on the World Wide Web (one such index
 is @file{http://ctan.tug.org/ctan/}).
 
-The UNIX @TeX{} distribution is also distributed on CD-ROM and in other tape
+The Unix @TeX{} distribution is also distributed on CD-ROM and in other tape
 formats by the Free Software Foundation (address above) and others.  It is
 also included with most GNU/Linux distributions (see below).
 
-Several commercial implementations of @TeX{} for MS-DOS are widely available.
+Several commercial implementations of @TeX{} for MS-DOS, MS-Windows, and MacOS
+are widely available;  visit the web site of the @TeX{} Users Group (below) for
+pointers.
 
 @sp 1
 @item General information on @TeX{}
@@ -7969,12 +7985,14 @@
 ftp.x.org and other archive sites.  X11R6 sources are also available
 on CD-ROM from the Free Software Foundation (address above).
 
+Sources for XView are also available from PhysioNet.
+
 @sp 1
 @cindex GNU/Linux
 @cindex Linux
 @item GNU/Linux
 
-GNU/Linux is a POSIX-compliant reimplementation of the UNIX operating system,
+GNU/Linux is a POSIX-compliant reimplementation of the Unix operating system,
 written by Linus Torvalds and a cast of thousands.  It runs on Intel 386,
 486, and Pentium PCs, among others.  For information about GNU/Linux, visit
 the web site of the Linux Documentation Project:
@@ -7990,8 +8008,8 @@
 ftp.funet.fi
 @end display
 
-There are also many low-cost (typically US$10 to US$30) distributions of
-GNU/Linux on CD-ROMs widely available.  Among the more popular are:
+Many low-cost (typically US$10 to US$30) distributions of GNU/Linux on CD-ROMs
+are widely available.  Among the more popular are:
 
 @display
 Caldera Systems, Inc.
@@ -8036,39 +8054,55 @@
 @end display
 
 @sp 1
+@item Compilers and software development systems
+
+Any ANSI/ISO C compiler (or any K&R C compiler, if you still have one)
+can be used to compile the WFDB library and applications that use it.
+Under Unix and GNU/Linux, high-quality free compilers and development
+tools are universally available and taken for granted.  Even if you must
+work in the MS-Windows or MS-DOS environment, however, there is no
+reason to purchase expensive, bloated, and inferior proprietary
+compilers and software development systems, since there are several
+excellent, highly recommended, and completely free alternatives based
+on the GNU C/C++ compiler (gcc).
+
+Using any of these packages does not limit you to creating free (open
+source) software, although you are certainly encouraged to do so.  If you
+wish to develop and sell proprietary software using @code{gcc}, this is
+certainly possible, with fewer and less severe restrictions than you
+will encounter if using a commercial compiler.
+
 @cindex Cygwin
 @item Cygwin
 
 WWW: @code{http://source.redhat.com/cygwin/}
 
-This is a free software development platform for MS-Windows 9x/NT/2000/ME/XP,
-based on GNU @code{gcc} and a large set of UNIX utilities ported by Cygnus
-Software (now part of Red Hat, see above).  Cygwin itself is open-source
-software and is highly recommended in preference to commercial C/C++ compilers
-if you must work in the MS-Windows environment.  The WFDB Software Package
-binaries available via PhysioNet are created using Cygwin.
-
-@item Borland C++
-@itemx Turbo C/C++
-@display
-Inprise Corporation
-100 Enterprise Way
-Scotts Valley, CA 95066 USA
-
-WWW: @code{http://www.borland.com/}
-telephone: +1 408 431 1000
-@end display
-
-@sp 1
-@item Microsoft C/C++
-@display
-Microsoft Corporation
-One Microsoft Way
-Redmond, WA 98052 USA
-
-WWW: @code{http://www.microsoft.com/}
-telephone: +1 425 882 8080
-@end display
+This is a freely available software development platform for MS-Windows
+9x/NT/2000/ME/XP, based on GNU @code{gcc} and a large set of Unix
+utilities developed by the GNU project and ported to MS-Windows by
+Cygnus Software (now part of Red Hat, see above).  Cygwin itself is
+open-source software and is highly recommended in preference to
+commercial C/C++ compilers if you must work in the MS-Windows
+environment.  The WFDB Software Package binaries available via PhysioNet
+are created using Cygwin.
+
+@cindex MinGW
+@item MinGW
+
+WWW: @code{http://www.mingw.org/}
+
+This is another freely available software development platform for
+MS-Windows, also based on @code{gcc} and many of the same utilities as
+Cygwin.
+
+@cindex djgpp
+@item djgpp
+
+WWW: @code{http://www.delorie.com/djgpp/}
+
+A freely available software development platform for MS-DOS, including
+@code{gcc}, a free 32-bit DOS extender, and many of the same utilties
+as Cygwin and MinGW.
 
 @sp 1
 @item Microstar DAP analog interface boards for PCs
@@ -8151,7 +8185,7 @@
 one-fifth.
 
 @item 8.
-On a UNIX system that supports the @samp{graph} and @samp{plot}
+On a Unix system that supports the @samp{graph} and @samp{plot}
 commands, a simple solution is to write the sample numbers and values on
 the standard output in two-column ASCII format.  The plotting is then
 performed by the pipeline:
@@ -8218,7 +8252,7 @@
 @ifinfo
 WFDB Programmer's Guide
 
-Tenth Edition (revised and with additions for WFDB library version 10.2.0)
+Tenth Edition (revised and with additions for WFDB library version 10.2.1)
 
 George B. Moody
 
diff -Naur wfdb-10.2.0/doc/dfa.1 wfdb-10.2.1/doc/dfa.1
--- wfdb-10.2.0/doc/dfa.1	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/doc/dfa.1	Sun Nov 11 21:28:36 2001
@@ -0,0 +1,80 @@
+.TH DFA 1 "11 November 2001" "DFA 4.2" "Time Series Analysis"
+.SH NAME
+dfa \- Detrended fluctuation analysis
+.SH SYNOPSIS
+\fBdfa\fR  [ \fIoption\fR ... ]
+.SH DESCRIPTION
+.PP
+The method of detrended fluctuation analysis (DFA) has proven useful in
+revealing the extent of long-range correlations in seemingly irregular
+time series. 
+.PP
+Briefly, the time series to be analyzed is first integrated.  Next,
+the integrated time series is divided into boxes of equal length,
+\fIn\fR. In each box of length \fIn\fR, a least squares line (or
+polynomial curve of order \fIk\fR) is fit to the data (representing
+the trend in that box).  Next, we detrend the integrated time series
+by subtracting the local trend in each box. The root-mean-square
+fluctuation of this integrated and detrended time series is calculated
+and denoted as \fIF(n)\fR.
+.PP
+This computation is repeated over all time scales (box sizes), from
+\fIn = minbox\fR to \fIn = maxbox\fR, to characterize the relationship
+between \fIF(n)\fR, the average fluctuation, and \fIn\fR, the box size.
+Typically, \fIF(n)\fR will increase with box size \fIn\fR.  A linear
+relationship on a log-log plot indicates the presence of power law
+(fractal) scaling.  Under such conditions, the fluctuations can be
+characterized by a scaling exponent, i.e., the slope of the line
+relating \fIlog[F(n)]\fR to \fIlog[n]\fR.
+.PP
+This program performs detrended fluctuation analysis on a sequence of data
+read from the standard input (which should contain a single column of numbers
+in text format).  The standard output contains two columns of numbers, which
+are the base 10 logarithms of \fIn\fR and \fIF(n)\fR.  Note that \fBdfa\fR
+does \fInot\fR compute a scaling exponent;  to do so, fit the output to
+a line and measure its slope.
+.PP
+\fIOptions\fR may include:
+.TP
+\fB-d\fI k\fR
+Detrend the data using a polynomial of degree \fIk\fR (1: linear, 2: quadratic,
+etc.).  Default: \fIk\fR = 1 (linear detrending).
+.TP
+\fB-h\fR
+Print a usage summary and exit.
+.TP
+\fB-i\fR
+Do not integrate the input series.  Use this option if the input series is
+already integrated (for example, if it represents times of occurrence rather
+than intervals).
+.TP
+\fB-l\fI minbox\fR
+Set the smallest box width.  The default, and the minimum allowed value for
+\fIminbox\fR, is \fI2k + 2\fR (where \fIk\fR is determined by the \fB-d\fR
+option, see above).
+.TP
+\fB-s\fR
+Perform a sliding window DFA (measure the fluctuations using all possible
+boxes at each box size).  By default, fluctuations are measured using
+non-overlapping boxes only.  Using the \fB-s\fR option will make the
+calculation much slower.
+.TP
+\fB-u\fI maxbox\fR
+Set the largest box width.  The default, and the maximum allowed value for
+\fImaxbox\fR, is one-fourth the length of the input series.
+.SH SEE ALSO
+.PP
+The DFA method was first proposed in Peng C-K, Buldyrev SV,
+Havlin S, Simons M, Stanley HE, Goldberger AL. Mosaic organization of
+DNA nucleotides. \fIPhys Rev E\fR 1994;\fB49\fR:1685-1689.
+.PP
+A detailed description of the algorithm and its application to
+physiologic signals can be found in Peng C-K, Havlin S, Stanley HE,
+Goldberger AL. Quantification of scaling exponents and crossover
+phenomena in nonstationary heartbeat time series.
+\fIChaos\fR 1995;\fB5\fR:82-87.
+.SH AUTHORS
+JE Mietus (joe at physionet dot org), C-K Peng, and GB Moody, based on C-K Peng's
+original Fortran implementation.
+.SH SOURCE
+http://www.physionet.org/physiotools/dfa/dfa.c
diff -Naur wfdb-10.2.0/doc/epic.1 wfdb-10.2.1/doc/epic.1
--- wfdb-10.2.0/doc/epic.1	Mon Feb  7 10:39:45 2000
+++ wfdb-10.2.1/doc/epic.1	Wed Nov  7 10:51:23 2001
@@ -1,4 +1,4 @@
-.TH EPIC 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH EPIC 1 "7 November 2001" "WFDB software 10.0" "WFDB applications"
 .SH NAME
 epic \- ANSI/AAMI-standard episode-by-episode annotation comparator
 .SH SYNOPSIS
@@ -155,8 +155,8 @@
 \fIEvaluating ECG Analyzers\fR (in the \fIWFDB Applications Guide\fR)
 .br
 \fIAmerican National Standard ANSI/AAMI EC38:1998, Ambulatory
-Electrocardiographs\fR;  available from AAMI, 3330 Washington Blvd.,
-Suite 400, Arlington, VA 22201 USA (http://www.aami.org/).
+Electrocardiographs\fR;  available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/eval.tex wfdb-10.2.1/doc/eval.tex
--- wfdb-10.2.0/doc/eval.tex	Mon Oct 15 17:45:07 2001
+++ wfdb-10.2.1/doc/eval.tex	Wed Nov  7 10:50:50 2001
@@ -9,7 +9,7 @@
 \date{}
 
 \begin{document}
-\setcounter{page}{113}
+\setcounter{page}{118}
 
 \maketitle
 
@@ -21,14 +21,15 @@
 Electrocardiographs} (ANSI/AAMI EC38:1998, and its predecessor,
 ANSI/AAMI EC38:1994), and the {\em American National Standard for
 Testing and Reporting Performance Results of Cardiac Rhythm and ST
-Segment Measurement Algorithms} (ANSI/AAMI EC57:1998).  They include earlier
-evaluation protocols developed for an AAMI Recommended Practice,
-{\em Testing and Reporting Performance Results of Ventricular Arrhythmia
-Detection Algorithms} (AAMI ECAR, 1987).  It will be most useful
-to readers who plan to use the suite of evaluation software included
-in the WFDB Software Package available from MIT;  this suite of software
-includes the reference implementations of the evaluation protocols
-specified in EC38 and EC57.
+Segment Measurement Algorithms} (ANSI/AAMI EC57:1998).  They include
+earlier evaluation protocols developed for an AAMI Recommended
+Practice, {\em Testing and Reporting Performance Results of
+Ventricular Arrhythmia Detection Algorithms} (AAMI ECAR, 1987).  It
+will be most useful to readers who plan to use the suite of evaluation
+software included in the WFDB Software Package ({\tt
+http://www.\-physio\-net.\-org/\-physio\-tools\-wfdb.\-shtml}); this
+suite of software includes the reference implementations of the
+evaluation protocols specified in EC38 and EC57.
 
 \section{Introduction}
 Continuous monitoring of the electrocardiogram in both inpatients and
@@ -106,13 +107,14 @@
 certainty the effects of algorithm modifications on performance.
 \end{itemize}
 
-At present, the following ECG databases are available:\footnote{Sources:
-ECRI, 5200 Butler Pike, Plymouth Meeting, PA 19462 USA (AHA DB); MIT-BIH
-Database Distribution, MIT Room E25-505A, 77 Massachusetts Avenue, Cambridge,
-MA 02139 USA (MIT, NST, and CU databases).  The ESC DB is available
-from: CNR Institute of Clinical Physiology, Computer Laboratory,
-via Trieste, 41, 56100 Pisa, Italy.  Except for the AHA DB,
-all are available in CD-ROM format.}
+Standards EC38 and EC57 require the use of the following ECG
+databases:\footnote{Sources: ECRI, 5200 Butler Pike, Plymouth Meeting,
+PA 19462 USA (AHA DB); MIT-BIH Database Distribution, MIT Room
+E25-505A, 77 Massachusetts Avenue, Cambridge, MA 02139 USA (MIT, NST,
+and CU databases); CNR Institute of Clinical Physiology, Computer
+Laboratory, via Trieste, 41, 56100 Pisa, Italy (ESC DB).  Except for
+the AHA DB, all are available in whole or in part from PhysioNet
+({\tt http://www.\-physio\-net.\-org/}).}
 \begin{itemize}
    \item {\bf AHA DB}: The American Heart Association Database for
 Evaluation of Ventricular Arrhythmia Detectors (80 records, 35 minutes
@@ -125,11 +127,10 @@
 Database (90 records, two hours each)
 
    \item {\bf NST DB}: The Noise Stress Test Database (12 records, 30
-minutes each; supplied with the MIT DB)
+minutes each)
 
    \item {\bf CU DB}: The Creighton University Sustained Ventricular
-Arrhythmia Database (35 records, 8 minutes each; supplied on the
-second edition of the MIT DB CD-ROM)
+Arrhythmia Database (35 records, 8 minutes each)
 
 \end{itemize}
 Each of these databases represents a very substantial effort by many
@@ -159,7 +160,7 @@
 AAMI Recommended Practice.\footnote{{\it Testing and Reporting
 Performance Results of Ventricular Arrhythmia Detection
 Algorithms}. Publication AAMI ECAR (1987); succeeded by ANSI/AAMI
-EC57:1998, available from AAMI, 3330 Washington Boulevard, Suite 400,
+EC57:1998, available from AAMI, 1110 N Glebe Road, Suite 220,
 Arlington, VA 22201 USA.}  Between 1990 and 1998, the ambulatory ECG
 subcommittee of the AAMI ECG committee developed and revised a
 standard for ambulatory ECG monitors, significant portions of which
@@ -199,12 +200,12 @@
 incorporate the necessary ``hooks'' for producing annotation files.
 
 \subsection{Software to Support Evaluations}
-This paper describes a suite of programs that support evaluations
-of automated ECG analyzers in accordance with the methods described in
-the EC38 and EC57 standards (as well as those in the earlier ECAR Recommended
-Practice).  These methods are sufficiently complex that the
-development of such a suite of programs is not an afternoon's work.
-By making generally available reference implementations of the
+This paper describes a suite of programs that support evaluations of
+automated ECG analyzers in accordance with the methods described in
+the EC38 and EC57 standards (as well as those in the earlier ECAR
+Recommended Practice).  These methods are sufficiently complex that
+the development of such a suite of programs is not an afternoon's
+work.  By making generally available reference implementations of the
 evaluation algorithms, much needless duplication of effort may be
 avoided.  By circulating them in source form to other users, we may
 hope to find and correct any bugs, with the eventual result that
@@ -213,11 +214,8 @@
 ambiguities in the English specification of the evaluation algorithms
 are resolved in a consistent manner for each device tested.  These
 programs are written in C and run under MS-DOS or UNIX.  They have
-been made available as part of the WFDB Software Package
-from MIT\footnote{Source: MIT-BIH Database Distribution
-(address above).} and are included in the current edition of the
-MIT-BIH Arrhythmia Database CD-ROM.  In this paper, the names of these
-programs are printed {\tt like this}.
+been made available as part of the WFDB Software Package.  In this
+paper, the names of these programs are printed {\tt like this}.
 
 \section{Evaluating an ECG Analyzer}
 The major task facing an evaluator is that of presenting the reference signals
@@ -320,7 +318,7 @@
 annotations, but any beat annotations that they do produce will be translated
 into one of these types.  The standard specifies the mapping used for the
 {\tt anntyp} values defined in {\tt <wfdb/ecgcodes.h>}. (This file is
-supplied with all of the existing CD-ROM databases.)  Any beat annotations that
+included in the WFDB Software Package.)  Any beat annotations that
 appear in the first five minutes of a record (the ``learning period'') are
 ignored in the evaluation process.  The remainder of the record (the ``test
 period'') must be fully annotated.  Note in particular that the last beat of
@@ -352,7 +350,7 @@
 always begin with a byte that specifies the number of data bytes that follow;
 in this case, the five characters ({\tt ( A F I B}) of the string.  The end of
 each episode should be marked with any other rhythm annotation (for example,
-``{\tt (N}'').
+\verb|"\02(N"|).
 
    \item {\em Heart rate measurements}.  Each type of heart rate measurement
 (including any heart rate or RR interval variability measurements) made by the
@@ -361,14 +359,15 @@
 measurement, with ${\tt subtyp} = m$ and with the measurement in the {\tt aux}
 field, as an ASCII-coded decimal number.
 
-   \item {\em ST deviation measurements}.  If available, these should be
-provided in the {\tt aux} fields of beat annotations, as ASCII-coded decimal
-numbers indicating the deviations in microvolts from reference levels
-established for each signal from the first 30 seconds of each record.  For
-example, ``25 -104'' indicates a 25 $\mu$V elevation in signal 0 and a 104
-$\mu$V depression in signal 1.  If ST measurements are omitted from any beat
-annotation, the evaluation software assumes they are unchanged from their
-previous values.
+   \item {\em ST deviation measurements}.  If available, these should
+be provided in the {\tt aux} fields of beat annotations, as
+ASCII-coded decimal numbers indicating the deviations in microvolts
+from reference levels established for each signal from the first 30
+seconds of each record.  For example, ``{\tt 25 -104}'' indicates a 25
+$\mu$V elevation in signal 0 and a 104 $\mu$V depression in signal 1.
+If ST measurements are omitted from any beat annotation, the
+evaluation software assumes they are unchanged from their previous
+values.
 
    \item {\em Ischemic ST change annotations}.  These {\tt STCH} annotations
 should mark the beginning and end of each detected episode of ischemic ST
@@ -382,6 +381,12 @@
 optionally be marked with an ``{\tt AST}{\it nsm}'' annotation, where {\it n}
 and {\it s} are defined as above, and {\it m} is the ST deviation in
 microvolts, relative to a reference level established as above.
+
+   \item {\em Comment annotations}.  Annotations with {\tt anntyp = NOTE}
+and any desired string data in {\tt aux} may be included anywhere in
+an annotation file.  {\tt NOTE} annotations are ignored by the
+standard evaluation software;  they may be used, for example, to
+record the values of internal algorithm variables for debugging purposes.
 \end{itemize}
 Note that only beat annotations are absolutely required in test annotation
 files.  ST deviation measurements within beat annotations, and the other
@@ -649,17 +654,17 @@
 \appendix
 \section{Using the AHA Database}
 
-Since the AHA DB is not available in CD-ROM format, the WFDB Software
-Package includes a pair of programs that convert files read from AHA
-DB distribution tapes or floppy disks into files formatted in the same
-way as those in the CD-ROM databases.  {\tt a2m} converts AHA
-annotation files, and {\tt ad2m} converts AHA signal files and also
-generates header ({\tt *.hea}) files.  (Run these programs without
-command-line arguments to obtain instructions on their use.)  Using
-{\tt a2m} and {\tt ad2m}, all 80 AHA DB records can be stored in
-roughly 130 Mb of disk space (assuming use of the standard 35-minute
-records).  These programs can also reformat old (pre-1989) MIT DB
-tapes written in the AHA DB distribution format.
+Since the AHA DB is not available in the standard PhysioBank format
+used by all of the other databases, the WFDB Software Package includes
+a pair of programs that convert files read from AHA DB distribution
+tapes or floppy disks into files in PhysioBank format.  {\tt a2m}
+converts AHA annotation files, and {\tt ad2m} converts AHA signal
+files and also generates header ({\tt *.hea}) files.  (Run these
+programs without command-line arguments to obtain instructions on
+their use.)  Using {\tt a2m} and {\tt ad2m}, all 80 AHA DB records can
+be stored in roughly 130 Mb of disk space (assuming use of the
+standard 35-minute records).  These programs can also reformat old
+(pre-1989) MIT DB tapes written in the AHA DB distribution format.
 
 It is also possible to read and write AHA tape-format files directly using
 the WFDB library;  refer to the {\it WFDB Programmer's Guide}
@@ -736,5 +741,6 @@
 change these parameters, simply edit the protocol annotation file
 (using, for example, {\tt rdann} to convert it to text form, any text
 editor to make the modifications, and {\tt wrann} to convert it back
-to annotation file format).
+to annotation file format), then rerun {\tt nst} using the protocol
+file to generate a new record.
 \end{document}
diff -Naur wfdb-10.2.0/doc/hrfft.1 wfdb-10.2.1/doc/hrfft.1
--- wfdb-10.2.0/doc/hrfft.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/hrfft.1	Fri Oct 26 14:10:08 2001
@@ -1,4 +1,4 @@
-.TH HRFFT 1 "11 January 2000" "PSD Estimation" "Signal processing"
+.TH HRFFT 1 "26 October 2001" "PSD Estimation" "Signal processing"
 .SH NAME
 hrfft, hrlomb, hrmem \- calculate and plot heart rate power spectra
 .br
@@ -40,8 +40,7 @@
 \fB-p \fIplot-utility\fR
 Use the specified \fIplot-utility\fR to generate the output (default: the
 value of the environment variable \fBPLOT\fR, if set, or
-\fI/usr/local/bin/plt\fR, if it exists, or \fI/usr/local/bin/plot2d\fR
-otherwise). 
+\fIplt\fR, if it exists, or \fIplot2d\fR otherwise). 
 .TP
 \fB-r \fIrecord\fR
 Produce a heart rate power spectrum for the specified \fIrecord\fR (default:
@@ -67,7 +66,8 @@
 length.
 .PP
 Note that these shell scripts can be run under MS-DOS using a suitable set
-of UNIX-like utilities, such as the MKS Toolkit or the GNUish MS-DOS utilities.
+of UNIX-like utilities, such as the MKS Toolkit or the GNUish MS-DOS utilities,
+and under MS-Windows using the free Cygwin package.
 .SH SEE ALSO
 fft(1), ihr(1), lomb(1), memse(1), plot2d(1), tach(1)
 .SH AUTHOR
diff -Naur wfdb-10.2.0/doc/ihr.1 wfdb-10.2.1/doc/ihr.1
--- wfdb-10.2.0/doc/ihr.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/ihr.1	Tue Oct 16 22:59:35 2001
@@ -1,4 +1,4 @@
-.TH IHR 1 "11 January 2000" "WFDB software 10.1" "WFDB applications"
+.TH IHR 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 ihr \- calculate instantaneous heart rate
 .SH SYNOPSIS
@@ -41,7 +41,7 @@
 a third column is used to flag these intervals as abnormal (a zero in the
 third column means the interval is normal, a one means it is abnormal).
 .PP
-Reference (`atruth') annotation files can be used as input to \fIihr\fR,
+Reference (`atr') annotation files can be used as input to \fIihr\fR,
 but files that contain manually-inserted annotations are less suitable,
 since annotation placement is likely to be less consistent than in annotation
 files generated by programs such as \fIsqrs\fR(1). 
diff -Naur wfdb-10.2.0/doc/install.tex wfdb-10.2.1/doc/install.tex
--- wfdb-10.2.0/doc/install.tex	Thu Sep  6 15:35:27 2001
+++ wfdb-10.2.1/doc/install.tex	Wed Nov  7 16:00:18 2001
@@ -9,7 +9,7 @@
 \date{}
 
 \begin{document}
-\setcounter{page}{109}
+\setcounter{page}{115}
 
 \maketitle
 
@@ -20,57 +20,33 @@
 {\tt troff} sources for this and other manuals; and a one-minute sample record
 ({\tt 100s}).
 
-These notes are included here for those who may not have ready access to the
-World Wide Web.  For those who do, please visit PhysioNet, where quick-start
-guides including installation notes for popular operating systems are available
-(see {\tt http://www.physio\-net.org/physio\-tools/wfdb.shtml}
-
 \section*{Obtaining the WFDB Software Package}
 The latest version of the WFDB Software Package can always be downloaded in
-source form from PhysioNet and its mirrors (see
-{\tt http://www.physio\-net.org/physio\-tools/wfdb.shtml}); binaries for
-popular operating systems and development snapshots are also usually available
-for downloading there.  For information on obtaining the latest version of the
-WFDB Software Package on CD-ROM, {\tt Sources}.
-
-The WFDB Software Package is recommended to all who are able to use it, since
-it is freely available in source form and is actively maintained.  The
-predecessor of the WFDB Software Package (the DB Software Package) was included
-in source form in the second and third editions of the MIT-BIH Arrhythmia
-Database CD-ROM, and parts of it have been included on several other CD-ROMs
-that contain databases of ECGs and other signals, including the first edition
-of the MIT-BIH Arrhythmia Database CD-ROM, both editions of the European ST-T
-Database CD-ROM and the MIT-BIH Polysomnographic Database CD-ROM, and on the
-MGH/Marquette Foundation Waveform Database CD-ROMs ({\tt Sources}).  If you
-have one of these CD-ROMs and you cannot upgrade to the WFDB Software Package,
-see the files {\tt readme.doc} (in the root directory of the CD-ROM) and
-{\tt lib.doc} (in the {\tt lib} directory), or {\tt README.TXT} (in the
-{\tt software} directory).
+source form from PhysioNet and its mirrors (see {\tt
+http://www.physio\-net.org/physio\-tools/wfdb.shtml}); binaries for popular
+operating systems and development snapshots, as well as quick-start guides
+including installation notes for popular operating systems, are also usually
+available there.
 
-\subsection*{UNIX, Linux, and similar operating systems}
+\subsection*{UNIX, GNU/Linux, and similar operating systems}
 
 Before beginning the installation of the WFDB Software Package, obtain and
-install the {\tt libwww} package from {\tt http://www.w3.org/Library/} or
-from {\tt http://\-www.physio\-net.org/physio\-tools/libwww/}.  This package is
-provided with most current versions of Linux.  (If you have a program called
-{\tt libwww-config}, then {\tt libwww} is installed already.)  You may
+install the {\tt libwww} package from {\tt http://www.w3.org/Library/} or from
+{\tt http://\-www.physio\-net.org/physio\-tools/libwww/}.  This package is
+provided with most current versions of GNU/Linux.  (If you have a program
+called {\tt libwww-config}, then {\tt libwww} is installed already.)  You may
 omit this step if you do not wish to have NETFILES support.
 
 Also download and install the {\tt XView} software packages from {\tt
 http://www.\-physio\-net.org/\-physio\-tools/xview/} if you wish to use WAVE.
-Sources are available, as are binaries for several versions of Linux.  If you
-are using SunOS or Solaris, XView binaries are available in the Open Look
+Sources are available, as are binaries for several versions of GNU/Linux.  If
+you are using SunOS or Solaris, XView binaries are available in the Open Look
 Software Development package and may be installed already.  (If you have a
 program called {\tt textedit}, then {\tt XView} is installed already.) If you
 are able to use an existing set of binaries, these are recommended, since the
 sources may take a {\em long} time to compile.  Be sure that the directory
-containing {\tt textedit}, usually {\tt /usr/openwin/bin}, is in your
-{\tt PATH}.  You may omit this step if you do not wish to use {\em WAVE}.
-
-Select an existing directory in a writable file system for the WFDB Software
-Package installation; {\tt /usr/local/src} is a good choice in most cases.
-Make sure that at least 6 megabytes are available (most of this space can be
-recovered after the installation is complete).
+containing {\tt textedit}, usually {\tt /usr/openwin/bin}, is in your {\tt
+PATH}.  You may omit this step if you do not wish to use {\em WAVE}.
 
 If you have downloaded the software from PhysioNet or another source, you
 will have a {\tt gzip}-compressed {\tt tar} archive.  Unpack it using
@@ -81,43 +57,26 @@
 tar xfv wfdb.tar
 \end{verbatim}
 
-(If you have GNU {\tt tar}, as on Linux, you can combine these into a
+(If you have GNU {\tt tar}, as on GNU/Linux, you can combine these into a
 single command: {\tt tar xfvz wfdb.tar.gz}.)
 
 This will create a directory with a name of the form {\tt wfdb-}{\em m.n.r},
 where {\em m.n.r} is the version number of the included WFDB library (e.g.,
-{\tt 10.2.0}).  Enter this directory.
-
-If you are installing the software from a CD-ROM, copy the contents of the
-{\tt src/wfdb} directory to your writable file system and then enter that
-directory.  One way to do this is to change to the {\tt src} directory on the
-CD-ROM and then to type:
+{\tt 10.2.1}).  Enter this directory.
 
-\begin{verbatim}
-tar cfv - wfdb | ( cd /usr/local/src; tar xfv - )
-cd wfdb
-\end{verbatim}
-
-In either case, you should now be ready to configure, compile, and install
-the software, using the commands:
+You should now be ready to configure, compile, and install the software, using
+the commands:
 
 \begin{verbatim}
 ./configure
 make install
 \end{verbatim}
 
-The {\tt make} command requires root permissions, and installs the package
-in subdirectories of {\tt /usr}.  If you do not have root permissions,
-you may install the package in any writable directory by adding an
-appropriate option to the {\tt make} command above:
-
-\begin{verbatim}
-make install WFDBROOT={\em /path/to/another/directory}
-\end{verbatim}
-
-Note that in this case you will need to add {\em WFDBROOT}{\tt /bin}
-to your {\tt PATH}, and {\em WFDBROOT}{\tt /lib} to your
-{\tt LD\_LIBRARY\_PATH}.
+The {\tt ./configure} command asks where you wish to install the package.
+If you accept the default ({\tt /usr}), you will need root permissions when
+runnning {\tt make install}.  If you choose another location, follow the
+instructions given by {\tt configure} for setting your {\tt PATH} and
+{\tt LD\_LIBRARY\_PATH} environment variables.
 
 Depending on the speed of your system and of your C compiler, {\tt make} will
 generally require between 1 and 10 minutes.
@@ -130,8 +89,8 @@
 other Unix utilities ported to MS-Windows.  Accept the defaults suggested by
 the installer.
 
-{\emph Important:} Although you may be able to compile the WFDB software
-package using a proprietary compiler, this is {\emph not supported}.  The
+\emph{Important:} Although you may be able to compile the WFDB software
+package using a proprietary compiler, this is \emph{not supported}.  The
 {\tt Makefile.dos} files in several of the subdirectories of the package's
 source tree can be used with the {\tt make} utilities provided with most
 commercial C compilers, although you will need to customize them for your
@@ -164,11 +123,10 @@
 /usr/bin/gcc
 \end{verbatim}
 
-If you don't see this output, repeat steps 1 and 2 above as necessary to
-correct the problem before continuing.
+If you don't see this output, repeat the steps above as necessary to correct
+the problem before continuing.
 
-If you have downloaded the WFDB software package from PhysioNet or another
-source, you will have a {\tt gzip}-compressed {\tt tar} archive.  Unpack it
+Unpack the {\tt gzip}-compressed {\tt tar} archive you downloaded earlier,
 using the {\tt tar} command included with the Cygwin package:
 
 \begin{verbatim}
@@ -186,18 +144,8 @@
 where {\em m.n.r} is the version number of the included WFDB library (e.g.,
 {\tt 10.2.0}).  Enter this directory.
 
-If you are installing the software from a CD-ROM, copy the contents of the
-{\tt src/wfdb} directory to your writable file system and then enter that
-directory.  One way to do this is to change to the {\tt src} directory on the
-CD-ROM and then to type:
-
-\begin{verbatim}
-tar cfv - wfdb | ( cd c:/usr/local/src; tar xfv - )
-cd wfdb
-\end{verbatim}
-
-In either case, you should now be ready to configure, compile, and install
-the software, using the commands:
+You should now be ready to configure, compile, and install the software, using
+the commands:
 
 \begin{verbatim}
 ./configure
@@ -219,22 +167,21 @@
 
 \subsection*{Other systems}
 
-If you are installing the software from a CD-ROM, copy the contents of the
-{\tt wfdb} directory to your hard disk.  Note that the text files are in
-UNIX format (i.e., lines are terminated by ASCII line-feed characters only).
-If your system expects text files in MS-DOS format (with both a carriage return
-and a line-feed at the end of each line; VMS is one such system), use
-{\tt u2d.exe} (available from PhysioNet or on the CD-ROM) to reformat the
-text files under MS-DOS.  If your system is a Macintosh (which expects that
-lines are terminated by carriage returns only), you will have to reformat the
-text files yourself, which may be done under MS-DOS a PC using {\tt u2m.exe},
-or on a Macintosh using third-party software.  Additional notes for Macintosh
-users may be found in file {\tt MAC} (within the {\tt wfdb} directory).
+Copy the contents of {\tt http://www.\-physio.\-net/physio\-tools/wfdb/} to
+your hard disk.  Note that the text files are in UNIX format (i.e., lines are
+terminated by ASCII line-feed characters only).  If your system expects text
+files in MS-DOS format (with both a carriage return and a line-feed at the end
+of each line; VMS is one such system), use {\tt u2d.exe} (available from
+PhysioNet) to reformat the text files under MS-DOS.  If your system is a
+Macintosh (which expects that lines are terminated by carriage returns only),
+you will have to reformat the text files yourself, which may be done under
+MS-DOS on a PC using {\tt u2m.exe}, or on a Macintosh using third-party
+software.
 
 The WFDB Software Package is written in highly portable C, and (with the
 exception of a few MS-DOS or UNIX-specific display or data-acquisition
 programs) should be easy to compile with any K\&R or ANSI C compiler.
-The UNIX and MS-DOS {\tt make} description files ({\tt makefile.unx}
-and {\tt makefile.dos} in {\tt wfdb} and in each of its subdirectories)
+The UNIX and MS-DOS {\tt make} description files ({\tt Makefile}
+and {\tt Makefile.dos} in {\tt wfdb} and in each of its subdirectories)
 should get you started.
 \end{document}
diff -Naur wfdb-10.2.0/doc/intro.ht0 wfdb-10.2.1/doc/intro.ht0
--- wfdb-10.2.0/doc/intro.ht0	Thu Jun 24 11:38:29 1999
+++ wfdb-10.2.1/doc/intro.ht0	Tue Oct 16 22:53:00 2001
@@ -44,21 +44,18 @@
 names begin with lowercase `<TT>e</TT>', followed by a 4-digit number.
 Record names may contain letters, digits, and underscores.  Case is
 significant in record names that contain letters, even in environments
-such as MS-DOS for which case translation is normally performed by the
+such as MS-Windows for which case translation is normally performed by the
 operating system on file names; thus `<TT>e0104</TT>' is the name of a record
-found in the European ST-T Database, whereas `<TT>E0104</TT>' is not.  Under
-MS-DOS, furthermore, only the first eight characters of a record name
-are significant. A record name is <STRONG>not</STRONG> a file name.  See the
+found in the European ST-T Database, whereas `<TT>E0104</TT>' is not.
+A record name is <STRONG>not</STRONG> a file name.  See the
 <A HREF="../dbpg/dbpg.htm"><I>WFDB Programmer's Guide</I></A> for
 further details on record names.
 
 <DT><I>annotator</I>
 <DD>Where this appears, substitute an annotator name.  The annotator name
-`<TT>atruth</TT>' (shortened to `<TT>atr</TT>' under MS-DOS and on CD-ROMs)
-is used to name the set of <I>reference annotations</I> supplied by the
-database developers.  Annotator names may contain letters, digits, and
-underscores, as for record names.  Note that, under MS-DOS, only the first
-three characters of an annotator name are significant.
+`<TT>atr</TT>' is used to name the set of <I>reference annotations</I>
+supplied by the database developers.  Annotator names may contain letters,
+digits, and underscores, as for record names.
 
 <DT><I>time</I>
 <DD>Where this appears, substitute a string in <I>standard time format</I>.
@@ -98,6 +95,6 @@
 welcome.  Please send them to:
 <P><I><ADDRESS>
 <A HREF="mailto:george@mit.edu">George B. Moody (<tt>george@mit.edu</tt>)</A></ADDRESS></I><BR>
-20 May 1999
+16 October 2001
 </BODY>
 </HTML>
diff -Naur wfdb-10.2.0/doc/mxm.1 wfdb-10.2.1/doc/mxm.1
--- wfdb-10.2.0/doc/mxm.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/mxm.1	Wed Nov  7 10:50:22 2001
@@ -1,4 +1,4 @@
-.TH MXM 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH MXM 1 "7 November 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 mxm \- ANSI/AAMI-standard measurement-by-measurement annotation comparator
 .SH SYNOPSIS
@@ -91,8 +91,8 @@
 \fIEvaluating ECG Analyzers\fR (in the \fIWFDB Applications Guide\fR)
 .br
 \fIAmerican National Standard ANSI/AAMI EC38:1998, Ambulatory
-Electrocardiographs\fR;  available from AAMI, 3330 Washington Blvd.,
-Suite 400, Arlington, VA 22201 USA (http://www.aami.org/).
+Electrocardiographs\fR;  available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/nst.1 wfdb-10.2.1/doc/nst.1
--- wfdb-10.2.0/doc/nst.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/nst.1	Tue Oct 16 22:58:47 2001
@@ -1,5 +1,5 @@
 '\" t
-.TH NST 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH NST 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 nst \- noise stress test for ECG analysis programs
 .SH SYNOPSIS
@@ -14,7 +14,7 @@
 .TP
 \fB-a\fI annotator\fR
 Use \fIannotator\fR as the reference annotator for the clean record.
-If the \fB-a\fR option is omitted, \fIatruth\fR is used as the reference
+If the \fB-a\fR option is omitted, \fIatr\fR is used as the reference
 annotator.  Reference annotations are used to determine the signal size as
 part of the noise level calibration, unless the \fB-p\fR option (see below) is
 used.  Reference annotations are also copied to the output record.
diff -Naur wfdb-10.2.0/doc/plot2d.1 wfdb-10.2.1/doc/plot2d.1
--- wfdb-10.2.0/doc/plot2d.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/plot2d.1	Fri Oct 26 14:16:25 2001
@@ -7,13 +7,13 @@
 \fBplot3d\fR [ \fIinput-file\fR ] [ [ \fIxcol ycol\fR ] \fIzcol\fR ] [ \fIoptions ...\fR ]
 .SH DESCRIPTION
 .PP
-These UNIX shell scripts can be used to produce simple 2-D and 3-D plots using
-\fIgnuplot\fR(1) in batch (non-interactive) mode.  \fIplot2d\fR was designed
-as a portable, quick-and-dirty replacement for Paul Albrecht's elegant but
-unsupported \fIplt\fR;  \fIplot2d\fR accepts a few of the most commonly-used
-\fIplt\fR options and produces similar plots.  \fIplot3d\fR uses the same
-syntax as \fIplot2d\fR, but it produces simple 3-D plots (a capability not
-offered by \fIplt\fR).
+These UNIX shell scripts can be used to produce simple 2-D and 3-D
+plots using \fIgnuplot\fR(1) in batch (non-interactive) mode.
+\fIplot2d\fR was designed as a quick-and-dirty replacement for
+\fIplt\fR (http://www.physionet.org/physiotools/plt/). \fIplot2d\fR
+accepts a few of the most commonly-used \fIplt\fR options and produces
+similar plots.  \fIplot3d\fR uses the same syntax as \fIplot2d\fR, but
+it produces simple 3-D plots (a capability not offered by \fIplt\fR).
 .PP
 The \fIinput-file\fR should contain one or more space- or tab-separated columns
 of data per line, with each point on a line.  Omit the \fIinput-file\fR
@@ -83,7 +83,7 @@
 choosing different columns.  To plot the third column vs. the first, try:
     \fBplot2d powers 2 0 -t "Marshmallows" -x "Mass (kg)" -y "Height (m)"\fR
 .SH SEE ALSO
-\fIgnuplot\fR(1)
+\fIgnuplot\fR(1), \fIplt\fR(1)
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCES
diff -Naur wfdb-10.2.0/doc/plotstm.1 wfdb-10.2.1/doc/plotstm.1
--- wfdb-10.2.0/doc/plotstm.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/plotstm.1	Wed Nov  7 10:49:35 2001
@@ -1,4 +1,4 @@
-.TH PLOTSTM 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH PLOTSTM 1 "7 November 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 plotstm \- produce scatter plot of ST measurement errors on a PostScript device
 .SH SYNOPSIS
@@ -7,13 +7,22 @@
 .PP
 \fIplotstm\fR reads a file of ST measurement errors produced by \fIepic\fR(1)
 using its \fB-S\fR, \fB-S0\fR, or \fB-S1\fR option, and generates a PostScript
-page description for a scatter plot of these data, as specified by a draft
-AAMI standard for ambulatory ECGs.  The standard output of \fIplotstm\fR may
-be printed directly on any PostScript device.
+page description for a scatter plot of these data, as specified by ANSI/AAMI
+EC38 and ANSI/AAMI EC57.  The standard output of \fIplotstm\fR may be printed
+directly on any PostScript device.
 .SH SEE ALSO
 ecgeval(1), epic(1)
 .br
 \fIEvaluating ECG Analyzers\fR
+.br
+\fIAmerican National Standard ANSI/AAMI EC38:1998, Ambulatory
+Electrocardiographs\fR
+.br
+\fIAmerican National Standard ANSI/AAMI EC57:1998, Testing and Reporting
+Performance Results of Cardiac Rhythm and ST Segment Measurement Algorithms\fR
+.br
+The last two publications are available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/plt.1 wfdb-10.2.1/doc/plt.1
--- wfdb-10.2.0/doc/plt.1	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/doc/plt.1	Fri Oct 26 14:15:18 2001
@@ -0,0 +1,396 @@
+.TH PLT 1 "17 May 2001" "Graphics" "Utilities"
+.SH NAME
+plt \- make 2-D plots
+.SH SYNOPSIS
+\fBplt\fR [ \fIdata-spec\fR ] [ \fIdata-file\fR ] [ [ \fIxcol\fR ] \fIycol\fR ] [ \fIoptions ...\fR ] [ \fB-T lw | lwcat\fR [ \fIlwcat-options\fR ] ]
+.SH DESCRIPTION
+.PP
+This man page is intended as a supplement to the command-line help provided
+by \fBplt\fR itself (using the \fB-h\fR option, see below).  If you have not
+previously used \fBplt\fR, please look at the \fIplt Tutorial and Cookbook\fR,
+which is included in the \fBplt\fR package (see \fISOURCES\fR below).
+.PP
+\fBplt\fR is a non-interactive (command line-driven) plotting utility.
+\fBplt\fR can produce publication-quality 2D plots in PostScript from
+easily-produced text or binary data files, and can also create screen
+plots under the X Window System.
+.PP
+All data presented to \fBplt\fR must be organized in rows and columns.
+Columns are numbered beginning with zero, and each column contains
+values for a variable that can be used as an abscissa (x coordinate),
+ordinate (y coordinate), or (with appropriate options described below)
+a grey level, color, or other plot attributes.  Rows are numbered
+beginning with one, and each row contains a value for each column.
+Within a \fIdata-file\fR, values are always arranged in row-major
+order (all elements of row 1, followed by all elements of row 2,
+etc.).
+.PP
+Usually, data must be in text form in order for \fBplt\fR to read them.
+Each non-empty, non-comment line (row) in the input should contain a
+value for each column that will be plotted; if there are additional
+values or other extra text at the end of a row, it will be ignored.
+Columns can be separated by any number of spaces or tabs.  Commas and
+single or double quotation marks can also be used as column separators
+with current versions of \fBplt\fR, though not with older versions.
+It is not necessary to line up the values in each row.  There may also
+be spaces or tabs at the beginning of a line, and these will also be
+ignored.
+.PP
+If no \fIdata-file\fR is specified, \fBplt\fR reads data from its
+standard input.  The command-line arguments \fIxcol\fR and \fIycol\fR
+specify the column numbers for the abscissas and ordinates
+respectively.  If only one column number is specified, it is taken as
+\fIycol\fR, and \fBplt\fR generates a series of abscissas
+automatically.  If the \fIdata-file\fR contains no more than two
+columns, both \fIxcol\fR and \fIycol\fR may be omitted.
+.PP
+By default, \fBplt\fR reads all rows of the \fIdata-file\fR and scales
+the x and y axes so that all data can be plotted.  An optional
+\fIdata-spec\fR, a string beginning with a colon (:), can be used to
+select a subset of the rows in the \fIdata-file\fR.  For details on
+using a \fIdata-spec\fR, and for information about reading binary data
+files using \fBplt\fR, see the \fIplt Tutorial and Cookbook\fR.
+.PP
+\fBplt\fR recognizes a large number of \fIoptions\fR for controlling
+and customizing plots.  To see a summary of all options, run ``\fBplt -h\fR'';
+if this command is followed by one or more strings (which should not
+begin with hyphens), \fBplt\fR prints one-line summaries of all
+options beginning with those strings only.
+.PP
+\fBplt\fR can read its options from command-line arguments, from a
+\fIformat file\fR (specified using the \fB-f\fR option), or from a
+\fIformat string\fR (supplied on the command line, following the
+\fB-F\fR option).   When using format files or format strings, omit
+the hyphen (-) before each option.
+.SS Options
+Following is a brief summary of \fBplt\fR's options.  Note that many
+options require arguments.  \fBplt\fR chooses a suitable default for most
+such arguments if the argument is supplied as `\fB-\fR'.  See the
+\fIplt Tutorial and Cookbook\fR for further details.
+.TP
+\fB-p\fR\fI plot-styles\fR
+Specify style(s) for data plots.  Available \fIplot-styles\fR include
+`\fBc\fR', `\fBC\fR', `\fBe+\fR\fIc\fR', `\fBe-\fR\fIc\fR', `\fBe:\fR\fIc\fR',
+`\fBE+\fR\fIn\fR', `\fBE-\fR\fIn\fR', `\fBE:\fR\fIn\fR', `\fBf\fR', `\fBi\fR',
+`\fBl\fR', `\fBm\fR', `\fBn\fR', `\fBN\fR', `\fBo\fR', `\fBO\fR',
+`\fBs\fR\fIc\fR', `\fBS\fR\fIn\fR', and `\fBt\fR'.
+.TP
+\fB-s\fR\fI elements\fR
+Suppress \fIelements\fR of output.  Elements that can be suppressed
+include `\fBe\fR' (erasing the screen or beginning a new page before
+plotting), `\fBa\fR' (anything associated with axes), `\fBx\fR' (anything
+associated with the x axis), `\fBy\fR' (anything associated with the y
+axis), `\fBg\fR' (the grid), `\fBm\fR' (x and y axis tick marks),
+`\fBn\fR' (x and y tick mark numbers), `\fBt\fR' (x and y axis labels and
+plot title), `\fBl\fR' (user-supplied labels), `\fBp\fR' (data plots),
+and `\fBf\fR' (``figures'' -- boxes, line segments, arrows, and legends).
+In addition, these \fIelements\fR modify the effects of any other elements
+that follow:  `\fBX\fR' (restrict effects to x axis), `\fBY\fR' (restrict
+effects to y axis), and `\fBA\fR' (apply effects to both axes);  and the
+element `\fBC\fR' reenables all elements.
+.TP
+\fB-X\fR\fI xmin xmax\fR
+Set the x-axis range (see also \fB-xa\fR).
+.TP
+\fB-Y\fR\fI ymin ymax\fR
+Set the y-axis range (see also \fB-ya\fR).
+.TP
+\fB-t\fR\fI title\fR
+Set the title for the plot (enclose \fItitle\fR in quotes if it contains
+whitespace or begins with `\fB(\fR' or `\fB[\fR').
+.TP
+\fB-T\fR\fI type\fR
+Specify the output \fItype\fR, which may be \fBxw\fR (X11 window, the default
+under Unix or Linux and not available under MS-Windows), or \fBlw\fR
+(PostScript, the default under MS-Windows).
+.TP
+\fB-g\fR\fI grid-mode\fR
+Specify the grid style, which may be \fBin\fR, \fBout\fR (default), \fBboth\fR,
+\fBnone\fR, \fBsym\fR (make symmetric axes at top and right), \fBgrid\fR
+(extend major ticks across the entire plot), \fBxgrid\fR, \fBygrid\fR, or
+\fBsub\fR (extend all ticks across the entire plot).
+.TP
+\fB-h\fR [ \fI option-prefix ... \fR ]
+Show help on options beginning with \fIoption-prefix\fR (which should not
+begin with `\fB-\fR').  If \fIoption-prefix\fR is omitted, show help on
+all options.
+.PP
+Within the next group of options, those with upper-case names (`\fB-A\fR',
+`\fB-B\fR', ...) use \fIwindow coordinates\fR between (0,0) and (1,1);
+those with lower-case names (`\fB-a\fR', `\fB-b\fR', ...) use \fIdata
+coordinates\fR.
+.TP
+\fB-a\fR\fI x0 y0 x1 y1\fR
+Draw an arrow to \fI(x0,y0)\fR from \fI(x1,y1)\fR.
+.TP
+\fB-A\fR\fI xw0 yw0 xw1 yw1\fR
+Draw an arrow to \fI(xw0,yw0)\fR from \fI(xw1,yw1)\fR.
+.TP
+\fB-b\fR\fI x0 y0 x1 y1\fR
+Draw a box with opposite corners at \fI(x0,y0) and \fI(x1,y1)\fR.
+.TP
+\fB-B\fR\fI xw0 yw0 xw1 yw1\fR
+Draw a box with opposite corners at \fI(xw0,yw0) and \fI(xw1,yw1)\fR.
+.TP
+\fB-c\fR\fI x0 y0 x1 y1\fR
+Connect points \fI(x0,y0)\fR and \fI(x1,y1)\fR.
+.TP
+\fB-C\fR\fI xw0 yw0 xw1 yw1\fR
+Connect points \fI(xw0,yw0)\fR and \fI(xw1,yw1)\fR.
+.TP
+\fB-d\fR\fI x0 y0 x1 y1\fR
+Draw a dark (filled) box with opposite corners at \fI(x0,y0) and \fI(x1,y1)\fR.
+.TP
+\fB-D\fR\fI xw0 yw0 xw1 yw1\fR
+Draw a dark (filled) box with opposite corners at \fI(xw0,yw0) and
+\fI(xw1,yw1)\fR.
+.TP
+\fB-l\fR\fI x y tbc label-string\fR
+Print \fIlabel-string\fR at \fI(x,y)\fR.  The \fItbc\fR argument is a
+two-character text box coordinate that specifies how the label is to be
+positioned relative to \fI(x,y)\fR;  the default (\fBCC\fR) centers the
+string at \fI(x,y)\fR.
+.TP
+\fB-L\fR\fI xw yw tbc label-string\fR
+As for \fB-l\fR, but using window coordinates \fI(xw,yw)\fR.
+.TP
+\fB-w\fR\fI configuration subwindow\fR
+Confine the plot to a predefined window, specified by the arguments.
+\fIconfiguration\fR specifies the number of subwindows (panels), using
+one of `\fBm\fR' (1), `\fBb\fR' (2), or `\fBq\fR' (4), and \fIsubwindow\fR'
+specifies which panel is to be plotted (0 or 1 for `\fBm\fR'; 0, 1, or 2
+for `\fBb\fR'; or 0, 1, 2, 3, or 4 for `\fBq\fR').  In each case, subwindow
+0 creates the frame of the entire plot, and the other subwindows refer to
+regions where data can be plotted.  Use this option with `\fB-o\fR' or
+`\fB-s e\fR' to create multi-panel plots in stages without starting a new page
+or erasing the window before starting each new stage.
+.TP
+\fB-W\fR\fI xp0 yp0 xp1 yp1\fR
+Define the region of the page in which to plot.  The arguments are
+\fIpage coordinates\fR;  the page coordinates (0,0) and (1,1) correspond to
+the lower left and upper right corners of the page.
+.TP
+\fB-f\fR\fI format-file\fR
+Read options from the specified \fIformat-file\fR.
+.TP
+\fB-fa\fR\fI format-file\fR
+Record the current axis parameters as options in the specified
+\fIformat-file\fR (for use with a later \fBplt\fR command).  The
+previous contents of \fIformat-file\fR, if any, will be overwritten.
+.TP
+\fB-F\fR\fI format-string\fR
+Read options from the specified \fIformat-string\fR.
+.TP
+\fB-o\fR
+Suppress all output except data plots.
+.TP
+\fB-cz\fR\fI xfrom xincr\fR
+Generate abscissas, beginning with \fIxfrom\fR (default: 0) and
+incrementing by \fIxincr\fR (default: 1) at each step.
+.TP
+\fB-ex\fR
+Don't exclude points outside axis limits.
+.TP
+\fB-hl\fR\fI x y tbc n file\fR
+Print the next \fIn\fR (default: 1000) lines of the specified \fIfile\fR as a
+label, placing the reference point for the first line of the label at data
+coordinates \fI(x,y)\fR.  The \fItbc\fR argument is defined as for \fB-l\fR and
+is applied to each line of the label.  The \fIfile\fR is opened when first used
+by \fB-hl\fR or \fB-vl\fR, and remains open, so that successive \fB-hl\fR or
+\fB-vl\fR options referring to the same \fIfile\fR read and print successive
+lines.  At most \fBMAXLABELFILES\fR (defined in \fBplt.h\fR, currently 6)
+\fIfile\fRs of label strings can be open at once.
+.TP
+\fB-vl\fR\fI x y tbc n file\fR
+As for \fB-hl\fR, but print the label in a vertical orientation (rotated
+90 degrees counterclockwise).
+.TP
+\fB-le \fR\fIlinenumber plotnumber\fR [ \fItext\fR ]
+Define the specified \fIlinenumber\fR in the legend (see also \fB-lp\fR).
+Line numbers in the legend begin with 0 (the top line);  plot numbers also
+begin with 0 (these refer to the data plots, and are used here to determine
+the line style for the entry's sample plot segment).  The \fItext\fR is
+printed to the right of the sample plot segment.  To create an entry with
+more than one line of text, use additional \fB-le\fR options with different
+\fIlinenumber\fRs as necessary, omitting the \fIplotnumber\fR (use `\fB-\fR')
+for all but the first.  If the same data are plotted more than once in a
+single figure to create an overlay (for example, using symbols over line
+segments), an overlaid legend entry can be created using additional \fB-le\fR
+options with the same \fIlinenumber\fR and different \fIplotnumbers\fR,
+omitting the \fItext\fR for all but the first.
+.TP
+\fB-lp \fR\fIxw0 yw0\fR [ \fIboxscale\fR [ \fIseglength\fR [ \fIopaque\fR ] ] ]
+Define the window coordinates \fI(xw0, yw0)\fR of the upper left corner of
+the plot legend text, and other attributes for the plot legend (key).
+\fBplt\fR determines the size of the box it draws around the legend, but
+the calculated width of the box is multiplied by \fIboxscale\fR.  The
+\fIseglength\fR option specifies the length of the sample plot segments,
+as a fraction of the x-axis length (default: 0.05).  If \fIopaque\fR is
+`\fByes\fR' (default), the background of the legend is opaque white;
+otherwise, the background is transparent (any previously drawn material
+remains visible through the legend box).  Unless a \fB-lp\fR option is
+provided, no legend is printed.
+.TP
+\fB-lx \fR [ \fIbase\fR [ \fIsubticks\fR ] ]
+Draw a logarithmic x-axis;  \fIbase\fR is the base of the logarithms (default:
+10), and \fIsubticks\fR is either `\fByes\fR' or `\fBno\fR'.  If the axis
+has a small number of major ticks, \fBplt\fR draws subticks by default;
+use the \fIsubticks\fR argument to change \fBplt\fR's default behavior.
+.TP
+\fB-ly \fR [ \fIbase\fR [ \fIsubticks\fR ] ]
+Draw a logarithmic y-axis.
+.TP
+\fB-tf \fR\fIfile\fR [ \fItbc\fR ]
+Load the text string array from the specified \fIfile\fR.  Each line of the
+\fIfile\fR defines an element of the string array;  using plot styles
+\fBc\fR or \fBt\fR, these strings can be plotted in the same manner as
+data points.  The optional \fItbc\fR specifies how the positions of the
+strings are to be modified when they are printed, in the same way as for
+\fB-l\fR;  by default, the strings are centered on the coordinates specified
+for them.
+.TP
+\fB-ts "\fR\fIstring0 string1 ...\fB"\fR [ \fItbc\fR ]
+Load the text string array from the quoted argument (whitespace separates
+strings in the array) rather than from a file;  otherwise, this option is
+the same as \fB-tf\fR.
+.TP
+\fB-fs "\fR\fIstring0 string1 ...\fB"\fR
+Load the font string array from the quoted argument.  Using appropriate
+plot style (\fB-p\fR) options, the strings can be used to change the font,
+line style (solid, dotted, dashed, etc.), or drawing color.
+.TP
+\fB-x \fR\fIstring\fR
+Set the x-axis title to \fIstring\fR (which must be quoted if this option
+is used on the command line or if \fIstring\fR begins with `(' or `[').
+.TP
+\fB-xa \fR\fIxmin xmax tick fmt tskip ycross\fR
+Specify the x-axis range (as \fIxmin\fR to \fIxmax\fR); the interval between
+x-axis tick marks; the format, \fIfmt\fR, in which to print the numbers (e.g.,
+``\fB%.3f\fR'', ``\fB%.2e\fR'';  any format that \fBprintf(3)\fR can use for
+printing floating-point numbers is acceptable); the number of ticks per
+labelled tick, \fItskip\fR; and \fIycross\fR, the point on the y-axis that the
+x-axis should cross, in y-units.  Any of these parameters may be supplied as
+``-'', which causes \fBplt\fR to choose a reasonable value based on the input
+data.
+.TP
+\fB-xe \fR\fIxmin-error xmax-error\fR
+Use this option to specify the amount by which the x-axis range is allowed
+to exceed the range of x-values in the input data, when \fBplt\fR determines
+the x-axis range automatically.
+.TP
+\fB-xm \fR\fItick-base\fR
+Make x-axis ticks be multiples of the specified \fItick-base\fR.
+.TP
+\fB-xo \fR\fIx-axis-offset\fR
+Move the x-axis down by \fIx-axis-offset\fR (expressed as a fraction of the
+y-axis length).
+.TP
+\fB-xr\fR
+Draw the x-axis at the top of the plot
+.TP
+\fB-xt \fR\fIx label\fR [ \fItick-size\fR ]
+Add an extra labelled tick at the specified \fIx\fR position, and label it
+with the specified \fIlabel\fR (which may be any string).  The optional
+\fItick-size\fR argument specifies the length of the added tick, as a fraction
+of the default length for labelled ticks (e.g., a value of 1.5 makes the
+added tick 50\% longer than the standard size).
+.TP
+\fB-xts \fR\fIx\fR [ \fItick-size\fR ]
+Force a labelled tick to appear on the x-axis at the specified \fIx\fR
+(the positions of the other labelled x-ticks are adjusted accordingly).
+\fItick-size\fR is defined as for \fB-xt\fR.
+.TP
+\fB-y \fR\fIstring\fR
+Set the y-axis title to \fIstring\fR (see \fB-x\fR).
+.TP
+\fB-ya \fR\fIymin ymax tick fmt tskip xcross\fR
+Set up the y-axis (see \fB-xa\fR).
+.TP
+\fB-ye \fR\fIymin-error ymax-error\fR
+Set the allowable error in the y-axis range (see \fB-xe\fR).
+.TP
+\fB-ym \fR\fItick-base\fR
+Make y-axis ticks be multiples of the specified \fItick-base\fR.
+.TP
+\fB-yo \fR\fIy-axis-offset\fR
+Move the y-axis to the left by \fIy-axis-offset\fR (expressed as a fraction of
+the x-axis length).
+.TP
+\fB-yr\fR
+Draw the y-axis at the right edge of the plot.
+.TP
+\fB-yt \fR\fIy label\fR [ \fItick-size\fR ]
+Add an extra labelled tick at the specified \fIy\fR position (see \fB-xt\fR).
+.TP
+\fB-yts \fR\fIy\fR [ \fItick-size\fR ]
+Force a labelled tick to appear on the y-axis at the specified \fIy\fR
+(see \fB-xts\fR).
+.TP
+\fB-dev \fR\fIpterm option\fR
+Process \fIoption\fR only if the value of \fBPTERM\fR is \fIpterm\fR.
+The \fB-dev\fR option may be useful in scripts that produce screen or
+printed plots in different formats.
+.TP
+\fB-sf \fR\fIname specification\fR
+Create a new font group with the specified \fIname\fR and set its
+specifications (font, point size, color/grey level, line width, and line
+style).  See the chapter titled \fIColors, Line Styles, and Fonts\fR in
+the \fIplt Tutorial and Cookbook\fR for details.
+.TP
+\fB-ch \fR\fIheight-factor width-factor\fR
+Modify the height and width of all characters printed in the plot by
+the specified factors.
+.TP
+\fB-size \fR\fIfscl width height left-margin bottom-margin\fR
+Specify the size and position of the plot on the page.  The \fIwidth\fR,
+\fIheight\fR, \fIleft-margin\fR, and \fIbottom-margin\fR are specified
+in \fIinches\fR (1 inch = 25.4 mm).  \fIfscl\fR is a factor applied to the
+point size of all printed characters, \fIindependently\fR of the scaling
+applied to the rest of the plot.  This option is effective for printed plots
+only.
+.SS Screen and printed plots
+.PP
+By default, \fBplt\fR makes an X11 screen plot.  To make a printed plot,
+use the option \fB-T lw\fR, and pipe the output of \fBplt\fR to
+\fBlwcat\fR.  Under Unix or Linux, \fBlwcat\fR uses the standard
+\fBlpr\fR print spooler to send \fBplt\fR's output in PostScript
+format to the default printer.  Under MS-Windows, or using
+\fBlwcat\fR's \fB-gv\fR option under Unix or Linux, the PostScript
+output is displayed on-screen using GhostScript (\fBGSView\fR under
+MS-Windows, or \fBgv\fR otherwise; these programs can save the output
+in a file or send it to a printer).
+.SH EXAMPLES
+.PP
+Create a text file with the following contents:
+.br
+    0  0  0
+.br
+    1  1  1
+.br
+    2  4  8
+.br
+    3  9 27
+.br
+    4 16 64
+.br
+and call the file \fIpowers\fR.  Plot the first column vs. the second by:
+.br
+    \fBplt powers 0 1 -t "Squares of small integers" -x "Integer" -y "Square"\fR
+.br
+The same file can be used to generate a number of different plots, by
+choosing different columns.  To plot the third column vs. the first, try:
+    \fBplt powers 2 0 -t "Marshmallows" -x "Mass (kg)" -y "Height (m)"\fR
+.PP
+The \fIplt Tutorial and Cookbook\fR contains many more examples.
+.SH FILES
+.TP
+\fB/usr/local/lib/ps/plt.pro\fR
+PostScript prolog for plots printed using \fBlwcat\fR
+.SH SEE ALSO
+\fIplt Tutorial and Cookbook\fR (a book-length introduction to \fBplt\fR,
+included in the \fBplt\fR source package)
+.SH AUTHORS
+\fBplt\fR was originally written by Paul Albrecht, and is currently maintained
+by George B. Moody (\fBgeorge@mit.edu\fR).
+.SH SOURCES
+\fBhttp://www.physionet.org/physiotools/plt/\fR
diff -Naur wfdb-10.2.0/doc/pschart.1 wfdb-10.2.1/doc/pschart.1
--- wfdb-10.2.0/doc/pschart.1	Sat Jun 17 17:43:08 2000
+++ wfdb-10.2.1/doc/pschart.1	Fri Oct 26 14:32:50 2001
@@ -1,4 +1,4 @@
-.TH PSCHART 1 "17 June 2000" "WFDB software 10.1.5" "WFDB applications"
+.TH PSCHART 1 "26 October 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 pschart \- produce annotated `chart recordings' on a PostScript device
 .SH SYNOPSIS
@@ -21,7 +21,7 @@
 .SS Options:
 .TP
 \fB-a \fIann\fR
-Print annotations from annotator \fIann\fR (default: `atruth').  To suppress
+Print annotations from annotator \fIann\fR (default: `atr').  To suppress
 annotation printing, use `\fB-a ""\fR'.
 .TP
 \fB-A \fIann\fR
@@ -254,7 +254,7 @@
 .TP
 \fI/usr/local/lib/ps/pschart.pro\fR
 default PostScript prolog file.
-.br
+.TP
 \fI/usr/local/lib/ps/12lead.pro\fR
 alternative PostScript prolog file, suitable for printing standard 12-lead
 diagnostic ECGs (10 seconds, 4 traces, with the top three traces divided into
@@ -262,11 +262,10 @@
 the \fB-G\fR option (see the \fIGrid\fR procedure for details).
 .SH BUGS
 .PP
-High quality takes time.  A full page, with grids and default scales, typically
-takes about 3 minutes to render on an Apple LaserWriter, or about 6 minutes
-on a Linotronic 1200 dpi phototypesetter.  A SPARCprinter attached to a Sparc
-IPC or equivalent can render \fIpschart\fR output at nearly full speed (about
-28 seconds for the first page, 8 seconds for each subsequent page).
+On older PostScript printers, output may be quite slow.  A full page, with
+grids and default scales, typically takes about 3 minutes to render on an Apple
+LaserWriter, or about 6 minutes on a Linotronic 1200 dpi phototypesetter. Most
+modern printers can render \fIpschart\fR output at nearly full speed.
 .PP
 If the record you wish to plot is sampled at a very high rate relative to the
 printer resolution (i.e., if one sample interval would appear on the page as
diff -Naur wfdb-10.2.0/doc/psfd.1 wfdb-10.2.1/doc/psfd.1
--- wfdb-10.2.0/doc/psfd.1	Sun Jan 30 04:13:18 2000
+++ wfdb-10.2.1/doc/psfd.1	Fri Oct 26 14:35:08 2001
@@ -1,4 +1,4 @@
-.TH PSFD 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH PSFD 1 "26 October 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 psfd \- produce annotated `full-disclosure' plots on a PostScript device
 .SH SYNOPSIS
@@ -22,7 +22,7 @@
 \fBOptions\fR:
 .TP
 \fB-a \fIann\fR
-Print annotations from annotator \fIann\fR (default: `atruth').  To suppress
+Print annotations from annotator \fIann\fR (default: `atr').  To suppress
 annotation printing, use `\fB-a ""\fR'.
 .TP
 \fB-A \fIann\fR
@@ -210,11 +210,10 @@
 default PostScript prolog file.
 .SH BUGS
 .PP
-High quality takes time.  A full page, with grids and default scales, typically
-takes about 3\-4 minutes to render on an Apple LaserWriter, or about 6\-8
-minutes on a Linotronic 1200 dpi phototypesetter.  A SPARCprinter attached
-to a Sparc IPC or equivalent can render \fIpsfd\fR output at nearly full speed
-(about 28 seconds for the first page, 8 seconds for each subsequent page).
+On older PostScript printers, output may be quite slow.  A full page, with
+grids and default scales, typically takes about 3 minutes to render on an Apple
+LaserWriter, or about 6 minutes on a Linotronic 1200 dpi phototypesetter. Most
+modern printers can render \fIpsfd\fR output at nearly full speed.
 .PP
 For a 300 dpi printer, a typical full page of output will be about 80 Kbytes.
 Expect this to increase approximately linearly with the printer resolution.
diff -Naur wfdb-10.2.0/doc/rdann.1 wfdb-10.2.1/doc/rdann.1
--- wfdb-10.2.0/doc/rdann.1	Mon Feb 26 12:35:51 2001
+++ wfdb-10.2.1/doc/rdann.1	Tue Oct 16 22:56:53 2001
@@ -1,4 +1,4 @@
-.TH RDANN 1 "26 February 2001" "WFDB software 10.1" "WFDB applications"
+.TH RDANN 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 rdann \- read a WFDB annotation file
 .SH SYNOPSIS
@@ -20,7 +20,7 @@
 .TP
 \fB-e\fR
 Print annotation times as elapsed times from the beginning of the record
-(default: \fIrdann\rR prints absolute times if the absolute time of the
+(default: \fIrdann\fR prints absolute times if the absolute time of the
 beginning of the record is defined, and elapsed times otherwise, unless
 the \fB-x\fR option has been given).
 .TP
@@ -78,10 +78,10 @@
 \fIsetwfdb\fR(1)).
 .SS Example
 .br
-	\fBrdann -a atruth -r 200 -f 0 -t 5:0 -p V\fR
+	\fBrdann -a atr -r 200 -f 0 -t 5:0 -p V\fR
 .br
 This command prints on the standard output all ``V'' (PVC) annotations in
-the first five minutes of the \fIatruth\fR (reference annotation) file for
+the first five minutes of the \fIatr\fR (reference annotation) file for
 record 200.
 .SH CD-ROM VERSIONS
 The first edition of the MIT-BIH Arrhythmia Database CD-ROM, the first and
diff -Naur wfdb-10.2.0/doc/rxr.1 wfdb-10.2.1/doc/rxr.1
--- wfdb-10.2.0/doc/rxr.1	Thu Feb 10 00:04:33 2000
+++ wfdb-10.2.1/doc/rxr.1	Wed Nov  7 10:48:47 2001
@@ -1,4 +1,4 @@
-.TH RXR 1 "9 February 2000" "WFDB software 10.1" "WFDB applications"
+.TH RXR 1 "7 November 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 rxr \- ANSI/AAMI-standard run-by-run annotation comparator
 .SH SYNOPSIS
@@ -6,8 +6,8 @@
 .SH DESCRIPTION
 .PP
 Using options \fB-C\fR, \fB-L\fR, or \fB-S\fR, \fIrxr\fR implements the
-run-by-run comparison algorithms described in AAMI/ANSI EC38:1998, the American
-National Standard for Ambulatory ECGs, and in AAMI EC57:1998, the American
+run-by-run comparison algorithms described in ANSI/AAMI EC38:1998, the American
+National Standard for Ambulatory ECGs, and in ANSI/AAMI EC57:1998, the American
 National Standard for Testing and Reporting Performance Results of Cardiac
 Rhythm and ST Segment Measurement Algorithms.  \fIrxr\fR is the reference
 implementation of these algorithms, and must be used to obtain the run-by-run
@@ -95,8 +95,8 @@
 \fITesting and Reporting Performance Results of Cardiac Rhythm and ST
 Segment Measurement Algorithms\fR (ANSI/AAMI EC57:1998)
 .br
-The last two publications are available from AAMI, 3330 Washington Blvd.,
-Suite 400, Arlington, VA 22201 USA (http://www.aami.org/).
+The last two publications are available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/setwfdb.1 wfdb-10.2.1/doc/setwfdb.1
--- wfdb-10.2.0/doc/setwfdb.1	Wed May 24 16:35:35 2000
+++ wfdb-10.2.1/doc/setwfdb.1	Wed Oct 31 20:43:10 2001
@@ -1,4 +1,4 @@
-.TH SETWFDB 1 "24 May 2000" "WFDB software 10.1.4" "WFDB applications"
+.TH SETWFDB 1 "31 October 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 setwfdb, cshsetwfdb \- set WFDB environment variables
 .SH SYNOPSIS
@@ -8,26 +8,45 @@
 .br
 call setwfdb\fR
 .SH DESCRIPTION
+.PP
+WFDB applications search for input files by looking for them in an
+ordered list of locations called the WFDB path.  These locations can
+be given by directory names or (if the WFDB library has been installed
+with NETFILES support) URLs.  If the \fBWFDB\fR environment variable
+is set, its value specifies the WFDB path; otherwise, applications use
+the default path specified at the time the WFDB library was compiled.
+The default path includes the current directory (``.''), the \fIdatabase\fR
+subdirectory within the WFDB software package's root directory, and
+the PhysioBank data archive (http://www.physionet.org/physiobank/database).
+.PP
+WFDB applications that need access to the signal calibration database
+find it in a file located on the WFDB path.  If the \fBWFDBCAL\fR
+environment variable has been set, its value specifies the name of the
+calibration file;  otherwise, applications look for the default calibration
+file, the name of which ("wfdbcal") is compiled into the WFDB library.
+.PP
+Many users will not need to change the defaults, but for those who do, the
+scripts described here may be helpful.  \fIImportant:\fR these programs must
+be customized before using them for the first time on a new machine.  Since
+they are text files, use any text editor to customize them.
 .SS \fIsh\fR, \fIbash\fR, and \fIksh\fR shell users:
-\fIsetwfdb\fR sets the shell variables \fBWFDB\fR and \fBWFDBCAL\fR to the
-appropriate values to permit access to on-line ECG databases.  It must be
-executed using the ``.'' as shown above.  A frequent user of the databases
-will find it convenient to include an invocation of \fIsetwfdb\fR in
-the \fI.profile\fR file.
+\fIsetwfdb\fR sets the environment variables \fBWFDB\fR and
+\fBWFDBCAL\fR.  It must be executed using the ``.'' as shown above.
+It may be convenient to include an invocation of \fIsetwfdb\fR in the
+\fI.profile\fR file.
 .SS \fIcsh\fR and \fItcsh\fR users:
-\fIcshsetwfdb\fR sets \fBWFDB\fR and \fBWFDBCAL\fR similarly for the C-shell.  It
-must be executed using ``source'' as shown above.  It may be convenient to
+\fIcshsetwfdb\fR sets \fBWFDB\fR and \fBWFDBCAL\fR similarly for the C-shell.
+It must be executed using ``source'' as shown above.  It may be convenient to
 include this command in the \fI.cshrc\fR file.
 .SS MS-DOS/MS-Windows users:
-\fIsetwfdb.bat\fR sets \fBWFDB\fR and \fBWFDBCAL\fR similarly for MS-DOS;  it also
-sets \fBVIEWP\fR (see \fIview\fR(1)).  It may be convenient to include this
-command in the \fIautoexec.bat\fR file (under MS-DOS 3.3 and later, include
-the command ``call setwfdb'' within \fIautoexec.bat\fR;  under earlier
-versions of MS-DOS, use ``command /c setwfdb'', or append the contents of
-\fIsetwfdb.bat\fR to \fIautoexec.bat\fR).
+\fIsetwfdb.bat\fR sets \fBWFDB\fR and \fBWFDBCAL\fR similarly for
+MS-DOS or MS-Windows; it also sets \fBVIEWP\fR (see \fIview\fR(1)). It
+may be convenient to include this command in the \fIautoexec.bat\fR
+file (under MS-DOS 3.3 and later, include the command ``call setwfdb''
+within \fIautoexec.bat\fR; under earlier versions of MS-DOS, use
+``command /c setwfdb'', or append the contents of \fIsetwfdb.bat\fR to
+\fIautoexec.bat\fR).
 .PP
-These programs are shell scripts that must be customized
-before using them for the first time on a new machine.
 .SH ENVIRONMENT
 .TP
 \fBWFDB\fR
@@ -57,19 +76,19 @@
 environment variables.  Indirect WFDB path files can be nested up to
 10 levels deep.
 .TP
-\fBWFDBCAL\fR The name of the WFDB calibration file (see
-\fIwfdbcal\fR(5)).  The usual rules for finding WFDB files by
-searching the WFDB path apply to the WFDB calibration file, so the
-value of \fBWFDBCAL\fR need not be an absolute path name.  The WFDB
-calibration file is used by WFDB applications that need to plot
-signals at standard scales, as well as by \fIcalsig\fR(1), which
-can determine the baseline and gain of signals if calibration pulses
-are present and if the parameters of the calibration pulses are
-described in the calibration file.  If \fBWFDBCAL\fR is not set by the
-user, the WFDB library uses a default WFDB calibration file
-(\fIwfdbcal\fR, named in \fIwfdblib.h\fR).  If the WFDB calibration
-file is not readable, programs that rely on it may not choose
-appropriate scales for some types of signals.
+\fBWFDBCAL\fR
+The name of the WFDB calibration file (see \fIwfdbcal\fR(5)).  The
+usual rules for finding WFDB files by searching the WFDB path apply to
+the WFDB calibration file, so the value of \fBWFDBCAL\fR need not be
+an absolute path name.  The WFDB calibration file is used by WFDB
+applications that need to plot signals at standard scales, as well as
+by \fIcalsig\fR(1), which can determine the baseline and gain of
+signals if calibration pulses are present and if the parameters of the
+calibration pulses are described in the calibration file.  If
+\fBWFDBCAL\fR is not set by the user, the WFDB library uses a default
+WFDB calibration file (\fIwfdbcal\fR, named in \fIwfdblib.h\fR).  If
+the WFDB calibration file is not readable, programs that rely on it
+may not choose appropriate scales for some types of signals.
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCES
diff -Naur wfdb-10.2.0/doc/sqrs.1 wfdb-10.2.1/doc/sqrs.1
--- wfdb-10.2.0/doc/sqrs.1	Sun Feb  6 23:54:05 2000
+++ wfdb-10.2.1/doc/sqrs.1	Tue Oct 16 22:56:12 2001
@@ -1,4 +1,4 @@
-.TH SQRS 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH SQRS 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 sqrs \- single-channel QRS detector
 .SH SYNOPSIS
@@ -70,7 +70,7 @@
 .br
 and then compare its output with the reference annotations by:
 .br
-\fBbxb -r 100 -a atruth qrs\fR
+\fBbxb -r 100 -a atr qrs\fR
 .SH SEE ALSO
 bxb(1), rdann(1), setwfdb(1), xform(1)
 .SH AUTHORS
diff -Naur wfdb-10.2.0/doc/sumstats.1 wfdb-10.2.1/doc/sumstats.1
--- wfdb-10.2.0/doc/sumstats.1	Wed Feb  9 23:11:54 2000
+++ wfdb-10.2.1/doc/sumstats.1	Wed Nov  7 10:48:09 2001
@@ -1,4 +1,4 @@
-.TH SUMSTATS 1 "9 February 2000" "WFDB software 10.1" "WFDB applications"
+.TH SUMSTATS 1 "7 November 2001" "WFDB software 10.2.1" "WFDB applications"
 .SH NAME
 sumstats \- derive aggregate statistics from bxb, rxr, etc., line-format output
 .SH SYNOPSIS
@@ -29,8 +29,8 @@
 \fITesting and Reporting Performance Results of Cardiac Rhythm and ST Segment
 Measurement Algorithms\fR (publication AAMI EC57:1998)
 .br
-The last two publications are available from AAMI, 3330 Washington Blvd.,
-Suite 400, Arlington, VA 22201 USA (http://www.aami.org/).
+The last two publications are available from AAMI, 1110 N Glebe Road,
+Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).
 .SH AUTHOR
 George B. Moody (george@mit.edu)
 .SH SOURCE
diff -Naur wfdb-10.2.0/doc/tach.1 wfdb-10.2.1/doc/tach.1
--- wfdb-10.2.0/doc/tach.1	Sun Jan 30 04:13:19 2000
+++ wfdb-10.2.1/doc/tach.1	Tue Oct 16 22:55:54 2001
@@ -1,4 +1,4 @@
-.TH TACH 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH TACH 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 tach \- heart rate tachometer
 .SH SYNOPSIS
@@ -78,7 +78,7 @@
 (using \fB-Vm\fR), or hours (using \fB-Vh\fR) before each output sample value.
 Only one of these options can be used at a time.
 .PP
-Reference (`atruth') annotation files can be used as input to \fItach\fR,
+Reference (`atr') annotation files can be used as input to \fItach\fR,
 but files that contain manually-inserted annotations are less suitable,
 since annotation placement is likely to be less consistent than in annotation
 files generated by programs such as \fIsqrs\fR(1). 
diff -Naur wfdb-10.2.0/doc/wave.1 wfdb-10.2.1/doc/wave.1
--- wfdb-10.2.0/doc/wave.1	Wed May 24 16:34:54 2000
+++ wfdb-10.2.1/doc/wave.1	Wed Oct 31 20:47:32 2001
@@ -11,7 +11,7 @@
 facilities for interactive annotation editing.  The keyboard and mouse
 are used to control the display interactively.  First-time users
 should read the \fIWAVE User's Guide\fR.  (One way to do this is by
-pointing your Web browser to \fBfile:///usr/local/help/html/wug/wug.htm\fR,
+pointing your Web browser to \fBfile:///usr/help/html/wug/wug.htm\fR,
 or to \fBhttp://www.physionet.org/physiotools/wug/\fR for the latest version.)
 If the \fIGuide\fR is unavailable, print a copy of the on-line manual; run
 \fIwave\fR without any command-line arguments to get instructions for doing so.
@@ -651,9 +651,19 @@
 the background under SunOS.  The Solaris 2.x and Linux versions of the
 XView library do not have this bug.
 .PP
-On some 24-bit displays, an X server bug causes \fIwave\fR to start with
-an empty signal window.  Using any of the navigation controls, or resizing
-the window, should make the signals visible.  On some of these displays,
+If \fIwave\fR opens with an empty signal window, this may mean that
+the X server's backing store is disabled.  If possible, enable backing
+store and restart the X server.  (Using XFree86 4.x, backing store can
+be enabled by inserting the line `Option "backingstore"' in the
+`Device' section(s) of the \fIXF86Config-4\fR file.  If the X server is
+normally started by a display manager such as \fIxdm\fR, close all windows
+and restart the server with Control+Alt+Backspace.  Otherwise, log out,
+log in, and restart the X server manually if necessary.)
+.PP
+If this doesn't solve the problem, use any of \fIwave\fR's navigation
+controls, or resize the signal window, to make the signals visible.  On
+some 24-bit displays, this problem may be the result of an X server bug,
+and these methods will work around the problem.  On some of these displays,
 text in the signal window may be invisible using overlay graphics mode;
 if this happens, use the \fB-S\fR option.
 .PP
@@ -664,6 +674,16 @@
 can be reviewed in any case).  Using the `>' button to move by half a frame
 does not work properly with piped input, nor does changing the display scales,
 since these actions require rereading the signals.
+.PP
+There appears to be a subtle incompatibility between Xview-based applications
+such as \fIwave\fR and at least some X servers.  The symptom of this problem
+is that \fIwave\fR's View panel may be blank, and many warning messages from
+the notifier may appear in the controlling terminal window.  This problem
+appears to occur only when all of the following are true: the X server is
+running on a multi-head display with Xinerama enabled, the user does not have
+root privileges, a .Xdefaults file exists, and \fIwave\fR or another XView
+application has run at least once before since the X server was started.
+
 .SH SEE ALSO
 pschart(1), view(1), wview(1)
 .br
diff -Naur wfdb-10.2.0/doc/wfdb.3 wfdb-10.2.1/doc/wfdb.3
--- wfdb-10.2.0/doc/wfdb.3	Sun Jan 30 04:13:19 2000
+++ wfdb-10.2.1/doc/wfdb.3	Wed Oct 31 20:48:53 2001
@@ -1,4 +1,4 @@
-.TH WFDB 3 "11 January 2000" "WFDB software 10.0" "WFDB library"
+.TH WFDB 3 "31 October 2001" "WFDB software 10.2.1" "WFDB library"
 .SH NAME
 wfdb \- Waveform Database library
 .SH SYNOPSIS
@@ -175,6 +175,7 @@
 \fBwfdbdll.lib\fR
 stubs for linking with applications that use \fBwfdb.dll\fR
 .SH SEE ALSO
+.TP
 \fIWFDB Programmer's Guide\fR
 (On systems that support GNU emacs, the \fIGuide\fR may be available on-line
 using emacs \fIinfo\fR;  from within \fIemacs\fR, type control-H followed by
diff -Naur wfdb-10.2.0/doc/wfdbwhich.1 wfdb-10.2.1/doc/wfdbwhich.1
--- wfdb-10.2.0/doc/wfdbwhich.1	Sun Jan 30 04:13:19 2000
+++ wfdb-10.2.1/doc/wfdbwhich.1	Tue Oct 16 22:55:33 2001
@@ -1,4 +1,4 @@
-.TH WFDBWHICH 1 "11 January 2000" "WFDB software 10.0" "WFDB applications"
+.TH WFDBWHICH 1 "16 October 2001" "WFDB software 10.2" "WFDB applications"
 .SH NAME
 wfdbwhich \- find a WFDB file and print its pathname
 .SH SYNOPSIS
@@ -8,7 +8,7 @@
 .SH DESCRIPTION
 This program searches the WFDB path (as specified by the environment variable
 \fBWFDB\fR, see \fIsetwfdb\fR(1)) for a specified \fIfilename\fR, or for a
-file of a specified \fIfile-type\fR (e.g., `header' or `atruth') that belongs
+file of a specified \fIfile-type\fR (e.g., `hea' or `atr') that belongs
 to a specified \fIrecord\fR.  If the file can be found, its full pathname is
 written to the standard output, and \fIwfdbwhich\fR exits with an exit status
 of zero (indicating success).  If the file cannot be found, a diagnostic
diff -Naur wfdb-10.2.0/examples/Makefile wfdb-10.2.1/examples/Makefile
--- wfdb-10.2.0/examples/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/examples/Makefile	Fri Nov 16 16:18:43 2001
@@ -34,12 +34,12 @@
 # `make clean' to remove them.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -47,7 +47,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/fortran/fsamples.f wfdb-10.2.1/fortran/fsamples.f
--- wfdb-10.2.0/fortran/fsamples.f	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/fortran/fsamples.f	Thu Nov  1 23:12:46 2001
@@ -0,0 +1,9 @@
+	integer i, v(2), g
+
+	i = isigopen("100s", 2)
+	do i = 1, 10
+	 g = getvec(v)
+	 write (6,3) v(1), v(2)
+ 3	format("v(1) = ", i4, "    v(2) = ", i4)
+	end do
+	end
diff -Naur wfdb-10.2.0/lib/Makefile wfdb-10.2.1/lib/Makefile
--- wfdb-10.2.0/lib/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/lib/Makefile	Fri Nov 16 16:18:43 2001
@@ -33,12 +33,12 @@
 # type `make slib'.
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
diff -Naur wfdb-10.2.0/lib/README wfdb-10.2.1/lib/README
--- wfdb-10.2.0/lib/README	Thu Mar 30 16:00:34 2000
+++ wfdb-10.2.1/lib/README	Thu Oct 25 15:01:33 2001
@@ -1,9 +1,9 @@
 file: README		G. Moody	 1 July 1989
-			Last revised:	 30 March 2000	      wfdblib 10.1.2
+			Last revised:  25 October 2001	      wfdblib 10.2.1
 
 _______________________________________________________________________________
 wfdb: a library for reading and writing annotated waveforms (time series data)
-Copyright (C) 1999 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This library is free software; you can redistribute it and/or modify it under
 the terms of the GNU Library General Public License as published by the Free
@@ -38,12 +38,10 @@
 The following files will be found in this directory:
 
 COPYING.LIB	the GNU Library General Public License
-makelib		UNIX `make' description file for compiling the WFDB library
-		 without NETFILES support (copy to `Makefile' before use)
-netmake		UNIX `make' description file for compiling the WFDB library
-		 with NETFILES support (copy to `Makefile' before use)
-Makefile-dos-gcc UNIX `make' description file for compiling the WFDB library
-		 for MS-DOS using a gcc cross-compiler under UNIX
+Makefile	UNIX `make' description file for compiling the WFDB library
+		 (generated by ../configure)
+Makefile.top	header for Makefile
+Makefile.tpl	template for Makefile
 Makefile.dos	MS-DOS `make' description file for compiling the WFDB library
 		 using Microsoft `make' or `nmake', Borland `make', etc.
 README		this file
@@ -59,7 +57,9 @@
 wfdbdll.def	MS Windows DLL export definitions for MS compilers
 wfdbinit.c	WFDB library functions wfdbinit, wfdbquit, and wfdbflush
 wfdbio.c	Low-level I/O functions for the WFDB library
-wfdblib.h	External definitions for WFDB library functions
+wfdblib.h	External definitions for WFDB library functions (generated by
+		 ../configure)
+wfdblib.h0	template for wfdblib.h
 
 What next?
 ----------
diff -Naur wfdb-10.2.0/lib/annot.c wfdb-10.2.1/lib/annot.c
--- wfdb-10.2.0/lib/annot.c	Tue Sep 11 10:53:53 2001
+++ wfdb-10.2.1/lib/annot.c	Wed Nov  7 13:19:17 2001
@@ -1,5 +1,5 @@
 /* file: annot.c	G. Moody       	 13 April 1989
-			Last revised:  11 September 2001	wfdblib 10.2.0
+			Last revised:   7 November 2001		wfdblib 10.2.1
 WFDB library functions for annotations
 
 _______________________________________________________________________________
@@ -844,14 +844,17 @@
 	}
 	(void)wfdb_fclose(oa->file);
 	if (oa->out_of_order) {
-	    (void)sprintf(cmdbuf, "sortann -r %s -a %s",
-			  oa->rname, oa->info.name);
-#ifndef WFDBNOSORT
-	    if (getenv("WFDBNOSORT") == NULL) {
+	    int dosort = DEFWFDBANNSORT;
+	    char *p = getenv("WFDBANNSORT");
+
+	    if (p) dosort = atoi(p);
+	    if (dosort) {
 		if (system(NULL) != 0) {
 		    wfdb_error(
 			 "Rearranging annotations for output annotator %s ...",
 			 oa->info.name);
+		    (void)sprintf(cmdbuf, "sortann -r %s -a %s",
+				  oa->rname, oa->info.name);
 		    if (system(cmdbuf) == 0) {
 			wfdb_error("done!");
 			oa->out_of_order = 0;
@@ -863,7 +866,6 @@
 	    }
 	}
 	if (oa->out_of_order) {
-#endif
 	    wfdb_error("Use the command:\n  %s\n", cmdbuf);
 	    wfdb_error("to rearrange annotations in the correct order.\n");
 	}
diff -Naur wfdb-10.2.0/lib/calib.c wfdb-10.2.1/lib/calib.c
--- wfdb-10.2.0/lib/calib.c	Sun Jan 30 04:13:20 2000
+++ wfdb-10.2.1/lib/calib.c	Wed Nov  7 13:20:27 2001
@@ -1,10 +1,10 @@
 /* file: calib.c	G. Moody	4 July 1991
-			Last revised:  15 July 1999		wfdblib 10.0.1
+			Last revised:  7 November 2001		wfdblib 10.2.1
 WFDB library functions for signal calibration
 
 _______________________________________________________________________________
 wfdb: a library for reading and writing annotated waveforms (time series data)
-Copyright (C) 1999 George B. Moody
+Copyright (C) 2001 George B. Moody
 
 This library is free software; you can redistribute it and/or modify it under
 the terms of the GNU Library General Public License as published by the Free
@@ -42,7 +42,7 @@
 MS-DOS.
 
 Beginning with version 8.3, calopen() uses the default calibration file name
-(DEFWFDBC, defined in wfdblib.h) if passed a NULL argument and if the WFDBCAL
+(DEFWFDBCAL, defined in wfdblib.h) if passed a NULL argument and if the WFDBCAL
 environment variable is not set.
 */
 
@@ -75,7 +75,7 @@
 
     /* If no calibration file is specified, return immediately. */
     if (cfname == NULL && (cfname = getenv("WFDBCAL")) == NULL &&
-	(cfname = DEFWFDBC) == NULL)
+	(cfname = DEFWFDBCAL) == NULL)
 	return (0);
 
     if (*cfname == '+')		/* don't empty the calibration list */
diff -Naur wfdb-10.2.0/lib/signal.c wfdb-10.2.1/lib/signal.c
--- wfdb-10.2.0/lib/signal.c	Sun Oct 14 18:38:40 2001
+++ wfdb-10.2.1/lib/signal.c	Wed Nov  7 13:46:44 2001
@@ -1,5 +1,5 @@
 /* file: signal.c	G. Moody	13 April 1989
-			Last revised:  14 October 2001	wfdblib 10.2.0
+			Last revised:  7 November 2001	wfdblib 10.2.1
 WFDB library functions for signals
 
 _______________________________________________________________________________
@@ -268,7 +268,8 @@
 				   dsbuf does not contain valid data) */
 static unsigned dsblen;		/* capacity of dsbuf, in samples */
 static unsigned framelen;	/* total number of samples per frame */
-static int gvmode = WFDB_LOWRES;/* getvec mode (WFDB_HIGHRES or WFDB_LOWRES) */
+static int gvmode = -1;		/* getvec mode (WFDB_HIGHRES or WFDB_LOWRES
+				   once initialized) */
 static int gvc;			/* getvec sample-within-frame counter */
 
 /* These variables relate to output signals. */
@@ -1552,7 +1553,6 @@
 	if (ispfmax < is->info.spf) ispfmax = is->info.spf;
 	if (skewmax < is->skew) skewmax = is->skew;
     }
-
     setgvmode(gvmode);	/* Reset sfreq if appropriate. */
     gvc = ispfmax;	/* Initialize getvec's sample-within-frame counter. */
     nisig += s;		/* Update the count of open input signals. */
@@ -1815,7 +1815,8 @@
 oversampled signal is returned by successive invocations of getvec; samples of
 signals sampled at lower frequencies are returned on two or more successive
 invocations of getvec as appropriate.  Function setgvmode can be used to change
-getvec's operating mode, which is WFDB_LOWRES by default.  When reading
+getvec's operating mode, which is determined by environment variable
+WFDBGVMODE or constant DEFWFDBGVMODE by default.  When reading
 ordinary records (with all signals sampled at the same frequency), getvec's
 behavior is independent of its operating mode. */
 
@@ -1827,6 +1828,15 @@
 FVOID setgvmode(mode)
 int mode;
 {
+    if (mode < 0) {	/* (re)set to default mode */
+	char *p;
+
+        if (p = getenv("WFDBGVMODE"))
+	    mode = atoi(p);
+	else
+	    mode = DEFWFDBGVMODE;
+    }
+
     if (mode == WFDB_HIGHRES) {
 	gvmode = WFDB_HIGHRES;
 	sfreq = ffreq * ispfmax;
diff -Naur wfdb-10.2.0/lib/wfdb.h wfdb-10.2.1/lib/wfdb.h
--- wfdb-10.2.0/lib/wfdb.h	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/lib/wfdb.h	Fri Nov 16 16:18:43 2001
@@ -1,5 +1,5 @@
 /* file: wfdb.h		G. Moody	13 June 1983
-			Last revised:   14 August 2001	wfdblib 10.2.0
+			Last revised:   7 November 2001	wfdblib 10.2.1
 WFDB library type, constant, structure, and function interface definitions
 
 _______________________________________________________________________________
@@ -33,7 +33,7 @@
 /* WFDB library version. */
 #define WFDB_MAJOR   10
 #define WFDB_MINOR   2
-#define WFDB_RELEASE 0
+#define WFDB_RELEASE 1
 #define WFDB_NETFILES 1	/* if 1, library includes code for HTTP, FTP clients */
 
 /* Determine what type of compiler is being used. */
diff -Naur wfdb-10.2.0/lib/wfdbio.c wfdb-10.2.1/lib/wfdbio.c
--- wfdb-10.2.0/lib/wfdbio.c	Fri Sep  7 15:21:45 2001
+++ wfdb-10.2.1/lib/wfdbio.c	Wed Nov  7 16:50:39 2001
@@ -1,5 +1,5 @@
 /* file: wfdbio.c	G. Moody	18 November 1988
-			Last revised:	7 September 2001	wfdblib 10.2.0
+			Last revised:	 7 November 2001	wfdblib 10.2.1
 Low-level I/O functions for the WFDB library
 
 _______________________________________________________________________________
@@ -151,7 +151,7 @@
 files to be opened for reading.  Under UNIX or MS-DOS, this list is obtained
 from the shell (environment) variable WFDB, which may be set by the user
 (typically as part of the login script).  A default value may be set at compile
-time (DEFWFDBP in wfdblib.h);  this is necessary when compiling for the
+time (DEFWFDB in wfdblib.h);  this is necessary when compiling for the
 Macintosh OS.  If the value of WFDB is of the form `@FILE', wfdb_getiwfdb()
 reads the WFDB path from the specified FILE. */
 
@@ -168,13 +168,13 @@
 	if (wfdbpath == NULL) {
 #ifdef HAS_PUTENV
 	    static char *p;
-	    if (p == NULL) p = (char *)malloc(strlen(DEFWFDBP)+6);
+	    if (p == NULL) p = (char *)malloc(strlen(DEFWFDB)+6);
 	    if (p) {
-		sprintf(p, "WFDB=%s", DEFWFDBP);
+		sprintf(p, "WFDB=%s", DEFWFDB);
 		putenv(p);
 	    }
 #endif
-	    wfdbpath = DEFWFDBP;
+	    wfdbpath = DEFWFDB;
 	}
     }
     getiwfdb_count = 0;
@@ -184,12 +184,30 @@
 #ifdef HAS_PUTENV
     if (getenv("WFDBCAL") == NULL) {
 	static char *p;
-	if (p == NULL) p = malloc(strlen(DEFWFDBC)+9);
+	if (p == NULL) p = malloc(strlen(DEFWFDBCAL)+9);
 	if (p) {
-	    sprintf(p, "WFDBCAL=%s", DEFWFDBC);
+	    sprintf(p, "WFDBCAL=%s", DEFWFDBCAL);
 	    putenv(p);
 	}
     }
+    if (getenv("WFDBANNSORT") == NULL) {
+	static char *p;
+	if (p == NULL) p = malloc(32);
+	if (p) {
+	    sprintf(p, "WFDBANNSORT=%d", DEFWFDBANNSORT);
+	    putenv(p);
+	}
+    }
+    if (getenv("WFDBGVMODE") == NULL) {
+	static char *p;
+	if (p == NULL) p = malloc(32);
+	if (p) {
+	    sprintf(p, "WFDBGVMODE=%d", DEFWFDBGVMODE == 0 ? 0 : 1);
+	    putenv(p);
+	}
+    }
+
+
 #endif
     return (wfdbpath);
 }
diff -Naur wfdb-10.2.0/lib/wfdblib.h wfdb-10.2.1/lib/wfdblib.h
--- wfdb-10.2.0/lib/wfdblib.h	Fri Sep  7 15:20:27 2001
+++ wfdb-10.2.1/lib/wfdblib.h	Fri Nov 16 16:18:44 2001
@@ -1,5 +1,5 @@
 /* file: wfdblib.h	G. Moody	13 April 1989
-                        Last revised:  7 September 2001       wfdblib 10.2.0
+                        Last revised:  7 November 2001       wfdblib 10.2.1
 External definitions for WFDB library private functions
 
 _______________________________________________________________________________
@@ -34,11 +34,11 @@
 #include "wfdb.h"
 
 /* Define the symbol _WINDLL if this library is to be compiled as a Microsoft
-Windows DLL.  Note that a DLL's private functions (such as those listed below)
-*cannot* be called by Windows user programs, which can call only DLL functions
-that use the Pascal calling interface (see wfdb.h).  To compile this library
-for use in a Microsoft Windows application, but *not* as a DLL, define the
-symbol _WINDOWS instead of _WINDLL. */
+   Windows DLL.  Note that a DLL's private functions (such as those listed
+   below) *cannot* be called by Windows user programs, which can call only DLL
+   functions that use the Pascal calling interface (see wfdb.h).  To compile
+   this library for use in a Microsoft Windows application, but *not* as a DLL,
+   define the symbol _WINDOWS instead of _WINDLL. */
 /* #define _WINDLL */
 
 #if defined(_WINDLL) && !defined(_WINDOWS)
@@ -58,64 +58,90 @@
 #endif
 
 #if defined(_WINDLL)
-#define WFDBNOSORT
+#define WFDBANNSORT 0
 #endif
 
 /* Define the symbol MSDOS if this library is to be used under MS-DOS or MS
-Windows.  Note: MSDOS is predefined by some MS-DOS and MS Windows compilers. */
+   Windows.  Note: MSDOS is predefined by some MS-DOS and MS Windows compilers.
+*/
 /* #define MSDOS */
 
 /* Uncomment the next line if this software is to be compiled on a Macintosh.*/
 /* #define MAC */
 /* Macintosh users only:  If the version of "ISO 9660 File Access" in the
-"System:Extensions" folder is earlier than 5.0, either update your system
-software (recommended) or uncomment the next line. */
+   "System:Extensions" folder is earlier than 5.0, either update your system
+   software (recommended) or uncomment the next line. */
 /* #define FIXISOCD */
 
-/* DEFWFDBP is the default value of the WFDB path if the WFDB environment
-variable is not set.  In most cases, it is sufficient to use the string "."
-for this purpose (thus restricting the search for DB files to the current
-directory).  If WFDB_NETFILES support is enabled, the setting below adds the
-web-accessible PhysioBank databases to the default path;  you may wish to
-change this to use a nearby PhysioNet mirror (for a list of mirrors, see
-http://www.physionet.org/mirrors/).   DEFWFDBP must not be NULL, however.
-The default given below for the Macintosh specifies that the WFDB path is to
-be read from the file udb/dbpath.mac on the third edition of the MIT-BIH
-Arrhythmia Database CD-ROM (which has a volume name of `MITADB3'); you may
-prefer to use a file on a writable disk for this purpose to make
-reconfiguration possible.  See getwfdb() in wfdbio.c for further information.
+/* DEFWFDB is the default value of the WFDB path if the WFDB environment
+   variable is not set.  This value is edited by the configuration script
+   (../configure), which also edits this block of comments to match.
+
+   In most cases, it is sufficient to use the string ". /usr/database" for
+   this purpose, thus restricting the search for WFDB files to the current
+   directory ("."), followed by /usr/database).
+   
+   If WFDB_NETFILES support is enabled, the setting below adds the
+   web-accessible PhysioBank databases to the default path; you may wish to
+   change this to use a nearby PhysioNet mirror (for a list of mirrors, see
+   http://www.physionet.org/mirrors/).  DEFWFDB must not be NULL, however.
+   The default given below for the Macintosh specifies that the WFDB path is to
+   be read from the file udb/dbpath.mac on the third edition of the MIT-BIH
+   Arrhythmia Database CD-ROM (which has a volume name of `MITADB3'); you may
+   prefer to use a file on a writable disk for this purpose to make
+   reconfiguration possible.  See getwfdb() in wfdbio.c for further
+   information.
 */
 #ifdef MAC
 # ifdef FIXISOCD
-#  define DEFWFDBP	"@MITADB3:UDB:DBPATH.MAC;1"
+#  define DEFWFDB	"@MITADB3:UDB:DBPATH.MAC;1"
 # else
-#  define DEFWFDBP	"@MITADB3:UDB:DBPATH.MAC"
+#  define DEFWFDB	"@MITADB3:UDB:DBPATH.MAC"
 # define __STDC__
 # endif
 #else
 # if WFDB_NETFILES
-#  define DEFWFDBP	". http://www.physionet.org/physiobank/database"
+# define DEFWFDB ". /usr/database http://www.physionet.org/physiobank/database"
 # else
-#  define DEFWFDBP	"."
+#  define DEFWFDB	". /usr/database"
 # endif
 #endif
 
-/* DEFWFDBC is the name of the default WFDB calibration file, used if the
-WFDBCAL environment variable is not set.  This name need not include path
-information if the calibration file is located in a directory included in the
-WFDB path.  The value given below is the name of the standard calibration file
-supplied on the various CD-ROM databases.  DEFWFDBC may be NULL if you prefer
-not to have a default calibration file.  See calopen() in calib.c for further
-information. */
-#define DEFWFDBC "wfdbcal"
+/* DEFWFDBCAL is the name of the default WFDB calibration file, used if the
+   WFDBCAL environment variable is not set.  This name need not include path
+   information if the calibration file is located in a directory included in
+   the WFDB path.  The value given below is the name of the standard
+   calibration file supplied on the various CD-ROM databases.  DEFWFDBCAL may
+   be NULL if you prefer not to have a default calibration file.  See calopen()
+   in calib.c for further information. */
+#define DEFWFDBCAL "wfdbcal"
+
+/* WFDB applications may write annotations out-of-order, but in almost all
+   cases, they expect that annotations they read must be in order.  The
+   environment variable WFDBANNSORT specifies if wfdbquit() should attempt to
+   sort annotations in any output annotation files before closing them (it
+   does this if WFDBANNSORT is non-zero, or if WFDBANNSORT is not set, and
+   DEFWFDBANNSORT is non-zero). */
+#define DEFWFDBANNSORT 1
+
+/* When reading multifrequency records, getvec() can operate in two modes:
+   WFDB_LOWRES (returning one sample per signal per frame), or WFDB_HIGHRES
+   (returning each sample of any oversampled signals, and duplicating samples
+   of other signals as necessary).  If the operating mode is not selected by
+   invoking setgvmode(), the value of the environment variable WFDBGVMODE
+   determines the mode (0: WFDB_LOWRES, non-zero: WFDB_HIGHRES);  if WFDBGVMODE
+   is not set, the value of DEFWFDBMODE determines the mode. */
+#define DEFWFDBGVMODE 0
 
 /* putenv() is available in POSIX, SVID, and BSD Unices and in MS-DOS and
-32-bit MS Windows, but not under 16-bit MS Windows or under MacOS.  If it is
-available, getwfdb() (in wfdbio.c) detects when the environment variables WFDB
-or WFDBCAL are not set, and sets them according to DEFWFDBP or DEFWFDBC as
-needed using putenv().  This feature is useful mainly for programs such as
-WAVE, where WFDB or WFDBCAL are set interactively and it is useful to show
-their default values to the user;  setwfdb() and getwfdb() do not depend on it.
+   32-bit MS Windows, but not under 16-bit MS Windows or under MacOS.  If it is
+   available, getwfdb() (in wfdbio.c) detects when the environment variables
+   WFDB, WFDBCAL, WFDBANNSORT, and WFDBGVMODE are not set, and sets them
+   according to DEFWFDB, DEFWFDBCAL, DEFWFDBANNSORT, and DEFWFDBGVMODE as
+   needed using putenv().  This feature is useful mainly for programs such as
+   WAVE, where these variables are set interactively and it is useful to show
+   their default values to the user; setwfdb() and getwfdb() do not depend on
+   it.
 */
 #if !defined(_WIN16) && !defined(MAC)
 #define HAS_PUTENV
@@ -235,8 +261,8 @@
 #endif
 
 /* The following block is needed only to declare the values returned by
-malloc() (either char * or void *) and sprintf() (either int or char *).
-The object code should be correct even if these declarations are not. */
+   malloc() (either char * or void *) and sprintf() (either int or char *).
+   The object code should be correct even if these declarations are not. */
 #if defined(__STDC__) || defined(_WINDOWS)
 # include <stdlib.h>
 #else
@@ -254,9 +280,9 @@
 # endif
 #endif
 
-/* Declare the values returned by atof() and atol() (not needed for ANSI C
-or Microsoft Windows C compilers, which have these declarations in stdlib.h,
-included above). */
+/* Declare the values returned by atof() and atol() (not needed for ANSI C or
+   Microsoft Windows C compilers, which have these declarations in stdlib.h,
+   included above). */
 #if !defined(__STDC__) && !defined(_WINDOWS)
 extern double atof();
 extern long atol();
@@ -323,7 +349,7 @@
     wfdb_oaflush();
 
 /* Some non-ANSI C libraries (e.g., version 7, BSD 4.2) lack an implementation
-of strtok();  define NOSTRTOK to compile the portable version in wfdbio.c. */
+   of strtok(); define NOSTRTOK to compile the portable version in wfdbio.c. */
 # ifdef NOSTRTOK
 extern char *strtok();
 # endif
diff -Naur wfdb-10.2.0/lib/wfdblib.h0 wfdb-10.2.1/lib/wfdblib.h0
--- wfdb-10.2.0/lib/wfdblib.h0	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/lib/wfdblib.h0	Wed Nov  7 16:46:17 2001
@@ -0,0 +1,357 @@
+/* file: wfdblib.h	G. Moody	13 April 1989
+                        Last revised:  7 November 2001       wfdblib 10.2.1
+External definitions for WFDB library private functions
+
+_______________________________________________________________________________
+wfdb: a library for reading and writing annotated waveforms (time series data)
+Copyright (C) 2001 George B. Moody
+
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Library General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option) any
+later version.
+
+This library is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.  See the GNU Library General Public License for more
+details.
+
+You should have received a copy of the GNU Library General Public License along
+with this library; if not, write to the Free Software Foundation, Inc., 59
+Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+You may contact the author by e-mail (george@mit.edu) or postal mail
+(MIT Room E25-505A, Cambridge, MA 02139 USA).  For updates to this software,
+please visit PhysioNet (http://www.physionet.org/).
+_______________________________________________________________________________
+
+These definitions may be included in WFDB library source files to permit them
+to share information about library private functions, which are not intended
+to be invoked directly by user programs.  By convention, all externally defined
+symbols reserved to the library begin with the characters "wfdb_".
+*/
+
+#include "wfdb.h"
+
+/* Define the symbol _WINDLL if this library is to be compiled as a Microsoft
+   Windows DLL.  Note that a DLL's private functions (such as those listed
+   below) *cannot* be called by Windows user programs, which can call only DLL
+   functions that use the Pascal calling interface (see wfdb.h).  To compile
+   this library for use in a Microsoft Windows application, but *not* as a DLL,
+   define the symbol _WINDOWS instead of _WINDLL. */
+/* #define _WINDLL */
+
+#if defined(_WINDLL) && !defined(_WINDOWS)
+#define _WINDOWS
+#endif
+
+#if defined(_WIN16) && !defined(_WINDOWS)
+#define _WINDOWS
+#endif
+
+#if defined(_WIN32) && !defined(_WINDOWS)
+#define _WINDOWS
+#endif
+
+#if defined(_WINDOWS) && !defined (_WIN16) && !defined(_WIN32)
+#define _WIN16
+#endif
+
+#if defined(_WINDLL)
+#define WFDBANNSORT 0
+#endif
+
+/* Define the symbol MSDOS if this library is to be used under MS-DOS or MS
+   Windows.  Note: MSDOS is predefined by some MS-DOS and MS Windows compilers.
+*/
+/* #define MSDOS */
+
+/* Uncomment the next line if this software is to be compiled on a Macintosh.*/
+/* #define MAC */
+/* Macintosh users only:  If the version of "ISO 9660 File Access" in the
+   "System:Extensions" folder is earlier than 5.0, either update your system
+   software (recommended) or uncomment the next line. */
+/* #define FIXISOCD */
+
+/* DEFWFDB is the default value of the WFDB path if the WFDB environment
+   variable is not set.  This value is edited by the configuration script
+   (../configure), which also edits this block of comments to match.
+
+   In most cases, it is sufficient to use the string ". DBDIR" for
+   this purpose, thus restricting the search for WFDB files to the current
+   directory ("."), followed by DBDIR).
+   
+   If WFDB_NETFILES support is enabled, the setting below adds the
+   web-accessible PhysioBank databases to the default path; you may wish to
+   change this to use a nearby PhysioNet mirror (for a list of mirrors, see
+   http://www.physionet.org/mirrors/).  DEFWFDB must not be NULL, however.
+   The default given below for the Macintosh specifies that the WFDB path is to
+   be read from the file udb/dbpath.mac on the third edition of the MIT-BIH
+   Arrhythmia Database CD-ROM (which has a volume name of `MITADB3'); you may
+   prefer to use a file on a writable disk for this purpose to make
+   reconfiguration possible.  See getwfdb() in wfdbio.c for further
+   information.
+*/
+#ifdef MAC
+# ifdef FIXISOCD
+#  define DEFWFDB	"@MITADB3:UDB:DBPATH.MAC;1"
+# else
+#  define DEFWFDB	"@MITADB3:UDB:DBPATH.MAC"
+# define __STDC__
+# endif
+#else
+# if WFDB_NETFILES
+# define DEFWFDB ". DBDIR http://www.physionet.org/physiobank/database"
+# else
+#  define DEFWFDB	". DBDIR"
+# endif
+#endif
+
+/* DEFWFDBCAL is the name of the default WFDB calibration file, used if the
+   WFDBCAL environment variable is not set.  This name need not include path
+   information if the calibration file is located in a directory included in
+   the WFDB path.  The value given below is the name of the standard
+   calibration file supplied on the various CD-ROM databases.  DEFWFDBCAL may
+   be NULL if you prefer not to have a default calibration file.  See calopen()
+   in calib.c for further information. */
+#define DEFWFDBCAL "wfdbcal"
+
+/* WFDB applications may write annotations out-of-order, but in almost all
+   cases, they expect that annotations they read must be in order.  The
+   environment variable WFDBANNSORT specifies if wfdbquit() should attempt to
+   sort annotations in any output annotation files before closing them (it
+   does this if WFDBANNSORT is non-zero, or if WFDBANNSORT is not set, and
+   DEFWFDBANNSORT is non-zero). */
+#define DEFWFDBANNSORT 1
+
+/* When reading multifrequency records, getvec() can operate in two modes:
+   WFDB_LOWRES (returning one sample per signal per frame), or WFDB_HIGHRES
+   (returning each sample of any oversampled signals, and duplicating samples
+   of other signals as necessary).  If the operating mode is not selected by
+   invoking setgvmode(), the value of the environment variable WFDBGVMODE
+   determines the mode (0: WFDB_LOWRES, non-zero: WFDB_HIGHRES);  if WFDBGVMODE
+   is not set, the value of DEFWFDBMODE determines the mode. */
+#define DEFWFDBGVMODE 0
+
+/* putenv() is available in POSIX, SVID, and BSD Unices and in MS-DOS and
+   32-bit MS Windows, but not under 16-bit MS Windows or under MacOS.  If it is
+   available, getwfdb() (in wfdbio.c) detects when the environment variables
+   WFDB, WFDBCAL, WFDBANNSORT, and WFDBGVMODE are not set, and sets them
+   according to DEFWFDB, DEFWFDBCAL, DEFWFDBANNSORT, and DEFWFDBGVMODE as
+   needed using putenv().  This feature is useful mainly for programs such as
+   WAVE, where these variables are set interactively and it is useful to show
+   their default values to the user; setwfdb() and getwfdb() do not depend on
+   it.
+*/
+#if !defined(_WIN16) && !defined(MAC)
+#define HAS_PUTENV
+#endif
+
+#ifndef FILE
+#include <stdio.h>
+/* stdin/stdout may not be defined in some environments (e.g., for MS Windows
+   DLLs).  Defining them as NULL here allows the WFDB library to be compiled in
+   such environments (it does not allow use of stdin/stdout when the operating
+   environment does not provide them, however). */
+#ifndef stdin
+#define stdin NULL
+#endif
+#ifndef stdout
+#define stdout NULL
+#endif
+#endif
+
+#ifndef TRUE
+#define TRUE 1 
+#endif 
+#ifndef FALSE
+#define FALSE 0
+#endif 
+
+/* Structures used by internal WFDB library functions only */
+struct netfile {
+  char *url;
+  char *data;
+  int mode;
+  long base_addr;
+  long cont_len;
+  long pos;
+  long err;
+  int fd;
+};
+
+struct WFDB_FILE {
+  FILE *fp;
+  struct netfile *netfp;
+  int type;
+};
+
+/* Values for WFDB_FILE 'type' field */
+#define WFDB_LOCAL	0	/* a local file, read via C standard I/O */
+#define WFDB_NET	1	/* a remote file, read via libwww */
+
+/* Composite data types */
+typedef struct netfile netfile;
+typedef struct WFDB_FILE WFDB_FILE;
+
+/* To enable http and ftp access as well as standard (local file) I/O via the
+   WFDB library, define WFDB_NETFILES=1 and link with libwww (see 'Makefile').
+   Otherwise, the WFDB library uses only the ANSI/ISO standard I/O library. */
+#if WFDB_NETFILES
+#include <WWWLib.h>
+#include <WWWInit.h>
+#include <errno.h>
+
+#ifndef EROFS	 /* errno value: attempt to write to a read-only file system */
+#ifdef EINVAL
+#define EROFS EINVAL
+#else
+#define EROFS 1
+#endif
+#endif
+
+/* Constants */
+/* #define USEHTCACHE */	/* uncomment to enable caching by libwww */
+
+/* http cache parameters (effective only if USEHTCACHE is defined) */
+#define CACHEDIR	"/tmp"	/* should be world-writable */
+#define CACHESIZE	100	/* max size of the entire http cache in MB */
+#define ENTRYSIZE	20	/* max size of a single cache entry in MB */
+
+#define NF_PAGE_SIZE	32768 	/* default bytes per http range request */
+
+/* values for netfile 'err' field */
+#define NF_NO_ERR	0	/* no errors */
+#define NF_EOF_ERR	1	/* file pointer at EOF */
+#define NF_REAL_ERR	2	/* read request failed */
+
+/* values for netfile 'mode' field */
+#define NF_CHUNK_MODE	0	/* http range requests supported */
+#define NF_FULL_MODE	1	/* http range requests not supported */
+
+/* Function prototypes */
+extern void wfdb_clearerr(WFDB_FILE *fp);
+extern int wfdb_fclose(WFDB_FILE *fp);
+extern int wfdb_feof(WFDB_FILE *fp);
+extern int wfdb_ferror(WFDB_FILE *fp);
+extern int wfdb_fflush(WFDB_FILE *fp);
+extern char* wfdb_fgets(char *s, int size, WFDB_FILE *fp);
+extern size_t wfdb_fread(void *ptr, size_t size, size_t nmemb, WFDB_FILE *fp);
+extern int wfdb_fseek(WFDB_FILE *fp, long offset, int whence);
+extern long wfdb_ftell(WFDB_FILE *fp);
+extern size_t wfdb_fwrite(void *ptr, size_t size, size_t nmemb, WFDB_FILE *fp);
+extern int wfdb_getc(WFDB_FILE *fp);
+extern int wfdb_putc(int c, WFDB_FILE *fp);
+extern void wfdb_wwwquit(void);
+
+#else	    /* WFDB_NETFILES = 0 -- use standard I/O functions only */
+
+#define wfdb_fclose(wp)			fclose(wp->fp)
+#define wfdb_feof(wp)			feof(wp->fp)
+#define wfdb_ferror(wp)			ferror(wp->fp)
+#define wfdb_fflush(wp)		((wp == NULL) ? fflush(NULL) : fflush(wp->fp))
+#define wfdb_fgets(s, n, wp)		fgets(s, n, wp->fp)
+#define wfdb_fread(p, s, n, wp)		fread(p, s, n, wp->fp)
+#define wfdb_fseek(wp, o, w)		fseek(wp->fp, o, w)
+#define wfdb_ftell(wp)			ftell(wp->fp)
+#define wfdb_fwrite(p, s, n, wp)	fwrite(p, s, n, wp->fp)
+#define wfdb_getc(wp)			getc(wp->fp)
+#define wfdb_putc(c, wp)		putc(c, wp->fp)
+
+#endif
+
+/* The following block is needed only to declare the values returned by
+   malloc() (either char * or void *) and sprintf() (either int or char *).
+   The object code should be correct even if these declarations are not. */
+#if defined(__STDC__) || defined(_WINDOWS)
+# include <stdlib.h>
+#else
+# ifndef NOMALLOC_H
+# include <malloc.h>
+# else
+extern char *malloc();
+# endif
+# ifdef ISPRINTF
+extern int sprintf();
+# else
+#  ifndef MSDOS
+extern char *sprintf();
+#  endif
+# endif
+#endif
+
+/* Declare the values returned by atof() and atol() (not needed for ANSI C or
+   Microsoft Windows C compilers, which have these declarations in stdlib.h,
+   included above). */
+#if !defined(__STDC__) && !defined(_WINDOWS)
+extern double atof();
+extern long atol();
+#endif
+
+#ifndef BSD
+# include <string.h>
+#else		/* for Berkeley UNIX only */
+# include <strings.h>
+# define strchr index
+#endif
+
+#ifdef _WINDOWS
+#ifndef _WIN32	/* these definitions are needed for 16-bit MS Windows only */
+#define strcat _fstrcat
+#define strchr _fstrchr
+#define strcmp _fstrcmp
+#define strcpy _fstrcpy
+#define strlen _fstrlen
+#define strncmp _fstrncmp
+#define strtok _fstrtok
+#endif
+#endif
+
+/* Define function prototypes for ANSI C, MS Windows C, and C++ compilers */
+#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) || defined(_WINDOWS)
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+/* These functions are defined in wfdbio.c */
+extern WFDB_FILE *wfdb_open(char *file_type, char *record, int mode);
+extern int wfdb_checkname(char *name, char *description);
+extern int wfdb_g16(WFDB_FILE *fp);
+extern long wfdb_g32(WFDB_FILE *fp);
+extern void wfdb_p16(unsigned int x, WFDB_FILE *fp);
+extern void wfdb_p32(long x, WFDB_FILE *fp);
+extern int wfdb_parse_path(char *wfdb_path);
+extern void wfdb_addtopath(char *pathname);
+extern void wfdb_error(char *format_string, ...);
+extern WFDB_FILE* wfdb_fopen(char *fname, const char *mode);
+extern int wfdb_fprintf(WFDB_FILE *fp, const char *format, ...);
+extern void wfdb_setirec(char *record_name);
+
+/* These functions are defined in signal.c */
+extern void wfdb_sigclose(void);
+extern void wfdb_osflush(void);
+
+/* These functions are defined in annot.c */
+extern void wfdb_anclose(void);
+extern void wfdb_oaflush(void);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#else        /* declare only function return types for non-ANSI C compilers */
+
+extern WFDB_FILE *wfdb_open(), *wfdb_fopen();
+extern int wfdb_checkname(), wfdb_g16(), wfdb_parse_path();
+extern long wfdb_g32();
+extern void wfdb_p16(), wfdb_p32(), wfdb_addtopath(), wfdb_error(),
+    wfdb_setirec(), wfdb_sigclose(), wfdb_anclose(), wfdb_osflush(),
+    wfdb_oaflush();
+
+/* Some non-ANSI C libraries (e.g., version 7, BSD 4.2) lack an implementation
+   of strtok(); define NOSTRTOK to compile the portable version in wfdbio.c. */
+# ifdef NOSTRTOK
+extern char *strtok();
+# endif
+
+#endif
diff -Naur wfdb-10.2.0/psd/Makefile wfdb-10.2.1/psd/Makefile
--- wfdb-10.2.0/psd/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/psd/Makefile	Fri Nov 16 16:18:43 2001
@@ -32,12 +32,12 @@
 # directory).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -45,7 +45,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
@@ -186,7 +186,7 @@
 	sed s+/usr/local/bin+$(BINDIR)+g <hrmem >$(BINDIR)/hrmem
 	sed s+/usr/local/bin+$(BINDIR)+g <hrplot >$(BINDIR)/hrplot
 	cp plot2d plot3d $(BINDIR)
-	$(SETXPERMISSIONS) $(SCRIPTS)
+	cd $(BINDIR); $(SETXPERMISSIONS) $(SCRIPTS)
 
 uninstall:
 	../uninstall.sh $(BINDIR) $(XFILES) $(SCRIPTS)
diff -Naur wfdb-10.2.0/psd/Makefile.tpl wfdb-10.2.1/psd/Makefile.tpl
--- wfdb-10.2.0/psd/Makefile.tpl	Wed Jun  7 18:29:24 2000
+++ wfdb-10.2.1/psd/Makefile.tpl	Tue Oct 16 21:14:01 2001
@@ -25,7 +25,7 @@
 	sed s+/usr/local/bin+$(BINDIR)+g <hrmem >$(BINDIR)/hrmem
 	sed s+/usr/local/bin+$(BINDIR)+g <hrplot >$(BINDIR)/hrplot
 	cp plot2d plot3d $(BINDIR)
-	$(SETXPERMISSIONS) $(SCRIPTS)
+	cd $(BINDIR); $(SETXPERMISSIONS) $(SCRIPTS)
 
 uninstall:
 	../uninstall.sh $(BINDIR) $(XFILES) $(SCRIPTS)
diff -Naur wfdb-10.2.0/psd/hrplot wfdb-10.2.1/psd/hrplot
--- wfdb-10.2.0/psd/hrplot	Sun Jan 30 04:13:20 2000
+++ wfdb-10.2.1/psd/hrplot	Fri Nov 16 00:51:19 2001
@@ -1,5 +1,5 @@
 #! /bin/sh
-# file: hrlomb		G. Moody	14 June 1995
+# file: hrplot		G. Moody	14 June 1995
 #			Last revised:    5 May 1999
 #
 # -----------------------------------------------------------------------------
diff -Naur wfdb-10.2.0/wave/Makefile wfdb-10.2.1/wave/Makefile
--- wfdb-10.2.0/wave/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/wave/Makefile	Fri Nov 16 16:18:43 2001
@@ -1,10 +1,10 @@
 # file: Makefile	G. Moody	 1 May 1990
-#			Last revised:   23 May 2000		WAVE 6.3
+#			Last revised:  16 November 2001		WAVE 6.5
 # `make' description file for WAVE
 #
 # -----------------------------------------------------------------------------
 # WAVE: Waveform analyzer, viewer, and editor
-# Copyright (C) 2000 George B. Moody
+# Copyright (C) 2001 George B. Moody
 #
 # This program is free software; you can redistribute it and/or modify it under
 # the terms of the GNU General Public License as published by the Free Software
@@ -45,12 +45,12 @@
 # just type `make' (from within this directory).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -58,7 +58,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
diff -Naur wfdb-10.2.0/wave/Makefile.top wfdb-10.2.1/wave/Makefile.top
--- wfdb-10.2.0/wave/Makefile.top	Wed May 31 05:46:27 2000
+++ wfdb-10.2.1/wave/Makefile.top	Fri Nov 16 01:13:56 2001
@@ -1,10 +1,10 @@
 # file: Makefile	G. Moody	 1 May 1990
-#			Last revised:   23 May 2000		WAVE 6.3
+#			Last revised:  16 November 2001		WAVE 6.5
 # `make' description file for WAVE
 #
 # -----------------------------------------------------------------------------
 # WAVE: Waveform analyzer, viewer, and editor
-# Copyright (C) 2000 George B. Moody
+# Copyright (C) 2001 George B. Moody
 #
 # This program is free software; you can redistribute it and/or modify it under
 # the terms of the GNU General Public License as published by the Free Software
diff -Naur wfdb-10.2.0/wave/faq.hlp wfdb-10.2.1/wave/faq.hlp
--- wfdb-10.2.0/wave/faq.hlp	Fri Oct 12 13:23:02 2001
+++ wfdb-10.2.1/wave/faq.hlp	Fri Nov 16 15:54:48 2001
@@ -1,20 +1,20 @@
 This is the WAVE FAQ (frequently asked questions) list.  It was last revised on
-24 May 2000 (recent changes are marked with `*' below).
+16 November 2001 (recent changes are marked with `*' below).
 
 Hardware questions:
- * Can I use WAVE if I don't have a SparcStation?
+ . Can I use WAVE if I don't run Linux or another Unix?
  . How can I use WAVE from an X terminal, PC, Mac, etc.?
  . Can I run WAVE remotely using a modem?
  . How can I insert annotations using a two-button mouse?
  . How do I get spot help if I don't have a `Help' key?
 Problems starting WAVE:
- * Why won't WAVE run?
- * Why does WAVE take so long to display the first screen?
+ . Why won't WAVE run?
+ . Why does WAVE take so long to display the first screen?
  . Where do I find the missing fonts?
 Display-related questions:
  . I can't see the signals!
  . I can't see text in the signal window!
- * WAVE doesn't draw/erase properly in the scope window!
+ . WAVE doesn't draw/erase properly in the scope window!
  . How can I get correct display scales?
  . Why are signals too big or too small?
  . How can I change WAVE's default scales or display colors?
@@ -22,20 +22,20 @@
  . Everything in the Analysis Commands window appears twice!
 File-related questions:
  . I can't find the file named `RECORD'!
- * Why does WAVE tell me `Record ... is unavailable'?
- * How can I view a record stored on a web site or an FTP server?
+ . Why does WAVE tell me `Record ... is unavailable'?
+ . How can I view a record stored on a web site or an FTP server?
 Questions about editing:
- * Where are my annotations?
+ . Where are my annotations?
  . Why does WAVE tell me `You may not edit annotations ...'?
- * How do I edit a record on a CD-ROM, a web site, or an FTP server?
- * How can I undo an edit?
+ . How do I edit a record on a CD-ROM, a web site, or an FTP server?
+ . How can I undo an edit?
  . Can I define my own annotations?
  . How can I recover work after a crash?
  . Can I edit annotations with a text editor?
  . What are `link' annotations?
  . Can WAVE edit signal files?
 What else can WAVE do?
- * How can I make a screen dump?
+ . How can I make a screen dump?
  . Can WAVE read digitized signals in (fill in the blank) format?
  . What is ``high-resolution'' mode?
  . Can WAVE open more than one record at once?
@@ -45,8 +45,8 @@
  . Can WAVE be used for real-time display of data being acquired?
  . Can WAVE scroll through a record without user intervention?
  . How can I use WAVE's menu variables in a script or other program?
- * Is there a Motif version of WAVE?
- * How can I find out about ...?
+ . Is there a Motif version of WAVE?
+ . How can I find out about ...?
 
 If your question is not on this list, and you think it should be, please
 send it to me (george@hstbme.mit.edu)!
@@ -55,16 +55,24 @@
 Hardware questions
 ==================
 
-Can I use WAVE if I don't have a SparcStation?
-----------------------------------------------
+Can I use WAVE if I don't run Linux or another Unix?
+----------------------------------------------------
 
-If you have a 386, 486, or Pentium-based PC with a VGA card, mouse, at least
-8 Mb of RAM and 100 Mb of available disk space, you can run WAVE under Linux,
-a freely available UNIX clone for the PC.  Users have reported that WAVE can
-be compiled and run successfully on DEC Alpha-based workstations under Linux,
-and (in principle) it should be possible to run WAVE on any other type of
-CPU supported by Linux (the list currently includes MIPS, PowerPC, Sparc, ARM,
-as well as x86 and Alpha CPUs).
+Why would you not want to run Linux or Unix?  Any version of Linux or Unix is a
+much better choice for research than any version of MS-Windows. See
+http://www.dyncorp-is.com/darpa/meetings/win98aug/wars.html for an independent
+perspective on this issue.  Linux can coexist on the same PC with MS-Windows if
+necessary.
+
+The major obstacle to porting WAVE to other platforms is that the XView
+toolkit is needed for the user interface components of WAVE.  XView is free
+software and can be ported to other platforms, but this task is not trivial.
+
+Another possibility is to reimplement WAVE's user interface with a different
+toolkit.  The GTKWave project is doing just that, using the Gimp toolkit
+(GTK+), which runs not only under Linux and Unix, but also under MS-Windows.
+Beta-quality versions of GTKWave for Linux and for MS-Windows are currently
+available from PhysioNet (search for GTKWave for further information).
 
 If you have any networked computer that can run X11R4 or a later version
 (this includes all current UNIX workstations, PCs, Macintoshes, and a variety
@@ -1003,7 +1011,7 @@
 as command-line arguments to other programs.
 
 Click on `Export variables' in WAVE's analyze menu if you need to use these
-variables within a shell script.  (If you are not using csh or tcsh, edit
+variables within a shell script.  (If you are not using bash, ksh, or sh, edit
 the WAVE menu file first to select the alternate definition of this action.)
 Once the variables have been exported, they may be used in the same way as
 any other environment variables within your shell scripts.  For example, the
@@ -1035,6 +1043,12 @@
 of its lookalikes, are vastly different from the XView API with which WAVE is
 written, and a port to a Motif-like user interface would be decidedly
 non-trivial.
+
+The GTKWave project is reimplementing the user interface of WAVE using the Gimp
+toolkit (GTK+).  A beta-quality release of {\sf GTKWave} is now available from
+PhysioNet.  This offers a stable, object-oriented, and non-proprietary
+Motif-like interface under any version of Linux or Unix, and also under
+MS-Windows.
 
 
 How can I find out about ...?
diff -Naur wfdb-10.2.0/wave/gcc-patches wfdb-10.2.1/wave/gcc-patches
--- wfdb-10.2.0/wave/gcc-patches	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/wave/gcc-patches	Wed Dec 31 19:00:00 1969
@@ -1,204 +0,0 @@
-The GNU C compiler (gcc), version 2.1.x and later, may be used to compile
-`wave'.  If you are not sure what version of gcc you have, type `gcc -v' to
-find out.
-
-Several bugs in the standard XView include (.h) files cause problems for gcc,
-however.  This file contains patches that correct these bugs.  Note that gcc
-uses private versions of these files if available, so the originals in
-/usr/openwin/include/xview (or /usr/include/xview) need not be changed.
-
-If you have installed gcc version 2.5.x or later, the gcc installation
-procedure has already fixed these bugs in gcc's private copies of the standard
-.h files, and you should not attempt to install the patches below.
-
-If you have an earlier version of gcc (2.1.x, 2.2.x, 2.3.x, or 2.4.x), however,
-it is necessary to make the following patches to <xview/defaults.h>,
-<xview/notify.h>, <xview/openmenu.h>, and <xview/sun.h>.  (The patches to
-<xview/sun.h> are needed for gcc 2.2.x and 2.3.x only; they are optional for
-2.1.x or 2.4.x versions of gcc.)
-
-To apply these patches, do the following:
- 1. Set the shell variable A to the name of the private xview directory:
-      set A /usr/local/lib/gcc-lib/.../include/xview
- (replacing `...' by the correct intermediate directory names for your system).
-
- 2. If you have gcc 2.3.x or earlier, set shell variable B to the name of
- the directory in which the original versions of these files are found:
-      set B /usr/openwin/include/xview
- or
-      set B /usr/include/xview
- If you have gcc 2.4.x, you must patch gcc's copies of these files;  in this
- case,
-      set B $A
-
- 3. Copy the files to be patched into this directory:
-      cp $B/defaults.h $B/notify.h $B/openmenu.h $B/sun.h .
-
- 4. Patch the copies, using this file as input to `patch':
-      patch <gcc-patches
-    If you don't have `patch', read the rest of this file and apply the edits
-    manually.
-
- 5. Install the patched files where gcc will find them:
-      cp defaults.h notify.h openmenu.h sun.h $A
-
-The patches themselves begin here:
-
-*** /usr/include/xview/defaults.h	Wed Jun 20 02:43:21 1990
---- /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.1/include/xview/defaults.h	Thu May  7 17:46:35 1992
-***************
-*** 62,74 ****
-   * "Deactivated", or "0".  If the value is none of the above, a warning
-   * message will be displayed and Default will be returned.
-   */
-! EXTERN_FUNCTION (Bool 	defaults_get_boolean, (char *name, char *class, Bool default));
-  /*
-   * defaults_get_character(name, class, default) will lookup name and class in
-   * the defaults database and return the resulting character value.  Default
-   * will be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (char 	defaults_get_character, (char *name, char *class, char default));
-  /*
-   * defaults_get_enum(name, class, pairs) will lookup the value associated
-   * with name and class, scan the Pairs table and return the associated value.
---- 62,74 ----
-   * "Deactivated", or "0".  If the value is none of the above, a warning
-   * message will be displayed and Default will be returned.
-   */
-! EXTERN_FUNCTION (Bool 	defaults_get_boolean, (char *name, char *class, Bool _default));
-  /*
-   * defaults_get_character(name, class, default) will lookup name and class in
-   * the defaults database and return the resulting character value.  Default
-   * will be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (char 	defaults_get_character, (char *name, char *class, char _default));
-  /*
-   * defaults_get_enum(name, class, pairs) will lookup the value associated
-   * with name and class, scan the Pairs table and return the associated value.
-***************
-*** 81,87 ****
-   * the defaults database and return the resulting integer value. Default will
-   * be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (int 	defaults_get_integer, (char *name, char *class, int default));
-  
-  /*
-   * defaults_get_integer_check(name, class, default, mininum, maximum) will
---- 81,87 ----
-   * the defaults database and return the resulting integer value. Default will
-   * be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (int 	defaults_get_integer, (char *name, char *class, int _default));
-  
-  /*
-   * defaults_get_integer_check(name, class, default, mininum, maximum) will
-***************
-*** 90,96 ****
-   * Maximum (inclusive), an error message will be printed.  Default will be
-   * returned if any error occurs.
-   */
-! EXTERN_FUNCTION (int 	defaults_get_integer_check, (char *name, char *class, int default, int minimum, int maximum));
-  
-  /*
-   * defaults_get_string(name, class, default) will lookup and return the
---- 90,96 ----
-   * Maximum (inclusive), an error message will be printed.  Default will be
-   * returned if any error occurs.
-   */
-! EXTERN_FUNCTION (int 	defaults_get_integer_check, (char *name, char *class, int _default, int minimum, int maximum));
-  
-  /*
-   * defaults_get_string(name, class, default) will lookup and return the
-***************
-*** 97,103 ****
-   * null-terminated string value assocatied with name and class in the
-   * defaults database.  Default will be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (char *	defaults_get_string, (char *name, char *class, char *default));
-  
-  /*
-   * defaults_init_db() initializes the X11 Resource Manager.
---- 97,103 ----
-   * null-terminated string value assocatied with name and class in the
-   * defaults database.  Default will be returned if any error occurs.
-   */
-! EXTERN_FUNCTION (char *	defaults_get_string, (char *name, char *class, char *_default));
-  
-  /*
-   * defaults_init_db() initializes the X11 Resource Manager.
-*** /usr/include/xview/notify.h	Wed Jun 20 02:43:50 1990
---- /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.1/include/xview/notify.h	Thu May  7 17:41:42 1992
-***************
-*** 203,209 ****
-  
-  #ifndef _NOTIFY_MIN_SYMBOLS
-  
-! EXTERN_FUNCTION (Notify_value 	notify_default_wait3, (Notify_client nclient, int pid, union wait *status, struct rusage *rusage));
-  EXTERN_FUNCTION (Notify_error 	notify_dispatch, (void));
-  EXTERN_FUNCTION (Notify_error	notify_do_dispatch, (void));
-  EXTERN_FUNCTION (Notify_error 	notify_itimer_value, (Notify_client nclient, int which, struct itimerval *value));
---- 203,209 ----
-  
-  #ifndef _NOTIFY_MIN_SYMBOLS
-  
-! EXTERN_FUNCTION (Notify_value 	notify_default_wait3, (Notify_client nclient, int pid, void *status, void *rusage));
-  EXTERN_FUNCTION (Notify_error 	notify_dispatch, (void));
-  EXTERN_FUNCTION (Notify_error	notify_do_dispatch, (void));
-  EXTERN_FUNCTION (Notify_error 	notify_itimer_value, (Notify_client nclient, int which, struct itimerval *value));
-***************
-*** 270,276 ****
-  EXTERN_FUNCTION (Notify_value 	notify_next_itimer_func, (Notify_client nclient, int which));
-  EXTERN_FUNCTION (Notify_value	notify_next_output_func, (Notify_client nclient, int fd));
-  EXTERN_FUNCTION (Notify_value 	notify_next_signal_func, (Notify_client nclient, int signal, Notify_signal_mode mode));
-! EXTERN_FUNCTION (Notify_value 	notify_next_wait3_func, (Notify_client nclient, int pid, union wait *status, struct rusage *rusage));
-  EXTERN_FUNCTION (Notify_value	notify_nop, (void));
-  EXTERN_FUNCTION (Notify_error 	notify_output, (Notify_client nclient, int fd));
-  EXTERN_FUNCTION (Notify_error	notify_post_destroy, (Notify_client nclient, Destroy_status status, Notify_event_type type));
---- 270,276 ----
-  EXTERN_FUNCTION (Notify_value 	notify_next_itimer_func, (Notify_client nclient, int which));
-  EXTERN_FUNCTION (Notify_value	notify_next_output_func, (Notify_client nclient, int fd));
-  EXTERN_FUNCTION (Notify_value 	notify_next_signal_func, (Notify_client nclient, int signal, Notify_signal_mode mode));
-! EXTERN_FUNCTION (Notify_value 	notify_next_wait3_func, (Notify_client nclient, int pid, void *status, void *rusage));
-  EXTERN_FUNCTION (Notify_value	notify_nop, (void));
-  EXTERN_FUNCTION (Notify_error 	notify_output, (Notify_client nclient, int fd));
-  EXTERN_FUNCTION (Notify_error	notify_post_destroy, (Notify_client nclient, Destroy_status status, Notify_event_type type));
-*** /usr/include/xview/openmenu.h	Wed Jun 20 02:45:01 1990
---- /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.1/include/xview/openmenu.h	Thu May  7 17:08:55 1992
-***************
-*** 263,269 ****
-   
-  EXTERN_FUNCTION (Menu 		menu_create, (DOTDOTDOT));
-  EXTERN_FUNCTION (Menu_item 	menu_create_item, (DOTDOTDOT));
-! EXTERN_FUNCTION (Menu_item 	menu_find, (Menu menu DOTDOTDOT));
-  EXTERN_FUNCTION (Xv_opaque 	menu_get, (Menu menu, Xv_opaque attr, Xv_opaque v1));
-  EXTERN_FUNCTION (Xv_opaque 	menu_set, (Menu menu, DOTDOTDOT));
-  EXTERN_FUNCTION (void 		menu_destroy_with_proc, (Menu menu, void (*proc)()));
---- 263,269 ----
-   
-  EXTERN_FUNCTION (Menu 		menu_create, (DOTDOTDOT));
-  EXTERN_FUNCTION (Menu_item 	menu_create_item, (DOTDOTDOT));
-! EXTERN_FUNCTION (Menu_item 	menu_find, (Menu menu, DOTDOTDOT));
-  EXTERN_FUNCTION (Xv_opaque 	menu_get, (Menu menu, Xv_opaque attr, Xv_opaque v1));
-  EXTERN_FUNCTION (Xv_opaque 	menu_set, (Menu menu, DOTDOTDOT));
-  EXTERN_FUNCTION (void 		menu_destroy_with_proc, (Menu menu, void (*proc)()));
-*** /usr/include/xview/sun.h	Wed Jun 20 02:43:44 1990
---- /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.1/2.2.2/include/xview/sun.h	Mon Jun 29 15:59:18 1992
-***************
-*** 20,27 ****
-  int atoi();
-  double atof();
-  char *ctime();
-! char *malloc();
-! char *calloc();
-  char *strcpy();
-  #ifndef SVR4
-  char *sprintf();
---- 20,27 ----
-  int atoi();
-  double atof();
-  char *ctime();
-! void *malloc();
-! void *calloc();
-  char *strcpy();
-  #ifndef SVR4
-  char *sprintf();
diff -Naur wfdb-10.2.0/wave/intro.hlp wfdb-10.2.1/wave/intro.hlp
--- wfdb-10.2.0/wave/intro.hlp	Sun Jan 30 04:13:21 2000
+++ wfdb-10.2.1/wave/intro.hlp	Fri Nov 16 16:05:43 2001
@@ -1,6 +1,6 @@
 WAVE: Waveform Analyzer, Viewer, and Editor
 
-Copyright (C) 1990-2000 George B. Moody
+Copyright (C) 1990-2001 George B. Moody
 
 WAVE is an extensible interactive graphical environment for manipulating sets
 of digitized signals with optional annotations.  WAVE is built using the WFDB
diff -Naur wfdb-10.2.0/wave/wave.hl0 wfdb-10.2.1/wave/wave.hl0
--- wfdb-10.2.0/wave/wave.hl0	Thu Jun 24 11:38:28 1999
+++ wfdb-10.2.1/wave/wave.hl0	Fri Nov 16 15:59:10 2001
@@ -31,11 +31,11 @@
  - how to start an X application; and
  - how to use the mouse.
 
-If you are planning to run WAVE remotely (i.e., if the display and keyboard
-in front of you do not belong to the system on which WAVE runs, but instead
-belong to another system on the same network), you may need to perform a
-few preparatory steps.  See `How can I use WAVE from an X terminal/PC/Mac/etc?' (below)
-for details.
+If you are planning to run WAVE remotely (i.e., if the display and
+keyboard in front of you do not belong to the system on which WAVE runs,
+but instead belong to another system on the same network), you may need
+to perform a few preparatory steps.  See `How can I use WAVE from an X
+terminal/PC/Mac/etc?'  (below) for details.
 
 Before running WAVE for the first time with a given X server, you may wish to
 calibrate your display so that WAVE can draw signals at the proper scales.
diff -Naur wfdb-10.2.0/wave/wave.inf wfdb-10.2.1/wave/wave.inf
--- wfdb-10.2.0/wave/wave.inf	Sun Jan 30 04:13:21 2000
+++ wfdb-10.2.1/wave/wave.inf	Fri Nov 16 01:25:07 2001
@@ -1,5 +1,5 @@
 # file: wave.info	G. Moody	21 August 1990
-#			Last revised:  7 September 1999		WAVE 6.3
+#			Last revised:  7 September 1999		WAVE 6.5
 # XView spot help file for `wave'
 #
 # -----------------------------------------------------------------------------
@@ -25,13 +25,13 @@
 # please visit PhysioNet (http://www.physionet.org/).
 # _____________________________________________________________________________
 
-:file:%secfilemenu%
+:file:%sec:file-menu%
 This button opens a pull-down menu containing
 selections for loading, saving, printing,
 analyzing, and logging database files.
 # 
 
-:file.load:%secloadwindow%
+:file.load:%sec:load-window%
 This selection pops up a window in which you
 can enter a new record or annotator name, or
 change the name of the WFDB calibration
@@ -71,7 +71,7 @@
 than once.
 #
 
-:file.load.calibration_file:htmlview /usr/local/help/html/wfdbag/wfdbcal-5.htm
+:file.load.calibration_file:url_view /usr/local/help/html/dbag/wfdbcal-5.htm
 Specifies the name of the WFDB calibration file
 (a text file containing information on the
 relative scales of many types of signals).
@@ -97,7 +97,7 @@
 edits.
 #
 
-:file.print:%figchart1%
+:file.print:%fig:chart1%
 This selection prints the contents of the signal
 window on paper.  The output is made from the
 original signal files, and therefore is of better
@@ -106,7 +106,7 @@
 output reflects any changes you have made.
 #
 
-:file.printsetup:%secprintsetupwindow%
+:file.printsetup:%sec:print-setup-window%
 This selection pops up a panel that shows the
 commands WAVE uses to print PostScript and text
 data from the standard input.  You may change
@@ -131,7 +131,7 @@
 example, to specify use of a different printer).
 #
 
-:file.analyze:%secanalyzewindow%
+:file.analyze:%sec:analyze-window%
 This selection pops up a panel containing a set of
 buttons, and a terminal emulator window.  The
 names of the buttons and their assigned actions
@@ -269,13 +269,13 @@
 signal from the list), and click left.
 #
 
-:file.analyze.show_scope_window:%secscopewindow%
+:file.analyze.show_scope_window:%sec:scope-window%
 This button pops up WAVE's Scope window,
 which can be used to display a signal in
 `oscilloscope' mode.
 #
 
-:file.analyze.show_command_window:%figanalysiscommands%
+:file.analyze.show_command_window:%fig:analysis-commands%
 This button pops up a terminal emulator window
 that receives commands generated by selecting
 most of the other buttons in this window, and
@@ -283,7 +283,7 @@
 You may type commands directly into the window.
 #
 
-:file.analyze.edit_menu:%figwavemenu%
+:file.analyze.edit_menu:%fig:wave-menu%
 This button allows you to edit the menu
 configuration file for this panel, using the
 text editor named in the EDITOR environment
@@ -292,7 +292,7 @@
 `Reread menu' to reconfigure this panel.
 #
 
-:file.analyze.reread_menu:%figwavemenu%
+:file.analyze.reread_menu:%fig:wave-menu%
 Select this button to reconfigure this panel
 after you have made changes to the menu
 configuration file (most easily done by
@@ -316,7 +316,7 @@
 analysis menu file.
 #
 
-:file.log:%seclogwindow%
+:file.log:%sec:log-window%
 This selection pops up a window that allows you to
 name a log file, and to record in that file the
 current record name and start and end time entries
@@ -431,7 +431,7 @@
 log entry.
 #
 
-:view:%secviewwindow%
+:view:%sec:view-window%
 This button pops up the View window, which allows
 you to choose (or merely examine) display scales,
 grid styles, and annotation, signal, and time
@@ -561,14 +561,14 @@
 and refreshes the signal window.
 #
 
-:view.save_as_new_defaults:%secresources%
+:view.save_as_new_defaults:%sec:resources%
 This button causes WAVE to record the current
 View panel settings in your .Xdefaults file
 (at the same time erasing any comments in
 that file).  These settings become the new
 defaults for your future WAVE sessions.
 
-:edit:%seceditmenu%
+:edit:%sec:edit-menu%
 This button brings up the Edit menu, which
 allows you to specify if annotation editing
 is to be allowed or forbidden.  By default,
@@ -586,20 +586,20 @@
 You may still edit `<', `:', and `>' markers.
 #
 
-:prop:%secpropmenu%
+:prop:%sec:prop-menu%
 This button brings up the Properties menu,
 with selections for obtaining information
 about the current signal and annotation files
 and about this version of WAVE.
 #
 
-:prop.signals:htmlview /usr/local/help/html/wfdbag/wfdbdesc-1.htm
+:prop.signals:url_view /usr/local/help/html/dbag/wfdbdesc-1.htm
 This selection pops up a window containing
 information about the signals of the current
 record, obtained by running `wfdbdesc'.
 #
 
-:prop.annotations:htmlview /usr/local/help/html/wfdbag/sumann-1.htm
+:prop.annotations:url_view /usr/local/help/html/dbag/sumann-1.htm
 This selection pops up a window containing
 a summary of the contents of the annotation
 buffer, obtained by running `sumann' (after
@@ -637,7 +637,7 @@
 half of the width of the signal window.
 #
 
-:find:%secfindwindow%
+:find:%sec:find-window%
 This button opens a window that allows you to
 specify what portion of the current record should
 be displayed next.  You may set a specific start
@@ -687,7 +687,7 @@
   .	to match a deletion made during this edit
 #
 
-:find.more_options:%secsearchtemplatewindow%
+:find.more_options:%sec:search-template-window%
 This button clears the contents of the "Search for"
 field and opens the Search Template window.
 #
@@ -716,7 +716,7 @@
 or marker will be counted as a match.
 #
 
-:help:%sechelptopicswindow%
+:help:%sec:help-topics-window%
 This button pops up a panel containing buttons
 that name several topics for which extensive
 on-line help is available.  Choosing a topic
@@ -821,7 +821,7 @@
 Editing' topic from the Help window.
 #
 
-:annot.type:%figannotationtemplate%
+:annot.type:%fig:annotation-template%
 This field specifies the type of annotation
 to be inserted.  It may be changed by selecting
 a new value from the pull-down menu, by typing
@@ -922,7 +922,7 @@
 This button closes the Level window.
 #
 
-:scope_panel:%secscopewindow%
+:scope_panel:%sec:scope-window%
 This panel contains controls for the
 Scope window, which displays the signal
 indicated by the Signal control in the
@@ -983,7 +983,7 @@
 an index mark (`:'), or the `>' marker.
 #
 
-:scope_canvas:%secscopewindow%
+:scope_canvas:%sec:scope-window%
 This is the scope window, which displays the
 signal indicated on the Analyze panel.  The
 scales match those in the signal window (use
diff -Naur wfdb-10.2.0/wave/wave.info wfdb-10.2.1/wave/wave.info
--- wfdb-10.2.0/wave/wave.info	Mon Jun 19 15:08:11 2000
+++ wfdb-10.2.1/wave/wave.info	Fri Nov 16 16:13:40 2001
@@ -1,5 +1,5 @@
 # file: wave.info	G. Moody	21 August 1990
-#			Last revised:    19 June 2000		WAVE 6.3
+#			Last revised:  7 September 1999		WAVE 6.5
 # XView spot help file for `wave'
 #
 # -----------------------------------------------------------------------------
@@ -25,13 +25,13 @@
 # please visit PhysioNet (http://www.physionet.org/).
 # _____________________________________________________________________________
 
-:file:url_view /usr/local/help/html/wug/
+:file:url_view /usr/local/help/html/wug/node63.htm
 This button opens a pull-down menu containing
 selections for loading, saving, printing,
 analyzing, and logging database files.
 # 
 
-:file.load:url_view /usr/local/help/html/wug/
+:file.load:url_view /usr/local/help/html/wug/node64.htm
 This selection pops up a window in which you
 can enter a new record or annotator name, or
 change the name of the WFDB calibration
@@ -71,7 +71,7 @@
 than once.
 #
 
-:file.load.calibration_file:htmlview /usr/local/help/html/wfdbag/wfdbcal-5.htm
+:file.load.calibration_file:url_view /usr/local/help/html/dbag/wfdbcal-5.htm
 Specifies the name of the WFDB calibration file
 (a text file containing information on the
 relative scales of many types of signals).
@@ -97,7 +97,7 @@
 edits.
 #
 
-:file.print:url_view /usr/local/help/html/wug/
+:file.print:url_view /usr/local/help/html/wug/node14.htm
 This selection prints the contents of the signal
 window on paper.  The output is made from the
 original signal files, and therefore is of better
@@ -106,7 +106,7 @@
 output reflects any changes you have made.
 #
 
-:file.printsetup:url_view /usr/local/help/html/wug/
+:file.printsetup:url_view /usr/local/help/html/wug/node65.htm
 This selection pops up a panel that shows the
 commands WAVE uses to print PostScript and text
 data from the standard input.  You may change
@@ -131,7 +131,7 @@
 example, to specify use of a different printer).
 #
 
-:file.analyze:url_view /usr/local/help/html/wug/
+:file.analyze:url_view /usr/local/help/html/wug/node66.htm
 This selection pops up a panel containing a set of
 buttons, and a terminal emulator window.  The
 names of the buttons and their assigned actions
@@ -269,13 +269,13 @@
 signal from the list), and click left.
 #
 
-:file.analyze.show_scope_window:url_view /usr/local/help/html/wug/
+:file.analyze.show_scope_window:url_view /usr/local/help/html/wug/node76.htm
 This button pops up WAVE's Scope window,
 which can be used to display a signal in
 `oscilloscope' mode.
 #
 
-:file.analyze.show_command_window:url_view /usr/local/help/html/wug/
+:file.analyze.show_command_window:url_view /usr/local/help/html/wug/node15.htm
 This button pops up a terminal emulator window
 that receives commands generated by selecting
 most of the other buttons in this window, and
@@ -283,7 +283,7 @@
 You may type commands directly into the window.
 #
 
-:file.analyze.edit_menu:url_view /usr/local/help/html/wug/
+:file.analyze.edit_menu:url_view /usr/local/help/html/wug/node34.htm
 This button allows you to edit the menu
 configuration file for this panel, using the
 text editor named in the EDITOR environment
@@ -292,7 +292,7 @@
 `Reread menu' to reconfigure this panel.
 #
 
-:file.analyze.reread_menu:url_view /usr/local/help/html/wug/
+:file.analyze.reread_menu:url_view /usr/local/help/html/wug/node34.htm
 Select this button to reconfigure this panel
 after you have made changes to the menu
 configuration file (most easily done by
@@ -316,7 +316,7 @@
 analysis menu file.
 #
 
-:file.log:url_view /usr/local/help/html/wug/
+:file.log:url_view /usr/local/help/html/wug/node67.htm
 This selection pops up a window that allows you to
 name a log file, and to record in that file the
 current record name and start and end time entries
@@ -431,7 +431,7 @@
 log entry.
 #
 
-:view:url_view /usr/local/help/html/wug/
+:view:url_view /usr/local/help/html/wug/node68.htm
 This button pops up the View window, which allows
 you to choose (or merely examine) display scales,
 grid styles, and annotation, signal, and time
@@ -561,14 +561,14 @@
 and refreshes the signal window.
 #
 
-:view.save_as_new_defaults:url_view /usr/local/help/html/wug/
+:view.save_as_new_defaults:url_view /usr/local/help/html/wug/node60.htm
 This button causes WAVE to record the current
 View panel settings in your .Xdefaults file
 (at the same time erasing any comments in
 that file).  These settings become the new
 defaults for your future WAVE sessions.
 
-:edit:url_view /usr/local/help/html/wug/
+:edit:url_view /usr/local/help/html/wug/node69.htm
 This button brings up the Edit menu, which
 allows you to specify if annotation editing
 is to be allowed or forbidden.  By default,
@@ -586,20 +586,20 @@
 You may still edit `<', `:', and `>' markers.
 #
 
-:prop:url_view /usr/local/help/html/wug/
+:prop:url_view /usr/local/help/html/wug/node70.htm
 This button brings up the Properties menu,
 with selections for obtaining information
 about the current signal and annotation files
 and about this version of WAVE.
 #
 
-:prop.signals:htmlview /usr/local/help/html/wfdbag/wfdbdesc-1.htm
+:prop.signals:url_view /usr/local/help/html/dbag/wfdbdesc-1.htm
 This selection pops up a window containing
 information about the signals of the current
 record, obtained by running `wfdbdesc'.
 #
 
-:prop.annotations:htmlview /usr/local/help/html/wfdbag/sumann-1.htm
+:prop.annotations:url_view /usr/local/help/html/dbag/sumann-1.htm
 This selection pops up a window containing
 a summary of the contents of the annotation
 buffer, obtained by running `sumann' (after
@@ -637,7 +637,7 @@
 half of the width of the signal window.
 #
 
-:find:url_view /usr/local/help/html/wug/
+:find:url_view /usr/local/help/html/wug/node71.htm
 This button opens a window that allows you to
 specify what portion of the current record should
 be displayed next.  You may set a specific start
@@ -687,7 +687,7 @@
   .	to match a deletion made during this edit
 #
 
-:find.more_options:url_view /usr/local/help/html/wug/
+:find.more_options:url_view /usr/local/help/html/wug/node74.htm
 This button clears the contents of the "Search for"
 field and opens the Search Template window.
 #
@@ -716,7 +716,7 @@
 or marker will be counted as a match.
 #
 
-:help:url_view /usr/local/help/html/wug/
+:help:url_view /usr/local/help/html/wug/node72.htm
 This button pops up a panel containing buttons
 that name several topics for which extensive
 on-line help is available.  Choosing a topic
@@ -821,7 +821,7 @@
 Editing' topic from the Help window.
 #
 
-:annot.type:url_view /usr/local/help/html/wug/
+:annot.type:url_view /usr/local/help/html/wug/node17.htm
 This field specifies the type of annotation
 to be inserted.  It may be changed by selecting
 a new value from the pull-down menu, by typing
@@ -922,7 +922,7 @@
 This button closes the Level window.
 #
 
-:scope_panel:url_view /usr/local/help/html/wug/
+:scope_panel:url_view /usr/local/help/html/wug/node76.htm
 This panel contains controls for the
 Scope window, which displays the signal
 indicated by the Signal control in the
@@ -983,7 +983,7 @@
 an index mark (`:'), or the `>' marker.
 #
 
-:scope_canvas:url_view /usr/local/help/html/wug/
+:scope_canvas:url_view /usr/local/help/html/wug/node76.htm
 This is the scope window, which displays the
 signal indicated on the Analyze panel.  The
 scales match those in the signal window (use
diff -Naur wfdb-10.2.0/wave/xview-patches wfdb-10.2.1/wave/xview-patches
--- wfdb-10.2.0/wave/xview-patches	Wed Dec 31 19:00:00 1969
+++ wfdb-10.2.1/wave/xview-patches	Fri Oct 26 12:56:19 2001
@@ -0,0 +1,243 @@
+Current versions of gcc complain about statements of the form
+  #else FOO
+and
+  #endif BAR
+
+This syntax has historically been acceptable to most C compilers, although it
+is not permitted by ANSI/ISO C; any tokens following #else or #endif on the
+same line are simply ignored.  Some writers have exploited this permissiveness
+to make their code more easily readable, although most are careful to mark
+their comments using /* ... */ (which is permitted even by finicky compilers
+such as gcc).
+
+In the standard XView distribution, six of the *.h files normally found in
+/usr/openwin/include/pixrect/ contain #else or #endif statements that provoke
+warnings from gcc. Although these warnings do not prevent successful
+compilation of wave, they are so numerous that more serious errors can easily
+go unnoticed.
+
+This file contains patches that correct these bugs.  To apply them, copy
+this file to the parent directory of 'pixrect' (normally /usr/openwin/include),
+then type
+
+    patch -p0 <xview-patches
+
+If you don't have `patch', read the rest of this file and apply the edits
+manually.
+
+The patches themselves begin here:
+
+diff -Naur pixrect-/memvar.h pixrect/memvar.h
+--- pixrect-/memvar.h	Mon Jun  5 04:39:17 2000
++++ pixrect/memvar.h	Fri Oct 12 14:05:30 2001
+@@ -48,7 +48,7 @@
+ #ifdef i386
+ #define MP_I386		8	/* Pixrect is for 386 architecture */
+ #define MP_STATIC       16	/* Pixrect is a static pixrect */
+-#endif i386
++#endif
+ #define	MP_FONT		32	/* Pixrect is a part of a Pixfont */
+ 				/* (hint to pr_batchrop) */
+ 
+@@ -111,7 +111,7 @@
+ #  define IDENT(x)	x
+ #  define	CAT(a,b)	IDENT(a)b
+ # endif /* __STDC__ */
+-#endif /* CAT */
++#endif
+ 
+ #define mpr_static(name, w, h, d, image) \
+ 	struct mpr_data CAT(name,_data) = \
+@@ -144,18 +144,18 @@
+ int	mem_put();
+ int	mem_vector();
+ Pixrect *mem_region();
+-#endif KERNEL
++#endif
+ int	mem_putcolormap();
+ int	mem_putattributes();
+ #ifndef KERNEL
+ int	mem_getcolormap();
+ int	mem_getattributes();
+-#endif KERNEL
++#endif
+ 
+ #else /* NEWPIXMEM */
+ #define	MP_NOTMPR(pr)	(0)
+ extern struct pixrectops mem_ops;
+ int	mem_destroy();
+-#endif NEWPIXMEM
++#endif
+ 
+-#endif	!memvar_DEFINED
++#endif
+diff -Naur pixrect-/pixfont.h pixrect/pixfont.h
+--- pixrect-/pixfont.h	Mon Jun  5 04:39:17 2000
++++ pixrect/pixfont.h	Fri Oct 12 14:05:49 2001
+@@ -43,7 +43,7 @@
+ 
+ #define	prs_ttext(prpos, op, pf, str) \
+ 	pr_ttext((prpos).pr, (prpos).pos.x, (prpos).pos.y, pf, str)
+-#endif lint
++#endif
+ 
+ Pixfont	*pf_open();
+ Pixfont	*pf_open_private();
+@@ -53,4 +53,4 @@
+ 
+ #define	PIXFONT	Pixfont
+ 
+-#endif	pixfont_DEFINED
++#endif
+diff -Naur pixrect-/pixrect.h pixrect/pixrect.h
+--- pixrect-/pixrect.h	Mon Jun  5 04:39:17 2000
++++ pixrect/pixrect.h	Fri Oct 12 14:03:31 2001
+@@ -101,7 +101,7 @@
+  * Takes device file name.  This is how a screen pixrect is created.
+  */
+ extern Pixrect *pr_open();
+-#endif !KERNEL
++#endif
+ 
+ /*
+  * Pixrect ops vector, used by pr_ macros below to call the appropriate
+@@ -118,18 +118,18 @@
+ 	int	(*pro_put)();
+ 	int	(*pro_vector)();
+ 	Pixrect * (*pro_region)();
+-#endif !KERNEL
++#endif
+ 	int	(*pro_putcolormap)();
+ #ifndef KERNEL
+ 	int	(*pro_getcolormap)();
+-#endif !KERNEL
++#endif
+ 	int	(*pro_putattributes)();
+ #ifndef KERNEL
+ 	int	(*pro_getattributes)();
+-#endif !KERNEL
++#endif
+ #ifdef KERNEL
+ 	int	(*pro_nop)();		/* place holder */
+-#endif KERNEL
++#endif
+ };
+ 
+ #if !defined(lint) || defined(KERNEL)
+@@ -169,9 +169,9 @@
+ 		(red), (grn), (blu))
+ #define	pr_getattributes(pr, planes) \
+ 	(*(pr)->pr_ops->pro_getattributes)((pr), (planes))
+-#endif !KERNEL
++#endif
+ 
+-#else !lint || KERNEL
++#else
+ 
+ extern pr_rop();
+ extern pr_stencil();
+@@ -186,7 +186,7 @@
+ extern pr_putattributes();
+ extern pr_getattributes();
+ 
+-#endif lint
++#endif
+ 
+ /*
+  * Several of the above operations return a common, distinguished value when
+@@ -277,7 +277,7 @@
+ #define	pr_line(pr, x0, y0, x1, y1, brush, tex, op) \
+ 	pro_line((pr), (x0), (y0), (x1), (y1), (brush), (tex), (op), 0) 
+ 
+-#else !lint || KERNEL
++#else
+ 
+ extern prs_rop();
+ extern prs_stencil();
+@@ -296,7 +296,7 @@
+ extern pr_close();
+ extern pr_line();
+ 
+-#endif !lint || KERNEL
++#endif
+ 
+ 
+ 
+@@ -329,7 +329,7 @@
+ #define	pr_getlut(pr, ind, cnt, red, grn, blu) \
+ 	(*(pr)->pr_ops->pro_getcolormap)((pr), PR_FORCE_UPDATE | (ind), \
+ 		(cnt), (red), (grn), (blu))
+-#endif !KERNEL
++#endif
+ 
+ 
+-#endif	/* !_pixrect_pixrect_h */
++#endif
+diff -Naur pixrect-/pr_line.h pixrect/pr_line.h
+--- pixrect-/pr_line.h	Mon Jun  5 04:39:17 2000
++++ pixrect/pr_line.h	Fri Oct 12 14:06:54 2001
+@@ -47,7 +47,7 @@
+ 	int width;
+     } Pr_brush;
+ 
+-#endif pr_line_h_DEFINED 
++#endif
+ 
+ 
+ 
+diff -Naur pixrect-/pr_planegroups.h pixrect/pr_planegroups.h
+--- pixrect-/pr_planegroups.h	Mon Jun  5 04:39:17 2000
++++ pixrect/pr_planegroups.h	Fri Oct 12 14:04:05 2001
+@@ -47,4 +47,4 @@
+ extern void pr_set_plane_group();
+ extern void pr_set_planes();
+ 
+-#endif	pr_planegroups_DEFINED
++#endif
+diff -Naur pixrect-/pr_util.h pixrect/pr_util.h
+--- pixrect-/pr_util.h	Mon Jun  5 04:39:17 2000
++++ pixrect/pr_util.h	Fri Oct 12 14:04:36 2001
+@@ -66,11 +66,11 @@
+ 		op;							\
+ 	};								\
+ 	asm("dbra	d6,label");
+-#else mc68000
++#else
+ #define	rop_slowloop(n, op) \
+ 	{ register int _loop = (n); \
+ 		while (--_loop >= 0) { op; } }
+-#endif mc68000
++#endif
+ 
+ #ifdef mc68010
+ #define cases8(n, op)							\
+@@ -88,9 +88,9 @@
+ 			cases8(0, op); \
+ 			case 0:	break; \
+ 		} }
+-#else mc68010
++#else
+ #define	rop_fastloop	rop_slowloop
+-#endif mc68010
++#endif
+ 
+ /*
+  * Alloctype(datatype) allocates a datatype structure using calloc
+@@ -133,6 +133,6 @@
+ 
+ #ifndef KERNEL
+ Pixrect *pr_makefromfd();
+-#endif !KERNEL
++#endif
+ 
+-#endif pr_util_DEFINED
++#endif
+diff -Naur pixrect-/traprop.h pixrect/traprop.h
+--- pixrect-/traprop.h	Mon Jun  5 04:39:17 2000
++++ pixrect/traprop.h	Fri Oct 12 14:06:02 2001
+@@ -23,4 +23,4 @@
+ 	int y0, y1;			/* top+bottom boundaries */
+ };
+ 
+-#endif traprop_DEFINED
++#endif
diff -Naur wfdb-10.2.0/wave-doc/guide/Makefile wfdb-10.2.1/wave-doc/guide/Makefile
--- wfdb-10.2.0/wave-doc/guide/Makefile	Fri Feb  4 16:50:31 2000
+++ wfdb-10.2.1/wave-doc/guide/Makefile	Fri Nov 16 14:19:54 2001
@@ -1,27 +1,62 @@
 # file: Makefile	G. Moody	 9 August 1992
-#			Last revised:	4 February 2000
+#			Last revised:  16 November 2001
 # `make' description file for printing the WAVE User's Guide
 
-# Copyright(C) Massachusetts Institute of Technology 2000. All rights reserved.
-
-# Type `make guide' to print the compressed PostScript source.  You will need
-# gzip, a PostScript printer (or GhostScript and a supported printer), and
-# about 130 sheets of paper.  Make sure that PRINT is set correctly for your
-# system below.
-
-# If you have LaTeX2e, makeindex, and dvips, you can regenerate the PostScript
-# from the text source and the figure files.  To do this, type `make wug.psz'.
-# If you have an older version of LaTeX (2.09 or earlier), you will need to
-# update it to LaTeX2e in order to do this successfully.
-
-# If you have LaTeX2html and additional freely available software described
-# in the LaTeX2html documentation, you can regenerate the HTML version of the
-# WAVE User's Guide by typing `make html' (see below).
-
-# All of the software mentioned above is freely available;  see ../SOURCES.
+# -----------------------------------------------------------------------------
+# WAVE: Waveform analyzer, viewer, and editor
+# Copyright (C) 2001 George B. Moody
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc.,  59 Temple
+# Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# You may contact the author by e-mail (george@mit.edu) or postal mail
+# (MIT Room E25-505A, Cambridge, MA 02139 USA).  For updates to this software,
+# please visit PhysioNet (http://www.physionet.org/).
+# _____________________________________________________________________________
+#
+# This file is used with the UNIX `make' command to install on-line
+# documentation for WAVE, and also to format and print it.  Before using this
+# file for the first time, check that the site-specific variables below are
+# appropriate for your system.
+
+# WAVE documentation exists in several forms:
+#  * The WAVE User's Guide:  This guide (for which sources can be found in
+#    this directory) includes a comprehensive tutorial with reference material.
+#    Up-to-date HTML and PostScript versions of this guide can be found on
+#    PhysioNet.  If you have LaTeX2e, makeindex, and dvips, you can regenerate
+#    the PostScript version of the guide from the sources.using this file, by
+#    typing 'make guide'.  If you also have LaTeX2html and additional freely
+#    available software described in the LaTeX2html documentation, you can
+#    regenerate the HTML version of the WAVE User's Guide by typing `make html'
+#    (see below).
+#  * wave.1:  This man page lists WAVE options, X11 resources, and provides a
+#    concise reference.  It is included in the WFDB Applications Guide, and
+#    its source can be found in ../../doc.  
+#  * wave.info:  This file contains XView spot help for WAVE (if your window
+#    manager cooperates, you can point to any WAVE control and use the HELP
+#    key to get a brief explanation of what it does).  Where additional
+#    information is available in the WAVE User's Guide, this file contains
+#    links to the relevant nodes.  The source for wave.info is wave.inf, which
+#    is located in ../../wave.  In order to regenerate wave.info from wave.inf,
+#    use 'make html' to generate the HTML version of the WAVE User's Guide;
+#    this will automatically update the links in wave.info and will install
+#    the updated version in ../../wave.  In order to use wave.info, you must
+#    install it into HELPDIR/wave (defined in ../../wave/Makefile), which is
+#    done when you compile and install WAVE itself.
 
 # TROFF is the name of the program that prints UNIX troff files (needed to
-# format the covers of the guide).  Use `groff' if you have GNU groff (the
+# format the cover of the guide).  Use `groff' if you have GNU groff (the
 # preferred formatter).
 TROFF = groff
 # Use `ptroff' if you have Adobe TranScript software.
@@ -70,7 +105,7 @@
 	$(TROFF) cover.wug | gzip >wugcover.psz
 
 # `make html':  process the LaTeX source using latex2html.  This has been
-# tested with latex2html version 96.1.  The file `.latex2html.init' in this
+# tested with latex2html version 1.47.  The file `.latex2html.init' in this
 # directory defines special settings needed to create the HTML files as
 # distributed with WAVE.  If you are not using Netscape as your browser, you
 # may want to select a different HTML version or other optimizations.  The
@@ -113,7 +148,6 @@
 	mv $(HTMLDIR)/wug/*.pl .
 	cd $(HTMLDIR)/wug; ln -s wug.htm index.html; find `pwd` -print | doschk
 	./fixinfo >../../wave/wave.info
-	cp -p ../../wave/wave.info /usr/local/help/wave/wave.info
 
 clean:
 	rm -f wug.aux wug.dvi wug.idx wug.ilg wug.ind wug.lof wug.log wug.toc
diff -Naur wfdb-10.2.0/wave-doc/guide/cover.wug wfdb-10.2.1/wave-doc/guide/cover.wug
--- wfdb-10.2.0/wave-doc/guide/cover.wug	Sun Jan 30 04:13:25 2000
+++ wfdb-10.2.1/wave-doc/guide/cover.wug	Fri Nov 16 02:02:47 2001
@@ -45,7 +45,7 @@
 
 
 
-JANUARY 2000
+NOVEMBER 2001
 .bp
 
 
diff -Naur wfdb-10.2.0/wave-doc/guide/fixinfo wfdb-10.2.1/wave-doc/guide/fixinfo
--- wfdb-10.2.0/wave-doc/guide/fixinfo	Mon Jun 19 15:04:19 2000
+++ wfdb-10.2.1/wave-doc/guide/fixinfo	Fri Nov 16 01:42:21 2001
@@ -8,22 +8,25 @@
     <LABELS>;
     <LABELS>;
     <LABELS>;
+    <LABELS>;
     while (<LABELS>) {
 	@words = split(/\//);
 	$key = @words[1];
 	$_ = <LABELS>;
-	@words = split(/'/);
+	@words = split(/\|/);
 	$node = @words[1];
 	chop($node);
 	if ($key =~ /..*/) {
 		$label{$key} = $node;
 	}
+	<LABELS>;
+	<LABELS>;
     }
     close(LABELS);
 }
 
 sub fixinfo {
-    open(INFO, "wave.inf");
+    open(INFO, "../../wave/wave.inf");
     while (<INFO>) {
 	if ($_ =~ /:.*:%*%/) {
 	    @words = split(/%/);
diff -Naur wfdb-10.2.0/wave-doc/guide/wug.tex wfdb-10.2.1/wave-doc/guide/wug.tex
--- wfdb-10.2.0/wave-doc/guide/wug.tex	Fri Oct 12 13:24:58 2001
+++ wfdb-10.2.1/wave-doc/guide/wug.tex	Fri Nov 16 16:10:02 2001
@@ -26,8 +26,8 @@
 
 \title{\WAVE{} User's Guide}
 \author{Fifth Edition\\
-(revised and with corrections for \WAVE{} version 6.3)\\
-24 May 2000\\
+(revised and with corrections for \WAVE{} version 6.5)\\
+16 November 2001\\
 \\
 \\
 \\
@@ -50,7 +50,7 @@
 \pagestyle{empty}
 \vspace*{\fill}
 \noindent
-Copyright \copyright 1992 -- 2000 George B. Moody
+Copyright \copyright 1992 -- 2001 George B. Moody
 
 \vspace{1 in}
 \noindent
@@ -81,12 +81,8 @@
 \noindent
 An HTML version of this guide is available; point your web browser to
 {\tt http://www.\-physio\-net.\-org/\-physio\-tools/\-wug/} to view
-it. Additional printed
+it.
 \end{latexonly}
-copies of this guide are available for US\$10 each
-(including shipping by surface mail) by writing to the address above.
-Please make checks payable to ``Beth Israel Hospital Biomedical
-Engineering Division.''
 
 \vspace{0.2 in}
 \noindent
@@ -220,9 +216,9 @@
 and there indicating features of \WAVE{} 6.0 that are not available
 in earlier versions.
 \end{latexonly}
-\WAVE{} 6.0 is available for
+\WAVE{} 6.5 is freely available from
 \hyperref{downloading from the Internet}
-{downloading from the Internet (see section~}
+{Physionet (see section~}
 {, page~\pageref{sec:getting-wave})}
 {sec:getting-wave}.
 
@@ -2639,10 +2635,10 @@
 \end{verbatim}
 % $ (this comment is here only to keep Emacs's LaTeX fontification happy)
 
-The program {\tt url_view} is a shell script (normally installed at the
+The program {\tt url\_view} is a shell script (normally installed at the
 same time as \WAVE{}, and in the same directory) that handles starting
 the browser if necessary and instructing it to display the specified
-URL.  The standard version of {\tt url_view} does so using the command:
+URL.  The standard version of {\tt url\_view} does so using the command:
 \begin{verbatim}
  ( netscape -remote 'openURL($URL)' || netscape $URL ) &
 \end{verbatim}
@@ -2661,9 +2657,9 @@
 starts a new Netscape browser process.
 
 To configure \WAVE{} to use a different web browser, edit the {\tt
-url_view} script appropriately.  (You may also do this by editing the
+url\_view} script appropriately.  (You may also do this by editing the
 action associated with {\tt <Open URL>}, but it's better to modify
-{\tt url_view}, since \WAVE{} also uses {\tt url_view} to display some
+{\tt url\_view}, since \WAVE{} also uses {\tt url\_view} to display some
 of its on-line help.  If you decide to modify the action in the
 \WAVE{} menu file, be careful not to change the {\tt <Open URL>} tag
 at the beginning of the line, since \WAVE{} uses this tag to identify
@@ -4606,8 +4602,9 @@
 At a minimum, you will require:
 \begin{description}
 \item [\WAVE{} software]
-This is available in binary form from MIT for SPARC-based systems
-running Solaris 2.x or SunOS 4.1.x, and for PCs running Linux.  (See
+This is freely available from PhysioNet in source form, and in binary form
+for PCs running Linux.  (Older binaries for SPARC-based systems
+running Solaris 2.x or SunOS 4.1.x are also available on PhysioNet. See
 \hyperref{how to obtain the current version of \WAVE{}}
 {section~}
 {, page~\pageref{sec:getting-wave} for details}
@@ -4630,25 +4627,35 @@
 sure that your chosen hardware is supported.  Most graphics cards,
 including the popular accelerated cards, are fully supported by the standard
 XFree86
+Most PCs manufactured since 1995 will easily meet these requirements;
+new PCs will exceed most of them by large factors.
 \index{X Window System!XFree86 server}
 X server, but a few high-end models are supported only in SVGA
 compatibility mode.  Commercially available X servers for Linux
-support the accelerated modes of many high-end models.)  In early
-1997, it was possible to assemble a suitable Linux PC for about
-US\$1000 (not including the monitor).  It is not unreasonable to budget
+support the accelerated modes of many high-end models.)  In late
+2001, it was possible to assemble a suitable Linux PC for about
+US\$500 (not including the monitor).  It is not unreasonable to budget
 an equal amount for a good monitor, since \WAVE{}'s usability depends
-to a significant extent on being able to see its output clearly.  If
-your budget permits you to spend more, buy
-extra RAM rather than a faster CPU.  Although Linux does not require
-large amounts of RAM, it can use additional RAM very effectively, and
-you are likely to find that purchasing (say) 16 or 32 Mb of additional
-RAM results in a bigger performance improvement than spending the same
-amount on a faster CPU.  Fully configured and supported Linux PCs are
-available from many vendors if you prefer not to assemble your own;
-see the Linux Commercial-HOWTO for further information.
+to a significant extent on being able to see its output clearly.
+If your budget permits, a flat-panel (LCD) monitor is an excellent choice,
+particularly if you plan to do much annotation editing, because these monitors
+typically present very stable images that do not tire the eye.
+
+For those on a tight budget, suitable used PCs are often available for next to
+nothing.  If you use an older PC and can afford to upgrade components, get a
+new three-button mouse or trackball first, a new monitor if the old one is
+inadequate, more memory if you have less than 64 Mb, a new IDE disk drive
+(around US\$100) if yours is more than 3 years old, and only then consider
+other performance upgrades such as a faster CPU.  Although Linux does not
+require large amounts of RAM, it can use additional RAM very effectively, and
+you are likely to find that purchasing (say) 16 or 32 Mb of additional RAM
+results in a bigger performance improvement than spending the same amount on a
+faster CPU.  Fully configured and supported Linux PCs are available from many
+vendors if you prefer not to assemble your own; see the Linux Commercial-HOWTO
+for further information.
 
-SPARC-based systems available from Sun and other vendors are slightly more
-expensive than comparable Linux PCs.
+SPARC-based systems tend to be considerably expensive than comparable
+or faster Linux PCs.  Used SPARCstations may be worth considering.
 
 \item [A source of digitized signals]
 \index{SPARCstation}\index{PC}\index{WFDB Software Package}\index{MS-DOS}
@@ -5130,17 +5137,24 @@
 
 \section{Hardware questions}
 
-\subsection{Can I use \WAVE{} if I don't have a SPARCstation?}
+\subsection{Can I use \WAVE{} if I don't run Linux or another Unix?}
 
-If you have a 386, 486, or Pentium-based PC with a VGA card, mouse, at
-least 8 Mb of RAM and 100 Mb of available disk space, you can run
-\WAVE{} under Linux,
-\index{Linux}
-a freely available UNIX clone for the PC.  Users have reported that \WAVE{} can
-be compiled and run successfully on DEC Alpha-based workstations under Linux,
-and (in principle) it should be possible to run \WAVE{} on any other type of
-CPU supported by Linux (the list currently includes MIPS, PowerPC, Sparc, ARM,
-as well as x86 and Alpha CPUs).
+Why would you not want to run Linux or Unix?  Any version of Linux or Unix is a
+much better choice for research than any version of MS-Windows. See
+\htmladdnormallink{{\tt http://\-www.dyncorp-is.com/\-darpa/\-meetings/\-win98aug/\-wars.html}}{http://www.dyncorp-is.com/darpa/meetings/win98aug/wars.html}
+for an independent perspective on this issue.  Linux can coexist on the same PC
+with MS-Windows if necessary.
+
+The major obstacle to porting \WAVE{} to other platforms is that the XView
+toolkit is needed for the user interface components of \WAVE{}.  XView is free
+software and can be ported to other platforms, but this task is not trivial.
+
+Another possibility is to reimplement \WAVE{}'s user interface with a different
+toolkit.  The {\sf GTKWave} project is doing just that, using the Gimp toolkit
+(GTK+), which runs not only under Linux and Unix, but also under MS-Windows.
+Beta-quality versions of {\sf GTKWave} for Linux and for MS-Windows are
+currently available from PhysioNet (search for {\sf GTKWave} for further
+information).
 
 If you have any networked computer that can run X11R4 or a later version
 (this includes all current UNIX workstations, PCs, Macintoshes, and a variety
@@ -5148,7 +5162,7 @@
 \WAVE{} (see above), you can run \WAVE{} remotely (see the next question).
 
 \index{PostScript}
-Other WFDB applications ({\sf WVIEW} for Microsoft Windows, {\sf VIEW} for
+Other WFDB applications ({\sf WVIEW} for MS-Windows, {\sf VIEW} for
 MS-DOS, {\sf MacView} for the Macintosh, and {\tt pschart} and {\tt psfd} for
 PostScript devices) offer many of the display features of \WAVE{} in other
 environments;  none of these currently support annotation editing or control
@@ -6364,19 +6378,17 @@
 variables as command-line arguments to other programs.
 
 \index{menu variables}
-Click on \button{Export variables} in \WAVE{}'s
-{\sf Analyze} window if you need to use these variables within a shell
-script.  (If you are not using {\tt csh} or {\tt tcsh}, edit the \WAVE{}
-menu file first to select the alternate definition of this action.)
-Once the variables have been exported, they may be used in the same
-way as any other environment variables within your shell scripts.  For
-example, the time of the left edge of the signal window is {\tt
-\$LEFT}.  Within a C program, read the values of these variables using
-{\tt getenv}; for example, {\tt getenv("LEFT")} returns the (string)
-value of the time of the left edge of the signal window.  Note that
-the exported values are only a snapshot of the variables at the time
-you click on \button{Export variables}; the values do not track later
-actions performed within \WAVE{}.
+Click on \button{Export variables} in \WAVE{}'s {\sf Analyze} window if you
+need to use these variables within a shell script.  (If you are not using {\tt
+bash}, {\tt ksh}, or {\tt sh}, edit the \WAVE{} menu file first to select the
+alternate definition of this action.)  Once the variables have been exported,
+they may be used in the same way as any other environment variables within your
+shell scripts.  For example, the time of the left edge of the signal window is
+{\tt \$LEFT}.  Within a C program, read the values of these variables using
+{\tt getenv}; for example, {\tt getenv("LEFT")} returns the (string) value of
+the time of the left edge of the signal window.  Note that the exported values
+are only a snapshot of the variables at the time you click on \button{Export
+variables}; the values do not track later actions performed within \WAVE{}.
 
 \subsection{Is there a Motif version of \WAVE{}?}
 
@@ -6400,6 +6412,12 @@
 with which \WAVE{} is written, and a port to Motif would be decidedly
 non-trivial.
 
+The {\sf GTKWave} project is reimplementing the user interface of WAVE using
+the Gimp toolkit (GTK+).  A beta-quality release of {\sf GTKWave} is now
+available from PhysioNet.  This offers a stable, object-oriented, and
+non-proprietary Motif-like interface under any version of Linux or Unix, and
+also under MS-Windows.
+
 \subsection{How can I find out about ...?}
 
 There are several sources of information about \WAVE{}:
@@ -6415,8 +6433,7 @@
 \htmladdnormallink{{\it WFDB Applications Guide}}{../dbag/dbag.htm}.
 If you need to develop your own applications for use with \WAVE{}, read the
 \htmladdnormallink{{\it WFDB Programmer's Guide}}{../dbpg/dbpg.htm}.
-Printed copies of these guides may be purchased from MIT, or you may read them
-on-line or print your own copies (visit
+You may read these guides on-line on-line or print your own copies (visit
 \htmladdnormallink{PhysioNet}{http://www.physionet.org/}).
 
 \index{on-line help}\index{help}\index{Netscape}
diff -Naur wfdb-10.2.0/waverc/Makefile wfdb-10.2.1/waverc/Makefile
--- wfdb-10.2.0/waverc/Makefile	Mon Oct 15 14:40:00 2001
+++ wfdb-10.2.1/waverc/Makefile	Fri Nov 16 16:18:43 2001
@@ -25,12 +25,12 @@
 # please visit PhysioNet (http://www.physionet.org/).
 # _____________________________________________________________________________
 # file: version.def		G. Moody	24 May 2000
-#				Last revised:	14 August 2001
+#				Last revised:	7 November 2001
 # Each release of the WFDB Software Package is identified by a three-part
 # version number, defined here:
 MAJOR = 10
 MINOR = 2
-RELEASE = 0
+RELEASE = 1
 VERSION = $(MAJOR).$(MINOR).$(RELEASE)
 
 # VDEFS is the set of C compiler options needed to set version number variables
@@ -38,7 +38,7 @@
 VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE)
 # _____________________________________________________________________________
 
-PACKAGE=wfdb-10.2.0
+PACKAGE=wfdb-10.2.1
 # file: linux.def		G. Moody	31 May 2000
 #				Last revised:	5 June 2000
 # 'make' definitions for compiling the WFDB Software Package under Linux
