Table of Contents
Quotation vii
Preface ix
Introduction xiii
Part 1 1
Chapter 1. Development Chain 3
1.1. Layers of languages, stages of development and tools 3
1.1.1. Levels of languages 4
1.1.2. Development stages 6
1.1.3. Mixed-language programming 8
1.1.4. Compatibility and software interfaces 10
1.2. Fundamental software tools for development 13
1.2.1. Assembler 13
1.2.2. Linker 19
1.2.3. Loader/launcher 21
1.2.4. Disassembler 22
1.3. Assembly language 22
1.3.1. Software development methodology 25
1.3.2. Standardization of assembly language 25
1.3.3. Structure of a program 25
1.3.4. Macro-instructions 30
1.3.5. Addressing 32
1.4. Conclusion 32
Chapter 2. Debugging and Testing 33
2.1. Hardware support 33
2.1.1. Generic electronic boards 33
2.1.2. Programmers 36
2.2. Debugging 38
2.2.1. Evolution 39
2.2.2. Functionality 39
2.2.3. Hardware emulators 43
2.2.4. Software debugging 45
2.2.5. Hardware support and debugging interfaces 51
2.2.6. Remote debugging and virtualization 59
2.2.7. Summary 60
2.3. Testing 66
2.4. Conclusion 66
Part 2 69
Chapter 3. Changes in the Organization of the Earliest Microcomputers 71
3.1. Apple II 71
3.2. IBM PCs 75
3.2.1. The original PC 76
3.2.2. The XT 79
3.2.3. The AT 81
3.3. Chipset 87
3.3.1. Definition 88
3.4. Motherboard architectures 100
3.4.1. Form factors 100
3.4.2. Current motherboard architecture 103
3.5. Evolution of microcomputer firmware 104
3.5.1. Definition 104
3.5.2. Apple II 104
3.5.3. PC BIOS 105
3.5.4. Open firmware 109
3.6. Conclusion 109
Conclusion of Volume 5 111
Exercises 113
Acronyms 115
References 135
Index 143