Let’s Code MS DOS 0x21: 3D Fixed Point Maths

The 3D Wireframe cube is part of every demoscene coder’s learning curve. Today I want to talk you through the principles of 3D programming in general and especially the idea of fixed point maths, where you use integers instead of floating point numbers to represent fractions. Older CPUs before the 80486 had no built in floating point support, and even the FPUs were quite often rather slow and hard to program for, if available at all. So people had to opt to use integer arithmetics in stead. But 3D graphics requires fractional numbers, so how do we get both things together and manage to display a rotating wireframe cube on our MS DOS machine?

Repairing a 40 Year Old Commodore Disk Drive

Recently I acquired a matching floppy disk station for my Commodore PET 3016. It is the CBM 8050, a single sided, dual disk drive using quad density floppies with 96 tracks per inch. This is a rather rare format, but with a bit of luck we should be able to use high quality double density (48 tpi) disks instead. But first problem is: The drive can’t even format a single disk. It is probably not a surprise as this particular device was manufactured in 1983. First order of business is to take it apart and do some diagnostics and cleaning!

Game Boy Color: Funny Playing IPS Screen Mod

The Game Boy Color was a step up in the evolution of the most popular game handheld. But its screen was still without backlight and rather dim. Nowadays you can have a nice high resolution IPS screen with backlight. Here I show you how to mod the Game Boy Color to use the FunnyPlaying V2 Q5 IPS screen. It’s a procedure that requires a bit of patience, but is by no means very hard. Optionally a bit of soldering is required to be able to use the on screen menu for setting up the screen.

Our First PC: Highscreen Colani 486SX

The first PC that our family bought back in 1993 was a Vobis Highscreen Colani 486SX-25 Desktop. It was a rather run-of-the-mill low end 486, but it had one special feature: the faceplate of the case was designed by famous industrial designer Luigi Colani. With its rounded, organic forms it definitely was a looker! I now got my hands on a pretty well preserved Colani desktop. So let’s restore it to its former glory, upgrade some bits and pieces and take it for a spin!

Let’s Code x86 Assembly: 0x08 Sizecoding Game Of Life WITH “MUSIC”

In this episode we take a look at a tiny 256 Byte intro that I originally coded for the Outline 2023 demo party. However as I couldn’t attend the party in person, it wasn’t used in the competition. So instead I walk you through the code here and explain how to fit Conway’s Game of Life into 256 bytes and also have some MIDI music, for lack of better words!

The Homebrew Hercules Graphics Card

After viewing our CGA Redux livestream a friendly tinkerer named Arek contacted me if I was interested in a homebrew Hercules Graphics Card PCB that he designed. Naturally I said yes and assembled the card, playing beta tester for his design. It will probably be open sourced eventually, but is not yet available. So instead I give you a little tour of the card and what it can do!

Let’s Code MS DOS 0x20: Bresenham Line Drawing

If you want to do graphics programming at some point or other you will have to draw or at least compute straight lines. Those can be use for many things: simple 2D primitives, 3D wireframe graphics, UI elements, or linear motion of sprites and objects. There is a very fast algorithm developed originally by the mathematician Jack E. Bresenham. Its main advantage is that it is very simple and does not require any floating point arithmetics. Which is a good thing on old and slow DOS machines. Let’s investigate this algorithm and code up a nice screensaver!

Let’s Code MS DOS 0x1F: Detecting Graphics Cards

Back in the 1980s and early 1990s IBM PCs didn’t have the capabilities to announce their hardware to the operating system or application programs. Instead programs would try to ask the user or auto detect the hardware like installed graphics card. Today we learn about how to distinguish between VGA, EGA, CGA and even MDA and Hercules Graphics!

EGA Graphics on C64 Monitors

In the 1980s IBM PCs would mainly use CGA and EGA graphics cards to display color graphics. The corresponding monitors have often been already trashed, recycled or are simply broken. There are however still quite a few CRT monitors in the wild that were actually meant for home computers, like the C64, Amiga and similar. We have a look at the Philips CM8833-II, which sports a TTL RGB input, fitting for being driven by an EGA card.