Introduction To Computer Systems and Software
Introduction To Computer Systems and Software
Contents
2 Computer Hardware
2.1 Memory
2.2 The CPU (Central Processing Unit) and co-processors
2.3 Input and Output
2.4 Development system configurations
3 Computer Software
Answers to Exercises
References
The vast majority of users of computer systems are end-users, in that they use
computer systems as a tool to aid their everyday work. The computer system can
be considered as a 'black box' into which information is fed for processing and
then results are produced. The information input can range from text (a
wordprocessor) or numerical data (a spreadsheet), entered via a keyboard, to
diagrams (a CAD design system) entered via a mouse or a digitising tablet.
Similarly, information output may be text, numbers or diagrams and pictures
presented on a display screen or printer. To communicate with the system, end-
users employ terms which are common to their everyday working environment,
e.g. accountants use columns of numbers and artists use pictures.
In many application areas there is still a need for specialists with a knowledge of
computer programming. These specialists may be professional computer
scientists implementing software packages in particular application areas, or
scientists or engineers writing programs for their own applications. Such
programs would generally be written in a high-level problem solving language
that, apart from some appreciation of information storage and accuracy
limitations, requires little knowledge of the internal workings of computer
systems.
1.2.1 Hardware
The internal electronic circuits of modern computers are made up from a number
of integrated circuit chips and other components. An integrated circuit chip is a
small packaged device a few centimetres square which contains complex
electronic circuits. The heart of the modern microcomputer is the microprocessor
which is an integrated circuit chip containing the central processing unit (the
basic control and processing circuits) of a small computer system. A complete
microcomputer system contains a microprocessor plus memory, input/output
devices, power supplies, etc.
However, before the computer hardware can perform a task (for example add
numbers or read a character from a keyboard), it requires a program to tell it
what to do.
1.2.2 Software
Software comprises the programs that tell the hardware what to do. A program is
a sequence of instructions stored in the memory of the computer system. The
central processing unit fetches an instruction, decodes it and then executes the
required operation (e.g. to add two numbers). When an instruction has been
executed the next instruction is fetched, decoded and executed, etc. A program
may be very simple, for example, to calculate the average of ten numbers, or
very complex, as would be required to draw a television quality picture on a
display screen.
1.2.3 Data
The data is the information to be processed by the computer system. Data may
be simple numbers for mathematical calculations, text such as names and
addresses or more complex structures such as pictures or drawings. The
instructions that make up the program define what data is to be processed, in
what form and at what time.
Within modern computer systems the basic element of storage is the binary digit
(or bit) which can represent a 0 or a 1. The reason for this is that it is very easy to
build electronic switches where an off/on condition is used to represent a 0/1
binary value. Although a single bit can only have two states, 0 or 1, a sequence
of bits can be used to represent a larger range of values. Such a sequence is
called a word of storage and is usually 8, 16, 32, 64 or 128 bits in length. An 8-bit
word, for example, can represent an unsigned positive number in the range 0 to
11111111 binary (0 to 255 decimal) thus:
bit 7 6 5 4 3 2 1 0
bit value 27 26 25 24 23 22 21 20
In the diagram above the least significant or rightmost bit, bit 0, represents 20 or
1 and the most significant or leftmost bit, bit 7, represents 27 or 128 decimal (the
convention for identifying the bits within a word is that the rightmost or least
significant bit is numbered 0). The combinations of 1s and 0s of the 8-bit word
thus represent an unsigned value in the range 0 to 11111111 binary (0 to 255
decimal). The general term given to an 8-bit storage word is a byte which is used
by the majority of modern computer systems as their fundamental unit of storage.
To represent values that are too large to store in 8-bits a number of bytes may be
used. For example, a 16-bit number (made up from two bytes) can represent an
unsigned value in the range 0 to 65535 decimal.
Many commercial and scientific calculations require the use of signed numbers
and the majority of modern computer systems use twos complement binary
arithmetic in which the most significant bit is used to store the sign (1 for a
negative number and 0 for a positive number). Using twos complement binary
arithmetic an 8-bit number can represent values in the range -128 to +127 and a
16-bit number values in the range -32768 to +32767. The Motorola MC68000
allows arithmetic operations to be carried out on 8-, 16- and 32-bit signed and
unsigned numbers (the programmer would use the most appropriate for the
application) which can represent numeric values shown in Table 1.1.
In practice it would be both difficult and error prone to enter data directly in binary
form, so hexadecimal (base 16) or decimal are more commonly used. It is a
relatively easy task to convert between binary and hexadecimal.
Integer numbers are suitable for whole number calculations (i.e. no fractional
component) and where a limited number range is acceptable. The majority of
scientific and engineering applications use numbers with fractional components
and which can vary in size from very small to very large values, e.g. from the size
of atomic particles to intergalactic distances. For such applications programming
languages provide a data type called real numbers which is represented
internally in floating point format.
The last calculation gives a condition called overflow; explain what has
happened.
Character data is used within a computer to represent text (such as names and
addresses) and consists of the usual printable characters, e.g. the alphabet A-Z
and a-z, digits 0-9 and other characters such as +, -, *, /, !, $, %, and &.
Each character is stored in a byte of memory and represented by a particular
binary pattern or character code. To enable different computers, terminals and
printers to be connected together there are a number of standard character
codes. The most commonly used character code is ASCII (American Standard
Code for Information Interchange). The character A, for example, is represented
by the binary pattern 01000001 (41 hexadecimal), and B by 01000010 (42
hexadecimal). The majority of computer users do not need to know or even be
aware of these codes as the keyboard and display equipment converts between
the characters and the internal codes automatically, i.e. if the user hits the key A
on the keyboard the binary value 01000001 is sent to the computer.
Determine the decimal, hexadecimal and binary values of the ASCII character
code for the following characters:
A B C Z a b c 0 1 2 9 - ? =
Can you see anything significant about the order of the ASCII character codes for
letters and digits and why the latter is useful when writing a program to read a
sequence of digit characters to be converted into a numeric value ?
CLR.W D3
After the program source code has been entered into the computer it has to be
converted into machine code by a program called a compiler. Each statement in
a high-level language can be converted into a number of machine code
instructions. For example, consider the following Pascal statement:
D0:=7+2*(267-23);
20 3C 00 00 01 0B 04 40 00 17 D0 40
06 40 00 07
PROGRAM TEST;
CONST I=20; X='D';
BEGIN
WRITELN(' number is ',I,' letter is ',X);
END.
When the above program is compiled (i.e. converted into machine code), the
compiler assigns the storage for any variables and sets up the values defined by
CONSTant expressions, i.e. the values of I and X are converted to the equivalent
16-bit (or 32-bit) and byte binary values 0000000000010100 and 01000100
respectively (0014 and 44 hexadecimal). When the program is executed the
WRITELN statement converts the internal binary representation of the integer
number I (value 20 decimal) into a string of ASCII character codes (32 and 30
hexadecimal) to be transmitted to the display screen. The display hardware then
converts these into characters to be viewed, i.e. 20.
When working in a high-level language the compiler and run time system look
after the organisation of data storage and conversion between external
characters and the internal binary form. When working in machine code or
assembly language the programmer is responsible for ensuring that instructions
and data are separate and that the correct code is executed and data processed.
It is very easy to get mixed up and try to add character data or even execute
data. Careful program design and coding will avoid this problem.
Problems
1 Why is the binary system used for information storage within modern
computer systems ?
2 Convert the following numbers to binary and hexadecimal; do the calculation
in each case and then convert
the result back into decimal (use signed 16-bit twos complement binary
numbers):
15 67 189 456 1027
+86 -86 +345 -345 +2056
3 Describe, in each case, the advantages/disadvantages and areas of
application of:
(a) machine code programming;
(b) assembly language programming;
(c) high-level language programming.
2 Computer Hardware
For further information check the following links
The WWW Virtual Library on computing -
http://src.doc.ic.ac.uk/bySubject/Computing/Overview.html
CPU Information centre - http://bwrc.eecs.berkeley.edu/CIC/
PC reference information - http://www.pcguide.com/index.htm
IBM PC compatible FAQ - http://www.undcom.com/compfaq.html
History of CPUs - http://bwrc.eecs.berkeley.edu/CIC/archive/cpu_history.html
CPU Information & System Performance Summary -
http://bwrc.eecs.berkeley.edu/CIC/summary/
Chronology of Events in the History of Microcomputers -
http://www.islandnet.com/~kpolsson/comphist/
information highways: address, data and control buses
It can be seen from Fig. 2.1 that an information highway or bus system connects
the various components of the system together:
Address Bus carries the address of the memory location or I/O device being
accessed.
There is a general rule that the faster the memory the more it costs. Although it
would be desirable to have a large amount of very high speed memory for fast
program execution it is not always economically possible. Within a computer
system there is a hierarchy of memory:
high speed registers within the CPU used for the storage of temporary
information and intermediate results;
primary memory used for storage of programs being executed and data
being processed;
secondary memory, usually disks,used for long term storage ofprograms
and data
Table 2.1 shows typical sizes and access times of memory types used in modern
computer systems. To simplify memory size notation the basic memory size is
stated in K , M or G, where a K is a unit of 1024 (not 1000 as in Kilometres), M a
unit of 1048576 and G a unit of 1073741824 (because primary memory is built
up as a square matrix of storage elements memory sizes are a power of 2).
Typical size Access time
CPU Registers 10 to 1000 byte less than
Primary 512K to 64Mbyte 10nSec
memory less than
Secondary 100nSec
memory:
floppy 320K to 2Mbyte (to 120Mbyte 50 to
disks LS-120 floptical) 500mSec
hard upto 70Gbyte less than
disks 10/20Gbyte 20mSec
magnetic seconds to
tape minutes
The access time is the time between the request for information and its
availability for use. This is normally stated in nSec (nanosecond = 10-9 or
0.000000001 of a second), uSec (microsecond = 10-6 or 0.000001 of a second)
or mSec (millisecond = 10-3 or 0.001 of a second). The three orders of
magnitude difference between the access times of primary and secondary
memory is mainly because the former is purely electronic and the latter has
mechanical moving components. In addition the technique used to access
information is different in that primary memory is random access and secondary
memory (disk and magnetic tape) is sequential access, i.e.:
Primary memory is used to store the machine code and data during program
execution. The majority of modern computer systems use a memory store built
up of bytes of storage with each byte being assigned a location address. Fig. 2.2
shows such a memory organisation with the first byte of memory having address
0, the next 1, the next 2, etc.
Fig. 2.2 The organisation of computer primary memory
The maximum amount of memory is limited by the number of bits used by the
address bus to access memory locations. Table 2.2 lists some microprocessors
with their address and data bus sizes and the maximum amount of primary
memory which can be addressed. For example:
1. The early microcomputers (e.g. Intel 8080, Zilog Z80, and Motorola 6800
series) have a 16-bit address bus which can address a maximum
memory size of 65536 bytes or 64 Kbytes, i.e. 1111111111111111 in
binary.
2. The Intel 8086 (used in the original IBM PC microcomputer) and Motorola
MC68008 have a 20-bit address bus which can address a maximum
memory MC68008 have a 20-bit address bus which can address a
maximum memory size of 1048576 bytes or 1 Mbyte.
3. The Intel 80186/286 and Motorola MC68000/10 have a 24-bit address bus
which can address a maximummemory size of 16777216 bytes or 16
Mbytes.
4. The Intel 80386/486 and Motorola MC68020/30/40 have a 32-bit address
bus which can address a maximum memory size of 4294967296 bytes or
4 Gbytes.
Table 2.2 Common microprocessors with address and data bus sizes
Table 2.2 shows the maximum amount of primary memory which can be
addressed. In practice a computer system may be fitted with less, e.g. typically a
MC68030 system has 16, 32 or 64 Mbytes. Although the primary memory is
organised in bytes an instruction or data item may use several consecutive bytes
of storage, e.g. using 2, 4 or 8 bytes to store 16-bit, 32-bit or 64-bit values
respectively.
The size of the data bus determines the number of bits which can be transferred
between system components in a single read or write operation. This has a major
impact on overall system performance, i.e. a 32-bit value can be accessed with a
single memory read operation on a 32-bit bus but requires two memory reads
with a 16-bit bus. In practice the more powerful the processor the larger the data
and address busses.
The size of the address and data busses has a major impact on the overall cost
of a system, i.e. the larger the bus the more complex the interface circuits and
the more 'wires' interconnecting system components. Table 2.2 shows that there
are versions of some processors with a smaller data and addresses busses, e.g.
the Intel 80386SX is (from a programmers viewpoint) internally identically to the
80386 but has a 20-bit address bus and a 16-bit data bus. These are used to
build low cost systems which are able to run application programs written for the
full processors (but with reduced performance).
The 80486DX2 and 80486DX4 have on-chip clock multipliers which multiply the
clock by *2 and *3 respectively, i.e. on-chip operations are performed at two or
three times the external clock speed making a particular improvement in
processor bound jobs. In addition, the DX4 has a large cache (hence DX4 rather
than DX3). This has little effect on I/O bound jobs (e.g. a database server or a file
server) where a Pentium with a 64-bit bus would be used.
The majority of computer systems contain two types of primary memory RAM
and ROM:
RAM Random Access (read/write) Memory is used for storage of
programs currently being executed and data being processed. Any byte
may beaccessed directly, i.e.random access, and read from or written to
as required (when a location is written to, the previous contents are lost)
ROM Read Only (random access) Memory is used for the storage of
permanent programs and data, e.g. the bootstrap loader which loads the
monitor or programs and data, e.g. the bootstrap loader which loads the
monitor or operating system when the computer power is switched on (see
3.1). As the name implies information may be read but cannot be
changed.
In addition to the primary memory there is other memory storage which is used
for temporary information. These memory stores are called registers and may be
found within the Control Unit, ALU and the I/O (Input/Output) device interfaces.
Fig. 2.3 Showing CPU (with ALU, Control unit and internal cache), external cache
The concept of a cache has been extended to disk I/O. When a program
requests a block or blocks several more are read into the cache where it is
immediately available for future disk access requests. Disk caches may take two
forms:
Software disk cache in which the operating system or disk driver maintain the
cache in main memory, i.e.
using the main CPU of the system to carry out the caching operations.
Hardware disk cache in which the disk interface contains its own cache RA
memory (typically 4 to 16Mbytes)
and control circuits, i.e. the disk cache is independent of the main CPU.
Hardware disk caches are more effective but require a more complex (and
expensive) disk controller and tend to be used with fast disks in I/O bound
applications, e.g. databases.
See http://www.pcguide.com/ref/hdd/index.htm for more information on hard
disks.
This component of the computer hardware has overall control of the computer
system. During program execution the Control Unit fetches instructions from the
primary memory, decodes them to determine the operation required, and then
sets up instruction execution, e.g. to add two numbers or read a character from a
keyboard. A number of registers are associated with the control unit, including:
PC or Program Counter. This register contains the address (in primar
memory) of the next word of the current instruction or the first word of the
next instruction. After a word has been fetched from primary memory into
the instruction register the PC is automatically incremented to point at the
next word.
IR or Instruction Register. After the instruction has been fetched from
primary memory it is placed in the IR to be decoded.
Fetch Cycle. A machine code instruction is fetched from primary memory (the
PC points at each instruction in
turn) and moved into the Instruction Register, where it is decoded (after the
fetch PC is incremented the
next instruction).
Execute Cycle. The instruction is executed, e.g. data is transferred from primary
memory and processed by
` the ALU.
The ALU is the component of the computer system which, under the direction of
the Control Unit, performs operations upon numeric and other data, e.g:
1. The integer arithmetic instructions add, subtract, multiply and divide
(usually denoted by + - * / in high-level languages). Early 8-bit
microprocessors could only carry out integer addition and subtraction and
then only on 8-bit numbers directly. Multiplication and division and 16-bit
operations had to be carried out using sequences of the available 8-bit
instructions. The Motorola MC68000 can do integer addition and
subtraction of 8-, 16- and 32-bit numbers, multiplicationm of 16-bit
numbers, and divide a 32-bit number by a 16-bit number.
2. Logical instructions such as NOT, AND, OR and EOR (exclusive OR) and
shift instructions.
Associated with the ALU and Control Unit of the MC68000 there are the following
registers (in addition to the PC and IR):
Data Registers D0 to D7. These are 32-bit registers for the storage of
temporarydata during arithmetic and logical operations.
Address Registers A0 to A6. These registers are generally used to store
addresseswhich point to data in memory, e.g. arrays or records.
Address Register A7. A7 serves as the Stack Pointer. The stack is a
dynamic data structure used extensively by the processor during program
execution.
Status/Condition Code Register. A common programming requirement
is t branch to of two possibilities depending upon the result of a
calculation. For example the Pascal statement:
The SR (Status Register) contains a number of condition code bits which indicate
the result of the last instruction (for example, if the result was zero or negative).
These bits can be tested using branch instructions to control program flow.
The terms 8-bit, 16-bit and 32-bit, when used to refer to a microprocessor, give
an indication of the power and facilities of the processor. In general, the number
(8, 16 or 32) indicates the size of the data which can be processed directly by the
ALU. For example, an 8-bit microprocessor can directly process 8-bit numbers
with larger data types using a sequence of 8-bit instructions, e.g. using two 8-bit
add instructions to add 16-bit numbers. Some extended microprocessors have
instructions to process larger data (e.g. the Zilog Z80, an extended version of the
Intel 8080 8-bit microprocessor, and has instructions to add and subtract 16-bit
data) - for details of microprocessor history see
http://bwrc.eecs.berkeley.edu/CIC/archive/cpu_history.html and information on
embedded microcontrollers see http://bwrc.eecs.berkeley.edu/CIC/embed/
2.2.3 Co-processors
The modern microprocessor chips, e.g. Intel 80486 and Motorola MC68040,
have a floating point co-processor on the same chip. In addition to floating point
co-processors there may be other special purpose co-processors for graphics,
signal processing, etc.
Input and output devices provide the computer user with the means to transfer
information in and out of a computer system (for example, to enter a program
and data, and then display the results of program execution). A typical
microcomputer would have a keyboard (similar to that of a typewriter) for entry of
information, and a display screen (similar to a TV set) for output information
display. In addition to the display of character information it is often possible to
draw diagrams on the display screen.
The majority of computer systems used for program development appear to the
user as a self contained environment equipped with processor, primary and
secondary memory, user keyboard and display. In practice, this may range from
a stand alone IBM/PC compatible personal computer, through networked
professional workstations to intelligent terminals attached to a mainframe
computer. The user interacts with the system via an operating system which
provides program development facilities, e.g. MS-DOS or UNIX (see 3.2).
The problem with using such systems for low-level program development is that
the operating system environment often imposes restrictions on what user
programs can do. Consider, for example, a multi-user environment where, if user
programs were allowed to write data anywhere in memory, or access I/O device
control registers, they could crash the whole system.
Even low-level self contained program development systems are designed with
the intention that the majority of programming will be carried out using a high-
level systems implementation language such as C, Modula 2 or Ada (a systems
implementation language has many of the facilities of an assembly language,
e.g. bit-manipulation, ability to access to I/O registers). Software systems are
implemented mainly in the high-level language with the use of assembly
language being restricted to specialist functions, e.g. time critical modules. The
assembly language modules have to conform to restrictions imposed by the high-
level language and operating system making assembly language programming in
its own right very difficult.
Single board development systems are essentially a printed circuit board with
processor, primary memory and some I/O device interfaces, i.e. no secondary
memory (Coats 1985/86). The on-board software is generally a simple monitor
program (see 3.1) and no restrictions are placed on user programs. They have to
be attached to a terminal and/or host computer which provides I/O facilities and
secondary memory.
Fig 2.4 shows a host computer, which can vary in power from an IBM/PC
compatible up to a professional workstation, attached to a single-board target
system via a serial communications line. A program running on the host enables
a user to communicate with the target system, entering commands using the
host's keyboard and displaying the results on the host's display screen. Suitable
cross assemblers and compilers (see 3.3) enable programs to be developed on
the host and downloaded onto the target for execution (Bramer 1990).
Problem
Examine the manuals for any microcomputer systems you have access to and in
each case determine (if possible):
1. What type of microprocessor is used ?
2. Is it an 8-, 16- or 32-bit microprocessor ?
3. Does it have a co-processor or can one be fitted and if so what type ?
4. What is the size of ROM and RAM memory ?
5. What are the addresses of the ROM and RAM memory ?
6. What is the maximum amount of memory the microprocessor can
address and why ?
7. What peripheral input/output devices is it equipped with ?
8. What is the secondary memory and how many bytes can it store ?
9. Does it use a proprietary or standard bus system, e.g. IBM PC/AT, VME,
etc.
3 Computer Software
Before a microcomputer can process information (i.e. carry out calculations or
read a character from a keyboard) it requires a program. A program is a series of
instructions stored in the primary memory that are executed sequentially by the
processor. The programs of a computer system are called its software and
include:
The general name for ROM based resident software is firmware, i.e. software
which is permanently fixed in ROM memory.
Due to limitations the size of physical memory which may be fitted to a computer
system ROM based software is restricted to providing facilities such as a monitor,
a Bootstrap Loader or other permanent programs, e.g. a washing machine
controller.
A computer equipped with disks can provide a large range of system software
with several languages. The operating system looks after the overall operation of
the computer, the programs running in it and interaction with the user(s). The
operating system (see http://www.rsc.co.uk/kincorth/5-14IT/ychs.htm) will be
provided on disk (secondary memory) and it must be loaded into the primary
memory before it can be used. Operating systems are not normally in ROM
because:
Early editors tended to be line editors in which a single line of text was displayed
and modified at a time. The majority of modern editors are of the full screen type
which display a screen full of text, typically 25 lines, which is a window into the
program source file. The user selects the window which shows the section of the
file where the correction is to be made. A screen cursor is positioned, using
keyboard keys or a mouse, at the exact place of the correction and the user can
then add, change or delete characters as required. Some editors can invoke a
compiler (or assembler) to compile the program source code and display an error
message for each source line where an error was found.
3.2.3 Linkers
ROM based assemblers generate absolute machine code directly into memory
(no link stage). By editing and assembling a sequence of modules a large
program can be built up. In such a case care must be taken to ensure that
absolute modules are separate in memory.
The host and target computers are usually connected via a simple asynchronous
serial line with communication limited to the printable ASCII character set (e.g. as
shown in Fig. 2.4). The output of the linker, which is in some binary format, must
be converted into one of the standard formats used for the transfer of binary
information over character oriented communications systems, e.g. Motorola S-
record, Intel hex and Tektronix hex formats. A simple communications program
on the host computer transmits the resultant character file to the target computer
where it can then be executed (see 2.4).
Using cross software has the advantage that a single, possibly expensive, host
system can be used to produce code for a range of target systems. The target
only needs sufficient power and facilities to run the final application (normally
much less than a full program development system) plus debugging aids (see
reference Bramer 1990 for a full discussion on the importance of using modern
computer tools and the advantages of using a host computer to develop common
software for a variety of target systems).
Problem
For any microcomputers you have access to, determine the following:
1. What is the name of the monitor or operating system ?
2. What program debugging facilities does it provide ?
3. What other system software is available and what is its function ?
4. What applications software is available and what is its function
+32 00100000 20 +60 00111100 3C -45 11010011 D3 +45
00101101 2A
The third example (110 - 45) gave a carry out of bit 7 (the sign bit)which is
ignored in the result.
In the fourth example overflow occurred when 110 + 45 gave a negative
result. Overflow occurs when the number of bits available is too small to
hold the result. A twos-complement signed 8-bit binary number can
represent signed decimal values in the range -128 to +127.The addition of
100 and 45 gave a result greater than 127, thus setting the sign bit(bit 7)
making the final result negative and incorrect
Exercise 1.2 Characters with ASCII codes in decimal, hex and binary.
From Table A.2 it can be seen that the letter and digit character codes are in
ascending numeric order, i.e. the characters '0' to '9' have the ASCII codes 48 to
57. This simplifies:
Exercise 1.3
Exercise 2.1
1. The maximum size of primary memory is limited by the number of bits that
the processor uses to address the memory, e.g. 24 bits can address
16Mbytes.
A. RAM (Random Access (read/write) Memory) is random access
memory that can be read/written; used for storage of programs and
data during execution.
B. ROM is Read Only (random access) Memory: information can only
be read; used for storage of permanent programs and data, e.g.
the bootstrap loader.
2. Secondary memory (disks & tape) is used for long term program and data
storage.
A. Random Access: any data word can be accessed directly, e.g
primary memory.
B. Sequential Access: data is accessed in sequence, e.g. a magnetic
tape where to access data down the tape it is necessary to read
over intermediate data.
3. A computer bus is the information or data highway which
carrieinformationbetween the various components of a computer system.
Exercise 2.2
High speed registers are used to store temporary information during
processing.
The status register contains information about the result of the last
calculation, e.g. if the result was zero or negative. The information can be
used for program control.
A floating point co-processor would be required for applications where the
majority of the calculations use real numbers, e.g. CAD des mathematics,
statistics, etc.
Exercise 3.1 The following listings are from a FORCE single board MC68000
microcomputer running the ROM based M68 Monitor (commands are invoked
by single key hits and are self explanatory).
------------------------------------------------------------
-------------------------
MC68000 monitor V1.04b, please enter command (<ESC> to abort, ? for help)
M68> Help
E - Edit/assemble a program
D - Dissemble a program
R - Register: initialise, set, display
M - Memory: display, set, modify, block
X - Convert decimal/hexadecimal/text values
L - Load S-record program from: Terminal
S - System tests
G - Go a program
T or I - Trace program execution
B - Breakpoint: display, set, clear
C - Continue program execution from breakpoint or trace
M68>
-------------------------------------------------------------------------------------
On power up the M68 monitor performs a sequence of memory and I/O device
checks and then prompts the user for command input with the prompt M68> .
Commands are generally single keystrokes, e.g. in response to the key H the
monitor displays the help screen which lists the commands available.
References
This book describes prefetch and other techniques used to enhance processor
performance of the mainframes in the 1970's.