oscope xoscope - Digital Oscilloscope via Sound Card and/or ProbeScope

Copyright (C) 1996 - 1997 Tim Witham <twitham@pcocd2.intel.com>

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., 675 Mass Ave, Cambridge, MA 02139, USA.

	(see the file COPYING for more details)

Latest official version is available by anonymous ftp at:

		ftp://sunsite.unc.edu/pub/Linux/apps/circuits/

The latest version, binary releases and more is available at:

		http://www.bobsplace.com/~twitham/oscope/


	SUMMARY:

x*oscope is a digital oscilloscope that uses a sound card and/or Radio
Shack ProbeScope (Cat. No. 22-310) as the signal input.  Either or
both devices may be used simultaneously.  You may find more
information about Radio Shack's ProbeScope device at:

	http://support.tandy.com/support_meters/33352.html

http://www.bobsplace.com/~twitham/oscope/ has pre-built binary
releases.  You may want to try one if you're in a hurry or if you have
problems building this from source.  Currently the binaries were built
on Linux 2.0.30, ELF.


	NEW for 1.4 (see also the files ChangeLog and TODO):

* Supports Radio Shack's ProbeScope as an input device!

	+ auto-detected, see ENVIRONMENT in the man page.

	+ increased time scale: 1us/div - 20ms/div

	+ real V/div vertical scale labels.

	+ displays all ProbeScope status and DVM value

* DOS port finally works

	+ All ProbeScope support works on DOS.

	- mono sound support only so X = Y; no Left and Right.

	- external math commands don't work since DOS doesn't fork


* sound card input device is optional

* ProbeScope input device is optional


	WHAT YOU NEED:

LINUX:

All things mentioned here can be obtained by anonymous ftp from
sunsite.unc.edu or a mirror site.  A recent version should be
available in the directory listed here.

* You will need a mixer program to select input source and levels.
  Examples are "xfmix", "xmix", and "aumix".

	ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/

* You will need "libsx" to build the X client (highly recommended).
  You only need to make src/libsx.a then move it to somewhere like
  /usr/local/lib or /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/X11/devel/libraries/clibs/

* You will need "libvga" from the "svgalib" package to build the
  SVGA console version.  You may already have this in /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/libs/graphics/

* You will need "libvgamisc" from the "g3vga" kit to get text on the
  console version (highly recommended if you use the console version).
  You only need to make misc/libvgamisc.a then move it to somewhere
  like /usr/local/lib or /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/

If you don't have these libraries, or if they're in strange places,
you will need to tweak the Makefile.  See the Makefile and config.h
for configuration options.  If you don't have libsx or libvgamisc, you
will have to read the manual page and memorize the controls since they
can't be displayed on your screen (bummer!).  If I were you, I'd get
the libraries instead. :-)

If you have X11 and would like to do simultaneous Spectrum Analysis,
see the file README.f51 for extra optional instructions.

DOS:

* You will need a mixer program to select input source and levels.
  Your sound card maker probably supplied one.

* You will need DJGPP V2 and GRX20 to build from source.  Newer
  versions should work but I haven't tried them.  You will also need
  CWSDPMI or some other DPMI host.

	http://www.delorie.com/djgpp/
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/readme.1st
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2tk/grx20.zip
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/csdpmi3b.zip

* If you'd like the original source of the sb02.zip and svasync.zip:

	http://oak.oakland.edu/pub/simtelnet/msdos/sound/sb02.zip
	ftp://ftp.delorie.com/pub/djgpp/contrib/svasync.zip


	INSTALLATION:

LINUX:

* edit Makefile and config.h if necessary

* make

* make install

If you don't install as root, you will need to become root and:

* chown root oscope

* chmod u+s oscope

* chmod go-w oscope

since the svgalib can only be started by root.  xoscope doesn't
require any special permissions.

DOS:

* uncomment some of the DOS sections of Makefile

* make

* copy OSCOPE.EXE onto your PATH

* make sure you have CWSDPMI.EXE on your PATH


	USAGE:

Please see the man page for instructions on how to use x*oscope.  Also
use the option `-h' to show command-line options, and the `?' key to
show the key help.  If you're interested in doing advanced signal math
at run-time, see the operl and offt.c external math command examples.


	PLATFORMS:

LINUX:

/dev/dsp supported sound card & Radio Shack ProbeScope optional

x*oscope was developed specifically for Linux on:

 - Linux kernel 1.2.10	and later on:	2.0.30
 - gcc 2.6.3				2.7.2.1
 - svgalib 1.2.9			1.2.10
 - libsx 1.1
 - SoundBlaster 16
 - ATI Win Turbo 2MB VRAM
 - 32MB RAM				96MB RAM
 - 100 MHz Intel Pentium(R) Processor

DOS:

sound blaster compatible card & Radio Shack ProbeScope optional

Oscope runs on DOS but with only mono (one channel) sound card
sampling, so X = Y.  ProbeScope support works on DOS.  It should also
work from Windows 3.1 or Windows 95, but may not be as stable.

x*oscope can be ported to other platforms by simply writing display
(gr_*.c) sound card (sc_*.c) and serial port (ser_*.c) connections.


	EXTRA:

If you like to build things, check out the HARDWARE file.


	CREDITS:

Thanks to Jeff Tranter <Jeff_Tranter@Mitel.com> for writing the
original scope-0.1 that inspired all this.

Thanks to Philip VanBaren <phillipv@eecs.umich.edu> for the realfft.c
code from his freq program.  If you want a Spectrum Analyzer, you
should get Philip's freq program and read README.f51.

Thanks to the Cthugha-L program (Torps Productions, Harald Deischinger
<k3096e5@c210.edvz.uni-linz.ac.at>) for inspiring the X11 client and
some coding ideas.

Thanks to Dominic Giamapolo <dbg@sgi.com> for libsx which makes the
X11 client possible.  Also, freq.c and dirlist.c are from libsx.

Thanks to Mitch D'Souza <Mitch@Dubai.Sun.COM> for libvgamisc which
makes the 16-color console text possible (from his "g3vga").

For the DOS port, thanks to DJ Delorie (dj@delorie.com) for DJGPP and
to Charles W Sandmann (sandmann@clio.rice.edu) for CWSDPMI which
together allow the 32 bit code to work on DOS.  To Gerhard Kordmann
(kordmann@ldv01.Uni-Trier.de) for sb02.zip which made the sound card
work.  And to Sam Vincent (svincent@cs.sonoma.edu) for svasync.zip
which made the serial connection to ProbeScope possible.


	DISCLAIMER:

This was written by me on my own time and equipment.  My employer has
absolutely nothing to do with it.  See also the file COPYING.

Please send any comments, bug reports or suggestions to me:

	Tim Witham <twitham@pcocd2.intel.com>
