Table of Content Part I: Assembly Language Programming on the IBM PC, PS and Compatibles Introduction to Computing 1. The 80x86 Microprocessor 2. Assembly Language Programming 3. Arithmetic and Logic Instructions and Programs 4. BIOS and DOS Programming in Assembly and C 5. Macros and the Mouse 6. Signed Numbers, Strings, and Tables 7. Modules; Modular and C Programming 8. 32-Bit Programming for 386 and 486 Machines Part II: Design and Interfacing of the IBM PC, PS and Compatibles 9. 8088/86 Microprocessors and Supporting Chips 10. 80286 Microprocessor and Supporting Chips 11. Memory and Memory Interfacing 12. I/0, 8255 and Device Interfacing 13. 8253/54 Timer and Music 14. Interrupts and the 8259 Chip 15. Direct Memory Accessing; the 8237 DMA Chip 16. Video and Video Adapters 17. Serial Data Communication and the 16550/8250/51 Chips 18. Keyboard and Printer Interfacing 19. Floppy Disks, Hard Disks, and Files 20. The 80x87 Math Coprocessor 21. 386 Microprocessor: Real vs. Protected Mode 22. High-Speed Memory Interfacing and Cache 23. 486, Pentium, Pentium Pro and MMX 24. MS DOS Structure, TSR, and Device Drivers 25. MS DOS Memory Management 26. IC Technology and System Design 27. ISA, EISA, MCA, Local, and PCI BUS 28. Programming DOS, BIOS, Hardware with C/C++ Appendices: A: Debug Programming B: 80x86 Instructions and Timing C: Assembler Directives and Naming Rules D: DOS Interrupt 21H and 33H Listing E: BIOS Interrupts F: ASCII Codes G: I/O Address Maps H: IBM PC/PS BIOS Data Area I: Data Sheets