From 8086 To Z80: Building A NASM-Inspired SDK For 8-Bit Retro Computing

Assembler syntax is a touchy subject, with many a flamewar having raged over e.g. Intel vs AT&T style syntax. Thus when [Humberto Costa] recently acquired an MSX system for some fun retro-style ASM programming, he was dismayed to see that the available Z80 assemblers did not support the syntax of his favorite ASM tool, NASM. Thus was born the HC SDK project, which seeks to bring more NASM to the Z80, 8085 and a slew of other processors.

There’s both a project site and a GitHub repository, from where both source and pre-compiled releases can be obtained. Supported host platforms are macOS, Windows, OpenBSD, FreeBSD, and Linux, with currently supported targets the 8080, 8085, 8086 and Z80. Support for the 6502 is currently in progress.

The Netwide Assembler (NASM), targets only the x86 architecture, being one of the most popular assemblers for Linux and x86. It uses a variant of the Intel ASM syntax, which contrasts it strongly with the GNU Assembler (GAS) that uses AT&T syntax. Of course, in an ironic twist of fate NASM now also supports AT&T syntax and vice versa, albeit with some subtle gotchas.

Regardless, if ASM for these retro architectures is your thing, then the HC SDK may be worth checking out. [Humberto] also says that he’s looking at adding higher-level language support to make it a more complete development environment for these old systems and new takes on them.

Thanks to [Albert Wolf] for the tip.

Recycled Plastic Compression Molding With 3D-Printed Molds

Recycling plastic at home using 3D printed molds is relatively accessible these days, but if you do not wish to invest a lot of money into specialized equipment, what’s the most minimal setup that you can get away with? In a recent [future things] video DIY plastic recycling is explored using only equipment that the average home is likely to have around.

Lest anyone complain, you should always wear PPE such as gloves and a suitable respirator whenever you’re dealing with hot plastic in this manner, just to avoid a trip to the emergency room. Once that issue is taken care of, there are a few ways of doing molding, with compression molding being one of the most straightforward types.

With compression molding you take two halves of a mold, and one half compresses the material inside the other half. This means that you do not require any complex devices like with injection molding: just a toaster oven or equivalent to melt the plastic, which is LDPE in this example. The scrap plastic is placed in a silicone cup before it’s heated so that it doesn’t stick to the container.

The wad of goopy plastic is then put inside the bottom part of the mold before the top part is put in place and squeezed by hand until molten plastic comes out of the overflow opening(s). After letting it fully cool down, the mold is opened and the part released. Although the demonstrated process can be improved upon, it seems to work well enough if you are aware of the limitations. In terms of costs and parts required it’s definitely hard to come up with a cheaper way to do plastic molding.

Continue reading “Recycled Plastic Compression Molding With 3D-Printed Molds”

Making A Better Kitchen Scale Out Of Junk Parts

Kitchen scales are plentiful and cheap, but their accuracy and measuring speed often leave a lot to be desired. In particular the filtering out of noise can make small changes a nightmare because adding a little bit of weight slowly can result in the result never updating. This frustrated [Mark Furneaux] enough that he dug up the load cell and metal base of a scrapped laboratory scale and added a strain gauge amplifier to build a better kitchen scale around it.

The only purpose-bought part was an HX710-based strain gauge amplifier module for $7 with LED display, with the metal base getting some metal bits welded onto it to hold said module as well as a push button and toggle switch. Existing wiring from the load cell was wired into the HX710 module, with power provided from a single 18650 Li-ion cell. This was paired with the standard TP4056-based module and its protection IC.

Ultimately the entire assembly looks very much bodged together, with plentiful zip ties, hot glue and messy welding, but it’s hard to deny that it seems to work well. A plastic cutting board makes for a good surface for the items being weighed, and measured drift across the range was about 200 mg, while the amplifier module updates the output in real-time so that you can see even the smallest changes and noise.

Even if you’re not lucky enough to have such a nice load cell and base kicking around, strain gauges are everywhere, and you can absolutely hack an existing (kitchen) scale to be better with some custom hard- and software.

Continue reading “Making A Better Kitchen Scale Out Of Junk Parts”

Porting MS-DOS 2.0 To The Apple IIe

Although the Apple II range of computers were based around the 6502 processor, they could still run x86 software using expansion cards that were effectively self-contained computers. This way an Apple IIe owner, for example, could install an Intel 8088-based AD8088 co-processor card by ALF Products and run CP/M-86 as well as MS-DOS. Unfortunately, as [Seth Kushniryk] discovered while digging into this MS-DOS option, there don’t seem to be any remaining copies of the accompanying MS-DOS 2.0 software.

The obvious response to this is of course to try and port it once again, which [Seth] did. So far he got it to boot, though it’s not quite ready for prime-time yet. Although the AD8088 card is fairly self-contained, it still has to talk with the Apple IIe system, which poses some challenges. To help with the porting he’s using the MS-DOS 2.0 OEM Adaptation Kit that was released along with the sources a while back.

The Apple II has to first load the basic MS-DOS files into the 8088’s RAM before handing over control, which works now along with the basic functionality. Before [Seth] releases the port to the public he still wants to fix a number of issues, in particular the clock. ProDOS on the Apple IIe encodes the year differently than MS-DOS, so that the latter’s clock is off by a few years, and the console driver is still not quite as robust as [Seth] would like it to be.

Beyond this there is also working with the other cards in the Apple II2 system, including the Super Serial Card, and working with the ProDOS filesystem.

Making A Bladeless Tesla Turbine Generator In LEGO

The Tesla turbine is a bladeless centripetal-flow turbine invented by Nikola Tesla in 1913, using the boundary-layer effect rather than having a stream of gases or a fluid impinge on blades. Recently [Jamie’s Brick Jams] constructed one using LEGO to demonstrate just how well these turbines work compared to their bladed brethren.

Since it uses the boundary-layer effect, the key is to have as much surface area as possible. This means having many smaller discs stacked side by side with some spacing between them.

Interestingly, the air that is directed against the turbine will travel inwards, towards the axle of the discs and thus requiring some way to vent the air. In the video a number of design prototypes are tested to see how they perform before settling on a design suitable for a functional generator.

The first discs are printed in PLA with an FDM printer, which are put on a shaft with 1 mm spacers. What becomes clear during testing is that these turbines can reach ridiculous speeds, but torque is really quite weak until you hit very high RPMs, well beyond 10,000 RPM. This is a bit of an issue if you want to drive any load with it, especially on start-up, but managed to propel a walker robot as a quick torque test.

Continue reading “Making A Bladeless Tesla Turbine Generator In LEGO”

Running A PC Off AA Cells With Buck Converters Really Boosts Performance

After the previous attempt of running a PC off AA cells got a lot of comments, [ScuffedBits] decided to do the scientifically responsible thing and re-ran the experiment with all the peer-reviewed commentary in mind. Although we noted with the previous experiment that only alkaline cells were used, [ScuffedBits] rectified this by stating that both carbon and alkaline AA cells were used the first time around.

For this second experiment a number of changes were made, though still both carbon and alkaline cells were put into the mix. To these a third string was added, consisting of NiMH cells, for a total of 64 cells with each of the three strings outputting around 25 VDC when fully charged. These fed a cheap buck regulator module to generate the 12 VDC for the DC-DC converter on the mainboard’s ATX connector.

Although it appears that the same thin Cat-5e-sourced wiring was used, with the higher voltage this meant a lower current, making it significantly less sketchy. Unlike with the first experiment, this time around the Core i3 530 based PC could run much longer and even boot off the DIY battery pack. After a quick game and pushing through a Cinebench run for 64 Watts maximum power usage, it turned out that there was still plenty of time for more fun activities, such as troubleshooting Minecraft and even playing it.

Continue reading “Running A PC Off AA Cells With Buck Converters Really Boosts Performance”

Building A Robot Partner To Play Air Hockey With

Air hockey is one of those sports that’s both incredibly fun, but also incredibly frustrating as playing it by yourself is a rather lonely and unfulfilling experience. This is where an air hockey playing robot like the one by [Basement Builds] could come in handy. After all, after you finished building an air hockey table from scratch, how hard could it be to make a robot that merely moves the paddle around to hit the puck with?

An air hockey table is indeed not extremely complicated, being mostly just a chamber that has lots of small holes on the top through which the air is pushed. This creates the air layer on which the puck appears to float, and allows for super-fast movement. For this part countless chamfered holes were drilled to get smooth airflow, with an inline 12VDC duct fan providing up to 270 CFM (~7.6 m3/minute).

Initially the robot used a CoreXY gantry configuration, which proved to be unreliable and rather cumbersome, so instead two motors were used, each connected to its own gearbox. These manipulate the paddle position by changing the geometry of the arms. Interestingly, the gearbox uses TPU for its gears to absorb any impacts and increase endurance as pure PLA ended up falling apart.

The position of the puck is recorded by an overhead camera, from where a Python script – using the OpenCV library running on a PC – determines how to adjust the arms, which is executed by Arduino C++ code running on a board attached to the robot. All of this is available on GitHub, which as the video makes clear is basically cheating as you don’t get to enjoy doing all the trigonometry and physics-related calculating and debugging fun.

Continue reading “Building A Robot Partner To Play Air Hockey With”