Welcome to the world of MS-DOS!

In the beginning it was plain DOS... It was about 1991, when I got my first computer. At that time I started programming in BASIC and Turbo Pascal (with a little of assembly). For about 7 years, I was writing programs for DOS. After that, I started developing software for Windows, but soon I fell in love with the Unix environment and completely abandoned the world of dos/dos oops... dos/win I mean :-)

Games

What Video Game Character Are You? I am a Gauntlet Adventurer.
I strive to improve my living conditions by hoarding gold, food, and sometimes keys and potions. I love adventure, fighting, and particularly winning - especially when there's a prize at stake. I occasionally get lost inside buildings and can't find the exit. I need food badly! :-)
Master Mind
mmind.pas
You can try to guess the computer's number, or let the computer guess your number using the minimum number of efforts!
Nibbles
nibbles.zip (c source & binary)
The well known Nibbles game. It supports many players concurrently!
Score 4
score4.zip (pascal source & binary)
The classical game Connect Four (also known as Score 4). The game's AI is far from perfect (but might beat you easily if you are not careful). I wrote this game when I had no idea of AI algorithms! :-) If you are interested in Connect Four, then check also the following:
Ms Pacman
mspacgt.zip (pascal source & binary)
An Ms Pacman game.
RA
ra.zip (pascal source & binary)
An arcade/platform game. Idea and graphics were stolen from Pharaoh's Tomb! (sorry).
RA 2
ra2.zip (DJGPP c++ source & binary)
Second version of RA. Now with scrolling and more colors! Uses the Allegro multi-platform game library. I guess porting to linux would be easy (thanks to Allegro). If you do it, send me a copy!
Turbo Pascal Units
gtunits.zip
You will need some of these units to compile the pascal games.
advanced.pasvarious advanced routines (indosflag,bload,bsave,etc.)
ansi.pasconvert a string to ansi-escapes and vice versa
basic.pasvarious text mode routines (gettext/puttext/colors/frames/etc.)
bios.pasbios disk drive routines (read/write/format)
crt2.pasfast text i/o unit
fade.pasfade in/out (palette effect)
keyb2.paskeyboard flags (shift/capslock/etc.)
keyboard.pascrt's readkey/keypressed replacement
math.passome math routines
mouse.pasmouse support unit
movsb.pasassembly string operations (with 32-bit support)
patch.pasfile patching
protect.paschecksum copy protection
sbaudio.passound blaster audio (low level)
strhan.passtring handling routines
textfont.pasbios text fonts
timer.pastimer routines
vga.pasvga 320x200 8bit graphics unit
xargs.pasargument handling
xsound.pashigh level audio routines (for games)

Utilities

File & Disk Utilities
fsplit.pas
Split large files in smaller pieces with this utility.
go.pas
Search the directory tree in BFS order and change to the directory specified.
timex.pas
This program allows you to time the execution of another program and can warn you in real-time if the time limit has been exceeded. It also tries to detect if the target program has messed with the timer! ;-)
TSR Programs
alarm.pas
This program demonstrates the use of the alarm feature of BIOS. It actually locks up the computer in about a minute! Of course, you should compile this to disk first and then load the .exe file. This is common for turbo pascal memory resident programs using Keep().
crazykey.pas
Heh, this is fun. This is a memory resident program that "eats up" some keypresses of the cursor (arrow) keys. I wrote this program because my sister played a silly game all the time and didn't let me use the computer! :-D Load this program and play a game that is using the cursor keys (like pacman) to see for yourself.