One Instruction To Rule Them All: C Compiler Emits Only MOV

How many instructions do you need to successfully compile C code? Let’s see, you’d need some jump instructions, some arithmetic functions, and — of course — move instructions, right? Turns out you only need the move instruction, which — on x86, at least — is Turing complete.

While the effort is a bit tongue-in-cheek, we have to admit that if you were trying to create your own CPU, this would make for a simple architecture and might have power or complexity advantages, so maybe someone will find a practical use for it after all. If you wanted a C compiler for a simple CPU, this wouldn’t require much to emulate at a byte-code level, either.

Continue reading “One Instruction To Rule Them All: C Compiler Emits Only MOV” →

Reading Floppies With An Oscilloscope

There’s a lot of data on magnetic media that will soon be lost forever, as floppies weren’t really made to sit in attics and basements for decades and still work. [Chris Evans] and [Phil Pemberton] needed to read some disks that reportedly contained source code for several BBC Micro games, including Repton 3. They turned to Greaseweazle, an interface board that can dump just about any kind of floppy disk if it is attached to the right drive. The problem is that Greaseweazle couldn’t read the disks due to CRC errors. Time to break out the oscilloscope and read the disk manually, which is what they did.

Greaseweazle provides a nice display of read sectors and shows timing coming from the floppy read head. The disk in question looked good with reasonably clean timing clocks except in the area of one sector. At that point, the clocks degenerated into noise. Looking on the disk, it was easy to see why. The actual media had a small dent in it.

Continue reading “Reading Floppies With An Oscilloscope” →

Project Starline Realizes Asimov’s 3D Vision

Issac Asimov wrote Caves of Steel in 1953. In it, he mentions something called trimensional personification. In an age before WebEx and Zoom, imagining that people would have remote meetings replete with 3D holograms was pretty far-sighted. We don’t know if any Google engineers read the book, but they are trying to create a very similar experience with project Starline.

The system is one of those that seems simple on the face of it, but we are sure the implementation isn’t easy. You sit facing something that looks like a window. The other person shows up in 3D as though they were on the other side of the window. Think prison visitation without the phone handset. The camera is mounted such that you look naturally at the other person through your virtual window.

Continue reading “Project Starline Realizes Asimov’s 3D Vision” →

Practical Sensors: The Hall Effect

Measuring a magnetic field can be very easy with some pretty low tech, or it can be very high tech. It just depends on what kind of measurement you need and how much effort you want to expend. The very simplest magnetic sensors are reed switches. These are basically relays with no coil. Instead of a coil, an external magnet gets close enough to make or break the contacts in the reed. You see these a lot in, for example, door alarm sensors.

Then again, there’s no real finesse to a reed. It changes state when it sees enough of a magnetic field and that’s about all. You could use a compass with some sort of detection on the needle to get some more information about the field, but not much more. That was, however, how early magnetometers worked. Today, you have lots of options, including the nearly ubiquitous Hall effect sensor.

You might use a Hall effect to measure the magnetic button on a keyboard key coming down when you press it or the open and closed state of a valve. A lot of Hall effects see service as current monitors. Since a coil generates a magnetic field proportional to the current through it, a magnetic sensor can estimate the current in a coil of wire without any physical contact. Hall effects can also watch a magnet go by in a linear motion system or a rotating system to get an idea of position or speed. For example, check out this brushless motor controller that uses three sensors to understand the motor’s position.

History

Edwin Hall identified the effect in 1879. The basic idea is simple: an electrical conductor carrying current will exhibit changes due to an external magnetic field nearby. These changes show up as voltage you measure across the conductor. Normally, the voltage across a conductor will be nearly zero, but with a magnetic field, you’ll get a non-zero reading in proportion to the magnetic field strength in a particular plane, as we’ll see shortly.

Hall effect sensors are just one type of modern magnetometer. There are many different kinds including those that use inductive pickup coils that may or may not rotate or a fluxgate, which is a special type of coil. Some use a scale or a spring to measure force against another magnet — sometimes microscopically. You can even detect a magnetic field using optical properties like the Kerr effect or Faraday rotation.

Continue reading “Practical Sensors: The Hall Effect” →

Inside The VIC-20

Commodore machines are well-loved around here, but usually when you think Commodore, you think about the Commodore 64, or maybe the PET or Amiga. But the Commodore 64 had an older sister, the VIC 20. This was the first computer to sell a million units and has a lot in common with its better-known successor. The machine was only made for a few years, and [Dubious Engineering] has been restoring one over a few videos. In the video below, he opens it up for a look inside, among other things.

If you want to get straight to the opening, you’ll need to fast forward about 5 and a half minutes. The keyboard pulls off and a nice old-fashioned set of cables made from individual wires connect to the skinny main board with all the smarts on it. No ribbon cables or flex PCBs!

Continue reading “Inside The VIC-20” →

FIR Filters For Xilinx

Digital filters are always an interesting topic, and they are especially attractive with FPGAs. [Pabolo] has been working with them in a series of blog posts. The latest covers an 8th order FIR filter in Verilog.  He covers some math, which you can find in many places, but he also shows how an implementation maps to DSP slices in a device. Then to reduce the number of slices, he illustrates folding which trades delay time for slice usage.

Folding takes a multi-stage parallel multiplication and breaks it into fewer multiplications done over a longer period of time. This reuses slices to reduce the number required for high-order filters.

Continue reading “FIR Filters For Xilinx” →

Do You Really Own It? Motorcycle Airbag Requires Additional Purchase To Inflate

If you ride a motorcycle, you may have noticed that the cost of airbag vests has dropped. In one case, something very different is going on here. As reported by Motherboard, you can pick up a KLIM Ai-1 for $400 but the airbag built into it will not function until unlocked with an additional purchase, and a big one at that. So do you really own the vest for $400?

Given the nature of the electronics and computer business lately, we spend a good bit of time thinking of what it means to own a piece of technology. Do you own your cable modem or cell phone if you aren’t allowed to open it up? Do you own a piece of software that wants to call home periodically and won’t let you stop it?  Sometimes it makes sense that you are paying for a service. But there have been times where, for example, a speaker company essentially bricks devices that could work fine on their own even though you — in theory — own the device.

Continue reading “Do You Really Own It? Motorcycle Airbag Requires Additional Purchase To Inflate” →