During study hall in high school, me and my buddies enjoyed playing multiplayer Tetris in the computer lab. One day, tetris.exe had mysteriously disappeared. My friend challenged me to program Tetris so that we could continue to whittle away the hours during study hall. I wanted to have some features that would make my Tetris unique. They are:
Notably missing is a menuing system and a scoring mechanism.
The code supports the background to be scrolled in any direction, and I wanted the background to change its scrolling behavior when the user leveled, but I got distracted with other projects.
Tetris was programmed in Turbo Pascal 7.0 and complimented with a smattering of assembly language. The background is implemented with a palette rotation, so it scrolls fast even on the slowest of study hall computers!
Major credit is due to Denthor of the demo group Asphyxia for writing excellent
graphics programming tutorials and getting me interested in graphics programming.
Much of the code in vs11.pas (low level graphics routines) is his. The code
in intrpt10.pas for synching to the vertical retrace and hooking up a custom
keyboard handler was also written by someone else, but I can't remember who
(right click on the link and click "Save Target As..." to download)
Download the source code.
Download the executable.