100% found this document useful (1 vote)
38 views

PDF Logic Gates, Circuits, Processors, Compilers and Computers 13th Edition Jan Friso Groote download

The document promotes the ebook 'Logic Gates, Circuits, Processors, Compilers and Computers 13th Edition' by Jan Friso Groote, available for download on ebookmeta.com. It outlines the book's focus on understanding computer systems through basic logic components and their applications in building computers. Additionally, it lists other recommended ebooks available for instant download.

Uploaded by

arijafussydz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
38 views

PDF Logic Gates, Circuits, Processors, Compilers and Computers 13th Edition Jan Friso Groote download

The document promotes the ebook 'Logic Gates, Circuits, Processors, Compilers and Computers 13th Edition' by Jan Friso Groote, available for download on ebookmeta.com. It outlines the book's focus on understanding computer systems through basic logic components and their applications in building computers. Additionally, it lists other recommended ebooks available for instant download.

Uploaded by

arijafussydz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Get the full ebook with Bonus Features for a Better Reading Experience on ebookmeta.

com

Logic Gates, Circuits, Processors, Compilers and


Computers 13th Edition Jan Friso Groote

https://ebookmeta.com/product/logic-gates-circuits-
processors-compilers-and-computers-13th-edition-jan-friso-
groote/

OR CLICK HERE

DOWLOAD NOW

Download more ebook instantly today at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Cambridge IGCSE and O Level History Workbook 2C - Depth


Study: the United States, 1919-41 2nd Edition Benjamin
Harrison
https://ebookmeta.com/product/cambridge-igcse-and-o-level-history-
workbook-2c-depth-study-the-united-states-1919-41-2nd-edition-
benjamin-harrison/
ebookmeta.com

Formal Methods for Industrial Critical Systems 27th


International Conference FMICS 2022 Warsaw Poland
September 14 15 2022 Proceedings Jan Friso Groote
https://ebookmeta.com/product/formal-methods-for-industrial-critical-
systems-27th-international-conference-fmics-2022-warsaw-poland-
september-14-15-2022-proceedings-jan-friso-groote/
ebookmeta.com

Electronics; Circuits, Amplifiers and Gates; Second


Edition D V Bugg

https://ebookmeta.com/product/electronics-circuits-amplifiers-and-
gates-second-edition-d-v-bugg/

ebookmeta.com

Death of a Bookseller 1st Edition Alice Slater

https://ebookmeta.com/product/death-of-a-bookseller-1st-edition-alice-
slater/

ebookmeta.com
Web Data Mining Exploring Hyperlinks Contents and Usage
Data First Edition Bing Liu

https://ebookmeta.com/product/web-data-mining-exploring-hyperlinks-
contents-and-usage-data-first-edition-bing-liu-2/

ebookmeta.com

From Prohibited Immigrants to Citizens The origins of


citizenship and nationality in South Africa 1st Edition
Jonathan Klaaren
https://ebookmeta.com/product/from-prohibited-immigrants-to-citizens-
the-origins-of-citizenship-and-nationality-in-south-africa-1st-
edition-jonathan-klaaren/
ebookmeta.com

Deep Reinforcement Learning with Python With PyTorch


TensorFlow and OpenAI Gym 1st Edition Nimish Sanghi

https://ebookmeta.com/product/deep-reinforcement-learning-with-python-
with-pytorch-tensorflow-and-openai-gym-1st-edition-nimish-sanghi-2/

ebookmeta.com

Cambridge English Exam Booster with Answer Key for


Advanced 1st Edition Carole Allsop

https://ebookmeta.com/product/cambridge-english-exam-booster-with-
answer-key-for-advanced-1st-edition-carole-allsop/

ebookmeta.com

Register-based Statistics: Registers and the National


Statistical System 3rd Edition Britt Wallgren

https://ebookmeta.com/product/register-based-statistics-registers-and-
the-national-statistical-system-3rd-edition-britt-wallgren/

ebookmeta.com
Tempting Fate Black Shamrocks MC Australia Book 1 A dark
and angsty love triangle romance Bella Faust Kylie Hillman

https://ebookmeta.com/product/tempting-fate-black-shamrocks-mc-
australia-book-1-a-dark-and-angsty-love-triangle-romance-bella-faust-
kylie-hillman/
ebookmeta.com
Jan Friso Groote
Rolf Morel
Julien Schmaltz
Adam Watkins

Logic Gates,
Circuits,
Processors,
Compilers and
Computers
Logic Gates, Circuits, Processors, Compilers
and Computers
Jan Friso Groote Rolf Morel
• •

Julien Schmaltz Adam Watkins


Logic Gates, Circuits,


Processors, Compilers
and Computers

123
Jan Friso Groote Rolf Morel
Department of Mathematics Department of Computer Science
and Computer Science University of Oxford
Eindhoven University of Technology Oxford, UK
Eindhoven, Noord-Brabant, The Netherlands

Julien Schmaltz Adam Watkins


Department of Mathematics Department of Mathematics
and Computer Science and Computer Science
Eindhoven University of Technology Eindhoven University of Technology
Eindhoven, Noord-Brabant, The Netherlands Eindhoven, Noord-Brabant, The Netherlands

ISBN 978-3-030-68552-2 ISBN 978-3-030-68553-9 (eBook)


https://doi.org/10.1007/978-3-030-68553-9
© The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature
Switzerland AG 2021
This work is subject to copyright. All rights are solely and exclusively licensed by the Publisher, whether
the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and
transmission or information storage and retrieval, electronic adaptation, computer software, or by similar
or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are exempt from
the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this
book are believed to be true and accurate at the date of publication. Neither the publisher nor the
authors or the editors give a warranty, expressed or implied, with respect to the material contained
herein or for any errors or omissions that may have been made. The publisher remains neutral with regard
to jurisdictional claims in published maps and institutional affiliations.

This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
This book is for everyone who wants to
understand how a computer can do such
marvellous calculations, when it is
essentially only constructed of simple logic
gates.
Preface

Computers have revolutionised the world in well within a century. Dozens of com-
puter processors have been built for every inhabitant of this earth, and this number is
rapidly increasing. Most people have little idea of how a computer goes about doing
its job. And there is a reason for it. Computers have been designed such that the in-
ternal complexity is hidden, not only for those that use computers but even for those
who design computer controlled systems, such as hardware engineers, programmers
and maintenance staff.
Are computers complex? The answer is both yes and no. Let us first look into
the reasons why the answer is yes. Computers are constructed with integrated cir-
cuits such as micro-processors. These processors can contain well over a billion
components, such as transistors and resistors, all connected with each other in an
intricate pattern. And against all odds, this number of components is still growing
very rapidly, quickly increasing the complexity of these integrated circuits.
All these systems are man made. This also adds to the complexity as many in-
dependent development teams made their own designs. In the history of computer
design virtually any conceivable idea has been implemented, and traces of many of
these ideas can still be found almost anywhere in computers. The need for back-
ward compatibility makes it hard to remove such ideas. On top of all this hardware
many layers of software have been implemented. This makes computer systems very
complex objects indeed.
But from a different perspective computers are not at all complex. Many of the
essential ideas behind the construction of computers are actually quite straightfor-
ward. The purpose of this book is to give a concise, but precise, description of the
essence of a computer. After finishing this book the reader should in principle be
able to build a computer system from elementary logic components with most of
the features that modern computers have, including an elementary operating system
and a compiler.
The book starts out with the logic components, and-, not-, or-, and nand-gates,
that are constructed from transistors. It is explained how such gates can be used to
implement any logic function over the boolean values true and false given by truth
tables. These are called combinatorial circuits.

vii
viii Preface

Numbers can be represented by sequences of these boolean values. Not only


positive numbers but also negative numbers using the so-called two’s complement
encoding. Using logic gates we can build circuitries that calculate addition, sub-
traction, multiplication and division on these numbers. Actually, we can implement
logic circuits to implement any function on numbers.
An important property of computer systems is that they can store and recall data.
We provide the notion of a finite state machine as an abstraction of a system that can
interact with its environment and store information about such interactions. Such
finite state machines can be implemented using flip-flops and combinatorial circuits.
Using flip-flops it is also possible to build registers, where computer words, rep-
resenting numbers, instructions and addresses, can be stored. Using registers and a
finite state machine it is not particularly difficult to construct a computer that can
execute machine instructions or, slightly more abstractly, assembly instructions that
form the heart of the execution of a computer program. We show how programs
can be written in assembly code, and we even show how a high-level programming
language can be compiled into assembly code. This should give the reader a deep
understanding about how their Java or C++ programs are executed.
As so many digital components can be packed inside a computer, advanced
mechanisms have been added to increase speed and usability. Where initially mem-
ories were relatively slow to access, they have been sped up by adding caches. Using
interrupts it became possible to let a single processor execute multiple programs si-
multaneously, serving multiple users at the same time, avoiding that the computer
would run idle between tasks. And the single processor machine has been replaced
by multiple core computers allowing us to run multiple programs simultaneously.
This increased complexity is nicely shielded from the users by the operating
system, together with some hardware support. By using memory protection multiple
programs can run simultaneously on a computer in such a way that they cannot
access each other’s data. Using virtual memory, programs can be written without
having to be concerned about the actual memory layout, where it is even possible to
use more memory than is physically available. By providing shielding layers around
the hardware it is not possible that ordinary programs damage or abuse the hardware
infrastructure. This makes modern computers pleasant and secure environments to
work in. We will explain the major ideas underlying these concepts.
The Raspberry Pi is very suitable as an experimental platform that stimulates to
understand how modern computers work internally. It can be used both as a high-
level computer and as a platform for low-level programming. It uses the elegant
ARM processor which is an extension of the simple processor that we explain in de-
tail in Chapter 4. We give an overview of the structure of the 32-bit ARM processor
and its core instruction set to ease experimentation.

Intended audience. This book is written as an undergraduate level course to help


students to understand what a computer is essentially doing. For this reason there
are many exercises that all have an answer at the end of this book. It is assumed
that the reader has a rudimentary understanding of electronics (resistor, capacitor,
transistor). Some experience in common programming languages such as Java or
Preface ix

C++ is needed. Furthermore, the reader is assumed to have elementary mathemati-


cal insight to understand basic theorems and proofs, for instance with induction.

Interdependency of the chapters. Chapters 1 to 6 all depend on each other, and


should be worked through sequentially. Chapter 7 does not require Chapter 6. The
final chapter, Chapter 8, depends on Chapter 7.

Further reading. There are many books written about the structure of computer
systems [24, 25, 30, 29, 32, 22, 13, 21], which generally cover the structure of
computer systems more extensively, or focus on certain aspects, such as circuits, or
assembly programming. This book provides a minimal but complete exposition of
all aspects of a computer system such that the essence of how a computer works can
be understood completely.

Acknowledgements. This book has been written to support the course Computer
Systems (2IC30) at Eindhoven University of Technology, The Netherlands. The
course was previously given by Michael Franssen and Rob Hoogerwoord, and the
book is based on the structure of the course as developed by them.
Thanks go to the following people for assisting us in writing this book. Special
thanks go to Bram Bosch who formally verified many of the circuits, leading to
numerous improvements [8], and Alan Mycroft for his many useful comments com-
ing from proof reading large parts of this book. We are also grateful for the helpful
remarks by Max Crone, Nikola Djurendic, Bas van Geffen, Bas van Hoeflaken,
Quinten van Eijsden, Mohamed Hemza, Anneke Huijsmans, Christine Jacob, Erik
Luit, Sebastiaan Peters, Jeroen van Riel, Anson van Rooij, Richard Verhoeven, Sten
Wessel and Hans Zantema on drafts of this book.

Nederwetten, Oxford, Vught, Eindhoven, Jan Friso Groote


June 2021 Rolf Morel
Julien Schmaltz
Adam Watkins
Contents

1 Basic components and combinatorial circuits . . . . . . . . . . . . . . . . . . . . . . 1


1.1 The three basic logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Other logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Physical realisation of gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 MOSFET transistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 CMOS gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.3 Switching delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.4 Moore’s law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Algebraic manipulation and duality . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Two-layer circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Karnaugh maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 Functional completeness of the nand gate . . . . . . . . . . . . . . . . . . . . . . 20
1.8 Multiplexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2 Numbers, basic circuits, and the ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


2.1 Representation of unsigned numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Two’s complement representation of integers . . . . . . . . . . . . . . . . . . . 27
2.3 Adding unsigned numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4 Adding two’s complement numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6 Comparing unsigned and two’s complement numbers . . . . . . . . . . . . 36
2.7 Arithmetic circuits: addition and subtraction . . . . . . . . . . . . . . . . . . . . 38
2.7.1 Addition: the half- and full adder . . . . . . . . . . . . . . . . . . . . . . . 38
2.7.2 Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.7.3 The carry look-ahead adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.8 The arithmetic logic unit (ALU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.9 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.10 Alternative representations for numbers . . . . . . . . . . . . . . . . . . . . . . . . 46
2.10.1 Sign and magnitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.10.2 One’s complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

xi
xii Contents

2.10.3 Floating-point numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


2.10.4 Parity bits and Hamming codes. . . . . . . . . . . . . . . . . . . . . . . . . 48
2.10.5 Gray code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.11 Representation of character sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.12 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3 Sequential circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1 A one-time latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2 The set-reset flip-flop/set-reset latch . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3 The D-latch/D-flip-flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5 Finite state machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5.1 An example state machine with four states . . . . . . . . . . . . . . . 61
3.5.2 Encoding the state machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5.3 Realising the state machine using logic gates and flip-flops . 63
3.6 Random access memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.7 Finite state machines to control registers . . . . . . . . . . . . . . . . . . . . . . . 68
3.8 Hardware description languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4 An elementary processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1 The general structure of the processor . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 The instruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3 The instruction fetch and the register transfer language . . . . . . . . . . . 81
4.4 The format of machine code instructions . . . . . . . . . . . . . . . . . . . . . . . 83
4.5 Implementing instructions on the processor . . . . . . . . . . . . . . . . . . . . . 85
4.6 Optimisation of the execution of instructions . . . . . . . . . . . . . . . . . . . . 88
4.7 More advanced instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.9 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5 Assembly programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1 Labels and comments, EQU and CONS . . . . . . . . . . . . . . . . . . . . . . . . 99
5.2 Arithmetic calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3 A timed loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4 Basic data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4.1 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4.2 Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.4.3 Linked lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.5 Memory layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.5.1 Allocation dependence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.5.2 Relocatable code and data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6 Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.1 Saving the return address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Contents xiii

5.6.2 Returning values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115


5.6.3 Passing arguments on the stack . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.6.4 Local variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.7 Interrupt routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.7.1 Interrupt handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.7.2 Installing handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.7.3 An example: displaying keyboard strokes . . . . . . . . . . . . . . . . 122
5.8 Multitasking and multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.8.1 Timer interrupts and context switching . . . . . . . . . . . . . . . . . . 125
5.8.2 Data structures for multitasking . . . . . . . . . . . . . . . . . . . . . . . . 126
5.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

6 Compiling higher-level languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131


6.1 A simple higher-level programming language . . . . . . . . . . . . . . . . . . . 132
6.2 Context free grammars and parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.3 Type checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.4 Compilation scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.5 Compiler optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.6 Compilation of other language constructs . . . . . . . . . . . . . . . . . . . . . . 144
6.6.1 Input/output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.6.2 More complex data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.6.3 Parameter passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.6.4 Classes and objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.6.5 Flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.6.6 Exception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

7 Computer organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


7.1 Starting a computer system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.1.1 The Basic Input Output System and the Power On Self Test . 150
7.1.2 The boot loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.1.3 Unified Extensible Firmware Interface . . . . . . . . . . . . . . . . . . 152
7.2 Operating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.2.1 Processor modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.2.2 System calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.3 Memory organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.3.1 Virtual memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.3.2 Replacement policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.3.3 Translation look aside buffers . . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.3.4 Code, stack, data and other segments . . . . . . . . . . . . . . . . . . . . 162
7.4 Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.4.1 Placement policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.5 Multi- and many-core processor machines . . . . . . . . . . . . . . . . . . . . . . 166
7.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
xiv Contents

8 The Raspberry Pi and the ARM processor . . . . . . . . . . . . . . . . . . . . . . . . 169


8.1 Raspberry Pi overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2 The ARM architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.2.1 ARM architecture instruction sets . . . . . . . . . . . . . . . . . . . . . . 172
8.2.2 ARM architecture profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.2.3 ARM security modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.3 Virtual memory (the memory management unit) . . . . . . . . . . . . . . . . . 174
8.3.1 Memory attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.3.2 Memory attributes and the VMMU . . . . . . . . . . . . . . . . . . . . . 176
8.3.3 The system memory management unit . . . . . . . . . . . . . . . . . . . 176
8.4 The ARM instruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.4.1 Instruction groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
8.4.2 Setting flags and conditional execution . . . . . . . . . . . . . . . . . . 184
8.4.3 Arguments and addressing modes . . . . . . . . . . . . . . . . . . . . . . 186
8.5 The ARM calling convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.6 The use of system calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

A An extended instruction set for the simple processor . . . . . . . . . . . . . . . 195

B The ARM 32-bit instruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

C Syntax of the register transfer language . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Answers to the exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203


D.1 Answers for Chapter 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
D.2 Answers for Chapter 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
D.3 Answers for Chapter 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
D.4 Answers for Chapter 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
D.5 Answers for Chapter 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
D.6 Answers for Chapter 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
D.7 Answers for Chapter 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
D.8 Answers for Chapter 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Chapter 1
Basic components and combinatorial circuits

In this chapter we introduce logic gates because they are very useful to describe dig-
ital hardware such as computer processors. This was observed by Claude Shannon1
in his master thesis in 1937 [28]. We show how such gates are constructed using
electronic components, such as transistors, and illustrate how circuits with more
complex functionality can be constructed efficiently from such elementary gates.

1.1 The three basic logic gates

In Figure 1.1 we find the symbols for three basic logic gates from which digital
circuits are built. Each logic gate, or gate for short, is a small hardware component
that implements a simple logic function from its inputs to its output. The and and
or gates have two inputs and one output. The not gate has one input and one output.
A truth table defines the relationship between the input and the output of that gate.
A 0 generally means a voltage of 0 V and a 1 represents a higher voltage, for in-
stance 5 V, although today lower voltages, such as 3.3 V, are typical. We discuss the
practical realisation of logic gates and their voltages and current flows later in this
chapter.
From the truth table it is obvious that the and gate has an output of 1 exactly if
both inputs are 1. For the or gate, the output is 1 if at least one of the inputs is 1.
For the not gate the output is 1 exactly when the input is 0. Because the not gate is
a simple gate occurring often it is also written as a single small circle, in particular
when joined to another gate.
Using these three basic gates more complex circuits can be made, for instance
circuits that add or multiply numbers. When gates are connected such that an output
of one gate is never connected to one of its inputs, not even via other gates, the
circuit is called combinatorial. In this chapter we restrict ourselves to combinatorial
1 Claude Elwood Shannon (1916-2001) was a mathematician and an electrical engineer. He
founded the field of information theory, and worked as a cryptanalyst on code breaking and se-
cure communication.

© The Author(s), under exclusive license to Springer Nature Switzerland AG 2021 1


J. F. Groote et al., Logic Gates, Circuits, Processors, Compilers and Computers,
https://doi.org/10.1007/978-3-030-68553-9_1
2 1 Basic components and combinatorial circuits

in1 in2 out in1 in2 out in out


0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1

in1 in1 in out


out out
in2 in2 in out

The and gate. The or gate. The not gate.

Fig. 1.1 Three basic logic gates

circuits. Chapter 3 deals with sequential circuits where outputs are connected to
inputs.
A simple but important component is a two-way multiplexer. It has three inputs
in1 , in2 and sel and one output out. If the selector sel is 0, the output out equals
in1 and if sel is 1, the output is equal to in2 . The truth table that reflects this is
depicted in Figure 1.2 on the left. The circuit representing this function is given on
the right. Note that there is a not gate just before the lower input of the upper and
gate, drawn as a small circle. Note also that input sel is connected to two input wires.
It is common to connect wires to the inputs of several gates, but there is a physical
limit to the number of gates that a single wire can drive.

in1 in2 sel out in1


0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1 out
1 0 0 1
1 0 1 0 sel
1 1 0 1
1 1 1 1 in2

Fig. 1.2 The truth table and the combinatorial circuit for a two-input multiplexer

These graphical representations of gates are useful when the circuits are small.
When the circuits become more complex a description in textual form tends to work
better. Therefore, in text we write in1 ∧in2 to represent the output of an and gate.
Alternative notations that one can encounter are in1 ·in2 , in1 ∗in2 and in1 &in2 . The
or gate is denoted as in1 ∨in2 , and also by in1 +in2 and in1 |in2 . The not gate is
denoted as ¬in, but also as in, and !in. The notations with ∧, ∨ and ¬ are more
common in text about logics and are referred to as the conjunction, disjunction,
and negation operators, respectively. The other symbols are more common in the
electronics literature.
1.1 The three basic logic gates 3

Exercise 1.1.1. Using logic notation, give the textual representation of the two-input
multiplexer depicted in Figure 1.2.
Exercise 1.1.2. Consider a circuit with three inputs in1 , in2 and in3 and one output.
Make a truth table in which the output is 1 only if exactly one input is equal to 0.
E.g., input 011 gives output 1, and input 111 produces 0 as output. Draw a circuit
realising this function.
Exercise 1.1.3. Implement an and gate with three inputs and a three-input or gate
using only the basic and, or and not gates. Generalise to an n input and gate and n
input or gate. How many basic gates are necessary? Can you give a proof?

in1 in2 out in1 in2 out in out


0 0 1 0 0 1 0 0
0 1 1 0 1 0 1 1
1 0 1 1 0 0
1 1 0 1 1 0

in1 in1
out out in out
in2 in2
The nand gate. The nor gate. The buffer gate.

Fig. 1.3 The nand, nor, and buffer basic logic gates

in1 in2 out in1 in2 out


0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 1

in1 in1
out out
in2 in2
The xor gate. The xnor gate.

Fig. 1.4 The xor and xnor logic gates


Another Random Scribd Document
with Unrelated Content
The Project Gutenberg eBook of Pogo Planet
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: Pogo Planet

Author: Donald A. Wollheim

Illustrator: Hannes Bok

Release date: March 11, 2024 [eBook #73148]

Language: English

Original publication: New York, NY: Columbia Publications, Inc, 1941

Credits: Greg Weeks, Mary Meehan and the Online Distributed


Proofreading Team at http://www.pgdp.net

*** START OF THE PROJECT GUTENBERG EBOOK POGO


PLANET ***
POGO PLANET

By MARTIN PEARSON

(Author of "Cosmos Eye", "The Unfinished City", etc.)

Introducing that modest little superman, that shrinking


violet of destiny, Ajax Calkins, and a world where you
had to hop, in some way, to get where you wanted to go!

[Transcriber's Note: This etext was produced from


Future combined with Science Fiction October 1941.
Extensive research did not uncover any evidence that
the U.S. copyright on this publication was renewed.]
As my ship hit the darkness that was the outer atmosphere of
Midplanet, I thrilled to the thought that I, Ajax Calkins, had at last
achieved my rightful place among the pioneers of space. Even when
my ship bounced on the green soil, flew end over end upwards to
come down ka-plunk in the wrong side of a gooey thick swamp, I
exulted that I was the first in possession of a major planet that had
been overlooked by the rest of the interplanetary crowd.
As I picked myself up from the midst of a pile of miscellaneous
equipment, hiking ropes, elephant guns, para-rays, spare shoes and
cans of Unifood, and rubbed my bruised arms and head, I thought of
how many millions would give their all to be in my place.
Midplanet! How the whole system had thrilled when its discovery
was finally determined last year! For decades science had known
there was a planet between Saturn and Uranus, ever since Pickering
had proved the perturbations of those planets' orbits pointed to a
body between them. Yet telescopes had always failed to detect it.
Few had taken it seriously. Yet, it was there.
It was discovered finally by electromagnetic induction coils at the
Mars Prime Observatory. It was rechecked from Flagstaff and
searched for by Tycho Eye. The latter could not see it. It was still
invisible, a strangely dark world.
It was then that I conceived my great idea. For years I had secretly
nourished my grievance against the world into which I found myself
born. All the great heroic acts had been done. The major planets
pioneered, Gretelspoon had at last opened up Pluto, and there was
nothing left for me to do to show that I too was made of godlike stuff.
But Midplanet ... there was my chance!
Hastily I outfitted a small spaceship with all that I would need. Hastily
but craftily I had the orbits charted and the controls processed. My
destiny was always certain for had it not been my destiny to come
into a large fortune early in life? Surely this had been ordained?
Then I had hurtled through space towards Midplanet alone, secretly.
The world would not know of my triumph until I returned to tell them
and receive their adoring plaudits. Months went past while I endured
the hardships of space-sickness, the cosmitch, and voidal ague.
At last Midplanet loomed dark in the celestial panorama. Still it cast
no light, still it was a black orb sailing silently on its mighty orbit,
unattended by any moon.
Finding that my ship was irrevocably destined to hit the planet, I
determined to land rather than turn back. So it came about that I
plunged down through the darkness and found to my amazement
that after several hundred yards of opaque gaseous envelope, I
emerged into brilliant blue sky and rapidly approached the green
surface.
After the crash and after I had picked myself up and rubbed arnica
on my black-and-blue spots, the problem of the dark planet turned
light demanded my attention.
I realized that some strange gas or mixture of gases chanced to
make up the outermost strata of the atmosphere of Midplanet. A
gaseous compound that absorbed light one way but would not pass
it once it had struck the surface of the planet. So that above the
planet remained swathed in lightless mystery, while below the sky
seemed to radiate blue and the lighting and warmth was held in to
appear as a beautiful spring day on Earth.
This then had been the circumstance which had kept Midplanet
veiled from the sight of man until I, Ajax Calkins, tore aside the veil. I
felt a glow of warmth suffuse my body with pride for this
accomplishment.

Buckling a para-ray to my belt (for I did not think heavier weapons


were necessary in this peaceful looking scene), I stepped to the door
of the ship and forced it open. At my feet the swamp oozed and
gurgled. A scant distance away the bank of solid ground lay. I leaped
the distance and I am proud to say misjudged it by a mere foot or so.
Dragging myself out of the thick gummy mess I clambered to the
bank of the strangely greenish soil, placed one foot forward,
scowled, and raised my right hand.
"I hereby take possession of this land in my name, Ajax Calkins, and
proclaim it subject to my will as Emperor." This I pronounced with
firm dignity becoming a Magellan or a Cortez.
You may seem surprised that I should make myself ruler of this land
and not merely annex it to the Interplanetary Union? Why should that
surprise you? Was it not mine by right of priority? And how, indeed,
do you think kingdoms and empires are won?
I am not a modest man. I have always said that I am a man of great
destiny. Why should I bow to traditions?
Having satisfied my will, I looked about.
Before me stretched a long rolling plain, green as if covered with
fields of grass. Yet it was not grass but a curious green hard clay that
seemed to make up the soil. Far to the distance low hills rose. The
oddest feature of the soil was the fact that it was interminably
interlaced with deep sharp cracks like a clay that had been baked
improperly and cracks all over.
It seemed to me that there was a strange discoloration far off in the
base of the hills from which white and grey plumes of vapor arose as
if marking the factories of some hillside city. A city it could well prove
to be and if that were so, then I had found a capital and subjects!
I set out to walk the several miles to the hills. I had sufficient
equipment for such a reconnoiter already on me.
The going was not easy. The ground was flat and hard enough to
walk on, but the deep cracks and narrow crevices which one
constantly came across made the trip difficult. I would have to leap
perilously over the more narrow cracks or else carefully find a way
around the wider ones.
It seemed to me that it would be difficult to make roads across such
a terrain, the bridges would be innumerable. I wondered how the
natives got around. I had seen no sign of animals as yet, but that
was not to be considered surprising if there were a city so near.
There were plants, a large number scattered here and there in
clumps, reddish and greenish masses somewhat like the vegetation
of our American Western deserts.
After walking and jumping and still more walking and leaping I
became tired after about an hour. The city was still a distance away
but it could now be seen with greater distinctness. It was indeed
what I had thought, a cluster of buildings obviously constructed for
intelligent beings and there were indeed columns of smoke rising
from them. More than that I could not distinguish.
I had come across no roads as yet which was odd if this were a city
though comprehensible considering the nature of the ground.
At last I saw a building of some sort in my path. It was a small
structure, hardly more than a frame-work construction of clay. I made
my way to it and looked at it. The building itself was nothing, just a
frame-work as I had said. It was what was propped up beside it that
puzzled and amazed me.
It was a nine-foot cylinder of shining metal. About the middle of this
metal shaft was fixed a circular frame. There were a number of what
might be controls set in the cylinder just above this central railwork
and a large mass like a doughnut running underneath the metal
hoop which might have held an engine of some sort. The bottom of
the shaft was capped by a large rubbery mass.
I could not figure out what this was. I stood it upright (it was not too
heavy) and looked at it from all directions. It was a puzzle. Then I
climbed on to the hoop affixed to its middle and sat down. The
central shaft ran between my legs, the engine was under me and the
controls faced me. It occurred to me that here was a machine
designed to be operated by someone in my position and of my
general size.

Because I am afraid of nothing, I touched the controls and pressed


them. Below me there was a sort of murmuring and rumbling. Then
the cylinder seemed to vibrate slightly, to grow more tense. I grasped
the metal bar tightly.
There was a terrifying hiss and then a terrific crash and the cylinder
suddenly hurtled into the air. I held on for dear life, my composure
dreadfully shaken. The whole machine bounced upwards into the air
and then came down on its rubber-capped bottom. I held on. It hit, a
shaft within the cylinder contracted and absorbed the shock and
suddenly flicked out again and up we went.
As I grasped the main tube for dear life I realized what it was. A pogo
stick! A giant, mechanically controlled, powered pogo stick!
Up and down, jarring and violent, down and up. I was dizzy and ill
and I didn't know how to stop it. It was progressing madly in the
general direction of the city. I pushed buttons wildly when I wasn't
holding on for dear life but I didn't seem to get the right combination.
The stick would hurtle wildly forward into the air many dozens of feet
then come down to hit the earth with a shock, contract, and then
recoil violently again and up with a sickening jolt into the air again.
I saw that it was a means for travel over terrain impassible because
of its crevices and cracks to wheeled vehicles or beings on foot. I
saw this as the unguided power-pogo came down directly into a
narrow crack. The capped bottom slid between the sides, the engine
box hit the sides of the narrow cleft hard, there was a terrific kick and
the shaft hit out again futilely in the airy emptiness of the depth
below it, and I went sailing out head over heels to land several yards
away in the midst of a band of Midplanetarians.
The next thing I knew I was being pinned down by a number of grey
fuzzy arms while a kangaroo looked down at me and questioned me
in a squeaky language. At least it looked like a kangaroo for it had
the giant legs and the long powerful tail of one, it had upstanding
mousey ears, a pointed rodentlike face, and a mammalian body
covered with short grey-brown hair. Around its waist was strapped a
belt-like harness from which several pouches were slung. In one
hand it held a weapon like a sort of combination of pistol and sling-
shot.
Naturally I did not answer its questions. It, the chief kangaroo-man,
shrugged its shoulders and motioned to its fellows who were holding
me down. They allowed me to get to my feet when I was surprised to
find that I was still all in one piece and that they had not touched my
equipment including my para-ray.
A little distance away was standing a simply gigantic power-pogo,
towering a couple of dozen feet high, with a large circular platform
set around its middle. Facing that they started to walk towards there.
Started, I say, for they walked in kangaroo leaps and I simply fell
when they tried to make me do the same.
They picked me up bodily and bounded over and up to the platform.
There they hold on to straps attached to the main cylinder and
waited. I think I must have fainted because I have no recollection of
the trip outside of a nightmare of terrible leaps and falls.

When I came to again it was in the city by the hills. Several of the
creatures were standing around me trying to question me in their odd
language and, of course, making no headway. I felt that this was not
the time to inform them of my imperial accession, I was not sure that
they were the most fitting inhabitants of this world to receive that
honor. There might be other intelligent races inhabiting the same
planet even as there are on Venus.
Accordingly I kept my mouth shut and stared them down. That was a
feat of which I could be proud considering the odd nature of their
eyes and faces.
Finally they led me away in short bounds to a building and up a ramp
to a room. There they thrust me and closed the door.
The room was large, partly open to an interior patio. But it had
another inhabitant. A girl!
She was standing by the open semi-balcony staring into the
courtyard. When I exclaimed, she turned sharply and looked at me.
She was dressed surprisingly like an earth girl, she looked very
much like the earth type. I congratulated myself on having picked for
my empire a planet which held a race so similar to my own. But my
hopes were dashed two seconds later when she opened her mouth
and said in perfect English:
"Hello, stranger, how'd you get to Midplanet so soon?"
I recovered my composure and introduced myself modestly, not
telling her of the position I had taken upon myself. "And who are
you?" I asked.
"Oh, I'm Nadia Landor and I came with the Official I. U. Expedition.
Our ship is about thirty miles away and I came here on a geological
survey in a single-seater flier. I stopped to say hello but our hosts
don't seem to know the meaning of the word."
"Oh," I said and fell silent. What was I to say? I had been so certain
that I could get to Midplanet first and now it seemed that the Union
had beaten me out again. Then, I squared my shoulders. This was
no way for Ajax Calkins, Emperor of at least half Midplanet, to act.
My destiny would see me through.
"You need have no fear," I said. "I will find a way for us to escape."
She looked at me oddly and smiled. "Oh, that? That's all settled.
We'll escape immediately if you want to. I've fixed things with our
buggy friend."
"With whom?" I gasped.
"Why, haven't you seen the buggers yet? Look, there's Bosco in the
yard." She beckoned to the inner courtyard. I went over to her side
and looked.

In the courtyard, standing just below us stood a monstrous insect. A


thing somewhat larger than a horse. A big squat compact looking
broad-backed creature. For a moment I stared at it without
comprehension and then suddenly its appearance struck a
responsive chord in my brain. It was a flea, a gigantic flea!
"Isn't he cute?" murmured Nadia. "He's agreed to help us escape."
"He's what? Do you mean to say he's...." I started.
"Intelligent?" she finished. "Yes, the buggers have a rather high
intelligence. Not as good as our kangaroo friends but nonetheless
clever. The fleas are a sort of semi-barbarian group inhabiting a
section about a thousand miles away. This fellow, whom I call Bosco,
was captured and doesn't like the idea of making a banquet for some
kangaroo holiday."
I goggled at the creature and it stared with an interested flicker of its
feelers at me.
"I'm glad you still have your para-ray. It was all that I was missing.
Come on, let's go now." Nadia suited her actions to her words by
vaulting the stone balustrade and landing astride the monster bug's
back. I gingerly followed her and seated myself in front.
"Now what?" I said for I didn't know how this was going to help us
escape.
"Hold tight and use your ray when the guard appears," she said and
then screamed at the top of her lungs. I was nearly paralyzed myself
with the sound but the guard who opened the gate was more so and
I beamed him nicely.
Bosco seemed to sink lower and then his monstrously powerful legs
smashed down and we made the most colossal bound I have ever
dreamed of. That super-flea must have covered at least three
hundred yards with that first bound and he must have made two
hundred at least with every subsequent bounce.
We held on for dear life and the air whished past us like mad. Behind
us the city of kangaroos sprang to life as they saw their assorted
prisoners escaping and very soon I saw over my shoulder that a line
of gigantic steam-powered pogos were bounding along after us,
each manned by several armed creatures.
The flea was fast but the pogos, powered by terrific steam-boilers,
were equally so. And thus we raced across the clay creviced terrain,
two humans on the back of a flea-colossus followed by a single-file
line of puffing steel pogos, their plumes of smoke leaving a trail
behind them.
I turned and tried to pick off the riders with my ray but it was
hopeless, so violently was everything going up and down. I gave up
and clung for dear life to the hard neck of our steed.
But it seemed to be impossible to shake off our followers. They
remained fast on our trail and after a while I realized that Bosco was
tiring out, his leaps were not so high or far.

"What shall we do?" called Nadia to me. "We can't shake them."
It was then that the idea occurred to me that saved us. We were
already very close to where my spaceship had landed and I
succeeded to conveying in signals what I had in mind to our quite
intelligent flea.
On we went and when we came to the side of the swamp in which
my ship had landed, Bosco gave a terrific leap which must have well
set a record for all Midplanet and sailed fully five hundred yards
across the swamp to land exhausted on the other side.
But the pogos could not make that great leap, nor could the giant
things stop so easily. On they rushed and one after another they
landed in the middle of that thick gummy deep swamp-like mass.
The automatic vibrations of their shafts continued but their bases
were hopelessly gummed in. The crews were hurled off in all
directions and fell helplessly into the gooey morass.
We were saved! My ship was around at the other side but we could
walk it. Nadia signalled our thanks to the bugger and it bounded off
alone towards the distant horizon.
As we walked, Nadia complimented me on my trick of the swamp. I
glowed within and, turning to her, said:
"Let us stay here and master this world, my Empress. I, Ajax Calkins,
lay my heart and a planet at your feet."
But women are fickle creatures and cannot understand the ways of
the great. She laughed and said: "Don't be silly, my husband is
waiting for me at our own spaceship."
And then when we found that my ship had, while I had been away,
sunk into the swamp completely and that we would have to walk the
twenty or so miles to Nadia's craft, she laughed even louder. Women
do not appreciate destiny.
*** END OF THE PROJECT GUTENBERG EBOOK POGO PLANET
***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying copyright
royalties. Special rules, set forth in the General Terms of Use part of
this license, apply to copying and distributing Project Gutenberg™
electronic works to protect the PROJECT GUTENBERG™ concept
and trademark. Project Gutenberg is a registered trademark, and
may not be used if you charge for an eBook, except by following the
terms of the trademark license, including paying royalties for use of
the Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is very
easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund from
the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law in
the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name
associated with the work. You can easily comply with the terms of
this agreement by keeping this work in the same format with its
attached full Project Gutenberg™ License when you share it without
charge with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the terms
of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears, or
with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:

You might also like