Tag Archives: PS/2 keyboard library

Atmel-based BASIC computer

 makes us nostalgic

BASIC, or Beginner’s All-purpose Symbolic Instruction Code, is a series of general-purpose, high-level programming languages that emphasizes ease of use. According to Wikipedia, John G. Kemeny and Thomas E. Kurtz designed the original BASIC language at Dartmouth College in New Hampshire way back in 1964.

Multiple dialects of BASIC were written over the years, with the TinyBASIC variant capable of fitting into as little as 2 or 3 KB of memory. This small size made it quite useful in the early days of microcomputers (the mid-1970s), when typical memory size weighed in at 4–8 KB.

Recently, a Maker named Dan decided to design a simple, tiny 8-bit computer to run the succinct TinyBASIC.

As HackADay’s Brian Benchoff reports, the computer is built around the Arduino Uno (ATmega328) and a custom-made AVR-based shield, using TinyBASIC, the TVout library and the PS/2 keyboard library.

“After piecing together a little bit of code, the Arduino IDE alerted Dan to the fact the TVout and PS/2 libraries were incompatible with each other,” Benchoff explained. 

”This inspired Dan to use the ATmega328 as a coprocessor running the TVout library, and using the capacious ATmega1284P as the home of TinyBASIC and the PS/2 library.”

Subsequently, Dan used Fritzing to design a circuit using minimal components, with a custom PCB milled out of copper board.

“After the board was tinned, [Dan] had a beautiful minimalist retro computer with nearly 14kB of RAM free and an RCA display,” added Benchoff. 

The final setup comprises the shield, an Arduino UNO, PS/2 keyboard, RCA capable display (such as an LCD TV), RCA cable and a power source (such as a wall mounted PSU).

Future iterations of the Atmel-powered TinyBASIC computer will likely be based around the stalwart Arduino Mega (ATmega1280), facilitating a TV resolution of 720×480. Additional features could include an SD card slot, LEDs, pots and perhaps even headers for I2C and SPI.

Interested in learning more?

You can check out the project’s official Instructables page here.