Here's a collection of public domain and free software that I've created since the late 1980s. Many of these programs are still operational through DOSBox, an emulator for running DOS-based software.


Game - QuickBASIC - MS-DOS - 1989 

Back in '89, I whipped up my own version of a really cool game, all in QuickBASIC on MS-DOS. Started off with just 74 lines of code for the GW-BASIC interpreter – pretty neat for a whole game, right? It was all about keeping it simple but still nailing the fun of the original.

One of the coolest parts was making the "SEGMENT-DISPLAY FONT" for the score and other bits on the screen. I wanted it to look just like those classic digital displays you see on gadgets. It was a fun challenge to get it looking good and working right.

Mixing up this awesome game with my own twist on the digital font style really made the whole thing feel extra special.

I recently stumbled upon the original 'design' I created over 30 years ago - what a blast from the past!  :-)

The Mad Alphabet

Game - Turbo Pascal - MS-DOS - 1989 

Way back in 1989, I cooked up a cool little game using Turbo Pascal on MS-DOS. The whole idea came from this TV show I loved back in the day. I took all the cool bits and vibes from that show and turned them into a game. It was all about bringing that same thrill and fun I felt watching the show right into a game you could play.

I went with Turbo Pascal - it was the tool of choice for me then - and it worked like a charm on MS-DOS. The game turned out pretty engaging, with gameplay and graphics that really echoed the show's feel.

MicroCad 1.0

Painting tool - Borland Pascal - MS-DOS - 1990 

Back in 1990, me and a buddy teamed up to build a painting tool using Borland Pascal on MS-DOS. It was a super fun project that let us dive into our creative sides and flex our programming muscles. We started off simple, but over time, we kept adding cool new stuff to it. One of the big game-changers was adding mouse support. This made the tool way more user-friendly and let you get really detailed with your artwork. We even got it to work with Epson printers, so you could print out your masterpieces right from the tool. That was a big deal for us because it meant people could share and show off what they made. 

Just recently, I found the binaries of our very first version. Talk about a trip down memory lane! It brought back all those hours we spent coding, testing, and tweaking things together. Building this painting tool wasn't just about making something cool. It was this perfect mix of our coding know-how and our passion for being creative.

Vga Poker 3.0

Game - Borland Pascal - MS-DOS - 1991/92

Back in '91 and '92, I was all in on making a game using Borland Pascal for MS-DOS. It was a wild ride into the world of game development and sharing my work with more people. The first couple of versions of the game got McMicrocomputer magazine. That magazine was a big deal for software exposure back then. Getting my game reviewed and featured there was a huge deal for me as a budding game developer. Crafting this game was a mix of tough challenges and awesome rewards. I had to come up with engaging gameplay, draw cool visuals on MS-DOS's limited setup, and make sure the game ran smoothly on the computers of that time. After the game got out there, the feedback and recognition from the community were super motivating. It pushed me to keep making the game even better in later versions. It really showed how much heart and effort I was pouring into making fun gaming experiences. When I think back on those years, they're really special to me. They remind me of the thrill of coding and the excitement of bringing my ideas to life.

Library - Distributed by McMicrocomputer 120

In '91 and '92, a buddy and I teamed up to build a book database manager called Library. We used both QuickBASIC and Turbo Pascal on MS-DOS, aiming to make something both strong and easy to use for book lovers to manage their collections. Working on this software was a real team effort. It let us put our coding skills to good use while merging our love for books and tech. We spent a lot of time designing the database structure and adding features so users could easily organize, search, and update their book collections.  When we finished the first version, we sent it over to McMicrocomputer magazine. They liked it and decided to publish it, which was awesome for us. It meant our software could reach more people, especially those needing a good system to manage their books. Looking back, creating Library is one of those memories I really treasure. It was this cool blend of our coding passion and the fun of working together on something meaningful.

Z80 Edit

IDE/Assembler - Borland Pascal / Turbo Vision - MS-DOS - 1992/1993.

In my final years studying electronics, I dove into an exciting project: developing an IDE (Integrated Development Environment) and Assembler for the Zilog 80 microprocessor. I used Borland Pascal and the Turbo Vision frameworks on MS-DOS to create a user-friendly, efficient platform for coding and assembling Zilog 80 code. This project, spanning 1992 to 1993, was key to my graduation. It demonstrated my technical skills in both electronics and programming, allowing me to efficiently write and test code for the Zilog 80.  Reflecting on this experience, it was a fantastic fusion of my education in electronics and my passion for programming, challenging yet immensely rewarding.

Food Manager

Restaurant Manager - Borland Pascal/Borland Assembly - MS-DOS - 1994

In 1994, I embarked on one of my first professional projects: creating a Restaurant Manager software using Borland Pascal and Borland Assembly for MS-DOS. This software was designed to streamline restaurant operations during large-scale events, enhancing service efficiency and customer experience.

Using Borland's powerful tools, I built a system that managed orders, tracked inventory, and handled table reservations efficiently. It also included real-time reporting and analytics for sales, revenue, and customer satisfaction, helping management make informed decisions for future events. This comprehensive solution significantly improved the restaurant's ability to handle large customer volumes effectively.

Ray-casting 3d engine demo

Demo - Borland C++ / Borland Assembler 386 - MS-DOS - 1995/1996

In the mid-90s, inspired by the captivating games of ID Software, I set myself a challenge to create my own graphics engine. This ambition turned into a friendly bet with a friend, where I was confident I could pull it off.

Using Borland C++ and Borland Assembler 386 on MS-DOS, I started building the engine from scratch, aiming to replicate the immersive visuals of ID Software's games. The process involved deep dives into graphics programming, working with algorithms to render and animate scenes, and optimizing for MS-DOS's hardware limitations.

The journey was tough, filled with trial and error, but after months of hard work, I completed a visually impressive demo of my engine. It was not only a win for the bet but also a significant milestone in my programming career, fueling my passion for game development and graphics programming.

This project, while a product of the MS-DOS era, left a lasting impact, inspiring me to continue exploring and pushing boundaries in software development and interactive media.


Binary Editor / Disassembler x86 - Borland Pascal - MS-DOS - 1991-1998

From 1991 to 1998, I worked on a project that combined a binary editor and an x86 disassembler, using Borland Pascal on MS-DOS. This tool was born from the need for a powerful way to work with and analyze x86 machine code.  The binary editor was a key utility for handling binary files at a detailed level, allowing users to view, modify, and understand the data. This feature was especially handy for tasks like file format adjustments or reverse engineering. 

A crucial part of this tool was the integrated x86 disassembler. It transformed raw machine code into readable assembly language, essential for analyzing compiled executables and libraries. This feature was particularly useful for software developers and security researchers who needed to understand program flow and functionality. Incorporating the disassembler was a game-changer. It let users dive deep into executable files, study complex algorithms, spot vulnerabilities, and undertake reverse engineering. This tool became a window into the assembly code produced by compilers, aiding in debugging and providing deeper program insights. Over the years, I kept refining this tool, driven by my interest in low-level programming and the goal to offer a comprehensive binary analysis tool. The result was a robust, user-friendly interface for binary file manipulation and x86 machine code dissection. Even though the MS-DOS era is behind us, the skills and lessons from developing this binary editor and disassembler still influence my work. They laid a foundation for my ventures into reverse engineering and software analysis, shaping my understanding of computer architecture and the intricacies of software systems. Today, binary editors and disassemblers remain crucial in fields like software development and security. The legacy of this tool is a testament to the enduring importance of building powerful tools that enable deep exploration of software systems.

CD Player

CD Player - Visual C++ - Windows - 1999/2000

In the late 1990s, needing a simple CD player for Windows and finding existing options too complex, I decided to create my own using Visual C++. My goal was a minimalist, user-friendly CD player tailored to my preferences, without the extra features that I didn't need. Using Visual C++, I tapped into Windows APIs and multimedia libraries to build the application, focusing on essential functionalities like play, pause, stop, and track selection. I designed an intuitive interface for hassle-free CD playback, streamlining the experience to prioritize ease of use and functionality.

The development process involved integrating Windows' multimedia features, ensuring smooth CD playback and a reliable interface. The result was a customized, efficient CD player that met my specific needs.

This project, while modest compared to more complex software tasks, was a valuable dive into Windows programming with Visual C++. It reinforced the importance of simplicity, customization, and user-centered design in software development, principles I still value today, despite the shift from physical CDs to digital streaming. It's a testament to creating solutions that precisely fit specific needs and preferences.


Network Analyser - Visual C++ - Windows - 2001

In 2001, I developed a Network Analyzer tool in Visual C++ for Windows, aimed at enabling users to analyze network data, either live or from captured files. Utilizing WinPcap, a popular library for packet capture on Windows, the tool offered comprehensive network monitoring capabilities. Originally a commercial software, I modified it to remove proprietary protocol decoders, releasing it as a free community tool. It allowed users to examine various protocols like TCP/IP and HTTP, providing insights into network performance and security issues. The tool's user-friendly interface made it easy to select network interfaces for packet capture, set filters, and analyze packet details such as addresses, lengths, and payloads. It also enabled offline analysis by capturing and saving data to files and supported the import of existing capture files. Leveraging WinPcap, the Network Analyzer provided efficient packet capture, filtering, and analysis features. I released it to the public domain to make network analysis more accessible, helping network administrators and enthusiasts troubleshoot and understand network behavior at no extra cost.

The development process involved thorough testing and refinement, with user feedback playing a key role in enhancing its features. This project not only showcased my dedication to providing valuable software solutions but also deepened my understanding of network protocols and analysis techniques. Though developed in 2001, the tool's impact extends beyond that era, marking an important milestone in my software development journey. 


3D Engine Demo - Visual C++ - Windows - 2005

In 2005, I created a 3D Engine Demo in Visual C++ for Windows to accompany an article in Computer Programming Magazine. This demo showcased a ray casting 3D engine, a technique for rendering 3D graphics by simulating rays intersecting with objects in a scene, thus creating an immersive environment.  I made the demo's source code available on GitHub for anyone interested in exploring the mechanics of the 3D engine. You can find it at [Winraycast GitHub Repository]( The demo featured real-time rendered scenes with textured walls, floors, and ceilings, and allowed users to move and interact within this 3D space. Using Visual C++, I optimized the demo for smooth performance, focusing on efficient ray-object intersection calculations and real-time rendering updates. The accompanying magazine article provided a deeper understanding of ray casting principles and the implementation of the demo, guiding those interested in developing their own 3D engines. This demo not only demonstrated the capabilities of ray casting in creating 3D environments but also inspired enthusiasts and developers in the field of graphics programming to experiment and learn more about advanced rendering techniques.