The demoscene is a hotbed of masterful assembly programming, particularly when it comes to platforms long forgotten by the passage of technology and time. There’s a certain thrill to be had in wringing every last drop of performance out of old silicon, particularly if it’s in a less popular machine. It’s that mindset that created Don’t Mess With Texas – a glorious megademo running on the TI-99/4A.
Entered in the oldskool demo contest at Syncrony 2017, the demo took out the win for [DESiRE], a group primarily known for demos on the Amiga – a far more popular platform in the scene. The demo even includes a Boing Ball effect as a cheeky nod to their roots. Like any good megademo, the different personalities and tastes brings a huge variety of effects to the show – there’s a great take on vintage shooters a la Wolfenstein in there too. [jmph] shared a few more details on the development process over on pouet.net.
The TI-99/4A wasn’t the easiest machine to develop for. It’s got a 16-bit CPU hamstrung by an 8-bit bus, and only 256 bytes of general purpose RAM. Despite the group’s best attempts, the common 32K RAM expansion present in the floppy drive controller is a requirement to run the demo. Just to make things harder, the in-built BASIC is too slow for any real use and there’s no function to allow the use of in-line assembly instructions. The group had to resort to a cartridge-based assembler to get the job done.
In the machine’s favour, it has a great sound chip put to brilliant use – the demo’s soundtrack will take you right back to the glory days of chiptune. It’s also got strong graphics capabilities for the era on par with, if not better than, the Commodore 64. The video subsystem in the TI works so hard that it’s the only DIP in the machine that gets a heatsink! The demo does a great job of pushing the machine to its limits in this regard.
If you’re suddenly feeling a strong attraction to the TI-99/4A, don’t worry – it’s got a cult following all its own. You can even find USB adapters & IDE controllers if you want to build a fully loaded rig, or play a stunning port of Flappy Bird if that tickles your fancy.
[Thanks to Gregg for the tip!]
We’re used to reflow soldering of our PCBs at the hacker level, for quite a few years people have been reflowing with toaster ovens, skillets, and similar pieces of domestic equipment and equipping them with temperature controllers and timers. We take one or two boards, screen print a layer of solder paste on the pads by using a stencil, and place our surface-mount components with a pair of tweezers before putting them in the oven. It’s a process that requires care and attention, but it’s fairly straightforward once mastered and we can create small runs of high quality boards.
But what about the same process at a professional level, what do you do when your board isn’t a matchbox-sized panel from OSH Park with less than 50 or so parts but a densely-packed multilayer board about the size of a small tablet computer and with many hundreds of parts? In theory the same process of screen print and pick and place applies, but in practice to achieve a succesful result a lot more care and planning has to go into the process.
This is being written the morning after a marathon session encompassing all of the working day and half of the night. I was hand-stuffing a row of large high-density boards with components ranging from 0402 passives to large QFPs and everything else in between. I can’t describe the board in question because it is a commercially sensitive prototype for the industrial customer of the friend I was putting in the day’s work for, but it’s worth going through the minutiae of successfully assembling a small batch of prototypes at this level. Apologies then, any pictures will be rather generic.
Continue reading “Reflow Soldering at Another Level”
[Bisqwit] has feelings about games that use exclamation points in his idiosyncratic walkthrough of all the nuances of the passwords in the famous Punch Out Bang Bang.
As he states in his deeply weird (though in no way wrong) channel intro, when he’s not driving a bus or teaching Israeli dance, he works hard to understand the things around him. Naturally, a mysterious phone number shaped set of digits in a favorite game was a secret worth extracting.
The digits can represent every possible state in the game. It uses a pretty simple decoding and encoding scheme, which he walks through. As he says, it all becomes clear when you can see the source code.
After working through all the quirks he is able to arbitrarily generate any state in the game and handle the exceptions (such as Nintendo USA’s phone number). You can see all his code here and try it out for yourself. Video after the break.
We’ve grown to respect [Bisqwit] as the explainer of all things console games. You will like his explanation of how to write a code emulator for an NES CPU.
Continue reading “Crack Mike Tyson’s Punch Out Bang Bang Passwords”
A SCARA (Selective Compliance Assembly Robot Arm) is a type of articulated robot arm first developed in the early ’80s for use in industrial assembly and production applications. All robotics designs have their strengths and their weaknesses, and the SCARA layout was designed to be rigid in the Z axis, while allowing for flexibility in the X and Y axes. This design lends itself well to tasks where quick and flexible horizontal movement is needed, but vertical strength and rigidity is also necessary.
This is in contrast to other designs, such as fully articulated arms (which need to rotate to reach into tight spots) and cartesian overhead-gantry types (like in a CNC mill), which require a lot of rigidity in every axis. SCARA robots are particularly useful for pick-and-place tasks, as well as a wide range of fabrication jobs that aren’t subjected to the stress of side-loading, like plasma cutting or welding. Unfortunately, industrial-quality SCARA arms aren’t exactly cheap or readily available to the hobbyist; but, that might just be changing soon with the Creo Arm.
Continue reading “Creo Arm Might be the SCARA You’re Looking For”
We’re sure there are more expensive LED controllers out there, but the TI-84 has got to be up there. Unless you have one on hand, then it’s free. And then you’ll doubtless need an SPI library for the famously moddable graphing calculator.
[Ivoah] is using his library, written in assembly for the Z80 processor inside the TI, to control a small strip of DotStar LEDs from Adafruit. The top board in the photograph is an ESP8266 board that just happened to be on the breadboard. The lower Arduino is being used as a 5V power supply, relegated to such duties in the face of such a superior computing device.
Many of us entertained ourselves through boring classes by exploring the features of TI BASIC, but this is certainly a step above. You can see his code here on his GitHub.
After his proof-of-concept, [Ivoah] also made a video of it working and began to program a graphical interface for controlling the LEDs. Video after the break.
Continue reading “Who Needs the MSP430 When You Have TI’s Other Microcontroller, The TI-84?”
Take a leap the next time you use SPI and don’t poll for the busy flag. “What, are you crazy? That’s the whole point of the busy flag! It’s a quick check to make sure you don’t kill a byte waiting to be shifted out!” Sure, we thought the same thing, but the other side of the coin is that it takes time to check the busy flag, and that’s time he could be transmitting data. [bigjosh2] calculates that his technique saves 20% of those wasted cycles in this particular case. And he’s “using the force” only because he’s
a Jedi master able to rely on the cycle count of a chunk of assembly code.
He’s working with an AVR processor, and pumping out bits to drive the vintage LED display pictured above. The ancient chips don’t have buffered SPI so he has to blank the display while shifting new data in to prevent it from glitching. Because the display blank during the SPI transmission, the slower it goes, the dimmer the lights.
He attacks the problem with synchronous code. It takes 2 cycles for the hardware SPI to send each bit, so he twiddles his thumbs (that’s exactly what he wrote in his code comments) for 16 cycles before reloading the SPI register with his next value. This leaves it up to faith in the silicon that the shifting will always take the same number of cycles, but the nice thing about hardware is that it’s deterministic. He ends up killing a few cycles in order to save time by not polling the busy flag.
Still need a crash course in what SPI actually does? [Bil Herd] has you covered with this SPI communication demo.
Building one of something is tremendously easy. If you’re making one of something, you can cover the insides with hot glue, keep everything held together with duct tape, and mess around with it enough that it mostly works most of the time. Building more than one of something is another matter entirely. This is the thought behind DFM, or Design For Manufacturing. [Nick Sayer] is an experienced seller on Tindie and he’s put together enough kits to learn the ins and outs, rights and wrongs of building not one, but an inventory of things. Check out this last talk of the 2015 Hackaday SuperConference, then join us below for a bit more on the subject.
Continue reading “Nick Sayer: Making 10ⁿ Isn’t The Same As Building One”