People often ask me about documentation on various aspects of programming. They also often ask me where to get the basic information on coding 2d/3d graphics and tutorials. Well, I put here a few links that I guess people could find useful for the first time. This is something like getting started. Okay, let's get to the business.
Table of Contents
|Things I started with|
|I also recommend for beginners in 3d|
|WWW & FTP sites related to game & gfx programming|
|Links for advanced programmers (assembly, interrupts, file formats, etc)|
|Hardware stuff (PCI, AGP, VGA, HDD, etc etc)|
|Protected Mode & OS Development|
|Various compilers and assemblers on the net|
|Some old but good compilers for free|
|Other cool places|
|Signals, Communication Systems, Digital Signal Processing (DSP), Control, FFT, etc.|
|Miscellaneous algorithms and docs (math, data structures, cryptography, etc)|
|Sites of my friends and acquentancies|
|FIDO gates and public USENET news servers|
|Some funny and amusing stuff|
Things I started with
Denthor's Tutorials - about 20 tutorials on coding 2d and 3d gfx. Each tutorial has documentation in plain English. Tutorials have been done with Borland/Turbo Pascal 7.0 and TASM 3.2.
PCGPE I (dead link, better try: here or here) - PC Game Programmers Encyclopedia I - lots of documentation about coding (VGA/SVGA, sound, mouse, keyboard and timer hardware + programming, gfx and sound file formats, gfx and special algorithms, ...). Of course it contains working pieces of source code and whole sources.
PCGPE II (dead link, try searching the web with, say, Google) - PC Game Programmers Encyclopedia II - lots of documentation about coding 3d, etc.
[back to top]
I also recommend for beginners in 3d graphics
The Ray-Casting Conception You should certainly visit this site, if you want to create 3d engine similar to the great Wolfenstain 3d game or my Lab3d engine.
Perspective Texturemapping using linear interpolation of 1/Z, U/Z and V/Z by Mikael Kalms. This article teach how to implement a perspective texture mapper. Math proofs are present there and they are very simple. Screenshots, demos and sources are available there too. Don't waste time if you want to understand this.
Game Tech (dead, better see my misc docs archive) by John DiCamillo - very cool site that explains 3d graphics pipeline. There are a lot of trics and tips explained plus some nice screenshots are provided for illustrative purposes. I doubt it's a site for beginners, but I think you should know much more than just basics of 3d.
Demomaking (In Russian)
demo.design 3D programming FAQ (In Russian)
Graphics Programming Black Book by Michael Abrash - Michael Abrash's classic Graphics Programming Black Book is a compilation of Michael's previous writings on assembly language and graphics programming (including from his "Graphics Programming" column in Dr. Dobb's Journal). Much of the focus of this book is on profiling and code testing, as well as performance optimization. It also explores much of the technology behind the Doom and Quake 3-D games, and 3-D graphics problems such as texture mapping, hidden surface removal, and the like. Thanks to Michael for making this book available.
[back to top]
FTP and WWW sites with lots of information and archives related to various aspects of programming (especially game and graphics)
Directory of ftp://x2ftp.oulu.fi/pub/ (dead)
Directory of ftp://ftp.simtel.net/pub/simtelnet/
Directory of ftp://garbo.uwasa.fi/pc/programming/
Directory of ftp://ftp.funet.fi/pub/msdos/
Doctor Dobbs Journal - www.ddj.com
flipCode Outpost (Game Development News and Resources) - www.flipcode.com/
Programmer's Virtual Library
Game Programmer - www.gameprogrammer.com/
Programmers Heaven - www.programmersheaven.com/
The Hornet Archive - www.hornet.org/
www.makegames.com - it's a very interested site related to game programming. I suggest you to read an on-line book about programming games in C. This book covers almost everything you need to know, if your goal is a nice and good game.
efg's Graphics Page - great place
Computer Graphics and Multimedia Library at Moscow State University (Russian site)
Amit's Game Programming Information - great place
GameTutorials - Game programming tutorials, news, previews
[back to top]
Links for advanced programmers (especially for those who are programming or going to program in assembly language)
Learn Microsoft Assembler in a day - the title and contents match. :-)
Eddie's Guide to Assembler Language - this is one of the best sites about asm that I've ever seen. Check it out!
PC Assembly Language by Dr. Paul Carter - this one is pretty much good, too. Check it out!
Gavins' guide to x86 Assembly Language - this may also be a good thing for a beginner.
Assembler tutorial by Hugo Perez Perez - try this one as well.
Art of Assembly Language Programming and HLA by Randall Hyde - really huge site related to programming in Assembly language of x86 processors (lots of docs and examples)
x86 Assembly Language FAQ - FAQ on x86 assembly that posted monthly or about the 21st of the month to the newsgroups related to asm.
John Fine's site related to programming in x86 asm. John Fine is a moderator of the comp.lang.asm.x86 news group, if you don't know. Simply visit it. There are some useful utils, PMode tutorials and other things.
Official homepage of the comp.lang.asm.x86 newsgroup (dead link)
Assembly Programming Journal is an online magazine covering assembly language programming techniques. The magazine will come out in ASCII format (natch) every three months, and will contain code and articles for beginner, intermediate, and advanced asm progammers.
http://www.intel.com and http://developer.intel.com - all the info about x86 CPU.
Intel Secrets - really interesting web site with lot's of articles, FAQs and links. It's recommended for advances programmers in aseembly. This site also covers ascpects of protected mode programming with 386+ processors.
Optimizing assembly code - Very useful info on optimizing code for 80x86 CPU.
WASM.RU - A very interesting site for newbies and amateur x86 programmers... The site is devoted to ASM and technical stuff (Russian site, sigh)
assemblylanguage.net - Assembly Language Resources
Boolean Functions Simplification (Logic Minimization)
Ralf Brown's Int List - if you want to know how to use a particular software interrupt provided by BIOS, DOS and other APIs, you should download his great int list. A version in HTML.
HelpPC - programmer's tech reference, soft/hardware. It holds c/assembly programming topics, hardware data and specifications, interrupt services of BIOS and DOS, tables and formats used by BIOS and DOS. TSR version is available. It's a hypertext-like browser. It's a very helpful tool.
Tech Help 6.0 - Reference Book on BIOS, DOS and related things. Similar to HelpPC but better.
- PC BIOS information.
PhoenixBIOS/AwardBIOS Documentation - CMOS Setup, BIOS User Manual
Phoenix Platform System Software Documentation - APM, ACPI, ATA/ATAPI, POST, SMBIOS, USB
The Programmer's File Format Collection - Detailed file formats and data formats for programmers. A large collection of programming resources with detailed information. The place to share useful resources with other programmers.
Programming MS-DOS with Power - DOS Programming, Undocumented DOS, and DOS Secrets. A few little secrets about DOS programming. Continuing to get more code snippets and info. Do you need help with you DOS programming?
HIEW and BIEW - the powerful viewers with disassemblers, assemblers, hex editors, etc included. I recommend them.
DataRescue IDA Pro disassembler
- The most coolest disassembler available!
An older version for free!
[back to top]
Hardware stuff (PCI, AGP, VGA, HDD, etc etc)
TechFest - PCI Local Bus Technical Summary
PCI Vendor and Device Lists
I/O Device chapter - ISA DMA, FDD, PIC, UART, parallel port, ISA keyboard/mouse, IDE, SCSI, VGA
My miscellaneous docs collection
Beyond Logic - great site devoted to hardware and its programming!
[back to top]
links for those who work on Protected mode or an OS
(partially derived from some FAQs, thanks to Raymond Moon)
Protected Mode Basics by Robert Collins - Excellent starting tutorial with source code.
Christopher Giese-s PMODE Tutorial
PMode Tutorials in C and Asm - visit this site and discover PMode simplicity with examples written with quite a little of Asm. Basically, the complexity of the tutorials increases from the first one to the last one. Note: all the compilers and linkers you need for the tutorials are available for free on the web. You're welcome. Important note: none documentation is provided yet, hence you need to have other PMode docs before you start.
Protected Mode Mailing list
Body: subscribe pmode-l firstname.lastname@example.org (Note that this is pmode-l (ell) not pmode-1 (one))
email@example.com to send email to others in the list.
Body: unsubscribe pmode-l firstname.lastname@example.org
News groups related to OS development:
The Operating Systems Collection - I recommend to visit this site because it has a lot of docs related to hardware devices programming and some other nice things.
Tauron VGA Utilities - if you don't want to call BIOS Int 10h service functions for setting up a standard VGA text/graphics video mode from either Protected Mode / V86 task or switching back to Real Mode, you may use direct port I/O. These utilities can help you to manage this stuff.
LFBemu - is a Linear Frame Buffer (aka LFB) emulator for VESA 1.xx+ cards. It emulates a contiguous linear frame buffer (usually available on VESA 2.xx+ - compatible graphics cards) by means of page translation mechanism of the i80386+ CPU. This mechanism makes it easy to avoid the annoying bank switching on old VESA 1.xx cards (and some new ones, which don't support VESA LFB for some weird reason).
Thomas Kjoernes' (aka The Bass Demon) site - Pretty good articles about HDDs, CHS and LBA addressing, bootstrapping, FAT12 / 16 / 32. Sources for boot sectors and a custom OS are available there.
www.ata-atapi.com - wanna know ATA/ATAPI standards? :)
T13 Technical Committee - AT Attachment, yet another one...
Computer Hardware Links
Own Operating System - pretty good FAQ. Just go and visit
it. It helps to choose compilers, executable formats, boot
loaders and provides a lot of other information.
An OSDev Forum
Realtime Operating Systems Concepts and Implementation of Microkernels for Embedded Systems - a good book by Jurgen Sauermann, Melanie Thelen.
Gaz-Tech website - has a homebrewed OS and a dev section
Protected Mode and Operating Systems links - also a good site.
John Fine's Homepage - again our friend John Fine ;)
The OS-Webring - take a look at some projects.
OSDEV.ORG - yet another osdev resource.
Bona Fide OS Development - great osdev resource.
Code your own OS - osdev resource.
Cross-ELF (dead link) by Josh Vanderhoof - a package that gives you everything you need to run the same ELF 32 bit 386 object files on a variety of operating systems (Linux, Dos and Win32). It includes a dynamic linker and a C library for Dos. The Dos linker has it's own dos-extender built in.
DJGPP COFF Spec - If you're developing an OS with use of the DJGPP (DOS port of GNU C/C++ compiler) under DOS or windows, this may be very helpful for you.
Embedded Systems Programming - interesting site.
sandpile.org - The world's leading source for pure technical x86 processor information.
Public domain malloc/free/realloc by Doug Lea, get from here malloc.c and malloc.h
The Slab Allocator An Object-Caching Kernel Memory Allocator by Jeff Bonwick, direct link to the doc here
Magazines and Vmem Extending the Slab Allocator to Many CPUs and Arbitrary Resources by Jeff Bonwick, direct link to the doc here
The Hoard Memory Allocator by Emery Berger
Priority Inheritance and Priority Inversion
Against priority inheritance by Victor Yodaiken
Priority Inheritance: The real story by Doug Locke
Priority Inversion: Why You Care and What to Do About It, or this link
Temporal inventory and real-time synchronization in RTLinuxPro(R) by Victor Yodaiken
GRUB - GRand Unified Bootloader - Neat thingy...
The Open Group Base Specifications, IEEE Std 1003.1-2001 - The single UNIX specification, very very useful info!
Index of pub/minix - Minix-related resources. Minix is a small unix-like OS written by Andrew S. Tanenbaum. You may want to buy some books of him on OS development...
The Linux Kernel - Table of Contents
ETH Oberon home page - Single-user, multi-tasking system.
Vita Nuova Holdings Limited - Inferno and Plan 9 Operating Systems
VSTa Home Page - Another OS.
The L4Ka Project - A micro kernel OS.
The OSKit Project - The OSKit makes it vastly easier to create a new OS...
QNX - It's simply a must... You've gotta see this!
Emu8086 - Microprocessor Emulator with integrated x86 Assembler
Bochs PC emulator - The program bochs is a highly portable open source x86 PC emulator written in C++, and runs on most popular platforms. It includes emulation of the Intel x86 CPU, common IO devices, and a custom BIOS. Currently, bochs can be compiled to emulate a 386, 486 or Pentium CPU. Bochs is capable of running most Operating Systems inside the emulation including Linux, Windows'95, DOS, and recently Windows NT 4.
Plex86 - The new Plex86 x86 Virtual Machine Project
VMware - cool commercial emulator... Wanna run windows under linux or vice versa? Wanna run something different under an existing OS? Here you go...
Computer Laboratory - Xen virtual machine monitor
Unicode - Learn more about Unicode!
UDI - Uniform Driver Interface
[back to top]
Are you looking for a compiler or an assembler? Compilers and etc go here...
- 32-bit FREE C/C++ compiler for DOS(DPMI) / Linux / ... (IDE,
Newsgroup related to DJGPP: comp.os.msdos.djgpp
- The coolest FREE game development library for DJGPP (2d/3d gfx,
sound, keyboard/mouse/joystick input, timer programming, gfx and
sound files I/O,...) with examples.
Newer (work in progress) version of Allegro.
cygwin - The Cygwin tools are ports of the popular GNU development tools (gcc, gas, ld, etc...), for Windows 9x/ME/NT/2000. They run thanks to the Cygwin library which provides the UNIX system calls and environment these programs expect. With these tools installed, it is possible to write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API. As a result, it is possible to easily port many significant Unix programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU software (including the packages included with the Cygwin development tools themselves). Even if the development tools are of little to no use to you, you may have interest in the many standard Unix utilities provided with the package. They can be used both from the bash shell (provided) or from the standard Windows command shell.
MinGW - MinGW - Minimalist GNU for Windows
lcc-win32 A Compiler system for windows by Jacob Navia based on the original screenplay of Dave Hanson and Chris Fraser: A portable C compiler
TCC Tiny C Compiler
BCC Bruce Ewans' and Robert de Bath's C compiler
Free Borland C++Builder Compiler
- a blazingly fast 32-bit ANSI C++ optimizing compiler for Windows, is the core of Inprise/Borland's C++ compiler technology and the complete award winning
Borland C++Builder 5 development system. It includes the latest ANSI/ISO C++ language support including the RTL, the STL framework with
C++ template support. And now, the Borland C++Builder Compiler is available as a free download!
Free Turbo Debugger - it's a 32-bit windows debugger suitable for debugging programs written with Borland C++ Compiler 5.5. Unfortunately, you can not debug any DOS programs with it.
Open Watcom C/C++ and Fortran Compilers - great 16/32 bit compiler tools for DOS, Windows, OS/2, QNX, etc. Includes everything: compiler, assembler, linker, librarian, make, debugger, IDE, etc, sample programs, documentation and comes with full source code. A great free tool set!
Digital Mars C/C++ Compiler - FREE C/C++ compiler for DOS and Windows.
FPC or FPK (Free Pascal Compiler) - 32-bit FREE Pascal compiler for DOS(DPMI) / Linux / OS/2 / Win32 / ... (IDE, Debugger)
TMT Pascal - 32-bit commercial Pascal compiler for DOS(DPMI) / Win32 / ... (IDE, Debugger, ...). Free version with few limitations is available too.
Pro - FREE 32-bit Pascal compiler for DOS (DPMI). It can
link programs with the DOS32 and WDOSX
DOS-Extenders. This compiler is almost fully compatible with
great Turbo Pascal.
P32 (dead link) - is a very very similar thing to Pascal Pro. Seems that Igor Khachko simply finished the P32 project and released it under name Pascal Pro with own copyright sign...
Both compilers generate assembly source code out of the pascal sources and then just run external assembler and linker. That's the way which programs are compiled in P32 and Pascal Pro. Btw, source codes of compilers are available and you may look through them or use them in own needs.
Virtual Pascal is the tool of choice for 32-bit cross-platform development using
the Pascal language. It is compatibile with Borland Pascal and Delphi, including
the Run-Time Library (RTL), an optimizing compiler, a powerful integrated debugger,
and comprehensive online documentation.
Virtual Pascal includes support for OS/2, Win32 (Windows 95/98/NT/2000).
Delphi 5 for free! - get a trial version of Delphi 5 for free (either download a huge 73MB file or order a CD) and enjoy it!
How to get a Free Copy of MASM - you asked for it! Here it is. ;-)
NASM (Netwide Assembler) - FREE x86 Assembler for various OSes: DOS / Linux / Win32 (IDE, PMode + extender, examples). Support different output object file formats. It could be used with DJGPP and FPC as external assemler.
A Beginner's Nasm Page - One extra site devoted to NASM.
PASS32 32 Bit Assembler - PUBLIC DOMAIN (see license for details) x86 Assembler for DOS and Windows. The assembler is a combination of Assembler and Linker. For protected mode programming the Dos Extender Pro32 is linked to the program. Flat memory model is supported.
A86/A386, D86/D386 -
A86 (with its 32-bit version A386) by Eric Isaacson is the assembler for the Intel 86-family of microprocessors.
A86 transforms assembly language source files, directly into either of: (1) .COM files executable under DOS (or in a DOS box under Windows),
starting at offset 0100 within a code segment; (2) .OBJ files suitable for feeding to a linker to create EXE files; or (3) object files starting at offset 0,
suitable for copying to ROMs. A86 is a full featured, professional-quality program. A86 is designed to be as closely compatible to the standard
Intel/IBM assembly language as possible.
D86 (with its 32-bit version D386) is a screen-oriented program that allows you to troubleshoot faulty computer programs written to run under DOS (or in a DOS box under Windows). D86 recognizes the symbol-table output of the A86 assembler, creating a symbolic disassembly of your A86 program, and allowing you to refer to locations and variables by name.
A86/D86 are available for free, A386/D386 are not. Buy them, they worth.
Iczelion's Win32 Assembly Homepage
32 Bit MASM - another site devoted to windows assembly language programming, see also: 32 Bit MASM
Win32 Assembler Coding Tutorial - again win+asm (MASM/TASM/NASM)
Win32NASM - coding for win32 in NASM
Dolphinz Win32 ASM HomePage
Catalog of Free Compilers and Interpreters
Stack Computers: the new wave by Philip J. Koopman, Jr.
Compiler Construction by William M. Waite & Gerhard Goos
Let's Build a Compiler by Jack Crenshaw
Parsing Techniques - A Practical Guide by Dick Grune and Ceriel J.H. Jacobs
Compilers and Compiler Generators an introduction with C++ by P.D. Terry
[back to top]
Plus some old but good compilers for free
Pascal 5.5 - 16-bit DOS Pascal compiler. did you know
that first OOP version of TP was 5.5? You may start
learning OOP with it. Yeah, compiler is pretty outdated, but it's
suitable for small programs (similar to those that beginners do)
it's small itself and it's a very fast compiler.
Newsgroups related to Turbo/Borland Pascal and Pascal itself in general: comp.lang.pascal.borland and comp.lang.pascal.misc.
Turbo Pascal 7.01 - 16-bit DOS Pascal compiler. The last version of Turbo Pascal. Seems to be odd that borland/inprise USA does sell this compiler for about $130 while exactly the same compiler is legally available for free from borland/inprise France. So, if you can tolerate French language in the built-in help, this may be what you have dreamed about. Let's hope borland will release English version some day... Btw, if you can't read French, download the compiler by clicking here
Turbo C 2.01 - another old 16-bit DOS compiler from Borland that is suitable for beginners and may be used for compiling old programs found over the Internet as well.
C++ 1.01 - a better version of the C compiler from
Borland (better IDE, ++).
Note: you have to register at the Borland/Inprise web server in order to be able to download these compilers.
[back to top]
Other cool places
3D Engines List (3DEL) - huge list with lots of links to the different 3d engines. Appears to be not maintained anymore. :(
3dengines.de - New 3DEL. Though I can't see now any difference with respect to the original 3DEL... Let's hope and pray there will be some new stuff some day.
scene.org - a non-profit organization aimed at providing the 'electronic art scene' with a forum for communication and for sharing their work. "A demo is a program that displays a sound, music, and light show, usually in 3D. Demos are very fun to watch, because they seemingly do things that aren't possible on the machine they were programmed on." Lots of awesome demos and intros from various parties, contests, etc. See this!!!
The Turbo Pascal Programmers Page provides source snippets, links to tutorials, books, compilers, FAQ's, programming techniques and much more.
TP-links is a great place with a lot of links to different Turbo/Borland Pascal programs, units, patches, etc. etc.
SWAG - SourceWare Archival Group. Here you'll find tons of programming snipets covering every aspect of the PASCAL programming language including Turbo Pascal and Delphi. The entire SWAG project is downloadable here and it completely FREE.
snippets.org - The most commonly-cited repository of free C/C++ source files. SNIPPETS consists of mostly smaller library and utility functions.
The Brighton University Resource Kit for Students - a non-profit collection of useful resources for students of Computing who do not have (or cannot afford) an Internet connection. The resources include compilers, tutorials and reference manuals for over 20 different programming languages, a dictionary of computing with nearly 13,000 entries, a copy of the Red Hat 6.2 Linux distribution, a vast amount of useful software, information about the Internet itself, and much more.
comp.lang.c Frequently Asked Questions
C++ FAQ LITE - Frequently Asked Questions
The ISO/ANSI C++ Draft
A Tutorial on Pointers and Arrays in C
Interesting DOS programs - Maybe you'll find some cool stuff here...
WebRing is a home of site rings. There a lot of rings related to programming. Just check it out and find what you look for.
BRILLIANeT.com (previously XORCoders) site is intended to cover almost everything in programming. There are docs, tutorials, downloads, links and much more. Sources are in ASM, Pascal and C.
Faqsys - your new lifestyle - A lot of docs and code snippets.
Paul Hsieh's Home Page - Some interesting stuff.
IXBT - Computer hardware reviews, prices, etc. Cool site (Russian).
CITFORUM - Cool site (Russian).
RusDoc - tons of docs (Russian site).
Bib - tons of docs and sources (Russian site).
C++ Books (Russian site)
Tech docs, FAQ, sources (Russian site)
Alexandria Library - docs and books (Russian site)
DjVu libraries - books in DjVu (Russian site)
VILenin's books - books (Russian site)
Technical literature library - books (Russian site)
Scientific resources - Scientific literature on the internet (Russian site)
Alexander and Grogory Frolov's site - wanna have a wonderful CD with books from Library of System Programmer (BSP) series? If so, go and make a request. (Russian site).
ODP - Open Directory Project, very good structured internet catalog
Softpanorama (slightly skeptical) Open Source Software Educational Society
Tambov State Technical University's FTP server - Sorry, it's in Russian.
[back to top]
Signals, Communication Systems, Digital Signal Processing, Control, FFT, etc
The Scientist and Engineer's Guide to Digital Signal Processing 2nd ed by Steven W. Smith, a great DSP introductory book online!
T0001 - The FFT Demystified by Adrian Hey, FFT explained!
FFTW - Fastest Fourier Transform in the West, fastest FFT code
DSPRelated.com DSP discussion groups, DSP books, DSP links, job opportinuties
dspGuru howto's, FAQs, tricks, books, links, etc
comp.dsp FAQ at Berkley Design Technology, Inc
The BORES Signal Processing DSP course - Introduction to DSP - is free of charge on line
JAVA Digital Signal Processing - JAVA applets for basic DSP operations
Stephan m. Sprenger's Audio DSP Pages
Intro to DSP and Random Signal Processing at Arizona State University
Real-Time Digital Signal Processing Laboratory at University of Texas
DSP links lots of DSP links, actually.
DSP Books (Russian site)
DSP books (Russian site)
Analog Devices DSP related literature (Russian site)
DSP and Communications
Introduction to the Z-Transform
A Really Friendly Guide to Wavelets by Clemens Valens, direct link to the doc here
Wavelets For Computer Graphics: A Primer by Eric J. Stollnitz Tony D. DeRose David H. Salesin
A Mathematical Theory of Communication by Claude E. Shannon, probability, entropy, where all started
Control System Design Lecture notes for ME 155A
by Karl Johan Astrom, prof. of Automatic Control (Lectures at Yale university)
Karl Johan Astrom's site
[back to top]
Miscellaneous algorithms and docs (math, data structures, cryptography, etc)
Eric Weisstein's World of Mathematics - a great math reference!
The Universal Library hosted by Carnegie Mellon University - lots of online docs including the Numerical Recepies in C/Fortran - The Art of Scientific Computing
Online math books
IEEE 754 - IEEE754 standard and floating point math information
What Every Computer Scientist Should Know About Floating-Point Arithmetic by David Goldberg
A survey of CORDIC algorithms for FPGA based computers by Ray Andraka, CORDIC algorithms explained!
The On-Line Books Page at University of Pennsylvania, QA Mathematics and Computer Science
Fibonacci Numbers, the Golden Section and the Golden String - The best site on the topic!
A Compact Guide to Sorting and Searching by Thomas Niemann, direct link to the doc here
CS-660 Combinatorial Algorithms - Lecture Notes, describe searching, sorting, AVL red-black trees, etc etc. Very useful.
Data Structures and Algorithms
The Complete Collection of Algorithm Animations
Web Data Structures and Algorithms
Algorithms and Complexity by Herbert S. Wilf, direct link to the doc here
Graph Theory by Reinhard Diestel, Second Edition Electronic Edition.
Algorithms for programmers ideas and source code by Jorg Arndt, also The FXT library: Fast transforms and low level algorithms, direct link to the doc here
The Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone.
Foundations of Cryptography - fragments of a Book by Oded Goldreich
[back to top]
Sites of my friends and acquentancies
Gennady Proschaev's homepage (PMode)
Maxim Stepin's homepage (cool 3d stuff)
Sergey Sourgutsky's homepage (nice 3d coding)
Jeroen Commandeur's (Outlaw Triad) site (various coding including music and graphics)
Jim Haga's homepage (cool 3d coding in pure asm)
Jeroen Commandeur's and Jim Haga's site They are up to make a new 3d engine with level editor and all that stuff...
[back to top]
FIDO gates and public USENET news servers
news.individual.net - I've used this public news server myself for a while w/o problems. You may wanna try it.
Google Groups - another free way to read and post from/to usenet.
News Feeds - yet another free way to read and post from/to usenet.
Free UseNet News Servers
Internet to FIDO gateway - You may try to see what is going on in the predecessor of the internet, participate in various groups. This is a Russian site, perhaps lots of non-Russian groups are missing...
[back to top]
Some funny and amusing stuff
The International Obfuscated C Code Contest - You've gotta see this!
Hugi Size Coding Competition Series - Smallest possible programs in ASM!
www.256b.com - 256-byte-long graphics demos and intros!
Real Mode EXE Bootloader - Just read the Product Brief (I give away a similar thing for free :)!
[back to top]
Aaron Gray's Web Space (dead link)
Wild Magnolia (dead link)
[back to top]
accu.org - book reviews, visit this place to find out more about books before you buy
|* Calculus and Analytic Geometry (7th edition)||by George B. Thomas and Ross L. Finney||ISBN: 0-201-17069|
|* IBM PC Assembly Language and Programming||by Peter Abel||ISBN: 0137566107|
|* Asssembly Language Programming for the IBM Personal Computer||by David Bradley||ASIN: 0130491713 or ASIN: 0130491896|
|The Microsoft(R) Guide for Assembly Language and C Programmers||by Ray Duncan||ASIN: 1556151578|
|* IBM PC & XT Assembly Language : A Guide for Programmers||by Leo Scanlon||ASIN: 0893035750 or ISBN: 5-256-00956-7|
|Assembly Language Programming for the IBM PC AT||by Leo Scanlon||ASIN: 0893034843|
|IBM PC assembly language : a guide for programmers||by Leo Scanlon||ASIN: 0893032417|
|Assembler 8086/8088/80286||by Leo Scanlon||ISBN: 83-85515-03-8|
|80286 Assembly Language on Ms-DOS Computers||by Leo Scanlon||ASIN: 0893036188|
|* Assembly Language for the PC||by John Socha, Peter Norton||ASIN: 1566860164|
|Peter Norton's Assembly language book for the IBM PC||by Peter Norton||ASIN: 0136619010 or ASIN: 0136624537|
|Advanced Assembly Language||by Steven Holzner, Peter Norton||ASIN: 0136587747 or ASIN: 0136630146|
|The Peter Norton Programmer's Guide to the IBM PC||by Peter Norton||ASIN: 0914845462|
|Inside the IBM PC : Access to Advanced Features & Programming Techniques||by Peter Norton||ASIN: 0893035610|
|* Mastering Turbo Assembler||by Tom Swan||ISBN: 0672305267|
|* The Zen of Code Optimization||by Michael Abrash||ISBN: 1-883-57703-9|
|* Protected Mode Software Architecture (The PC System Architecture Series)||by Tom Shanley||ISBN: 020155447X|
|Programmer's technical reference for MSDOS and the IBM PC||by Dave Williams||ISBN: 1-850858-199-1|
|Advanced MS DOS Programming||by Ray Duncan||ISBN: 0-914845-77-2|
|* Programmer's Problem Solver for the IBM PC, XT & AT||by Robert Jourdain||ASIN/ISBN: ?|
|Programmer's Problem Solver (The Peter Norton Programming Library)||by Robert Jourdain||ASIN: 013720194X|
|* The Undocumented PC (The Andrew Schulman Programming)||by Frank Van Gilluwe||ASIN: 0201622777|
|* The Undocumented PC : A Programmer's Guide to I/O, Cpus, and Fixed Memory Areas||by Frank Van Gilluwe||ISBN: 0201479508|
|* The Indispensable PC Hardware Book : You Hardware Questions Answered||by Hans-Peter Messmer||ISBN: 0201403994|
|* Programmers Guide to PC(R) and PS/2(TM) Video Systems. Maximum Performance from EGA, VGA, HGC and MCG.||by Richard Wilton||ISBN: 1-55615-103-9|
|* Programmer's Guide to the EGA and VGA Cards||by Richard Ferraro||ISBN: 0-201-57025-4|
|* The Zen of Graphics Programming||by Michael Abrash||ASIN: 188357708X|
|* Graphics Programming Black Book. Special Edition||by Michael Abrash||ISBN: 1-57610-174-6|
|* Introduction to Computer Graphics||by James Foley, Andries Van Dam, Steven Feiner||ISBN: 0201609215|
|Fundamentals of Interactive Computer Graphics (The Systems Programming Series)||by James Foley||ASIN: 0201144689|
|* Computer Graphics: Principles and Practice||by James Foley, Andries Van Dam, Steven Feiner, John Hughes||ASIN: 0201121107|
|* Computer Graphics : Principles and Practice (2nd edition, in C)||by James Foley, Andries van Dam, Steven Feiner, John Hughes||ISBN: 0201848406|
|* 3D Computer Graphics (3rd edition)||by Allan Watt||ISBN: 0201398559|
|* Design of the Unix Operating System||by Maurice Bach||ISBN: 0-13-201757-1 025 or ISBN: 0132017997|
|* Realtime Operating Systems Concepts and Implementation of Microkernels for Embedded Systems||by Jurgen Sauermann, Melanie Thelen||ASIN/ISBN: none|
|* An Operating Systems Vade Mecum||by Raphael Finkel||ASIN: 0136379508|
|* MMURTL V1.0 (Developing Your Own 32 Bit Computer Operating System)||by Richard Burgess||ISBN: 1588530000|
|* Operating Systems: Design And Implementation (1st edition)||by Andrew Tanenbaum||ISBN: 0-13-637406-9|
|* Operating Systems: Design And Implementation (2nd edition)||by Andrew Tanenbaum, Albert Woodhull||ISBN: 0136386776|
|* Distributed Operating Systems||by Andrew Tanenbaum||ISBN: 0132199084|
|* Modern Operating Systems (1st edition)||by Andrew Tanenbaum||ISBN: 0135881870|
|* Modern Operating Systems (2nd edition)||by Andrew Tanenbaum||ISBN: 0130313580|
|* Compilers : Principles, Techniques, and Tools||by Alfred Aho, Ravi Sethi, Jeffrey Ullman||ISBN: 0201100886|
|* The C++ Programming Language (Special Edition)||by Bjarne Stroustrup||ISBN: 0-201-70073-5
|* Fundamentals of Digital Logic with VHDL Design||by Stephen Brown and Zvonko Vranesic||ISBN: 0-07-235596-4|
|* Signals & Systems (2nd edition)||by Alan V. Oppenheim, Alan S. Wilsky with S. Hamid Nawab||ISBN: 0-13-814757-4|
|* Probability, Random Variables, and Random Signal Principles (3rd edition)||by Peyton Z. Peebles||ISBN: 0-07-049-273-5|
|* Communication Systems (4th edition)||by Simon Haykin||ISBN: 0-471-17869-1|
|* Communication Systems Engineering||by John G. Proakis, Masoud Salehi||ISBN: 0131589326|
|* A Course in Digital Signal Processing||by Boaz Porat||ISBN: 0-471-14961-6|
Note: items marked with an asterisk have been read or reviewed myself
and found useful.
Even though many of these books are outdated and out of print, they really helped me and many other people a lot.
You can still find them in zShop on www.amazon.com, perhaps on www.ebay.com and for sure in used book stores for not a lot of money.
[back to top]