Computer Technology & Electronics

Prototype 3-d CPU Matrix (5x3x2=30 CPUs) designed by Myles Dyson for Syknet (from sci-fi movie Terminator 2)  Thinking Machines CM-2 (this is real)

This entire sub-domain is a private effort of free information.
There are no cookies, no advertisements, and nothing is for sale.


Current Items of Interest (most recent first; occasionally pruned)

  1. New Dark Age: Is Technology Making the World Harder to Understand? 28-minute video
  2. My Vector Processing info (which includes GPU, OpenCL, CUDA, etc.) was moved here
  3. The Memristor (fourth fundamental electrical device after the resistor, capacitor, and inductor) is discovered 37 years after it was first proposed in 1971
    • How We (HP Labs) Found the Missing Memristor
      IEEE claims "this is the greatest electronics invention of the last 25 years"
    • Logic circuits that program themselves: memristors in action
    • University of Michigan electrical engineer builds chip composed of 1 kilobit nanoscale memristors
    • Computers speak a simple language known as binary. The lexicon is built from digital 0s and 1s, so the “C” letter at the start of this box would be represented as an elaborate code: “01000011”. The dominance of binary is partly due to computers being built from transistors, electrical switches that either allow current to flow or not, and nothing in between. These two well-defined states stand in neatly for 0 and 1. But there’s a newer electrical component on the scene called a memristor (see main story). These devices are becoming more and more useful in computers built to mimic the brain, and they are plenty more versatile than the transistor. Rather than being simply on or off, they can adopt several different states of resistance. Last year, researchers led by Vikas Rana at the Peter Grünberg Institute in Jülich, Germany, got a set of memristors successfully preforming calculations in a ternary language, which uses the digital equivalent of 0s, 1s and 2s. This means memristors could allow computers to compute much more efficiently. And it doesn’t have to stop at base 3; memristors can reliably adopt at least seven, and possibly more, resistive states. Continued here: New Scientist (2 August 2017)
    • Memristors act like neurons
  4. Excerpt from NPR's "Science Friday" program 2007-11-16: I hate my cell phone. I have to admit it's not easy to use. I hate my cell phone carrier because it locks me into a system: It doesn't let me choose the cell phone I would like to use. It doesn't physically play nicely with my computer's calendar or its address book or my other tools that, ideally, would make my life easier. And if I want to change my situation, you know what that's like, if I want to move to another carrier I have to buy a new phone because that phone doesn't fit the next carrier. I have to get a new service with the limitations that are all there. It’s basically like having to start all over again in many cases. And it makes you wonder why can't they make a cell phone that lets me do what I want to do? Let me choose a provider I want to pick. The cell phone I want to pick. Wouldn't you like that too? Well we may be getting closer to that day because first Apple introduced the iPhone that basically puts a small computer in your pocket and that gives you a lot more flexibility. You're still locked into that one carrier so that's not so great. And you're still locked into the goodies that Apple wants to give you and lets you have on their [your] iPhone but last week Google, the search engine king, brought us a step closer dipping its toe into the cell phone world. And not with a full fledged gPhone as they've been calling it, but by helping to develop a set of software tools call Android that can run on many different hand sets with interchangeable parts. And that could allow more flexibility for consumers.
  5. The Software Developer's Rule:

    Faster, Better, Cheaper. Pick any two but you can never have all three.

  6. Seven Mistakes Made All the Time by Most Software Development Organizations from (*/ )

    references Bell Sygma (official IS/IT provider for many large Canadian corporations in the 1990s which later merged with CGI of Montreal)

  7. HyperTransport is the biggest thing in computer technology since the invention of the FSB (Front Side Bus). Intel went their own way with Quick Path Interconnect (QPI). Both these technologies were derived from a technology named Common System Interface (CSI) which was developed by DEC engineers for the never-released Alpha 21464 (EV8).

Don Lancaster

  • Don Lancaster is the father of hardware/software hacking and technical common sense
    • the original meaning of "hacker" was once a complement; now it is associated with illegal activities
    • authored over 50 technical books including: which all can be found in the personal library of every chip head and hardware hacker
    • Archives from his columns in magazines like Radio Electronics and Electronics Now are online at his web site

David L Jones (EE Video Blog)

Chip Info & Embedded Development Tools

My Commercial Embedded Work:

Visit my (Neil Rieck) Computing Bio 
Visit my (Neil Rieck) Regular Bio 
Soup-to-nuts. I designed the electronics and wrote the firmware for three different "ground-source heat-pump applications" for two Canadian companies no longer in business (fortunately for my ego, the demise of these companies had nothing to do with me or my work). I selected almost of the components except the CPU chip (which was selected by committee) 
  • Product-1 (1989-1990) was based upon the Motorola MC68HC11A8
    • An 8-bit CPU architecture with five 16-bit registers in a 48-pin DIP
      • like the 6800 before it, this CPU featured two 8-bit accumulators (register-A and register-B). But both of them could be combined as a 16-bit accumulator (register-D)
    • The software (firmware) was written in 6811 Macro Assembler Notation using a plain text editor on an Apple Macintosh
    • Binaries were generated using the uAsm 6811 cross-assembler from Micro Dialects
    • Binaries were burned using a GTEK 7228 EPROM Programmer
    • The prototype was implemented on a wire-wrap board which worked flawlessly.
    • From there we moved to a one-time PCB (printed circuit board) which was laid out on an Apple Macintosh using McCad from Vamp Inc.
    • This was a conceptual product which never went into production but we learned a lot while achieving "nerd nirvana"
    • Highlights: we also built a prototype which could directly modulate (via PWM) refrigerant flow via a solenoid which turned out to be quite noisy. We planned to move to a stepper-motor but stopped when the customer decided to use other heating/cooling widgets like scroll compressors (no reciprocating parts).
  • Products 2+3 were based upon the Motorola MC68HC11F1
    • an 8-bit CPU with five 16-bit registers including a lot of I/O devices in a 52-pin quad pack chip
      • register-D is a 16-bit accumulator which can also be used as two 8-bit accumulators (register-A and register-B)
      • includes 512 bytes of on-chip EEPROM
    • click here to view the original 1995 manual
    • Product-2 firmware (ESI: 1992) was written in 6811 Macro Assembler Notation using a plain-text editor on an Apple Macintosh. Binaries were generated using uASM 6811 cross assembler from Micro Dialects.
    • Product-3 firmware (GEI: 1995) was written using Whitesmiths 68HC11 C Compiler/Assembler (from Intermetrics - see COSMIC Software about 100 lines below) on an IBM PC (this was an 80368). Implementing startup vectors and interrupt vectors was child's play with Whitesmiths-C. Although I loved programming directly in 6811 assembly, the Whitesmiths-C environment was much more productive and the binaries were always 5-8% smaller
    • Many more ESI boards (500?) where manufactured than GEI boards. That said, the GEI board was an improvement on the ESI board so could be used as an ESI replacement.
    • hardware:
      • PCB (printed circuit board) layout was done on an Apple Macintosh using McCad from Vamp Inc.
        • we still couldn't get rid of those overpriced Macintosh Computers; at a Motorola developer's conference in 1992, a show of hands revealed that only 3 people out of 500 were developing products on the Mac platform
        • at that time we discovered that hardware engineering software (printer circuit board layout tools, auto-routers, etc.) on the Mac were 10 times more expensive than equivalent stuff for the IBM compatible PC.
      • Asynchronous Serial Communications Interface (UART) for serial communication to/from the optional EnerStat thermostat
      • SPI (Serial Peripheral Interface)
        • output to a four-character seven-segment LED display (standard)
        • output to an Optrex DMC 16117A LCD display (optional)
        • input from an optional field maintenance test box (also used during manufacturing). I borrowed this idea from the assembly line diagnostic link used by General Motors. This was before the OBD2 (on board diagnostics) automotive standard.
      • Parallel Port
        • output to the furnace relays (up to 16 depending on the rev)
        • input from "passive conditioned" snap switches (high pressure, low pressure, etc.)
        • input from a standard multi-line AC or DC thermostat
      • Programmable Timers
        • input from an AC Condensate sensor that I designed for detecting water in a condensate tray (AC so there would be zero mineral buildup)
        • output to an optional GE blower whose speed was controlled by PWM
        • input from the RPM sensor of the optional GE blower
        • sampled domestic hot water temperature using a LM335 temperature sensor connected through a single op amp (to double the sensor's signal then translate it down by 2-volts)
        • 68HC11F1 subsystem assignments: Eight 8-bit A/D converter
    • features:
      • the main power supply was a medium-efficiency non-switching type (composed of discrete components) and was also "short circuit proof" (limited to 900 mA) meaning that we never burned up a circuit board due to manufacturing problems.
      • we used a digital communication thermostat from Ottawa-based EnerStat. Temperature measurements and settings were read via a single (half duplex) serial data line. I designed a "short circuit proof" +20V power supply for the thermostat so that any bozo could install or maintain the system without frying our electronics or blowing fuses.
      • although the EnerStat thermostat was really neat technology, they were unable (or unwilling?) to produce a consistent API. Every other shipment of thermostats seem to introduce changes we needed to support in our code (eg. the DMA locations kept moving). After the third change we moved to a traditional multi-wire stat which became the standard offering. You just need to disable the DIP Switch labeled "CommStat" (communications stat) to make it work.
  • photos
    ESI Circuit Board - 1991
    ESI Board circa 1992 (6-relays)
    (CPU in the brown 52-pin square socket)
    GEI Circuit Board - 1994
    GEI Board circa 1994 (up to 15-relays)
    (CPU in the brown 52-pin square socket)
  • time moves on
Computer Programmer vs. Computer Engineer (advice for nerds)

Since the advent of minicomputers starting in the 1970s, every year we meet a new batch of freshly minted computer programmers. But every day I work with professional computer programmers who power-up their personal computers, or boot up a Linux server, but have no detailed understanding about what just happened (many do their work in the cloud which is a further abstraction). Working with micro-controllers will promote every computer programmer into a computer engineer because you need to learn the dirty details. Consider this: when these chips self-reset after a power up, they load the address of "your cold-start procedure" from the cold-start vector (usually memory locations FE and FF on many chips). Next it would be wise to perform a rudimentary memory test then initialize whatever register has been designated to be the Stack Pointer so that you can support device interrupts (once you enable them) and subroutines because the Program Counter needs to first save its return address on the stack. Speaking about interrupts, you will need to write your own device driver for any device you enable. You will be like a god in this little rinky-dink world but if anything goes wrong it will be your fault. If everything works as expected then you can stand back like a proud parent while your design acts-then-reacts with the real world.

(mostly) Software Links

  • COSMIC Software publishes a really neat ANSI compatible C compiler previously marketed by both Whitesmiths Ltd and Intermetrics Micro Systems Inc. I used this product to develop programs for the Motorola 68HC11F1 and have never seen a better code generator than this one. Even though the name may sound a little goofy, this company has a very large world-wide following. Documentation is available in English, French, Italian and German. Free demos are available for download. Click one of the following three links to view my experiments comparing COSMIC compiler generated code to that of other vendors:
    Code Test Function
    68hc11 cc test 1 simple data initialize
    68hc11 cc test 2 ascending data initialize
    68hc11 cc test 3 simple top-of-stack math

    The Corporate "Name Game"

    1. In 1988, Intermetrics merged with Whitesmiths
    2. In 1996, Intermetrics (well known for their work with the US military and NASA) sold their Intermetrics Micro Systems Inc division to Tasking who previously supported just about every popular chip except the 68HC11 (probably due to a non-competition agreement). The 68HC11 tools are still available from COSMIC Software
    3. Since that time, Intermetrics changed its name to Averstar which then merged with Titan Systems Corporation in 2000
    4. In 2005, Titan was acquired by L-3 Communications
    5. In 2004, Motorola spun off their semiconductor division. The new company is now known as Freescale Semiconductor
    6. Freescale enhanced the 68HC11 with their release of 68HC12 but engineers beginning new projects are nudged in the direction of the 68HC16
    7. The 68HC11 is still (2020) available from NXP in Holland.
  • Byte Craft is a cool Canadian (Waterloo, Ontario) company that produces software tools (mostly 'C') for developing embedded applications for 68HC05, 68HC08, COP8, MELPS, Z8 and PIC. Free demos are available for download. Their site has lots of good external links.
  • Dunfield Development Systems (DDS) a cool Canadian (Nepean, Ontario) company that produces software tools (assembler and 'C') for developing applications on embedded platforms. Their tools generate code for the Motorola 6809, 6811, 6812, 6816, the Intel 8051, 8052, 8080, 8085, 8086, and 8096. Note: This is the company that produced "Micro C" which really stomped on the popular "Small C"
  • Avocet Systems is a maker of hardware + software tools for the embedded market. They seem to be allied with (may have purchased by?) iSystem. Free demos are available for download.
  • free compilers at
  • "The Unix-Haters Handbook" click here to download a totally free copy in PDF format
  • (Vi IMproved. If you don't know what "VI" is then don't click here)
  • Cygwin - UNIX shell scripting for Windows
  • - see which Linux distributions are popular this month
  • Free Software Foundation (FSF)

(mostly) Hardware Links

  • Motorola Microcontrollers (now known as Freescale Semiconductor) the home of: MC68HC11, MC68HC12, MC68HC16
  • Microchip Technology Inc. manufactures the PIC uP line (as well as serial EEPROMs, 8-pin micro controllers, and lots of other neat stuff).
  • Maxim makes all those neat special purpose devices like single chip RS-232 transceivers that work from a single 5 volt power supply.
  • - A Datasheet Search Engine for electronic designers. Includes: pinouts, circuits, etc.
  • - Another datasheet lookup utility
  • Parallax Inc manufactures BASIC Stamps (based upon PICs) as well as PIC development tools.
  • Analog Devices is chip manufacturer that is another life line for chip heads
  • IC Master (if you don't know what IC Master is, then you shouldn't be here)
  • Data I/O makes some neat device programmers and also has a neat Engineering References links page
  • DataMan also is a manufacturer of device programmers. They also have a neat Other Links page
  • BP Micro is yet another manufacturer of device programmers
  • GTEK produces a really affordable EPROM programmer
  • compare "super computer" manufacturers

 How "UNIX on PDP" and "UNIX on VAX" helped to start Internet

Internet Traffic Map for 1995
Internet Traffic - 1995

Technologies that helped promote 'UNIX on PDP' (which led to the Internet)


Internet Diagrams (to see the dominance of DEC hardware)

Internet Block Diagram Notes
ARPANET Logical Map, April 1971
  • ~ 50% PDP platforms
  • only PDP platforms at BBN
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • only IBM at RAND (D.O.D.)
ARPANET Logical Map, September 1973
  • ~ 50% PDP platforms
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • only PDP platforms at ARPA
ARPANET Logical Map, January 1975
  • ~ 50% PDP platforms
  • notice the TX-2 (predecessor of PDP) at Lincoln
  • many more universities and defense contractors
ARPANET Logical Map, March 1977
  • PDP, DEC System 20
  • only PDP at the Pentagon
ARPANET Logical Map, March 1979
  • PDP, DEC System 10, DEC System 20
rfc801 from 1981
  • mentions VAX
  • mentions LSI-11 (uPDP used as a message router)
diagram from 1986
  • notice the solid blocks labeled "LSI-11"

Other Links

How "UNIX on VAX" helped promote TCP/IP

    Quote: In November 1980, when Xerox introduced XNS to the market, as part of the Xerox 8000 Network System, TCP/IP had been coded only to prove its viability, not operational functionality. The intended cut over date for Arpanet, the most important network of the day, was January 1, 1983, years away. The project timeline was not without perils. First, BBN had to make Arpanet’s Subnet TCP/IP-compatible. Then came the complicated issue of creating host TCP/IP code for all the essential computers connected to Arpanet. There was no desire to let each host site create its own version of TCP/IP, a painful lesson learned in creating the original host software now to be replaced. In 1981, DARPA awarded seven contracts to create computer host code. The contract to port TCP/IP to UNIX went to BBN. (See Exhibit 9.5 TCP/IP Ports) [38] BBN would then give its TCP/IP code to Bill Joy at Berkeley to integrate into the upgraded version of UNIX Joy was developing for the VAX computer. Creating host ports began once Postel posted the TCP/IP standard as RFCs 791 and 702 in September 1981. [39]

Internet Stuff

RFCs + Ports

DNS registration

DNS Other

Museums + Emulators

  • Download a free Apollo Lunar Landing computer history museum
  • Before Dilbert there was CPUWARS
  • has emulators for Atari 8 bit, Atari ST, and Macintosh
  • Enigma-E - software and electronic Enigma simulators
  • Briel Computers (manufacturers of replica "Apple I" and "Altair 8800" computers")
  • Click Eagle Lander 3D to download a really cool Apollo Lunar Lander simulator for Windows. The short Apollo 11 short mission is free but $25 will get you additional missions and much more functionality. Features: authentic LM cockpit with 9 functional panel switches; FDAI (8-ball) display; real LM landing computer displays; mission-specific surface details and radio chatter; keyboard and joy-stick support.
    Cool Activities:
    1. use replay mode to land Apollo 12 in the Ocean of Storms. Once you're on the surface, hit the zero-key to begin an EVA. Use the arrow keys to rotate 180 degrees then press the "X" key so you can back out of the LM and crawl down the ladder. Use the right arrow key to turn then hit "W" to walk forward a few steps. Hit the "F" key to plant the flag (it will also be visible from the cockpit view by pressing the "1" key; hit the "0" key to go back to the EVA). Look around for a nearby crater and notice that Surveyor-3 is within 200 meters (650 feet). Use the "W" key to walk towards it.
    2. Once you're on the moon, punch V37EN12E into the AGC/DSKY console to initiate an automatic launch. Click Ascent Procedures for more details.
    3. Click here to see a photo of Apollo-17 astronaut Gene Cernan flying the Eagle Lander 3D simulator.
    4. Click "Eagle Lander 3d" Activities for more information

Windows Miscellaneous

BASIC Compilers and Interpreters (the language that never dies)

Mostly free, BASIC tools:

  • Mostly free, BASIC interpreters for your FFT experiments:
    • GW-BASIC 3.23 (Microsoft editor/interpreter)
    • QBASIC 1.1 (Microsoft BASIC editor/interpreter)
    • QBASIC 4.5 (Microsoft BASIC editor/interpreter)
    • QuickBASIC 7.1 (Microsoft BASIC editor/interpreter/compiler)
  • Caveats:
    • the BASIC interpreters listed above are 16-bit programs which continue to work with 32-bit operating systems including Windows-7.
    • They can be made to work on 64-bit operating systems like Windows-10 by various methods. Here are three of many:
      1. download DOS Box:
        • w10: create folder on the C drive (eg. C:\HACK)
        • w10: copy QBASIC.EXE and QBASIC.HLP to C:\HACK
        • start: DOSBox-0.74-3
        • type: mount C:\HACK
        • type: c:
        • type: QBASIC
      2. download QB64 from here then recompile the author's source code
      3. creating a virtual machine (click here to see how)
        • You will need to go this route if you intend to run precompiled executables via BRUN45.EXE

Modern BASIC compilers for Windows + Linux:

Other BASIC Links:

DLL Examples for novice Windows programmers

What is a DLL? Many Windows applications, and Windows itself, are built built as a collection of callable DLLs (Dynamically Linked Libraries) rather than static executable binaries. For examples of this, check out the size of MS-Internet Explorer (IEXPLORE.EXE) which is only 89K, or the size of MS-Outlook Express (MSIMN.EXE) which is only 56K, yet both programs call the same "HTML rendering engine" which is implemented in the system DLLs. When you've got Outlook Express running at the same time as three instances of IE, there is only one set of DLLs loaded which definitely saves memory.

DLL Examples Description Development Platform
dll demo 1: empty project two small C++ functions without DllMain() Visual C++ version 6.0
Visual C++ version 7.1 (a.k.a. ".NET 2003")
dll demo 2: simple project two small C++ functions with DllMain() Visual C++ version 6.0
dll demo 3: example application DiskFree.cpp Visual C++ version 6.0

Note: As most C++ programmers already know, C++ parameters are type-enforced by name mangling. While this causes no problems if C++ applications are calling C++ DLL routines, applications written in other languages will not be able to call a DLL written in C++. In order to get around this obstacle you must disable name mangling of exported names by surrounding the whole C++ source in a "C" wrapper like so:

extern "C" {
    [ ... whole c++ DLL source goes here ... ]
Alternatively, you could write your DLLs in "C" but this may not always be possible.

Apple-2 Forever

  • In 1977 I had been bitten by the computer bug while visiting a local Radio Shack store where I saw a TRS-80, But for some reason I couldn't pull the trigger on that that one so journeyed to Toronto to buy a new Apple II (not a two plus) with 48K of RAM, 16K Language Card, and two 5.25 inch floppy drives.
    • My friends wondered what I was going to do with all that memory and storage space
    • Booting Apple DOS 3.3 with this system was so neat. It checked to see which BASIC ROMS were installed...
      Product Name BASIC ROMs
      Apple II Integer BASIC
      Apple II+ FP BASIC
       ...then loaded what you didn't have into the language card which was nothing more than a 16K memory card mapped (bank switched) over the same address space as the BASIC ROMS + MONITOR)
    • Booting other languages like UCSD Pascal (came with the language card) or Apple Fortran (which I purchased later) loaded the desired language into what appeared to be a 64k memory space. 
    • A while later I purchased Apple's 6502 Macro assembler to get back to my chip-head roots
  • In 1984 I mistakenly sold all my Apple 2 stuff in order to buy a 128-k Macintosh along with Apple's 32-bit macro assembler for the Motorola 68000, TMS Pascal, and LightSpeed C. After that, I jumped through all the new Apple Marketing hoops like upgrading to a Mac-512k, then buying a Macintosh LC, then a Macintosh 601, etc.
  • In 2005-02-xx, I spent a few bucks on eBay to purchase an Apple //e Platinum edition, 13 inch color monitor, two 5 1/4 inch floppy drives, and an 80 column card with an additional 64K expansion. I also bought an unopened original copy of Apple Fortran ($10) as well as an unopened copy of UCSD Pascal 1.2 ($20). I also purchased a genuine Microsoft Z-80 Softcard with CP/M ($20) and Microsoft's Fortran-80 compiler. Now don't think that I've given up on modern technology or have retired; this is just a nerd's version of a 1962 Corvette although I'm sure the rest of the world sees this as worthless junk

Apple-2 Links 

  • is the home of uber-hacker Steve Wozniak. Designer of: the Apple-1, Apple-2 (a.k.a. Apple-II, Apple-][, Apple-//), Apple Disk-II Controller, Apple Integer BASIC, Apple DOS 3.0 to 3.3), Sweet-16, The Apple Monitor (anyone remember "call -151"?) etc.
    • I finally met Woz at a Communitech breakfast in 2010. I got him to sign my copy of iWoz with a dedication to "8-bit forever" (he looked at my like I was from Mars)
  • Apple2 Index @ - 28 major categories as of 2008-02-xx
  • is a computer museum for the Apple-2, Apple-][, Apple-//e, Apple-//c, etc.
  • - Your total source for Apple II computing.
  • Apple II Emulator Resources Guide 1.3.5 (1/1) - FAQ
  • Applefritter
  • Apple I Owners Club
  • Apple-2 Emulators and Support Software
  • Apple Disk Technology
    • Look for these books on eBay. You'll never be able to understand Apple's totally software controllable drive without it.
      • "Beneath Apple DOS" (1984)
      • "Beneath Apple ProDOS" (1985)
    • Note: When the WOZ developed his 5-chip software controllable drive, no one has seen anything like it before. At that time, many competing controller cards employed between 35 to 70 chips. The five-chip design was later reduced to a single chip for the Macintosh and was christened IWM (Integrated Woz Machine). So even though the previous two "Beneath" books seem quite old, the technology lives on.
    • (modern technology for retro toys)
    Software Cracking Caveat:

    I have always been opposed to protection-cracking and piracy. However, we now need to learn the skills of 1980 crackers in order to bypass and remove copy protection. This is the only way that many 1980s-based software packages (including games and compilers) will be able to run on these 30-year-old museum pieces.

    No Form Of Magnetic Recording Will Last Forever!

    p.s. I don't own any of these cracker cards or software. However, I've seen them all on eBay at one time or another. If you buy a card without the required software, you might be able to use these binaries: <<<--- free Apple-2 software and manuals (still available as of 2021-08-15; ftp is no longer supported on modern browsers like Chrome, Firefox or Edge so you may need to first acquire an FTP client ("I think" you can still acquire a free FTP third-party plugin for Firefox)

  • Apple-2 Software Cracking

Miscellaneous Links


  • Understanding the FFT Understanding the FFT (1995/2000) Anders E. Zonst
    • Subtitled "A Tutorial on the Algorithm & Software for Laymen, Students, Technicians & Working Engineers", weighs in at 180 pages. I wish I would have owned a copy of this book ten years earlier because I would have saved considerable time and money.
    • four chapters on DFT (Discreet Fourier Transform)
    • six chapters on FFT (Fast Fourier Transform)
    • ten appendices
    • PC-BASIC demo programs are sprinkled throughout
      • modern hackers might wish to rewrite these BASIC programs in Python which allows for greater mathematical precision and range but without language implementation formalisms (think of Python as BASIC "take two")
    • see next book for demonstration software which you can copy/paste
  • Understanding FFT Applications Understanding FFT Applications (1997/2004) Anders E. Zonst
    • This first edition of this book (1997) is subtitled "A Tutorial for Laymen, Students, Technicians, & Working Engineers", weighs in at 415 pages.
    • This second edition of this book (2004) is subtitled "A Tutorial for Students, Technicians, & Working Engineers", weighs in at 278 pages, and comes with a CD-ROM
    • Both books contain example programs written in BASIC so that Fourier concepts can be more easily demonstrated.
    • Citrus Press (Titusville, Florida) has granted me permission to redistribute their copyrighted BASIC source code.
      • floppy disk #1 (362k): for Understanding the FFT (first edition)
      • floppy disk #2 (387k): for Understanding FFT Applications (first edition)
      • CD-ROM folder #1 (928k): for Understanding the FFT (second edition)
      • CD-ROM folder #2 (1.2m): for Understanding FFT Applications (second edition)
    • Click here to locate a free Vanilla (non GUI) BASIC interpreter for your FFT experiments.
  • is the home of "The Scientist and Engineer's Guide to Digital Signal Processing"
    • 40 example programs written in BASIC so that Fourier concepts can be more easily understood
    • very thorough; starts with signals, filtering, sampling, then continues through DSP algorithms, DSP hardware, and DSP applications
    • purchase the printed book or download a free PDF copy (but you should buy the book; your printer will thank you for not abusing it)
  • is a defacto starting off point for MPEG info (according to IEEE Spectrum) with lots of good links to other locations.
  • DVD FAQ @ dvd demystified
  • I am always bewildered by the intentional confusion introduced by retail marketing of electronics equipment (including information from the Consumer Electronics Association).
    This is nothing new in retail electronics. Anyone who remembers the transition of home entertainment audio gear from "vacuum tubes" to "solid state" in the 1970s would be familiar with the terms: "RMS Power" (the only true metric), "Peak Power", "Peak-to-Peak Power", "Music Power" (which I recall was the maximum output power measured just before the electronics caught on fire). How many times did a fast-talking stereo salesman tell us about "Total Harmonic Distortion" with no real understanding of the underlying numbers? I never met a single one who could properly define "dB". 
    Currently, everyone is buzzing about 4k TV when actually referencing UHD TV (Ultra High Definition). So here are a few facts:
    • All modern digital television displays are based upon display monitors first developed for the computer and gaming industries
      • the first mass produced solid-matter digital display was created for the Sony PlayStation 1 which was released in November 1995
      • since solid-matter displays began as computer technology it is best to think of them in computer terms
        • 2k means 2048 (2^11 bits) in the world of binary computers but can also mean 2,000 colloquially as in $2k
        • 4k means 4096 (2^12 bits) in the world of binary computers but can also mean 4,000 colloquially as in $4k
        • 8k means 8192 (2^13 bits) in the world of binary computers but can also mean 8,000 colloquially as in $8k
        • 16 bit computer memories are usually references as 64k memory by the computer industry even though the actual number of bits is 65536 (2^16) but you would occasionally hear a fast-talking salesman say 65k. Keep this in mind when you hear people talk about 2k television when there are only 1,920 dots across each line. Someone has rounded up.
    • HD (High Definition) is defined as:
      • 1280 x 720 (aspect ratio: 16x9) but most consumers have never heard of 1280 x 720 even though most el-cheapo flat-screen TVs default to this resolution. Most consumers will have heard of it by its other name: 720p.
      • It is also defined as 1920 x 1080 (aspect ratio: 16x9) when operated as in 1080i (interlaced) mode where only 540 lines are available per each frame. Non-technical people find this second wrinkle (visual field vs. visual frame) so it is often broken down into raw pixel-rates:
        • 1280 x 720 =    921,600 pixels per second
        • 1920 x 540 = 1,036,800 pixels per second (12% more detail when content doesn't change too quickly)
        • comment: "raw pixel rate" is a misnomer because the data is always sent in compressed format: MPEG-2, MPEG/AVC, etc.
    • FHD (Full High Definition) refers to a maximum screen resolution of 1920 x 1080 (aspect ratio: 16x9)
      • The smaller number, 1080, represents the number of lines and was previously marketed as 1080p
      • The larger number, 1920, represents the number of pixels per line. Notice that 1920 doesn't meet either definition of 2k although retailers (including the Consumer Electronics Association) refer to it as 2k
      • In 2015, most cable providers do not transmit a signal with this resolution so TV manufacturers provide built-in "signal upscalers". We can also supply our own signals with "Blu-ray players" and Game Consoles (PS3, PS4, XBOX-360, and XBOX-One)
    • UHD (Ultra High Definition) doubles FHD to get 3840 x 2160 which many call 4k.
      • If 1920 isn't 2K then 3840 certainly isn't 4k as this article confirms: 4k resolution.
      • In 2015, most cable providers are unable to transmit a signal with this resolution so TV manufacturers provide built-in "signal upscalers". We can also provide our own signals with "4k-compatible Blu-ray players" (here, the Blu-ray player can upscale so-called 2k content or play so-called 4k content) and high-end PC-based gaming rigs with video-cards usually costing more than game consoles.
      • The newest game console iterations in 2016 (PS4-Pro and XBOX-One S) can render games in native 4k
    • UHD+ (Ultra High Definition Plus) increases resolution to 5120 x 2880 which Apple correctly markets 5k ( Retina 5k )
    • FUHD (Full Ultra High Definition) doubles UHD to get 7680 x 4320 which some retailers are already calling 8k (which it is not). Many people scoff at the idea of 8k technology but here are some facts:
      • The Las Vegas consumer electronics show is usually held before Super Bowl for obvious marketing reasons. Some companies previewed their so-called 8k sets this year (Jan-2015) while dropping the prices of their so-called 4k sets which are now flying off the shelves as Super Bowl approaches (Feb-1, 2015).
      • Full UHD is necessary to fully reproduce IMAX-quality content which is not yet available to the retail consumer
      • Some vendors are already referring to 8k as QUHD (Quad Ultra High Definition) because it is four times larger than FHD
    • QHD (Quad Ultra High Definition) quadruples UHD to get 15360 x 8640 and I am assuming retailers will call it 16k (which it is not)
    • Click this link to see a more complete list of graphics display technologies which include true 4k and true 8k formats

    Question: Why Should Anyone Care?
    • because true 2k (2048 x 1080) and true 4k (4096 x 2160) technologies were developed for commercial use as part of Digital Cinema Initiatives (which is what you are viewing in a traditional movie theatre. Many patrons are unaware of the fact that celluloid film projectors have been gone for a long while)
    • These aspect ratios are published 2.39:1 and 1.85:1
    • Different screen geometries were chosen for commercial use in order to combat piracy. Commercial interests did not want stolen commercial content directly playable on retail equipment (since 16x9 = 1.78:1 then these other formats could not be properly displayed without some preprocessing)

    New Cable Confusion on the Horizon?
    • Just as most consumers were getting comfortable saying/buying HDMI the move to UHD and above requires a shift to DisplayPort (thankfully many retailers already sell HDMI-to-DisplayPort conversion dongles)
    • Your new laptop may already be configured with a mini-DisplayPort ports but you just didn't know it (I noticed one on my new Lenovo Laptop back in 2011)

Electricity - Electronics (back to basics)


I first learned the principles of electricity-electronics in the 1960's but ever since y2k I have come to the conclusion that was only a working-knowledge, not anything grounded in physics. In fact, many of the electrical principles described by physicists seem (to me) to be lacking. So I have been looking for better explanations.

Odds 'n Ends

A few noteworthy articles for budding STEM students

A Few Thoughts


Physicists were divided for more than a century as to whether light was a particle or a wave. Then Einstein said it was a particle (photon) and used it in his explanation for the photoelectric effect. Scientists and engineers say that all radio waves are are a form of EM (Electro-Magnetic) radiation, and this includes visible light. So my question was: at what point does an oscillating electrical signal in a transmitting antenna emit photons?

Provisional  Answer: Photons per se are not real. We use the label "photon" to describe EM waves where the wave-length is less-than the size of an atom.


When I first learned about electricity, it was described like billiard balls moving from atom to atom. This must be true on some level because in nerves, an electro-chemical wave moves from one end to the other. Something similar happens in copper wires connected to a chemical battery (no chemical energy, no current). But something different must be happening with a DC-generator (magneto) or an AC-generator (alternator).

{ or perhaps we need a better general explanation }

Provisional  Answer: Each electron is surrounded by an electric field. Valence electrons are affected by the EM wave caused by moving electrical energy. In this case, the wire behaves like a wave-guide where all the individual electric fields move simultaneously together. This wave moves close to one-tenth the speed of light which drag the electrons behind it. These electrons will resist movement which generates heat.

Click Dilbert Zone for the latest "reality check" from our hero

Back to Home
Neil Rieck
Waterloo, Ontario, Canada.