A Virtual Machine, In Google Sheets

In the last couple of decades we have become used to the browser taking over so many of the desktop functions for which we used to rely on stand-alone software. Email clients, calendars, office suites and much more can now be found in the cloud, courtesy of the usual technology companies.

Sometimes these cloud-based alternatives to desktop software can be a little sketchy, but often they have features that might surprise you as they edge towards parity with the packages they seek to replace. Google Docs, for instance has a full-featured built-in scripting language called Apps Script, that gives your full control of a document or spreadsheet with the help of a bit of Javascript. When [Brian Steffens] saw this it piqued his interest, so of course he had to in his words “do something weird with it”. The result of his efforts is the Google Sheets Virtual Machine, a virtual computer in software using spreadsheet cells as memory, stack, and registers.

With only a 100-cell memory and dependent entirely upon the processing power available to the host browser, this machine is not likely to set the world on fire. He gives full instruction set details, there are a couple of demo programs, a Fibronacci sequence generator and a factorial generator, but its general lack of power is not really the point. Instead its value lies in an elegant demonstration for its own sake that a virtual computer can be built in the unlikeliest of places, and for those interested enough to peer into its code, some idea how that might be achieved.

[via Hacker News]

Classic IBM TR-2 Flip-Flop Reproduction

As useful as computers are, most of them have all the design charm of a rubber doorstop. Oh, for the heady early days of computing, when vacuum tubes ruled, hardware was assembled by hand, and engineers always wore a tie.

Looking to recreate an elegant bit of computing hardware from that more civilized age, [updatebjarni] built a reproduction of a 1948 IBM TR-2 flip-flop module — 1,250 of which once formed the memory of the IBM Model 604 Calculating Punch. Admittedly more of a high-speed adding machine than a computer, the 604 is still an important piece of computing history, and [updatebjarni]’s scrap-bin reproduction of the field-replaceable module served as part of a computer history exhibit.

With a single 6J6 double triode tube nestled inside a bent aluminum frame, the goal was to reproduce the appearance of the original TR-2 module, and so the passive components wired up point-to-point style below the tube socket were chosen for their vintage look. That’s not to say the flip-flop won’t function. Although [updatebjarni] hasn’t tested it, he’s built other functional flip-flops from vintage components before, so this one should work too. Only 1,249 left to build and he’ll have enough for a working 604.

If you like this kind of build, you should probably check out some of our Vintage Computer Festival coverage. VCF East in April was a huge success, and VCF West is coming up in August in Mountain View. Hackaday will be well represented there, so stop by.

[via r/geekporn]

Wooden Laptop Enclosure: New Life For Old Thinkpad

Technology is designed to serve us and make our lives better. When a device gets outdated, it is either disposed of or is buried in a pile of junk never to be seen again. However, some individuals tend to develop a certain respect for their mechanical servants and make an effort to preserve them long after they have become redundant.

My relationship with my first laptop is a shining example of how to hold onto beloved hardware way too long. I converted that laptop into a desktop with a number of serious modifications which helped me learn about woodworking along the way. Maybe it’s more pragmatic to just buy new equipment. But you spend so much time each day using your devices. It is incredibly satisfying to have a personal connection that comes from pouring your own craftsmanship into them.

Why the Effort?

IBM Thinkpad R60 via Notebook Review

The laptop in question is an IBM R60 which I lugged around during the first three years after I graduated. It was my companion during some tough times and naturally, I developed a certain attachment to it. With time its peripherals failed including the keyboard which housed the power switch and it was decided that the cost of repair would outweigh its usefulness.

Then came the faithful day when I was inspired to make something with the scrap wood that had accumulated in my workshop. This would be my second woodworking project ever and I did not have the professional heavy machinery advertised in most YouTube videos. Yet I had two targets in mind with this project.

  1. Make the R60 useful again.
  2. Learn about woodworking for creating enclosures for future projects.

Armed with mostly hand tools, a drill and a grinder that was fitted with a saw blade, I started with the IBM R60 to all-in-one PC mod. Following is a log of things I did and those I regret not doing a.k.a. lessons learned. Read on.

Continue reading “Wooden Laptop Enclosure: New Life For Old Thinkpad”

Homemade Computer From 1970s Chips

Sometimes it starts with a 555 timer and an op-amp. Other times with a small microcontroller. But the timing’s not so great and needs a dedicated timing crystal circuit. And maybe some more memory, and maybe the ATtiny should be swapped out for some 74LS-series chips. And now of course it needs video output too. Before you know it, you’re staring at a 40-chip computer that hearkens back to a simpler, yet somehow more complex, time of computing. At least that’s where [Marcel] is with his breadboard computer based on 1970s-era chips.

For what it does, this homebrew computer is relatively simple and straightforward. It gets 8 bits of processing power from 34 TTL chips. Another 6 round out the other features needed for the computer to operate. It is capable of rendering 64 colors in software and has more than enough memory for a computer of this sort. So far the only recurring problem [Marcel] has had has been with breadboard fatigue, as some of the chips keep popping out of the sockets.

This is a great project for anyone interested in homebrew or 8-bit computing, partially because of some of the self-imposed limitations that [Marcel] imposed on himself, like “only chips from the 70s”. It’s an impressive build on its own and looks to get much better since future plans call for a dedicated PCB to solve the issue with the worn-out breadboards. If you’re already invested in a project like this, don’t forget that the rabbit hole can go a little deeper: you can build a computer out of discrete transistors as well.

The Oldest Known Surviving PC Operating System

You’ll all be familiar with the PC, the ubiquitous x86-powered workhorse of desktop and portable computing. All modern PCs are descendants of the original from IBM, the model 5150 which made its debut in August 1981. This 8088-CPU-driven machine was expensive and arguably not as accomplished as its competitors, yet became an instant commercial success.

The genesis of its principal operating system is famous in providing the foundation of Microsoft’s huge success. They had bought Seattle Computer Products’ 86-DOS, which they then fashioned into the first release version of IBM’s PC-DOS. And for those interested in these early PC operating systems there is a new insight to be found, in the form of a pre-release version of PC-DOS 1.0 that has found its way into the hands of OS/2 Museum.

Sadly they don’t show us the diskette itself, but we are told it is the single-sided 160K 5.25″ variety that would have been the standard on these early PCs. We say “the standard” rather than “standard” because a floppy drive was an optional extra on a 5150, the most basic model would have used cassette tape as a storage medium.

The disk is bootable, and indeed we can all have a play with its contents due to the magic of emulation. The dates on the files reveal a date of June 1981, so this is definitely a pre-release version and several months older than the previous oldest known PC-DOS version. They detail an array of differences between this disk and the DOS we might recognise, perhaps the most surprising of which is that even at this late stage it lacks support for .EXE executables.

You will probably never choose to run this DOS version on your PC, but it is an extremely interesting and important missing link between surviving 86-DOS and PC-DOS versions. It also has the interesting feature of being the oldest so-far-found operating system created specifically for the PC.

If you are interested in early PC hardware, take a look at this project using an AVR processor to emulate a PC’s 8088.

Header image: (CC BY-SA 3.0 DE).

Procedurally Generating Random Medieval Cities

With procedural content generation, you build data algorithmically rather than manually — think Minecraft worlds, replete with all the terrains and mobs you’d expect, but distributed differently for every seed. A lot of games use algorithms similarly to generate appropriate treasure and monsters based on the level of the character.

Game developer [Oleg Dolya] built a random city generator that creates excellently tangled maps. You select what size you want, and the application does the rest, filling in each ward with random buildings. The software also determines the purpose of each ward, so the slum doesn’t have a bunch of huge mansions, but instead sports a tangle of tiny huts. [Oleg] shows a little of how the application works, using polygons created with the guard towers serving as vertices. You can learn more about the project on Reddit.

As new as this project is, it’s limited. All the maps feature a walled community, each has one castle within a bailey, and none of the cities includes a river or ocean port. [Oleg] designed it to make cool-looking maps, not necessarily accurate or historically realistic ones. That said, he’s already tweaked the code to reduce the number of triangular buildings. Next up, he wants to generate shanty towns outside the city walls.

Hackaday Prize Entry: A PC-XT Clone Powered By AVR

There is a high probability that the device on which you are reading this comes somehow loosely under the broad definition of a PC. The familiar x86 architecture with peripheral standards has trounced all its competitors over the years, to the extent that it is only in the mobile and tablet space of personal computing that it has not become dominant.

The modern PC with its multi-core processor and 64-bit instruction set is a world away from its 16-bit ancestor from the early 1980s. Those early PCs were computers in the manner of the day, in which there were relatively few peripherals, and the microprocessor bus was exposed almost directly rather than through the abstractions and gatekeepers we’d expect to see today. The 8088 processor with an 8-bit external bus though is the primordial PC processor, and within reason you will find software written for DOS on those earliest IBM machines will often still run on your multiprocessor behemoth over a DOS-like layer on your present-day operating system. This 35-year-plus chain of mostly unbroken compatibility is both a remarkable feat of engineering and a millstone round the necks of modern PC hardware and OS developers.

Those early PCs have captured the attention of [esot.eric], who has come up with the interesting project of interfacing an AVR microcontroller to the 8088 system bus of one of those early PCs. Thus all those PC peripherals could be made to run under the control of something a little more up-to-date. When you consider that the 8088 ran at a modest 300KIPS and that the AVR is capable of running at a by comparison blisteringly fast 22MIPS, the idea was that it should be able to emulate an 8088 at the same speed as an original, if not faster. His progress makes for a long and fascinating read, so far he has accessed the PC’s 640KB of RAM reliably, talked to an ISA-bus parallel port, and made a CGA card produce colours and characters. Interestingly the AVR has the potential for speed enhancements not possible with an 8088, for example it can use its own internal UART with many fewer instructions than it would use to access the PC UART, and its internal Flash memory can contain the PC BIOS and read it a huge amount faster than a real BIOS ROM could be on real PC hardware.

In case you were wondering what use an 8088 PC could be put to, take a look at this impressive demo. Don’t have one yourself? Build one.