Looking At Fortran In 100 Seconds

Usually, when we are talking about old computers, we are thinking of BASIC interpreters. But [Fireship] reminds us that it was originally Fortran and promises to give you the essentials in 100 seconds. We didn’t think you could do much in that short amount of time, but we have to admit that they did a pretty good job.

Of course, it doesn’t hurt that we know Fortran — you probably aren’t going to be able to put it on your resume after watching this video. On the other hand, we were impressed with how much they did squeeze in. If you haven’t touched Fortran since the 1960s and 1970s, you should know that it has changed. Pointers, dynamic memory allocation, and even objects are all possible. It is still a very capable language and very adept at crunching large sets of numbers. Besides, there are many sophisticated algorithms you can borrow from decades of Fortran development.

If you decide you want to have a go, there is, of course, GNU Fortran. Honestly, as much time as we spent writing Fortran in years past, we don’t recommend it for new job prospects. But if you have some period hardware and want an authentic experience, it might just be the way to go. Or, just fire up a browser if you want to play.

Not everyone agrees, though, that Fortran is on the wane. There are efforts to bring it even more up to date. You can even use it for web development.

Continue reading “Looking At Fortran In 100 Seconds”

CP/M Is Now Freer Than It Was

It’s easy to think of the earlier history of desktop computing operating systems in terms of DOS, Windows, and Mac OS with maybe a bit of AmigaOS, TOS, or RiscOS thrown in. But the daddy of desktop computing, the OS that put word-processors and spreadsheets in 1970s offices and had a huge influence on what followed, isn’t among that list. Digital Research’s CP/M ran initially on Intel 8080-based machines before losing out to MS-DOS as IBM’s choice for their PC, and then gradually faded away over the 1980s. Its source has been available in some form with a few strings for a long time now, but now we have confirmation from Digital Research’s successor company that it’s now available without restrictions on where it can be distributed.

For years it was something an operating system that had been bypassed by the hardware and hacker communities, as the allure of GNU/Linux was stronger and most available CP/M capable machines were also 1980s 8-bit gaming platforms. But with the more recent increased popularity of dedicated retrocomputing platforms such as the RC2014 it’s become a more common sight in our community. Brush up your command line skills, and give it a go!

Header: Michael Specht, CC BY-SA 3.0.

TensorFlow Lite – On A Commodore 64

TensorFlow is a machine learning and AI library that has enabled so much and brought AI within the reach of most developers. But it’s fair to say that it’s not for the less powerful computers. For them there’s TensorFlow Lite, in which a model is created on a larger machine and exported to a microcontroller or similarly resource-constrained one. [Nick Bild] has probably taken this to its extreme though, by achieving this feat on a Commodore 64. Not just that, but he’s also done it using Commodore BASIC.

TensorFlow Lite works by the model being created as a C array which is then parsed and run by an interpreter on the microcontroller. This is a little beyond the capabilities of the mighty 64, so he has instead created a Python script that does the job of the interpreter and produces Commodore BASIC code that can run on the 64. The trusty Commodore was one of the more powerful home computers of its day, but we’re fairly certain that its designers never in their wildest dreams expected it to be capable of this!

If you’re interested to know more about TensorFlow Lite, we’ve covered it in the past.

Header: MOS6502, CC BY-SA 3.0.

Windows 98 For Spaceships? Not Quite!

One of the news items that generated the most chatter among Hackaday editors this week was that ESA’s Mars Express mission is receiving a software update. And they’re updating the operating system to…Windows 98.

Microsoft’s late-90s consumer desktop operating system wouldn’t have been the first to come to mind as appropriate for a spacecraft, but ESA were quick to remind us that it was the development toolchain, not the craft itself, that depended upon it. It’s still quite a surprise to find Windows 98 being dusted off for such an unexpected purpose, and it’s led us to consider those now-almost-forgotten operating systems once more, and to question where else it might still be found. Continue reading “Windows 98 For Spaceships? Not Quite!”

A 3D-printed device labelled "BlixTerm" plugged into the back of a Commodore PET

BlixTerm Brings Full-Speed YouTube Video To The Commodore PET

If you’ve ever used a home computer from the late 1970s or early 1980s, you’ll no doubt be familiar with the slow speed of their user interfaces. Even listing the contents of a BASIC program from RAM could take several seconds, with the screen updating one line at a time. Video games were completely optimized for speed, but could still handle just a few slowly-moving objects at the same time. Clearly, playing anything resembling full-motion video on hardware from that era would be absolutely impossible – or so you might think.

In fact, [Thorbjörn Jemander] has managed to persuade a Commodore PET to play YouTube videos at a completely reasonable 30 frames per second. He describes the process of designing the “BlixTerm” hardware and software in his video (embedded below), along with lots of useful information on how to push digital systems to their absolute limits.

A video of a drifting car, as rendered by a Commodore PET displayNaturally, the PET needs a bit of assistance from modern hardware, in this case a Raspberry Pi Zero 2 W hooked up to the “User” expansion port. The Pi connects to YouTube through WiFi and loads the requested video, then downconverts it to a 640×200 grayscale stream and transforms each frame to an 80×25 grid of characters, using those from the PET’s ROM that most closely resemble the pattern needed.

While it took quite some effort to squeeze enough performance out of the Pi to do all of this in real time, the trickiest bit was getting the resulting character stream into the PET’s video memory fast enough. To do this, [Thorbjörn] designed a special interface card with 2 KB of dual-port SRAM, which enabled the Pi to store its video frames as soon as they were ready on one side, and the PET to load them at its own pace from the other side. With just sixteen microseconds available to process each byte, the PET’s CPU can execute only four or five machine code instructions; barely enough to load and store a single character and jump to the next memory address.

The end result, as you can see in the video, is really impressive. Even within the constraints of the Commodore character set, the resulting image is clearly recognizable, while the frame rate seems to defy the hardware’s limitations.

If you’re a Commodore aficionado and wondering what the hell that weird PET 600 model is all about, [Thorbjörn] made a video about that too; it’s a rebadged 8296 aimed at the Swedish market. We’ve actually seen a project to generate live video on the PET before, although at a much lower frame rate. Thanks for the tip, [Keith Olson]!

Continue reading “BlixTerm Brings Full-Speed YouTube Video To The Commodore PET”

A PCB carrying several Atari 2600 chips

Hackaday Prize 2022: The Baffatari 2600 Adds Atari Compatibility To Retrocomputers

Like today’s Intel-AMD duopoly, the market for home computer CPUs in the 1970s and ’80s was dominated by two players: Zilog with their Z80, and MOS Technology with their 6502 processor. But unlike today, even if two computers had the same CPU, it didn’t mean the two were software compatible: differences in memory layout, video interfaces, and storage media meant that software developed for an Atari 2600 wouldn’t run on an Apple I, despite the two sharing the same basic CPU architecture.

[Augusto Baffa]’s latest modern retrocomputer design, the Baffatari 2600, cleverly demonstrates that the difference between those two computers really is only skin-deep. The Baffatari is a plug-in board that adds Atari 2600 functionality to [Augusto]’s earlier Baffa-6502 system, which was designed to be Apple I-compatible. Since both the Apple and the Atari are powered by 6502 CPUs, only a few peripherals need to be swapped to change one into the other.

Sitting on the Baffatari board are two chips essential to the Atari 2600’s architecture: the 6532 RAM I/O Timer (RIOT) that contains the RAM and joystick interface, and the Television Interface Adapter (TIA) that handles the graphics and audio. These chips connect to the Baffa-6502’s system bus, enabling the main CPU to communicate with them and run Atari 2600 software titles. In the video embedded below, you can see several classic games running on the Baffa system.

The basic idea is similar to this RC2014 plug-in board that enables a Z80-based retrocomputer to run MSX and Colecovision titles. In fact, [Augusto] also built such a board for his earlier Z80 project.

Continue reading “Hackaday Prize 2022: The Baffatari 2600 Adds Atari Compatibility To Retrocomputers”

Building A Serial Bus To Save An Old Hard Drive

Universal Serial Bus has been the de facto standard for sending information to and from computer peripherals for almost two decades, but despite the word “universal” in the name this wasn’t always the case. Plenty of competing standards, including USB, existed in the computing world in the decades before it came to dominance, and if you’re trying to recover data from a computer without USB you might have to get creative with how it’s done.

[Ben] recently came across a 80486 with this problem, so he had to get creative to recover the contents of the drive. He calls it the “lunchbox” computer due to its form factor, and while it doesn’t have USB it does have a tried-and-trusted serial port to communicate with other computers. [Ben] wrote up a piece of software for both the receiving computer and the sending computer in order to copy the drive sectors one by one across a serial link to a standalone computer running Windows XP, and was able to recover the contents of the drive that way instead.

All of the code [Ben] wrote is available on his GitHub page for anyone looking to boot up a 30-year-old computer again. While it might sound uncommon, computers of this vintage are still around running things like CNC machines or old mainframes.