"Recluse and fancy free."
[ Music ][ Misc ][ Graphic ][ Math ][ Scientific ]
This website contains a variety of materials related to technology and engineering. Downloadable software, much of it original, is available from some of the pages. All downloadable software is offered freely and without restriction -- although in most cases the files should be considered as works in progress (alpha or beta level). Source code is also included for some applications.
Some of the major sections of this website can be found under Music, Graphics, Math, Scientific and Miscellaneous.
Among the materials are:
a high performance extended precision scientific math package (> quad precision),
high speed flood fill routines which offer new features, such as re-bordering and flood-under,
ports of various scientific Algol, Pascal and FORTRAN packages to C and C++,
an advanced Variable Persistence Digital Phosphor graphics display technology, VPDP,
GAW, a Graphics Algorithm Workbench -- platform for implementing and testing algorithms interactively,
LDW, a Logic Design Workbench -- logic simulator with schematic diagram and oscilloscope displays,
SoftVCS -- a high performance Atari 2600 VCS Emulator,
In general, the source codes in C or C++ are suitable for use on DOS or Windows platforms, although in some cases there are compiler specific issues which favor Borland compilers. The assembler codes are written for TASM or TASM32, and therefore will only link directly with Borland 32-bit applications, however it is easy to convert these codes to assemble under MASM. Any static libraries are Borland specific, so they will not compile/link under VC++. I may offer DLLs for some of these libraries in the future to eliminate the compiler dependencies, but that is currently a low priority.
5/13 -- Updated divide-by-three paper to include solution and simulation.
7/12 -- Added Star Trek cadet calculator simulator using XBCD math package.
2/12 -- Revised divide-by-three circuit and companion paper to correct errors and limit subject matter to design problem.
8/11 -- Some modifications to website. Expect a few problems...
7/11 -- Added page for Atari 800 support in Hyperspin.
4//11 -- Corrected a few errors in the paper on a generalized ellipse algorithm.
4/11 -- Updated the paper on line drawing, and added a paper on antialiased lines and curves. Posted a Windows application for an extended precision expression evaluator using the XBCD math package.
3/11 -- A paper which describes the graphic flood fill algorithm demonstrated in the Graphics Primitives section can be found here. This method is disclosed in great detail sufficient to support implementations in any language. The currently posted version includes a proof that each filled pixel will only be visited once.
3/11 -- Here I have placed a new paper dealing with the generation of artifact-free signals for magnetic recording design and simulation. This paper follows a previously published paper in the IEEE Transactions on Magnetics.
3//11 -- Posted a papers which compares the so-called 'Q' function of Williams and Comstock to that of Neal Bertram. This comparison highlights differences in the methods which will affect head/media optimization decisions.
2/11 -- Posted a paper describing the Optimal "L" filters with an example.
12/10 -- Added page for physics Problems and Solutions
12/10 -- Posted two paraphrases on Chopin's Etude Op. 10, No. 2
9/10 -- Created page for short piano arrangements.
3/10 -- Added a paper for designing a horizontal sundial.
9/09+ -- Located a photocopy of the original KIMath manual and added scanned version to KIMath archive. The files are in *.PDF format. Also added a scan of the article "Here's HUEY! -- supercalculator for the 6502", with reconstructed source code and support files. The article originally appeared in an early issue of Kilobaud magazine and is included here with permission.
9/09 -- Revised the assembler cbA65.exe to remove non-portable characters from the listings. Corrected the manual. Also replaced KIMath with a pure ASCII version submitted by John Cooper. Inspired by the need to put the DOS 'Terminal" font in the past, I revised the original version of KIMath to include its special math symbols along with its box and line art but addressed the portability by creating a PDF version through TeX and Adobe Acrobat. This version is much more readable and includes several error corrections.
2/09 -- Added minimal strobe circuit for hobby application.
3/08 -- Added page for fltpt65, a full featured floating math package for the 6502 processor. Source code is available and a Windows demo program, Calc65, is also posted.
3/08 -- Posted a reconstructed version of the source code for PAICs BASIC Programmer's Toolkit. Upgraded the assembler tools section with the addition of the cbA65 assembler and ReSource65 source generator. Upgraded the Asynchronous Sequential Switching Circuit paper to include an index.
5/06 -- Added page for Piano Reference Library containing free MP3 files of some of Ravel's piano works, including Gaspard de la Nuit. I believe these compare favorably in quality to any other recordings currently available.
7/05 -- Added logic design for divide-by-three circuit and explanatory companion paper.
2/05 -- Created pages for music files. Posted score paper, transcriptions and notes on jazz theory.
1/05 -- Added RADAR simulation examples to VDPD page.
11/04 -- Added paper with Optimum "L" filter poles, polynomials and component values for up to 10th order
6/04 -- Revised bessel.zip to correct errors in complex Bessel functions.
12/03 -- Added DLL and demo program for experimental high performance math expression parser/compiler/evaluator.
12/03 -- Added XBCD DLL portable library for extended precision XBCD math routines. This DLL can be used from DOS or Windows to create C++ applications supporting 58 digit extended precision floating point operations, including trig functions, hyperbolic functions, logs, exponentials, gamma function, etc.
10/03 -- Created page for SoftVCS, an Atari 2600 VCS emulator. Added game player and game analyzer application.
5/03 -- Posted a paper describing an efficient decimal square root algorithm using non-restoring pseudo-division.
4/03 -- Posted a paper on implementing a robust front end for polynomial root finders. This method employs Euclid's algorithm for extracting multiple roots and Rutishauser's Quotient-Difference algorithm for generating reasonable starting root estimates.
2/03 -- Added ScienTrivia page, reorganized Technical Papers page, added Design Notes section to Circuit Analysis page. Finally uploaded an interactive version of Conway's game of life, and a simple version of Breakout .
1/03 -- Added C/C++ source files for real and complex gamma function and psi function. Also added individual C/C++ files for Bessel and modified Bessel functions of 1st and 2nd kinds for real and complex arguments. Updated Butterworth and Bessel filter tables with files of extended parameters including polynomials, poles and component values.
The material here is made available "as is". No guarantees for performance or suitability of purpose are provided. If you have some use for anything you find here, have fun. But note that some of the codes are copyrighted, so please restrict your usage to yourself.
This website is unattractive and cosmetically challenged. I may make an effort in the future to add some "sizzle" to its appearance, but for now the focus is on content. On the other hand, I welcome any opportunity to improve accuracy. Click on the logo below to contact me via email if you discover errors or wish to comment on the material.
From time to time someone sends an email asking if I have a BIO located on my website. Perhaps the following will serve...
My first major career interest was in music, but I found that the structured environment of academia was incompatible with my own, barely housebroken, lifestyle so I ventured out on my own. After an undistinguished fling at earning a living playing piano and vibraphone, I wandered onto a scientific career path via serendipitous employment at Fairchild Semiconductor. This change fostered a lifelong passion for technology which led me into analog and digital circuit design, logic design, microcomputer programming, scientific programming and other disciplines reflected in the contents of this website.
I subsequently worked as engineer (EE) or engineering manager at IBM, Shugart, Verbatim, Read-Rite, and other companies, eventually culminating in a Director of Engineering position at Ampex Corp. I am the author or co-author of several technical publications, hold nine patents and developed most of the material to be found in these pages.