It can be really hard to warm up to coding in Assembly. But this tutorial looks to make it understandable and (almost) easy. It focuses on programming a game for the ZX Spectrum. But you won’t need the hardware on hand as you can just use the ZX Spin emulator as you work your way through the code.
Ostensibly this is a 30-minute tutorial but that’s a gross underestimate. We finished a cursory read of the tutorial and the building blocks are certainly clear and easy to understand. But we like to make sure we understand every line of code and plan to spread that out over the coming weekend.
The first chapter eases us into machine code by combining it with a bit of BASIC. You’ll see how to manipulate the ZX Spectrum memory and then pluck that value back out into the BASIC program. But once chapter 2 hits it’s pretty much all assembly from there on out. The nice thing is that as you go along you learn how the hardware works and there are quite a few references to pages in the manual so you can do some extra learning along the way.
For those of us old enough to remember the beginnings of the microcomputer revolution, we can look back fondly on ‘the programming environment is the OS,’ a ton of BASIC programs, and typing in small programs found in the backs of computer magazines. It’s a whole new world now with cell phones and Linux computers the size of credit cards, but some companies still remember the beginning.
Coridium is releasing an ARM microcontroller in the vein of old fashioned microcomputers updated for the 21st century. Based on the LPC1114 Cortex M0 ARM microcontroller stuffed into a DIP28 package, the Coridium ARM BASIC provides a programming environment in the firmware.
The ARM BASIC is a complete system on a chip, with Rx and Tx connections to connect to a serial terminal. To get this BASIC microcontroller up and running, all you’ll have to do is connect 3.3 Volts of power. Then, it’s a simple matter of plugging in an FTDI cable and pretending it’s 1989.
Coridium is planning on giving away a few hundred of these ARM BASIC chips to makers in a few days. I’ll put up the announcement of free microcontrollers up in a few days, but [Bruce] at Coridium is sending me one very shortly. Hopefully I’ll be able to do a demo before the stock of free chips is completely depleted.
[Balline] really wanted to play with a hexapod but found the cost to be prohibitive. Being a mechanical engineer, he was able to fairly quickly come up with a stable 3 servo design that would allow him to experiment with the platform. He chose to use wood as the construction material to help reduce costs even more. As you can see in the video after the break, his design gets around fairly well. His cost for the whole thing, including the 3 servos, the basic stamp hobby board, the recycled batteries, and the frame, was under $100.
This is a great system to start with, though he unfairly compares the cost to the dancing ones he had seen in the past. C’mon, your bot ain’t no [Lou Vega]. It is still pretty cool though.
Continue reading “Cheap wooden hexapod frame greatly reduces cost”
klBASIC is a BASIC interpreter written in C for AVR microcontrollers. [Karl Lunt] developed the project based on an assembly language BASIC interpreter for 68HC11 chips written by [Gordon Doughman]. The transition from assembly to C bulked up the code, so you’ll need a beefy AVR chip in order to store all of it.
The idea is that one AVR chip can run BASIC with just a serial monitor. But like this Arduino BASIC interpreter build, it would be a snap to run this with a keyboard and small LCD screen. We see binaries available for several different AVR devices including ATmega128, ATmega1284, and Xmega128. They range from 1.5k to 16k of program memory. We didn’t find a link to the source code (just these precompiled files) so we inquired with [Karl] to see if that is available. He’s reluctant to release the code because it’s “pretty much a mess” and doesn’t live up to his normal standards. If he codes for a living we can see how that may be embarrassing. If you’d like to lend a hand cleaning up the code, let him know by leaving a comment here and maybe he’ll release it for that purpose.
We find this interesting, but it’s tough to get excited about building one of our own. If this has inspired you, we’d love to hear some of your plans in the comments after the break. Perhaps we’d be prodded into another programming adventure based on your enthusiasm.
This Arduino BASIC interpreter will make a really fun one-day project if you’ve already got the parts on hand. [Usmar A. Padow] put together an Arduino Uno, SD card, four line character LCD, and PS/2 keyboard. but he’s also included alternative options to go without an LCD screen by using a computer terminal, or without the SD card by using only the Uno’s RAM. As you can see in his demo after the break, this simple input/output is all you need to experiment with some ancient computing.
It’s hard for us to watch this and not think back to an orange or green monochrome display. Just like decades past, this implementation of BASIC has you start each line of code with a line number, and doesn’t allow for character editing once the line has been input. The example programs that [Usmar] shows off are simple to understand but cover enough to get you started if you’ve never worked with BASIC before.
Last August we saw another hack which ported Tiny BASIC to the Arduino. You may want to take a gander at that one as well.
Continue reading “Arduino BASIC interpreter using LCD, keyboard, and SD”
We’d guess that you don’t have a TRS-80 Model 100 computer sitting around. But we’ve heard that the decades-old hardware is built like a tank so if you search around you can probably get your hands on a working unit. The Model 100 boasted some nice features, one of which was a 300 baud modem allowing you to transfer data onto the device. [MS3FGX] wanted to give it a try but had to do some work to get the Model 100 to communicate with modern hardware.
This could have been a much more involved process, but since the Model 100’s modem uses common communications standards it’s really just a matter of hooking it up and choosing the right COM port settings on a computer. In this example a Linux box is used with the program Minicom. It is configured to communicate at 300 baud 8N1 (8 data bits, no parity bit, and one stop bit).
With software in place you’ll need to make your own cable. [MS3FGX] does this using a DB-25 connector for the Model 100 side, and a DB-9 connector for the serial port on the Linux box. He’s got a pin-out for the cable on the second page of his guide. It sounds like it should be no problem to use a USB-serial converter if you don’t have a serial port.
Once everything is in place you’ll be able to transfer BASIC programs from your computer to the Model 100.
Any self-identified geek that spent some time in the 80s will tell you how they used to type out programs into their ‘microcomputer’ with BASIC. It was a simpler time when a computer’s raison d’etre was simply being a BASIC interpreter. These days are long past us now; you can’t simply turn on a computer and have it load a BASIC prompt anymore. This is where [Geoff]’s Maximite single board computer comes in. It’s a tiny little box that whose only purpose is to play around with BASIC.
[Geoff]’s used a PIC32MX microcontroller with 128k of RAM for the CPU of his Maximite. Unlike an Apple ][ or TRS-80, the Maximite version of BASIC can do floating point arithmetic out of the box. To connect to the outside world, the Maximite has VGA or composite out to display the BASIC interepreter. A PS/2 keyboard port provides the input, and a USB port and SD card can be used to load and save programs from a PC.
The Maximite includes a 20-pin breakout for whatever IO you can imagine. This is duplicated on [Geoff]’s mini Maximite that is designed to be the retro throwback of an Arduino. We though those were called BASIC stamps, but if it gets kids programming, we’ll let it slide.