Links

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
More links
Books

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

CFXweb

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.

Phoenix Technologies - 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

PCI SIG

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]

Some 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 FAQ


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

To subscribe:

Send: pmode-l-request@fys.ruu.nl
Subject: none
Body: subscribe pmode-l email@yourisp.name (Note that this is pmode-l (ell) not pmode-1 (one))

Use:

pmode-l@fys.ruu.nl to send email to others in the list.

To unsubscribe:

Send: pmode-l-request@fys.ruu.nl
Subject: none
Body: unsubscribe pmode-l email@yourisp.name


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

Creating Your 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...

DJGPP - 32-bit FREE C/C++ compiler for DOS(DPMI) / Linux / ... (IDE, Debugger, ...)
Newsgroup related to DJGPP: comp.os.msdos.djgpp

Allegro - 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.

Pascal 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 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

Small C

[back to top]

Plus some old but good compilers for free

Turbo 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.

Turbo 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

DSP Tutorial

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]

More links

Aaron Gray's Web Space (dead link)

Wild Magnolia (dead link)

Sandpile

[back to top]

Books

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
(Russian: 5-7989-0223-4)
* 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]



Hosted by uCoz