Richard Reed Shiffman

Computer System Engineer

Job Résumé as of December 2001

 

Professional Experience

Richard Shiffman is a computer system engineer with more than two decades of experience. He has design experience in analog and digital electronics and software systems. Mr. Shiffman's main emphasis has been in interactive graphics hardware and software. He has been employed by various departments of the University of Southern California for over twenty years.

 

Full-time Employment or Consulting Objectives

While a lifestyle of consulting, writing technical papers for journals and MathSoft (e.g., interesting applications of metric tensors using MathCAD), reading lots of books, bicycling, sailing, and serving in the Coast Guard Auxiliary as a Flotilla Commander, and living frugally off of investments has been pleasant these past few years, Mr. Shiffman is anxious to start working again on a technically exciting, intellectually stimulating project, be it in software engineering (coding in Java, C++, C, Lisp, assembly, etc.) or in electrical engineering (IC or firmware design) where he will be appreciated by the company for his technical versatility, depth, and creativity.

 

Career Highlights

Mr. Shiffman was last employed by the University of Southern California's Information Sciences Institute (ISI) where he was involved in hardware and software development for the Personal Communicator project. This work involved writing diagnostic programs to debug experimental display hardware. The goal of Mr. Shiffman's work on this project was to develop graphics driver routines for a new electrophoretic display and touch panel.

Earlier at ISI, he wrote the Interlisp interface for the Command and Control Graphics project and developed system and applications software for the MAST project. This involved designing communication between a DECsystem10 and an SBC-86/12. He also has worked on both the hardware and software for the ORLY flight simulator. This required integrating an aircraft joystick into the simulator.

Mr. Shiffman was a Research Engineer for the Dynamic Measurements group at USC. He designed a high-gain, low-noise preamplifier for silicon X-ray detectors. At USC-County Hospital Mr. Shiffman also worked on an X-ray microscope and designed an analog interface. This interface was built to make the Kevex Fluorescent Thyroid Scanner transmit scan data to the Ohio Nuclear Med-2 computer.

Earlier he was a design engineer for the Biomedical Image Processing laboratory, where he developed: a scanner for 35mm and 70mm film, a 200 watt Quartz Iodine light source for the scanner, a constant current power supply, a pair of ultra stable differential amplifiers, and a real-time television digitizer based on the Signetics 3000 microprocessor.

While working as a programmer he developed the Interactive Graphics for Lung Volume Determination program. He also acted as a teaching assistant for Man-Machine Interactive Systems course at USC.

Mr. Shiffman designed a 3D graphics system called MIGS (Muddle Interactive Graphics System) for MIT's Muddle (MDL) language (a dialect of Lisp), during which time he also became a Zork hacker, confounding the MIT programmers who wrote the now-classic MDL adventure game.

 

Other Design Experience

  1. Design and construction of a point plotter for a Computer Automation LSI-2, a 16-channel ADC and a light pen for it.

  2. The design of a high resolution alpha, 1-alpha vector generator, clipping divider, and a 4*4 matrix multiplier.

  3. The development of a 21" random beam position CRT display, and the deflection amplifier for it.

  4. Designed and had fabricated a synchronous dual port arbitrator. This was an NMOS VLSI device with a lambda of 2.5 microns, and functions with a clock from DC to 3 MHz.

  5. While working on Danny Cohen's Flight Simulator program, ORLY, Mr. Shiffman observed that the VR17 display scope's power supply would be damaged if the PDP-11/45 did a bus reset and the scope's power left on for an extended period of time. The VR17 display is a random beam positioning scope with the physical origin (point 0,0) in the center of the screen, this is the point of least power consumption. The VT11 display processor had its logical origin at the lower left-hand corner of the display. This is the state of maximum power consumption for the VR17. This condition would occur every time there was a bus-reset on the PDP-11/45. The solution was to construct a circuit that would disconnect the outputs of the VT11 from the VR17 and ground the inputs to the deflection amplifiers when the VT11 was at its logical origin and idle. Now the VR17 would consume minimal power when the VT11 was idle.

  6. Also in 1981, it became apparent that several of ISI's projects required a circuit would strip the sync signal from a composite video signal (RS170). Mr. Shiffman designed a Sync Separator circuit based on the TBA950-2 integrated circuit, which accepted a composite video signal as input and outputs TTL compatible sync pulses. The three main sections of this circuit are the input phase splitter, the TBA950-2 sync separator, and the TTL output buffer.

  7. Mr. Shiffman designed a Line 10 Decoder. This device was used to synchronize ISI's lab WWVB clock to the atomic clock at JPL. A simultaneous event at these two locations was needed. The event chosen was the 10th horizontal sync pulse of the odd video field of a local TV station. This allowed us to synchronize the two clocks with an accuracy of about one millisecond. Line 10 was chosen because it is the first horizontal sync pulse after the equalizing and vertical sync pulses, therefore easily identified. The Line 10 odd sync pulse occurs at 1/2 of 63.55 microseconds after the end of the equalizing pulses. This device consisted of a sync separator, a counter/one-shot circuit to find the 10th sync pulse of the odd field, and the counter control logic for a HP 10 MHz counter.

  8. In 1982 Mr. Shiffman designed a RS170 Composite Sync Generator. This generator was built to provide a standard reference sync source for the conference room video recording equipment and the Ikonas frame grabber. The Ikegami camera model ITC-62, which was the source of conference room video, provided RS-330 sync which differs from RS-170 primarily in that it is missing the serrated pulses during the vertical sync interval. The Ikonas frame grabber was designed to accept only RS-170 sync and its internal sync stripper, even/odd field detector, and video clamp required the vertical serration pulses to operate properly. An RS-170 composite sync generator was built from the National Semiconductor MM5321 chip to solve this problem.

  9. In 1983 USC-ISI had six KL10/KL20s, ten to 15 Vaxes, and many Lisp machines in the computer room. Mr. Shiffman developed a Microcomputer-based Crash Alarm System to monitor the status of all of these computers. This Motorola 6809-based crash monitor would reconfigure itself each time it was booted, thus it could handle the constantly changing number and type of systems at ISI. Not only would this monitor inform the operator when a system would go down, but it would allow you to remotely monitor the status of the ISI computer systems from any terminal location in the institute.

  10. In 1984 Mr. Shiffman began studying and designing CMOS VLSI integrated circuits for ISI. His first IC was a dual-port memory arbiter with fixed priority. This chip was a depletion-loaded NMOS Morley state machine. Later on Mr. Shiffman designed and had fabricated 18 different ICs for ISI, ranging from pad test chips of Latch-up proof 50 MHz tri-state IO pads with 3mA drive current to custom pin drive chips for functional testers. During '84 and '85 Mr. Shiffman lead the research to design and fabricate a CMOS integrated circuit that was the back-plane of an Electrophoretic Image Display panel (see Publications, #7 ). In 1986, this lead to a year's worth of work on developing a flat panel display based on combining Langmuir-Blodgett film technology with CMOS VLSI pixels.

  11. Starting in 1987 Mr. Shiffman spent over 2 years beta testing and debugging the Lager VLSI Silicon compiler for ISI and DARPA. During this time he was also designing analog correlators for experimental spread spectrum communications equipment. He also designed and fabricated test ICs for the ACMOS (low-energy computation) group at ISI.

  12. In the '90s the last major project Mr. Shiffman worked on for ISI was the network interface between the Embedded Variant (EV) multiprocessor and a PC-AT or greater. The EV system developed at ISI was a loosely-coupled multiprocessor-based on the 64-bit Intel 860 / 960 processor and Intel's NIC, network interface chip. Each NIC can pass messages to any of its four neighbors or to the CPU at each node. The NIC message packet have north-south and a east-west address count, each time a NIC propagates a message to another NIC the appropriate address count is decremented. When both counts equal to zero, the message is routed to the CPU of the node. The network uses 50 MHz 16-bit parallel CMOS level lines to communicate between NICs. The NICs have internal FIFOs convert the 860 CPU's 64-bit word to four 16-bit pieces for the network.

    The Interface between the EV network and the PC consisted of a NIC, 2 synchronous read / write FIFOs with separate read / write clocks, and 2 state machines. The PC's bus clock ran at 33 MHz and the EV network and the NIC had a 50 MHz clock. The NIC handles messages between the EV network and the FIFOs of the of the interface. The FIFOs are used to synchronize the data and commands between the NIC and the PC. One of the FIFOs writes data from the PC to the NIC and the other FIFO reads data from the NIC to the PC. One of the state machines controls the NIC and the NIC side of the FIFOs. The other state machine controls the PC side of the FIFOs and the PC bus interface.

 

Software Experience

The first major software system that Mr. Shiffman designed was MIGS for MIT-DMS. MIGS, which stood for Muddle Interactive Graphics System, was an extension to the Muddle (MDL) language (a dialect of Lisp) developed at MIT. See Publications, #2. MIGS modeled a subset of the Evans&Sutherland LDS-1 in software. As a matter of fact MIGS outlasted LDS-1 by several years. MIGS was an interactive 3D line-drawing graphical system with both immediate and display compiler/display processor modes. Immediate mode output would appear on your display terminal as soon as your input was complete. The display compiler mode would build a graphical data structure or MCELL, which would later be transformed and displayed by the software display processor. MIGS also contained a on-line help system that documented its use and operation.

Immediate mode was used for simple one time graphics, such as function plotting. It also handled all of MIGS's terminal output for the different types of terminals the system could use. MIGS was capable of supporting ARDS and Tektronix storage scope, Imlacs, DEC GT-40 family of displays, and HP 2648s. Immediate mode also graphical input from the Talos Tablet on USC's GT-42.

Display compiler / processor mode was used to generate complex 3D graphical images that could be displayed, transformed and redisplayed over and over again.

The display compiler and processor used homogeneous coordinates to represent graphical objects and matrix multiplication to perform all its transformations. MIGS allowed sub-picturing and transforming to any depth. There was no conditional image termination, so recursive image definitions were not allowed.

The first beta version of MIGS was released in 1972. After that Mr. Shiffman continued refining MIGS and adding new features to it. Thanks to MIT's optimizing Muddle compiler and many carefully rewritten code Mr. Shiffman was able to get the compiler to generate total in-line code. The final version of MIGS on a DEC KL-20 would match the performance of DEC FORTRAN. The Clipping divider in MIGS was based on the code of Ivan Sutherland and Danny Cohen described in Principles of Interactive Computer Graphics by Newman & Sproull. The matrix multiplier was hand-coded by Mr. Shiffman as in-line code without loops to increase its performance. The software character generator was one of the last features added to MIGS. This allowed the users of MIGS to place text in any MCELL or picture and apply any series of 3D transforms as could be done to any MCELL.

Mr. Shiffman also developed The TOPS-20 JSYS package for MIT's Muddle programming language. This allowed Muddle programs easy access to the Tops-20 system calls. This package played a major roll in his later programs described below.

A second, but related software project was the Mybook. This was the low level graphics software written by Mr. Shiffman in PDP-11 assembler for USC's GT-42. This software used DEC's Picturebook protocols, and added support for the Talos graphics tablet. Now the tablet could be used from high level languages like Lisp and FORTRAN.

Mr. Shiffman used MIGS to develop a program for Interactive Graphics for Lung Volume Determination (see Publications, #3 ). This program would calculate the lung volume of a patient from the posterior, anterior, and lateral X-rays. The X-rays would be traced in on the Talos tablet. The user could edit his input tracing or clear and re-enter it if a gross error was made. When the user was satisfied that the X-rays were traced correctly, the program would use heuristics Mr. Shiffman programmed in to remove erroneous data points and generate its internal model of the lungs. The model for lungs used by the program was built from truncated elliptical cones. Integrating over all the cones would determine the lung volume. The program also displayed a transformable 3D image of its lung model for the user to examine.

Mr. Shiffman programmed and wrote the documentation for the TOPS-20 Interlisp interface to the GL device-independent graphics system. This interface used TOPS-20's pseudo-teletype capability for internal inter-process communication between the GL fork and the Interlisp environment. (See Publications, #6 ).

Mr. Shiffman next spent two years working on ORLY, Danny Cohen's flight simulator at USC-ISI. ORLY ran on a PDP-11/45 with a VT11 display processor and a VR17 display scope. ORLY was mostly coded in PDP-11 assembler and Bliss-11. The AR11 was programmed to read the 2-axis joystick and the throttle potentiometer for input as the pilots controls. The analog outputs of the AR11 were programmed to control the TI 76477 sound generator circuit to make airplane noises, also designed by Mr. Shiffman.

Later Mr. Shiffman used Bliss-11 to write the code which controlled that LPC vocoder from Texas Instruments. The vocoder was used in Danny Cohen's Pilot Assistant project to warn the pilot of danger or trouble.

Mr. Shiffman wrote the integer arithmetic interpreter and the pretty-printer in Interlisp for the GIST knowledge base system at ISI developed by Bob Balzer's AI group.

The next project Mr. Shiffman worked on was the Packet Radio Terminal project of Tom Ellis, Steve Sonders, and Alan Kay (renown Computer Scientist at Xerox PARC and Apple, invented Smalltalk language) at ISI. The packet radio terminal or "joule box" as it was called consisted of a RCA 1802 processor, RAM, ROM, a keyboard, a Philip's Lab's Electrophoretic (EP) display panel, and a touch panel. Mr. Shiffman was responsible for the EP panel driver and graphics software, including the DDA vector generator. Most of the 1802's software was written in PolyForth with as little as possible code written in 1802 assembler. Since the experimental version had no disk or other backup storage, Mr. Shiffman designed the communications software and file system interface from the 1802 to the DEC KL-20. The KL-20 software had two main modes; one was telnet mode, and the second was file system mode. Telnet mode allowed the user to use his terminal on TOPS-20 as the console terminal of the 1802. In file system mode the 1802 could load or store Forth disk blocks or 1802 object code. The KL-20 server program consisted of two forks, the Muddle main fork in telnet mode handled ASCII character from the user's terminal to the 1802 and controlled the lower Bliss fork. The Bliss fork would handle the transfer of ASCII data form the 1802 to the user's terminal on the KL-20. In file system mode the top level Muddle fork would freeze the Bliss fork so the Muddle fork would receive the 8-bit ASCII characters from the 1802. In file system mode the Muddle fork would use the Alternating Bit Protocol to insure accurate data transfer between the two machines. The Monitor of the 1802 and PolyForth were modified to route all disk requests through Mr. Shiffman's communications interface. Again the code was added to the1802 to handle the Alternating Bit Protocol.

The communications software played a significant role in the microcomputer crash alarm system that Mr. Shiffman developed for ISI. The software also allowed pictures generated in MIGS and routed to a file, to be plotted on a Tektronix plotter connected to a terminal port. Again this software was invaluable in communicating with the 6809 microprocessor used in the control of Mr. Shiffman's Electrophoretic display panels.

The software for ISI's microcomputer controlled crash alarm was also written by Mr. Shiffman. The crash alarm's main console used an 6809 microprocessor which was programmed in Forth. See Other Design Experience, #9.

 

Publications

  1. John W. Adolph, A. Leon Garcia, William G. Harter, G. C. Mclaughlin,Richard R. Shiffman, Victor G. Surkus, "Some Geometrical Aspects of Classical Coulomb Scattering", American Journal of Physics, Volume 40, December 1972, page 1852

  2. R. R. Shiffman, MIGS Manual, MIT DMS, 1972-1984

  3. R. R. Shiffman, A. Franklin Turner, E. L. Hall, "Interactive Graphics for Lung Volume Determination", Proceedings of the Third International Conference on Pattern Recognition, November 1976

  4. Richard R. Shiffman, "LJSR, a Routine for doing PC-Relative JSRs to the Entire Pace Address Space", COMPUTE - Microprocessor Users Group Newsletter, National Semiconductor Corporation, Volume 5, Number 1, January/February 1979

  5. Richard R. Shiffman, "Anatomy of a Digital Vector and Curve Generator", Dr. Dobb's Journal, #81 July 1983, page 65

  6. R. Bisbey, D. Hollingsworth, B. Britt, "Graphics Language" ISI Technical Manual, ISI/TM-80-18.1, 1984 (Mr. Shiffman programmed the Interlisp interface to GL and wrote Appendix D)

  7. Richard R. Shiffman & Robert H. Parker, "An Electrophoretic Image Display With Internal NMOS Address Logic and Display Drivers", Proceedings of the SID, Volume 25, Number 2, 1984, pages 105-115

  8. Richard R. Shiffman, "Sextant Noon-Day Sun Sightings", Exploring MathCAD (disk), MathSoft Inc., 1994

  9. Richard R. Shiffman, "Emergency Solar Almanac", http://www.mathsoft.com/mcadlib/apps/esa_exp7.mcd, MathSoft, Inc., 1994

  10. Richard R. Shiffman, "Navigate.mcd", http://www.mathsoft.com/mathcad/library/apps/navigate.mcd, MathSoft, Inc., January 1995

  11. Richard R. Shiffman, "Search Datum Calculation", http://www.mathsoft.com/mathcad/library/apps/sdatum9.mcd, MathSoft, Inc., April 1995

  12. Richard R. Shiffman, "Search Patterns", http://www.mathsoft.com/mathcad/library/apps/spttrn9.mcd, MathSoft Inc., April 1995

  13. Richard R. Shiffman, "The Cross Product, Dot Product and Fun with Tensors", http://www.mathsoft.com/mathcad/library/apps/crossdot.mcd, MathSoft Inc., October 1995
    Gif file at: http://www.isi.edu/~rrs/Cross_product_picts_folder/cross_index.html

  14. Richard R. Shiffman, "Metric Tensors", http://www.mathsoft.com/mathcad/library/apps/mtensors.mcd, MathSoft Inc., January 1996
    Gif File at: http://www.isi.edu/~rrs/mtensors/mtensors_index.html

  15. Richard R. Shiffman, "Non-Orthogonal Bases, Covariant and Contravariant Components of Vectors ", http://www.mathsoft.com/mathcad/library/apps/nobasis.mcd, MathSoft Inc., September 1997

  16. Richard R. Shiffman, "Evolutes and involutes of R2", http://www.mathsoft.com/mathcad/library/apps/evinvol.mcd, Mathsoft Inc., May 1999
    PDF file at: http://www.isi.edu/~rrs/evinvol/evinvol.pdf.

  17. Richard R. Shiffman, "The 4D, 4th rank, antisymmetric tensor and the 4D equivalent to the cross product ", http://www.mathcad.com/Library/LibraryContent/4Dtensor.mcd, Mathsoft Inc., July 2000
    PDF file at: http://www.isi.edu/~rrs/4Dtensor/4Dtensor.pdf.

  18. Richard R. Shiffman, "Time Dilation in Gravity Wells",
    http://www.mathsoft.com/mathcad/library/apps/Schwarzschild.mcd,
    MathSoft Inc. at www.mathsoft.com, July 2001

  19. Richard R. Shiffman, "Magnetic Deviation on a vessel and what to do about it.",
    http://www.mathcad.com/library/LibraryContent/MagneticCompassDeviation.mcd,
    MathSoft Inc. at www.mathsoft.com, December 3rd. 2003

 

Education

University of Southern California - 4 years Physics
University of Southern California - 2 years Electrical Engineering

 

Personal Information

Mr. Shiffman is now 46 years-young and rides his bicycle from 60 to 100 miles a week to stay in shape. Some of his other interests include sailing on weekends, celestial navigation, computer-aided mathematics, Lisp and Java programming, and target shooting. Mr. Shiffman is a Flotilla Commander in the U.S. Coast Guard Auxiliary and holds a Coxswain rating in the Coast Guard's boat crew qualification program.

Rick Shiffman
10318 Dunkirk Ave.
West LA, CA 90025
home phone: (310) 277-5370
boat phone: (310) 305-7005

Internet Address

rrs0@earthlink.net

WWW Home Page

http://home.earthlink.net/~rrs0