The Strangest Gameboy Emulator We’ve Seen Yet

In the secret Hackaday bunker, we have some emacs users, some vi users, and some people who don’t really care. However, even the staunchest of our emacs supporters had to do a double take at [Vreeze’s] project that creates a GameBoy emulator using the venerable text editor. You can see [Alexei Nunez’s] reaction to the emulator in the video below.

The Eboy uses unicode characters to output the graphics. You can use emacs commands to load ROM images and use your keyboard to control the game.

Continue reading “The Strangest Gameboy Emulator We’ve Seen Yet”

Program This Badge In Lisp

This hardware badge is a computer programmed with Lisp. You can write your own programs right on the badge using the built-in keyboard, as long as you know Lisp.

If there’s one thing we really like to see, it’s people advancing their own projects based on inspiration from others. The Lisp Badge by [David Johnson-Davies] is a perfect example. With an interface inspired by [Voja Antonic’s] hardware design for the 2018 Hackaday Belgrade Conference Badge, this version is an upgrade of an earlier single-board Lisp machine, now sporting an integrated keyboard.

Unlike the Belgrade badge, which is programmed in BASIC, this new badge is programmed in uLisp, a subset of common lisp designed for microcontrollers. Let’s face it, BASIC is retro, but Lisp is even more so, only pre-dated by FORTRAN as the oldest high-level language. So, if you’re into retro-style programming on small devices (physically small, that is), you should consider building one of these.

A 16 MHz ATmega 1284P serves as the badge’s brain, allowing storage for 2,816 Lisp cells, while the 256×64 pixel OLED display shows 8 lines of 42 characters in 16 gray levels. A full complement of I/O connections includes four analog inputs, two analog outputs, I2C, SPI, serial, and a handful of GPIOs for interfacing with just about anything. Power comes from a LiPO battery, which at a nominal voltage of 3.7 V doesn’t quite meet the datasheet requirements for running the processor at 16 MHz, although it seems to work fine in practice. Really cautious builders could opt for a 12 MHz crystal transplant to avoid any possibility of problems.

The keyboard layout is optimized for uLisp programming: unnecessary keys have been removed and the all-important parenthesis are afforded their own dedicated keys on the bottom row. This is presumably for convenience of use, but we suspect this will also make it easier to replace the parenthesis key switches when they inevitably wear out from overuse [obligatory Lisp/parenthesis joke].

As far as entering uLisp programs, you can simply use the keyboard. The built-in editor buffers a full screen of text, and includes parenthesis matching that highlights each pair as you type. We’re guessing that we won’t see Emacs implemented in the near future, so this bracket management is a great feature for a badge-based editor. If you find the keyboard difficult to type on, you can also enter programs over the serial port.

The other thing we really like to see is open-source projects. [David] doesn’t let us down on this point, either. The Eagle design files for the PCB as well as the source code for the badge are available on GitHub. The PCB is also shared on OSH Park, and there are detailed instructions for installing the bootloader and uploading the code.

If programmable badges is your thing, also check out the 2018 Hackaday Supercon Badge, the successor the Belgrade design.

Thanks to [Sven] for the tip!

That’s A Lisp Machine In Your Pocket

Computer languages have always advanced faster than computer hardware. Case in point: we’re just now getting CPU instructions for JavaScript floating point numbers. The 1970s and 80s wasn’t the garbage fire of JavaScript instructions in silicon, instead they were all about garbage collection. Lisp machines were CPUs designed to run Lisp efficiently. They were great, until the companies responsible realized you had to sell a product to stay in business. Combine an interesting architecture with rarity and historical interest, and you have a centerpiece of any retrocomputing enthusiasts collection. Yes, we all want a Lisp machine.

Now there’s an interesting project on CrowdSupply that will make that possible. It’s the MakerLisp Machine, a credit card-sized computer that runs bare-metal Lisp.

We first saw the MakerLisp Machine in its raw prototype form at VCF West last August, and it was in a very, very raw state. That was just a prototype, though, but the MakerLisp business card-sized computer still features the Zilog eZ80 running at 50MHz. The basic board includes a USB port for a serial connection and a microSD card slot for storage. It boots into a Lisp environment, and you don’t even have to use a NuBus card. We’re living in the future here.

Because this is a credit card-sized computer, there is of course an expansion board that breaks everything out, including the GPIOs. Being a Z80, you’re also going to get CP/M support, but the real story here is Lisp, in your pocket.

VCF West: Homebrew Lisp Machines And Injection Molded PDPs

Someone walks into the Vintage Computer Festival and asks, ‘what’s new?’. It’s a hilarious joke, but there is some truth to it. At this year’s Vintage Computer Festival West, the exhibit hall wasn’t just filled to the brim with ancient computers from the Before Time. There was new hardware. There was hardware that would give your Apple IIgs even more memory. There was new hardware that perfectly emulated 40-year-old functionality. There’s always something new at the Vintage Computer Festival.

Some of the more interesting projects are just coming off the assembly line. If you want a modern-day Lisp machine, that one won’t be assembled until next week, although there was a working prototype at VCF. If you want the greatest recreation of the most beautiful hardware, VCF has your back. Check out these amazing builds below.

Continue reading “VCF West: Homebrew Lisp Machines And Injection Molded PDPs”

Lisp In 200 Lines

Contrary to popular belief, LISP does not stand for “lots of irritating spurious parenthesis.” However, it is true that people tend to love or hate this venerable programming language. Whichever side of the fence you’re on, many of the ideas it launched decades ago have become staples of other newer languages. How much C code do you think it takes to make a functional LISP system? If you guessed more than 200, you’ll want to go look at this GitHub repository.

Actually, the code isn’t as good as the (sort of) literate programming white paper on the program, but it gives a good overview of how 200 lines of C code can produce a working LISP-like language good enough to create its own eval loop. It does lack memory handling and error detection, so if you really wanted to use it, you’d probably need to spruce it up a bit.

Continue reading “Lisp In 200 Lines”

Hack Your Own Lisp Language Using… Well… Anything

Lisp is one of those interesting computer languages that you either love or hate. But it has certainly stood the test of time. Of all the ancient languages that are still in practical use, only FORTRAN is older, and only by one year. If you ever wanted to learn Lisp, [Kanaka] has an interesting approach: Study how to build your own Lisp in your favorite language.

What if your favorite language is something obscure? [Kanaka’s] GitHub page has no fewer than 64 different implementations of Mal (Make a Lisp), each in a different language. Unsurprisingly, C and Python are on the list. However, so is Forth and Go and Awk. Not strange enough for you? How about Make? Yes, Make, like you use to build programs. Bash, Postscript, and even VHDL have entries, although–surprisingly–no Verilog; we don’t know why.

Each implementation of Mal is separated into eleven incremental, self-contained, and testable steps that demonstrate core concepts of Lisp. The last step can actually run a copy of itself–typical for a mind-bending language like Lisp. There is a guide to help you navigate through the process in the language of your choice. The suggestion is to not look at the code in the repository until after you’ve written it yourself. You can see [Kanaka] (also known as [Joel Martin]) giving a recent talk about the Mal process in the videos below.

Continue reading “Hack Your Own Lisp Language Using… Well… Anything”

MicroLisp With Matching Parens

Lisp is a supremely elegant programming language, but you won’t find it around much today. That’s a shame; in the 80s and 90s, all the cool kids were using Lisp machines, computers dedicated to the creation and interpretation of Lisp. While the AI renaissance of the 80s is dead, replaced with the machine learning fad of today, Lisp machines have gotten much smaller. Now, they’ll fit in your pocket, and they have parenthesis matching, to boot.

If this build looks familiar, you’re not wrong. A while back, we saw a similar pocket Lisp computer based around the ATMega328 microcontroller with 32k of Flash and 2k of RAM. That’s not a lot by any measure, and a much more suitable processor for an AVR-based pocket Lisp machine would be the big boys of the ATMega family.

The new and improved version of the Tiny Lisp Computer is built around the ATMega1284. If it’s capable enough to run a 3D printer, it should run Lisp very well. With more program space and more RAM come more features including matching parens when entering code, a serial monitor interface, and a program editor – basically a text editor on the chip.

Apart from the larger chip, the circuit remains relatively unchanged. The display is still an OLED that can be had for a few dollars from the usual online retailers, and the other bits of circuitry are still just a handful of resistors, caps, and wire. An off-the-shelf FTDI module (or whatever serial chip you desire) can be added to connect to a serial terminal, and support for a PS/2 keyboard rounds out the board.