Books, files, documentation you may find useful. Remember that for generic names i use the ms-dos wildcards ? = any single character * = any string of characters Tech docs: Search in the nearest FTP site on Internet the following files: vgadoc?.zip (mine is vgadoc3.zip ) A collection of files describing most of the graphics cards and video chipsets from old ISA bus versions to VL-BUS and PCI. Useful to identify the card you have and devenlop specific XVD video drivers. inter???.zip (mine are inter43a.zip ... inter43d.zip ) THIS IS A "MUST HAVE IT"!!!! The Ralph Brown Interrupt List version 4.3 Describes nearly all the bios calls available on pc-compatibles, some description are quite spartan but this is a must for programmers. Look in the ports.lst for description of i/o ports (n.b. some things are wrong, but what the heck!) LOOK IN 86bugs.lst TO GET THE MOST COMPLETE LIST OF CPU BUGS I FOUND, together with it (in an included zipped file) you will find a set of programs capable to fully check your cpu Look into x2ftp.oulu.fi, there is a file containing A COMPLETE BOOK ON 386 PROGRAMMING (386.zip , 386book.zip, intel.zip or something like that) with drawings too! [character-line drawings] If you know very little about protected mode this is the file to get. Look in your nearby library for DATA SHEETS of INTEL chips (manuals packed with schematics and info about chips and cpus) look for the chip numbers cited in ports.lst to get up-to-date informations about specific chips (i.e. the DMA chips and the PIC and PIT chips), so you can understand how they work. OR Look on x2ftp.oulu.fi for the files describing DMA,timer programming. Theoric docs: Well, you need to understand how to optimize code (look into optimize.txt for specific intel cpu optimizations) and how to optimize algorithms ( with a little of knowledge you can code things running circles around "classic" algorithms). There are lots of books about it. Then, if you don't know what a finite state machine is (sometimes called automata, automaton, sequential machine, etc. etc.) read a book about them, f.s.m and lookup tables lets you perform lots of the "magic" needed to make small-but-great programs. A little of theory about how we see and hear is useful if you want to "cut corners" without losing too much sound/video impact, this is harder to find. I've included some things in the howto.txt file, but i don't know if what i wrote is easy to understand (it's easy to me, but i learned it in little steps, not all at once).