The EGA and VGA cards support custom or redefinable character sets. Those can be used to add characters from languages not covered by the original ROMs on the card, but can also be used to aid in drawing shapes in text mode. We will use this feature to port our VGA plasma effect from graphics to text mode.
Tag: letscode
Let’s Code MS DOS 0x2D: L System XMas
It is the holiday season again, and what better way to celebrate than with MS DOS, PowerBasic and some nice L-systems! This time we introduce the push and pop functions and use them to draw colorful Christmas trees!
Let’s Code MS DOS 0x2C: Noisy 3D Animation
Earlier this year I saw a demo effect using a random noise background and simple wireframe 3D using XOR line drawing to create an interesting visual effect. Building on the 3D Cube program we did a while ago we can reimplement this effect. The magic happens when you pause the animation — or this video. Then the object magically disappears…
Let’s Code MS DOS 0x2B: Memory and Pointers
Here is a little refresher on how memory management and pointers work in the C programming language, and especially under real mode MS DOS programs written in Turbo C 2.0. We will go back to the basics to give all the new subscribers of this video series a chance to catch up.
Let’s Code MS DOS 0x2A: Background Adlib Music
We already learned how to program the Adlib sound card to produce percussion and melodic instruments. Now we tackle the problem of getting real music out of it. By utilizing the Reality Adlib Tracker’s playback routine we learn how to program the Programmable Interrupt Timer (PIT) in the PC to get a steady playback of background music.
Let’s Code MS DOS 0x29: Extended Memory XMS
In the previous episode we learned how to use Expanded Memory even down to the original IBM PC. From the IBM AT and other 286 machines onwards we can use Extended Memory instead. It doesn’t require any additional hardware and allows you to use more than 640K of memory in real mode MS DOS programs.
Let’s Code MS DOS 0x24: Low Level Keyboard Programming
Getting input from the keyboard can be as easy as calling the getch() function. But for games we need a better solution. For games on MS DOS machines you need quick, unbuffered input. To simply get the state of keypresses we need to talk to the keyboard controller directly. Let’s have a look at how that’s done!
Let’s Code MS DOS 0x23: 2nd Reality Lens Effect
In 1993 the Future Crew released the seminal demo “Second Reality”. Last episode we re-implemented the tunnel effect, this time we try to understand and replicate the lens effect. A bouncing, tinted glass ball that distorts the background image. Thirty years back it was pretty jaw dropping, and even today we can learn something!
Let’s Code MS DOS 0x22: 2nd Reality Tunnel Effect
In 1993 the Future Crew released the seminal demo “Second Reality”. One of the more simple effects they showed in this demo was the “Dot Tunnel”. It is a simple, yet mesmerizing oldskool demo effect. We can build on our knowledge of fixed point maths to implement this effect and maybe even improve on the original!
Let’s Code MS DOS 0x1B: Fixed Point Arithmetics Rotozoomer
In the last episode we learned how to code the rotozoom effect using floating point arithmetics. This however is pretty slow on ancient DOS machines, like 486 and even worse on slower machines. So in this episode we will rewrite the program to use integer based fixed point arithmetics.