901713B_Sigma_6_Reference_Man_Jun71 901713B Sigma 6 Reference Man Jun71

901713B_Sigma_6_Reference_Man_Jun71 901713B_Sigma_6_Reference_Man_Jun71

User Manual: 901713B_Sigma_6_Reference_Man_Jun71

Open the PDF directly: View PDF PDF.
Page Count: 149

Download901713B_Sigma_6_Reference_Man_Jun71 901713B Sigma 6 Reference Man Jun71
Open PDF In BrowserView PDF
•

Xerox SIGMA 6 Computer

Reference Manual

...

.~I

XEROX SIGMA 6 INSTRUCTIONS
Mnemonic

Code

In$truction Nome

Page

LB
LH
L':I
LD
LCH
LAH
LCW
LAW
LCD
LAD
LS
LM
LCFI
LCF
XW
STB
STH
STW
STD
STS
STM
STCF

22
72
52
32
12
5,0.
5B
3,0.
3B
1,0.
IB
4,0.
2,0.
02
70
46
75
55
35
15
47
2B
74

.

Load Immediate

Load
Load
Load
Load
Load
Load
Load
Load
Load
Load
Load
Load

Byte
Hallward
Ward
Doubleword
Complement Hallward
Absolute Hallward
Complement Word
Absolute Word
Complement Doubleward
Absolute Doubleword
Selective
Multiple

Load Conditions and Floating Control Immediate

Load Condition. and Floating Control
Exchange Word
Store Byt.
Store Hallward
Store Word
Store Doubleword
Store Selective
Store Multiple
Store Condition. and Floating ConlJol

32
32
32

32
32

33
33
33
33
33
34
34
35
35
35
36
36
36
36
36
36
37
37

6B

20
50
30
10
58
38
18
23
57
37
56
36
66
73
53
33

Add Immediate

Add Hallward
Add Word
Add Doub leward
Subtract Hallward
Subtract Word
Subtract Doubleward
Multiply Immediate
Multiply Hallward
Multiply Word
Divide Hallward
Divide Word

Floating
Floating
Floating
Floating
Floating
Floating
Floating
Floating

Add Short
Add Long
Subtract Short
Subtract Long
Multiply Short
Multiply Long
Divide Shart
Divide Long

51
51
51
52
52
52
52
52

7E
7F
79
78
7B
7A
70
7C
76
77

Decimal
Decimal
Decimal
Decimal
Decimal

Load
Store
Add
Subtract
Multiply

56
56
57
57
57

DECIMAL
DL
DST
DA
OS
OM
DO
DC
DSA
PACk
UNPk

31

39
39

PUSH DOWN

40
40
40
40
41
41
41
42
42
42

PSW
PLW
PSM
PLM
MSP

37

Analyze
Interpret

3D
10
3C
IC
3F
IF
3E
IE

FAS
FAL
FSS
FSL
FMS
FML
FDS
FDl

MIS
CBS
TBS
HBS
EBS

FIXED-POINT ARITHMETIC
AI
AH
AW
AD
SH
SW
SO
MI
MH
MW
DH
OW
AWM
MTB
MTH
MTW

~

Decima I Oi vide

Decimal Compar.
Decimal Shift Aritlvnetic
Pock Decimal Digits

58
58
58

Unpack Decimal Digits

59
59

61
60
.1
40
63

Move Byte String
Compare Byte String
Translate Byte String
Tran. late and Test Byte String
Edit Byte String

61
62
63
63
64

09

Push Word
Pull Word
Push Mu hiple
Pull Multiple
Modify Stock Pointer

69
69
70
70
71

Execut.
Branch on Condition. Set
Branch on Conditions Reset
Branch on Incrementing Regist.r

73
73
73
73

Branch on Decrementing Regist.r

Branch and Link

7.
74

Calli
Call 2
Call 3
Call.

n
n
n
n

BYTE STRING

ANALYZE/ INTERPRET
ANLZ
INT

Instruction Nome

FLOATING-POINT ARITHMETIC (!!I!!ionol)

LOAD STORE
LI

Code

Mnemonic

Add Word 10 Memory
Modify and Test Byte
Modily and Te.t Hallward
Mod ily and Te.t Word

43
43
43

Compore Immediat.

44
44
45
45
45
45
46
46

44

08
OB
OA
13

EXECUTE/BRANC H
EXU
BeS
BeR
BIR
BDR
BAL

67
69
68
65
64
6A

COMPARISON
CI
CB
CH
CW
CD
CS
CLR
CLM

21
71
51
31
II

45
39
19

Compore
Compare
Compare
Compare

Byte
Halfword
Word
Doubleward

Compare Selective

Compare with Limits in Register
Con:'pore with Limits in Memory

LOGICAL
OR
EOR
AND

49
48
4B

OR Word
Exclu.ive OR Ward
AND Word

46
46
46

SHIFT
S
SF

25
24

Shilt
Shift Floating

...

29
28

Convert by Addition
Convert by Subtroc.tion

CALI
CAL2
CAL3
CAL.

04
05
06
07

CONTROL (prIvileged)
LPSD
XPSD
LRP
MIN:.
WAIT
RD
WD

OE
OF
2F
6F
2E
6C
60

Load Program Slotu. Doubleward
Exchange Program Status Doubleword

73

Load

75
75
77
'II
'II

Regilter Pointer

Move 10 Memory Control
Wait
Rood Direct
Write Direct

.7

INPUT/OUTPUT (prIvileged)

49
50

SIO
HIO
TlO
TDV
AIO

CONVERSION
CVA
CVS

CALL

4C
4F
.0
4E
6E

73

Start Input/ Output
Halt Input/ Output
Test Input/ Output

83
86
86

Telt Device

87
87

Acknowledge Input/ Output Interrupt

XEROX

Xerox SIGMA 6 Computer

Reference Manual

90 17 138
June

© 1970. 1971. Xerox Corporation

1971

File No.: 1X13
XL47, Rev. 0
Printed in U.S.A.

REVISION
This publication is a revision of the Xerox SIGMA 6 Computer Reference Manual, 90 17 13A, and describes the
new SIGMA 6 Computer System features. Changes to the previous manual are indicated by a vertical line in the
margin of the affected page.

RELATm PUBLICATIONS
Publication No.
Xerox Sigma Glossary of Computer Terminology

90 09 57

Xerox Meta-Symbol/LN,OPS Reference Manual

900952

Xerox Symbol/lN,OPS Reference Manual

90 1790

Xerox Macro-Symbol/LN,OPS Reference Manual

90 1578

Manual Type Codes: SP - batch processing, LN - language, OPS - operations, RBP - remote batch processing,
RT - real-time, SM - system management, 15 - time-sharing, UT - utilities.

All SPECIFICATIONS SUBJECT TO CHANGE WITHOUT NOTICE

ii

CONTENTS
1.

2.

Introduction
General Characteristics
Standard and Optional Features
Real-Time Features
General-Purpose Features
Time-Sharing Features
Multiuse Features

1
1
4
4
5
6
6

SIGMA 6 SYSTEM ORGANIZATION

8

Information Format
Core Memory
Dedicated Memory Locations
Information Boundaries
Computer Modes
Master Mode
Slave Mode
CPU Fast Memory
Central Processing Unit
General Registers and Register Block Pointer_
Memory Control Storage
Memory Map and Acc.ess Protection
Instruction Format
Immediate Operand
Memory Reference Addresses
Memory Address Control
Memory Map and Access Protection
Memory Write Locks
Program Status Doubleword
Interrupt System
Internal Interrupts
External Interrupts
States of an Interrupt Level
Control of the Interrupt System
Time of Interrupt Occurrences
Singl e-Instruction Interrupts
Trap System
Nonallowed Operation Trap
Unimplemented Instruction Trap
Push-Down Stack Limit Trap
Fixed-Point Overflow Trap
Floating-Point Arithmetic Fault Trap
Decimal Arithmetic Fault Trap
Watchdog Timer Runout Trap
Call Instruction Traps
3.

Unimplemented Floating-Point Instructions _ _
Floating-Point Add and Subtract
Floating-Point Multiply and Divide
Condition Codes for floating-Potnt
Instructions _ _ _ _ _ _ _ _ _ _ _ _
Deci mal Instructions
Packed Decimal Numbers
Zoned Decimal Numbers
Decimal Accumulator
Decimal Instruction Format
Illegal Digit and Sign Detection
Overflow Detection
Decimal Instruction Nomenclature
Condition Code Settings
Byte-String Instructions
Push-Down Instructions
Stack Pointer Doubleword
Push-Down Condition Code Settings
Execute/Branch Instructions
Ca II Instructi ons
Control Instructions
Program Status Doubleword
Loadi ng the Memory Map
Loadi ng the Access Protection Controls
Loadi ng the Memory Wri te Protecti on Locks __
Interruption of MMC
Read Direct Internal Computer Control
(Mode 0) _ _ _ _ _ _ _ _ _ _ _

SIGMA 6 SYSTEM

8
8
8
8
9
9
9
9
10
11
11
11
11
12
12
14
14
15
17
18
18
20
20
21
21
22
22
22
'24
25
25
26
26
26
27

INSTRUCTION REPERTOIRE

28

Load/Store Instructions _ _ _ _ _ _ _ _ _ _
Anal yze/Interpret Instructions
Fixed-Point Arithmetic Instructions
Comparison Instructions
Logical Instructions
Sh ift Instructions
Floating-Point Shift
Conversion Instructions
Floating-Point Arith'metic Instructions
Floating-Point Numbers

31
37

39
44
46
47
48
49
50
50

4.

5.

52
52
52
53
54
55
55
55
55
55
55
56
56
60
67
68
68
72
74
75
75
78
78
79
79
80

Write Direct Internal Computer Control
(Mode 0)
Write Direct, Interrupt Control (Mode 1) _ _ _
Input/Output Instructions
I/O Address
I/O Unit Address Assignment
I/O Status Response
Status Information for SIO

81
81
82
82
82
82
83

IN PUT/OUTPUT OPERA TIO NS

89

lOP Command Doublewords
Order
Memory Byte Address
Flags
Byte Count

90
90
91
91
92

OPERATOR CONTROLS

93

Processor Control Panel
POWER
CPU RESET/CLEAR
I/O RESET
LOAD
UNIT ADDRESS
SYSTEM RESET/CLEAR
NORMAL MODE
RUN
WAIT

93
93
93
94
94
94
94
94
94
94
iii

INTERRUPT
PROGRAM STATUS DOUBLEWORD
INSERT
INSTR ADDR
ADDR STOP
SE LECT ADDRESS
STORE
DISPLAY
DATA
COMPUTE
CON TROL MODE
MEMORY FAULT
ALARM
AUDIO
WATCHDOG TIMER
INTERLEAVE SELECT
PARITY ERROR MODE
PHASES
RE GISTER SELECT
SENSE
CLOCK MODE
Loading Operation
Load Procedure
Load Operation Details

94
94
94
95
95
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
99
135

INDEX

APPENDIXES
A.

iv

REFERENCE TABLES

100

XDS Standard Symbols and Codes
XDS Standard Character Sets
Control Codes
Special Code Properties
XDS Standard 8-Bit Computer Codes
(EBCDIC)
XDS Standard 7-Bit Communication Codes
(ANSCII)
XDS Standard Symbol-Code Correspondences _ _
Hexadecimal Arithmetic
Addition Table
Multiplication Table
Table of Powers of Sixteenl0
Table of Powers of Ten16
Hexadecimal-Decimal Integer Conversion
Table
Hexadecimal-Decimal Fraction Conversion
Table
Table of Powers of Two
Mathematical Constants

100
100
100
100

B.

REFERENCE DIAGRAMS
Notes on Basic SIGMA 6 Instruction Execution
Cycle
Basic SIGMA 6 Instruction Execution Cycle _ _
Floati ng-Point Instruction Execution
Floating-Point Multiplication and Division __
Floating-Point Addition and Subtraction _ _ _
Floating-Point Shift
Edit Byte String Instruction Execution

1.
119

1
122
122
123
124
125

C.

SIGMA 6 INSTRUCTIONS (MNEMONICS)

126

D.

INSTRUCTION TIMING

128

FIGURES
SIGMA 6 Computer System

v

1.

A Typical SIGMA 6 System

2

2.

Information Boundaries

9

3.

SIGMA 6 Central Processing Unit

10

4.

Index Displacement Alignment

14

5.

Generati on of Actua I Memory Addresses

16

6.

Typical Interrupt Priority Chain

7.

Operational States of an In~errupt Level

~

8.

Processor Control Panel

93

101
101
102
106
106
106
107
107
108
114
118
118

TABLES
1.

SIGMA 6 Dedicated Memory Locations
SIGMA 6 Interrupt Locations
3. Summary of SIGMA 6 Trap System
4. Glossary of Symbolic Terms
5. ANALYZE Table for SIGMA 6 Operation Codes_
6. Floating-Point Number Representation
7. Condition Code Settings for Floating-Point
Instructions
8. Status Bits for I/O Instructions
9. Program Status Doubleword Display
D-1. Basic Instruction Timing
D-2. Additional Instruction Timing

2.

'l
19
23
30
38
51
53

84
95
129
133

·
6 Computer
Sigma

1. SIGMA 6 SYSTEM
INTRODUCTION
The SIGMA 6 computer system can concurrently process
operations for business, engineering/scientific, and generalpurpose applications. The basic system consists of a central
processor, 32, 768 words of memory, and independent, multiplexed I/O capability. It is easily expandable by adding
memory units, input/output processors, and peripheral devices. Figure 1 shows a typical SIGMA 6 system.
A SIGMA 6 system consists of the following major elements:
•

A memory consisting of up to four magnetic core storage
units.

•

A central processor unit {CPU} that addresses core memory, fetches and stores information, performs arithmetic
and logical operations, sequences and controls instruction execution, and controls the exchange of information
between core memory and other elements of the system.

•

An i nput/output system cor.troll ed by one or more i nput/
output processors {lOPs}, each providing data transfer
between core memory and peripheral devices. The lOPs
have separate access to core memory which are independent of the CPU. They operate asynchronously
and simultaneously with the CPU.

GENERAL CHARACTERISTICS
A SIGMA 6 computer system has features and operating
characteristics that permit efficient functioni ng in realtime, general-purpose, time-sharing, and multiuse computing
envi ronments:
•

•

Word-oriented memory {32-bit word plus parity bit}
which can be addressed and altered as byte (8-bit),
halfword {2-byte}, word {4-byte}, and doubleword
(8-byte) quantities.

•
•
•

Sixteen general-purpose registers, expandable (in
blocks of 16) to 512 to reduce transfer of data into and
out of registers in a multiuse environment.

•

Hardware memory mapping, which obviates the problem
of memory fragmentation and provides dynamic program
relocation.

•

Selective memory access protection with four modes for
system and information security and protection.

•

Selective memory-write protection.

•

Watchdog timer, assuring nonstop operation.

•

Real-time priority interrupt system with automatic identification and priority assignment, fast response time,
and up to 235 levels that can be individually armed,
enabled, and triggered by program control.

•

Interrupti bi Ii ty of long i nstructi ons, guarantee i ng fast
response to interrupts.

•

Automatic traps, for error conditions and for simulation
of optional instructions not physically implemented, all
under program control.

•

Power fai I-safe, for automatic, safe shutdown in the
event of a power failure.

•

Multiple interval timers, with a choice of resolutions
for independent time bases.

•

Privileged instruction logic {master/slave modes}, for
concurrent, time-shared operati on.

•

Complete instruction set including:
•

Byte, halfword, word, and doubleword operations.

•

Use of all memory-referencing instructions for
register-to-register operations, with or without
indirect addressing and postindexing, and within
the normal instruction format.

•

Multiple register operations.

•

Fixed-point arithmetic operations in halfword,
word, and doubleword modes.

•

Optional floating-point hardware operations, in
short and long formats, with significance, zero,
and normalization control and checking, all under
program control.

Displacement index registers, automatically selfadjusting for all data sizes.

•

Full complement of logical operations {AND, OR,
exclusive OR}.

Immediate addressing' of operands, for greater storage
efficiency and increased speed.

•

Comparison operations, including compare between
limits {with limits in memory or in registers}.

Full parity checking for both CPU/memory and input/
output operations.
Memory expandable from 32,768 to 131,072 words
{131 ,072 to 524,288 bytes} in increments of 16,384 words.

•

•

Direct addressing of the entire core memory, within the
primary instruction word and without the need for base
registers, indirect addressing, or indexing.
Indirect addressing, with or without postindexing.

SIGMA 6 System

CENTRAL PROCESSOR UNIT
(CPU)
Standard Features:
•

Decimal arithmetic unit

•

Memory mop

•
•
•
•
•
•

Access protection
Memory write protection
Two register blocks
Power fail-safe
Two reol-time clacks
External interface (direct

VOl

Optional Features:
•

Two additional real-time clacks
30 additional register blocks
Floating-point arithmetic
External priarity interrupt system
(up to 224 levels)

•
•
•

MEMl:: - --- - - - - r=---=-~:-eM-:1-uNiT - - -1
I

Standard Features:

I
I
I

•

•

•

I
I

I
I
I
I

16,384 or
32,768 words
Two ports (multiaccess)
Two-way interleaving
Four-woy interleaving
Parity checking

•

I

Optional Features:
•
Four additional ports
•
Memory system expandable by
adding up to three additional
32K memory units

I

Standard Features:

I

32,768 words
Two ports (multiocess)
Two-way interleaving
Four-way interleaving
Parity checking

I

Optional Features:

I

•

:

Four odditional ports

L--.---T'""""'-----'

'--___.==.

.==.=..:.r..............•.....................•...•...•....••........•.•....••.•.•.!

.::.:=.~.=.=.=.===

:

I

:

I

...-_ _ _ _ _-..1._ _ _ _:..'_--. - - - - - - - - - - - - - - - - - - - .

r - MIOP EXPANsION OPTION-

MUlTIPLEXING INPUT/OUTPUT
PROCESSOR (MIOP)
Standard Features:
•
•
•

•

•

One device controller
per subchonnel

ISDIENVGICLEE UNIT II ··· IMULTI~UNIT
DEVICE

IE£!'I~~L!RJ

I

I..-

T -I

r-----,

DEVICE..JI
Ir -t'-1/0
____

Ii/O~VlC~ .

L.. _ _ _ _ "

I

L fiiO

I

•

I

I
I
I

~------,

I

I

r.--1-~

r-J.--, r-J--,

I DEVICE

I
I DEVICE
I
ICONTROlLERI' • 'ICONTROLLERI

L_,---i

L..;.-T- .....

L_,_-J

I
I
r--L-,~_J-:1

I

rVODEvlcE]
I~ L~
__

~O ~~~

lYO

~~~

.
(Up 10

:

pl

--------------Standard-$PMd peripheral devices - - - - - - - - - - - -.....

1- High-speed peripheral devices -I

Note: Standard units and pracessan are shown enclosed with solid barder lines. Optional units, processors, device contrallen,
- - and devices are enclosed with clashed barder lines. Standard and optional features within a unit or processor are as listed.

Figure 1.

General Characteristics

I

Ll~de~ces) J

~~e~~J

2

32 device control/en

L-I.-Vo DeVICE!

1I

DEViCE

. , (Up to

I

L--r-------J
I

I

I

I

--:1
I MULTI-UNIT I
I DEVICE
I . • '1 DEVICE
I
I CONTROLLERJ
I CONTROLLER I

I SINGLE UNIT I

I

I

I

r.- J

I

Accommodates:

One device contraller

I

I

~~~O'!:!:E.!J

~V~ J

I

subchannel
L __per,_____
,__

I
r.:-.J.._:j

Single-byte interface
Four-byte interface

I

Accommodates:

Accommodates:

I

Stondard Features:

I

Two additional groups aF eight
subchonnels

Two additional groups of eight
subchannels

_..l-:::-1

One group of eight subchannels
Single-byte interface

Optional Features:

Optianal Features:

[1/0

I
I

Standard Features:

One group of eight subchonnels
Single-byte interface
Four-byte interface

r;:--1--,

r - -smcroRi~puT/OUTPUT-1
Il
PROCESSOR (SlOP)
I

-,

(ONE PER MIOP)

A Typical SIGMA 6 System

•

Call instructions permitting up to 64 dynamically
variable, user-defined instructions, and permitting
a program to gain access to operating system functions without operating system intervention.

•

Decimal hardware operations, including arithmetic, edit, and pack/unpack.

•

•

•

•

•

Push-down stack operations (hardware implemented) of single or multiple words, with automatic limitchecking, for dynamic space allocation,
subrouti ne communication, and recursive routine
capabi I ity.

•

Automatic conversion operations, including binary/
BCD and any other weighted-number systems.
An analyze instruction, for facilitating effective
address computation.

•

An interpret instruction, for increased speed of
interpretive programs.

•

Shift operations (left and right) or word or doubleword, including logical, circular, arithmetic, and
floating-point modes.

•

Allows the transfer of a 32-bit data word between
an affected regi ster and an external devi ce. In add ition, a 16-bit address is transferred for selection and
control purposes. Each transfer is under direct
program control.

•

Is used for the attachment of external units to the
direct I/O interface. External units may be Xerox
external interrupts, Xerox system interface units,
or nonstandard special equipment.

Comprehensive complement of modular software:
•

Expands in capabi I i ty and speed as system grows.

•

Basic system programming support: "Stand-Alone"
Systems and Basic Control Monitor (BCM).

•

Operating systems: Real-time Batch Monitor
(RBM), Batch Processing Monitor (BPM), Batch
Time-Sharing Monitor (BTM), Universal TimeSharing System (UTS), and Xerox Operating System (XOS). When larger computing capacity is
required, UTS and XOS users can expand to the
Xerox SIGMA 9 Computer.

•

Language processors that include: FORTRAN IV -H,
Extended Xerox FORTRAN IV, Xerox ANS COBOL,
BASIC, FLAG, Symbol, Macro-Symbol, MetaSymbol; also, utilities and applications software
for both commercial and scientific users, e. g. ,
Data Management System (DMS), General ized
Sort and Merge, Manage, 140 1 Simulator, Functional Mathematical Programming System (FMPS),
FMPS Matrix Generator/Report Writer (GAMMA3),
Simulation Language (SL-l), General Purpose Discrete Simulation package (GPDS), Circuit
Analysis Systems (CIRC-AC, CIRC-DC), etc.

Independently operating input/output system with the
following features:
•

Direct input/output of a full word, without the
use of a channel.

•

Up to eight input/output processors (lOPs).

•

Multiplexor input/output processors (MIOPs) for
simultaneous operation of up to 24 devices per
lOP.

•

MIOP expansion option for simultaneous operation
of up to 24additional devices, and includes conflictresolving circuitry that allows it to share a memory
bus with an MIOP.

•

Selector input/output processors (SlOPs) (8 or 32
bits wide}for data transfer rates approaching 4 mi IIi on bytes per second.

•

Up to 32 device controllers can be connected to
each SlOP.

•

Both data and command chaining, for gather-read
and scatter-write operations.

•

Up to 32,000 output control signals and input test
signals.

External interface feature that:
•

Provides an exter-nal interface for the attachment of
external equipment to a SIGMA 6 computer via the
Direct I/O system (Write Direct/Read Direct).

•

Standard and special-purpose peripheral equipment
includes:
•

Rapid Access Data (RAD) fi les: Capacities to
6.2 million bytes per unit; transfer rates to 3 -million bytes per second; average access times from
17 mi lIiseconds.

•

Magnetic tape units: 7-track and 9-track systems, IBM-compatible; high-speed units operate
at 150 inches per second wi th transfer rates up
to 120,000 bytes per second; and other units
operate at 37.5 inches per second with transfer
rates up to 20,800 bytes per second and at 75 inches
per second with transfer rates up to 60,000 bytes
per second.

•

Displays: Graphic display has standard character
generator, vector generator, and close-ups, as
well as I ight pen and alphanumeric/function keyboard with a display rate of up to 100,000 characters per sec ond.

General Characteristics

3

•

•

•

•

•

•

Card equipment: Reading speeds of up to 1500 cards
per minute; punching speeds of up to 300 cards per
minute; intermixed binary and EBCDIC card codes.

A SIGMA 6 system may have the following optional features:
•

Two additional real-time clocks

Line printers: Fully buffered, with speeds of up
to 1500 lines per minute; 132 print positions with
64 characters.

•

Up to 30 additional register blocks

•

Floating-point arithmetic unit

Keyboard/printers: Ten characters per second;
also available with integral paper tape reader
(20 characters per second) and punch (10 characters per second).

•

Up to 224 external priority interrupts

•

Up to four additional memory ports

•

Up to three additional Multiplexor I/O Processors
(MIOPs)

•

Up to two additional groups of eight multiplexor subchannels with each MIOP

•

MIOP expansion option for each MIOP with 4-byte
interface and one group of eight subchannels

•

Selector Input/Output Processor (SlOP) with 4-byte
interface

Paper tape equipment: Readers with speeds of up
to 300 characters per second; punches with speeds
of up to 120 characters per second.
Graph plotters: Digital incremental, providing
drift-free plotting in two axes in up to 300 steps
per second at speeds from 30 mm to 3 inches per
second.
Data communications equipment: A complete line
of character- and message-oriented equipment to
connect remote user terminals to the computer system via common carrier lines and local terminals
directly.

STANDARD AND OPTIONAL FEATURES
A basic SIGMA 6 system has the following standard
features:
•

A CPU that includes:

•
•
•
•

Decimal arithmetic unit
Memory map with access protection
Memory write protection
Watchdog timer

•
•
•

Two register blocks

•
•
•
•

Memory parity interrupt

Two real-time clocks
Power fa ii-safe

Input/output interrupt
Control pane I interrupt
External interface (Direct I/O)

•

32,768 words of main memory with two ports

•

Multiplexor Input/Output Processor with eight subchannels and 4-byte interface feature.

4

Standard and Opti ona I/Rea 1- Ti me Features

I

REAL-TIME FEATURES
Real-time appl ications are characterized by a need for hardware that provides quick response to an external environment,
enough speed to keep up with the real-time process and sufficient input/output flexibility to handle a variety of data
types at varying speeds. The SIGMA 6 system includes provisions for the following real-time computing features.
Multi level, True Priority Interrupt System. The real-time
oriented SIGMA 6 system provides for quick response to interrupts bymeans of up to 224 external interrupt levels. The
source of each interrupt is automatically identified and responded to according to its priority. For further flexibility
each level can be individually disarmed (to discontinue accepting inputs to it) and disabled (to defer responding to it).
Use of the disarm/disable feature makes programmed dynam;c
reassignment of priorities quick and easy, even while a realtime process is in progress. In establishing a configuration for
the system, each group of 16 interrupt levels can have its
priority assigned in different ways in order to meet the specific needs of the problem; the way in which interrupt levels
are programmed is not affected by the pri ority assignment.
Programs that deal with interrupts from specially designed
equipment sometimes must be checked out before that
equipment is actually available. To permit simulating this
special equipment, any SIGMA 6 interrupt level can be
triggered by the CPU itself through exec uti on of a si ngle
instruction. This capability is also useful in establishing a
hierarchy of responses. For example, in responding to a
high-priority interrupt, after the urgent processing is completed, it may be desirable to assign a lower priority to the
rema i n i ng porti on in order to respond to other cri ti ca I i nterrupt levels. The interrupt routine can accomplish this by
triggering a lower-priority level, which processes the remaining data only after other interrupts have been handled.

I

Nonstop Operation. When connected to special devices
(on a ready-resume basis), the computer can sometimes
become excessively delayed if the special device does not
respond quickly. A built-in watchdog timer assures that
the SIGMA 6 computer cannot be delayed for an excessive length of time.
Real-Time Clocks. Many real-time functions must be timed
to occur at specific instants. Other timing information is
also needed - elapsed time since a given event, for example,
or the current time of day. SIGMA 6 can contain two (or
four) real-time clocks with varying degrees of resolution
(1/60 second or V8 mi lIisecond, for example) to meet these
needs. These clocks also allow easy handling of separate
time bases and relative time priorities.
Rapid Context Switching. When responding to a new set of
interrupt-initiated circumstances, a computer system must
preserve the current operating environment, for continuance
later, whi Ie setting up the new environment. This changing
of environments must be done quickly, with a minimum of
II overhead II costs in time.
In SIGMA 6, each one of up to
32 blocks of general-purpose arithmetic registers can, if
desired, be assigned to a specific environment. All relevant information about the current environment (instructi on
address, current genera I regi s"er block, memory-protecti on
key, etc.) is kept in a 64-bit program status doubleword
(PSD). A single instruction stores the current PSD anywhere in memory and loads a new one from memory to establish a new environment, which includes information
identifying a new block of general-purpose registers. A
SIGMA 6 system can thus preserve and change its operating
environment completely through the execution of a single
i nstructi on.
Simultaneous I/O Channel Operation. The use of a multiplexor input/output processor (MIOP) or MIOP expansion
option permits up to 24 channels with standard-speed devices to operate concurrently; the addition of more MIOPs
increases this throughput.
High-Speed Channel Operation. The use of the selector
input/output processor (SlOP) permits very high-speed data
transfer - up to one 32-bit word per memory cycle. To
meet special needs, data size can be 8 or 32 bits wide.
Memory Protection. Both foreground (real-time) and background programs can be run concurrently ina SIGMA 6
system, because a foreground program is protected against
destructi on by on unchecked background program. Memory write-protection guarantees that protected areas of
memory can be written into only under predefined conditions. Under operating system control, the memory
access-protection feature also prevents accessing of memory for specified combinations of reading, writing, and
instruction acquisition.
Variable Precision Arithmetic. Much data encountered in
real-time systems are 16 bits or less. To permit this length
of data to be processed efficiently, SIGMA 6 provides halfword arithmetic operations in addition to fullword operations. Doubleword arithmetic operations (for extended
precision) are also included.

Direct Data Input/Output. For handl ing asynchronous I/O,
a 32-bit word can be transferred directly to or from a
general-purpose register, so that an I/O channel need not
be occupied with relatively infrequent transmissions.
Interleave/Overlap. To increase processing speeds, memory banks overlap cycles automatically wherever possible.
Core memory addresses can be interleaved modul0-2 or
modul0-4 on a bank basis to increase the probability of
overlapping.

GENERAL-PURPOSE FEATURES
General-purpose computing applications are characterized
primari Iy by an emphasis on computation and internal data
handling. Many operations are performed in floating-point
format and on strings of characters. Other typical characteristics include decimal arithmetic operations, the need to
convert binary numbers into decimal (for printing or display),
and considerable input/output at standard speeds. The
SIGMA 6 system includes the following general-purpose
computer features.
Floating-Point Hardware (optional). Floating-point instructions are avai lable in both short (32-bit) and long
(64-bit) formats. Under program control, the user can
select optional zero checking, normalization, and significance checking (which causes the computer to trap when a
post opera.tion shift of more than two hexadecimal places
occurs in the fraction of a floating-point number). The
significance checki ng feature permits the use of the short
floating-point format (for high processing speed and storage
economy) and the use of the ·Iong format when loss of
significance is detected.
Decimal Arithmetic Hardware. Decimal arithmetic instructions operate on up to 31 digits plus sign. This instruction
set also includes pack/unpack instructions (for converting to/
from the packed format of two digits per byte) and a generalized edit instruction (for zero suppression, check protection,
and formatting byte information with punctuation to displc:y
or print it).
Indirect Addressing. This feature provides for simple table
linkages and permits the user to keep data sections of
his program separate from procedure sections for ease of
maintenance.
Displacement Indexing. The technique of indexing by
means of a IIfloating li displacement permits the user to
access the desired unit of data without the need to consider its size. The index registers automatically align
themselves appropriately; thus, the same index register
can be used on arrays with different data sizes. For exomple, in a matrix multiplication of any array of fullword,
single-precision, fixed-point numbers, the results can be
stored in a second array as double-precision numbers, using
the same index quantity for both arrays. If an index register contains the value of k, then the user always accesses
the kth element, whether it is a byte, halfword, word, or
doublaword. Incrementing by various quantities according
to data size is not required; instead, incrementing is always

General-Purpose Features

5

by units in a continuous array table no matter which size
of data element is used.
Powerful Instruction Set. The availability of more than
100 major instructi ons results in programs that are short,
rapidly assembled, and quickly executed.
Translate Instruction. This instruction permits rapid translation between any two 8-bit codes (such as EBCDIC to
ANSCII); thus data from a variety of input sources can be
easi Iy handled and reconverted for output.
Conversion Instructions. Two generalized conversion instructions provide for bidirectional conversions between
internal binary and any other weighted number system,
including BCD.
Call Instructions. Four instructions permit handling up to
64 user-defined subroutines (as if they were built-in
machine instructions) and gaining access to specified operating system services without requiring its intervention.
Interpret Instruction. This instruction simplifies and speeds
interpretive operations such as compi Iing, thus reducing the
space and time requirements for compilers.
Four-Bit Condition Code. This feature simplifies the
checking of results by automatically providing information
on almost every instruction execution (including indicators
for overflow, underflow, zero, minus, and plus, as appropriate) without requiring an extra instruction execution.

TIME -SHARING FEATURES
Time-sharing is the abi lity of a computer system to share
its resources among many users at the same time. Each
user may perform a different task that requires a different
share of the avai lable resources and, in many instances,
each may be on-line in an interactive ("conversational")
mode with the computer. Other users may enter work to be
batch processed. The SIGMA 6 system provides for the following time-sharing computer features.
Rapid Context Saving. When changing from one user to
another, the operating environment can be switched quickly
and easi Iy. Stack-manipulating instructi ons permit from
one to 16 general-purpose registers to be stored in a pushdown stack by a single instruction - with automatic updating
of stack status information - and to be retrieved (again, by
a single instruction) when needed. The current program
status doubleword (which contains the entire description of
the current user's environment and mode of operation) can
be stored anywhere in memory and a new program status
doubleword loaded, all with a single instruction.
Multiple Register Blocks. The optional avai lability of up
to 32 blocks of 16 general-purpose registers further improves
response time by reducing the need to store and load register blocks. As needed, ea~h user can be assigned a distinct
block; the program status doubleword automatically points
to the currently appl icable register block.

6

Time-Sharing/Multiuse Features

User Protection. The slave mode of operati on restricts each
user to his own set of instructions while reserving to the
operating system those instructions that could, if used in- ~
correctly, destroy another user's prog:am. A memory acce~
protection system prevents any user from accessing storage
areas other than those assigned to him. This access protection permits the user to access certain areas for reading only,
such as those containing public subroutines, whi Ie preventing
him from reading, writing, or accessing instructions in areas
set aside for other users.

Storage Management. SIGMA 6 memories are available in
seven sizes (from 32,768 to 131,072 words) to provide the capacity needed, while assuring potential for expansion. To
assure efficient use of available memory, the memory map
hardware permits storing a user's program in fragments (as
small as 512 words) wherever space is available; yet, all
fragments appear as a single, contiguous block of storage at
execution time. The memory map also automatically and
dynamically handles program relocation, so that the program appears to be stored in a standard way at execution
time (even though it may actually be stored in a different
set of locations each time it is brought into memory). The
memory map for the full-sized SIGMA 6 memory is provided
no matter how sma II the actua I memory may be. Th us, the
system can always address a virtual memory of 131,072 words
regardless of physical memory size.

I'

Input/Output Capability. Sigma 6 can control up to eight I
input/output processors (of two types) in various combinations. Each multiplexor I/O processor or MIOP expansiort-"
option can have up to 24 standard-speed I/O channels operating simu Itaneously; selector I/O processors can have any
one of up to 32 high-speed I/O devices operating on each
processor. The I/O processors operate semi-independently
of the central processor, leaving it free to provide faster
response to overall system needs.

Nonstop Operation. A watchdog timer assures that the
system conti nues to operate even if certain special I/O
capabilities are used with special devices that can cause
delays or halts if they fail. Multiple real-time clocks with
varying resolutions permit establishing several independent
time bases, thus allowing flexible allocation of time slices
to each user.

MULTIUSE FEATURES
As implemented in the SIGMA 6 system, II multi use II combines two or more computer applicati on areas. The most
difficult computing problems are associated with real-time
applications. Simi larly, the most difficult multiuse problems are associated with time-sharing applications that
include one or more real-time processes. SIGMA 6 system design is especially suited for a mixture of applications in a multiuse environment. Many of the hardware
features that are required for specific application areas
are equally useful in others, although in different ways.

This multiple capabi lity makes SIGMA 6 particularly effectiv.", for multiuse applications. The major SIGMA 6 multiuse
computer features are:
Priority Interrupt. In a multiuse environment, many elements operate asynchronously. Thus, a true pri ority i nterrupt system is essential. It allows the computer system
to respond quickly {and in proper order} to the many demands made on it, without the high overhead cost of
compl icated programming, lengthy execution time, and
extensive storage allocations.
Quick Response. The many features that combine to produce a quick-response system - multiple register blocks,
quick context saving, push-pull operations - benefit all
users because more of the computer's resources are available for useful work.

Memory Protection. The memory protection features protect
each user from every other user and also guarantee the
integrity of programs that are essential to critical real-time
applications.
Input/Output. Because of its wide range of capacities
and speeds (with and without channels), the SIGMA 6
I/O system simultaneously satisfies the needs of many
different application areas economically, both in terms of
equipment and of programming.
Instruction Set. The large SIGMA 6 instruction set provides the computational and data-handling capabilities
required for widely differing application areas; therefore,
each user's program length (thus running time) is decreased
and the speed of obtaining results is increased.

Multiuse Features

7

2. SIGMA 6 SYSTEM ORGANIZATION
The primary el ements in a basic SIGMA 6 system - a centrai
processor, core memory, and input/output processor - are
all designed around a central, double bus structure.
Each primary element of the system operates asynchronously
and semi -independently, automatically overlapping the operation of the other elements (when circumstances permit)
for greater speed. The basic configuration can be expanded
merely by increasing the number of core memory units
(up to four), increasing the number of buses (up to six),
increasing the number of input/output processors (up to
eight), or by increasing the number of central processors.

INFORMATION FORMAT
The basic element of SIGMA 6 information is a 32-bit word,
in which the bit positions are numbered from 0 through 31,
as follows:

A SIGMA 6 word can be divided into two 16-bit parts
(called halfwords) in which the bit positions are numbered
from 0 through 15, as follows:

Byte 1

Byte 2

SIGMA 6 core memory systems use a 32-bit word (four 8-bit
bytes) plus a parity bit as the basic unit of information, All
of memory is directly addressable by the CPU (except for
memory locations 0 through 15)and by the lOPs. The SIGMA6
addressing capabi lity accommodates a maximum memory size
of 131, 072 words (524,288 bytes). Core memory is modular
and is available in increments of 16, 384 words (65,536 bytes),
The main memory for SIGMA 6 is physically organized as a
group of "units", A memory unit is the smallest, logically
complete part of the system. It is the smallest port that
can be logically isolated from the rest of the memory system. A memory unit may consist of up to two physical
memory banks. Each memory bank operates independently
and asynchronously with respect to each other. 128K words
of main memory is comprised of four memory units. The
memory is word, halfword, and byte addressable for both
reading and writing. Each memory unit has a set of "ports"
that are common to both banks within the unit; that is,
all ports in a given memory unit give access to the bonks
within that unit. The basic system is provided with two
ports, expandable to six.
The memory system has 2-way interleaving capabi lity within
a unit and 4-way interleaving between two adjacent units.
Interleaving increases the probabi lity that a processor can
gain access to a given memory bonk without encountering
interference from other processors: A multiple bonk system
increases the probability that successive memory accesses
may be overlapped. In combination, these two features
provide the SIGMA 6 system with effective memory cycle
times of a fraction of the individual bonk cycle times.

A SIGMA 6 word can also be divided into four 8-bit parts
(called bytes) in which the bit positions are numbered from
o through 7, as follows:
Byte 0

CORE MEMOR't'

Byte 3

DEDICATED MEMORY LDCATIONS
Memory locations 0 through 319 are reserved by standard
XDS software for dedicated purposes as shown in Table 1.

Two SIGMA 6 words can be combined to form a 64-bit
element (called a doubleword) in which the bit positions
are numbered from 0 through 63, as follows:

INFORMATION BOUNDARIES

I

:

least

si9ni~cant ward:
d 52

I

SIGMA 6 instructions assume that bytes, halfwords, and
doublewords are located in storage according to the
following boundary conventions:
1.

A byte is located in bit positions 0 through 7, 8
through 15, 16 through 23, or 24 through 31 of a word.

Four bits of information can be expressed as a single hexadecimal digit. A byte can be expressed as a 2-digit hexadecimal number, a halfword as a 4-digit hexadecimal
number, a word as an 8-digit hexadecimal number, and a
doubleword as a 16-digit hexadecimal number. In this
reference manual, a hexadecimal number is displayed as
a string of hexadecimal digits enclosed by single quotation
marks and preceded by the letter X". For example, the
binary number 01011010 is expressed hexadecimally as

2.

A halfword is located in bit positions 0 through 15 or
16 through 31 of a word.

3.

A doubleword is located such that bits 0 through 31 of
the doubleword are contained within an even-numbered
word, and bits 32 through 63 of the same doubleword
must be contained within the next consecutive (oddnumbered) word.

X ' 5A',

The various information boundaries are illustrated in Figure 2.

32 33 34 35136 37 38 39 40 41 42 43144 45 46 47 48 49 50 5

II

8

51 GMA 6 System Organization

53 54 55 56 57 58 59160 61 62 63

i

Doubleword

I

I

Doubleword

I

.•

I

I

Word (even address)

!
i

I

Halfword 1

Halfword 0

Halfword 0

Word (odd address)

Word (even address)

Word (odd address)
Halfword 1

Halfword 0

Hal fword 1

Halfword 0

Halfword 1

1

I

I

iI

: Byte 01 Byte 1 Byte 21 Byte 3 Byte 0 1 Byte 1 Byte 2/ Byte 3 Byte 0 / Byte 1 Byte 2\ Byte 3 Byte 0 Byte 1 Byte 2[ Byte 3!
Figure 2.

Table 1.

SIGMA 6 Dedicated Memory Locations

Location
Hexadecimal
Decimal
0

Information Boundaries

Function

0
Addresses of general registers

15

F

16

10

COMPUTER MODES
The SIGMA 6 computer operates in either the master mode
or the slave mode. The mode of operation is determined
by the state of the master/slave mode control bit in the
arithmetic and control unit.

MASTER MODE
Reserved for future use

31

1F

32
33

20
21

34

22

41

29

42

2A

63

3F

64

40

Cpu/Iop communication

Program stored by LOAD
switch on the processor panel

SLAVE MODE
First record read from periphera device during a load
operation

Traps (see Table 3)
79

4F

80

50

87

57

88

58

91

5B

92
93

5C
5D

Input/output interrupt level/

94
95

5E
5F

Reserved for future use

96

60

t

External interrupt level/

tSee Table 2

13F

The slave mode is the problelT)-solving mode of the computer. In this mode, "privileged" instructions are prohibited. Privileged instructions are those relating to input/
output and to changes in the basic control state of the computer. All privileged instructions are performed in the
master mode only. Any attempt by a program to execute a
privileged instruction while the computer is in the slave
mode results in a return of control to the resident executive program.

Override interrupt levels t

Counter interrupt level/

319

The master mode is the basic operating mode of the
computer. In this mode, all SIGMA 6 instructions are
permissible. It is assumed that there is a resident executive program (operating in the master mode) that controls
and supports the other programs operating in the master
or slave mode.

The master/slave mode control bit can be changed only
when the computer is in the master mode; thus, a slave program cannot directly change the computer mode from slave
to master. However, the slave program can gain direct
access to certain executive program operations by means
of call instructions. The operations available through
call instructions are established by the resident executive program.

CPU FAST MEMORY
Several high-speed integrated circuit memories may be
used in the SIGMA 6 CPU. These memories are capable of delivering information to (or receiving information from) the arithmetic and control unit simultaneously
with the operation of core memory. These memories
are not accessible to any other unit in a SIGMA 6
system.
Computer Modes/CPU Fast Memory

9

CENTRAL PROCESSING UNIT
This section describes the organization and operation of
the SIGMA 6 central processing unit in terms of information processing and program control, instruction and data

formats, indirect addressing and indexing, memory mapping
and protection, overflow and trap conditions, and interrupt control. Basically, the SIGMA 6 CPU consists of
a fast memory and an arithmetic and control unit (see
Figure 3).

CPU fAST MEMORY

ARITHMETIC AND CONTROL UNIT

GENERAL REGISTER BLOCK (nPiCALI

INSTRUCTION REGISTER

o

o I....________~
1~:n~:n~§I~&~m~@~@~@~Th~~@~%~~@~@~ru~w~M~a~
2
3

III I III I
I

8

lil!!:i!!!i:[!I[ttlllIililili!il@ttilIi!illi:it}!ttitl:1!~@!IMI1!@!!i!i!Ii!i!{fi!1
1?:::Iffl:::l:::Ijljl!i!ill:iImt:1:::I1~iI::fliJi::~l:lIllIlllIIiIi}}tIIl

5

1:}I: :i: t: :~l: i ~: i i i:i~i lili il!il :l\l\l liIlili~il:~i~i~\1!1:1\~\1lI1l1l1ltjl :l:l j:lt tl:l:tlt: 1

General Register Designator

11

ITIJ

Index
~ Registers

Operation Code Field

7

ITTIJ

1:~~:::::fII:J:~:lJlI:l:jiI:Il~:~:~::II:1I::ililil:::lilmI1lljIIlllll\llllllItm!ililti::1

4

Indirect Address Flag

o

12

Index Register Designator

,.

Reference Address Field

11111111111111111111
15

.....~--...-jt~

6 1:::t:!!I:t:I:I:Iiili!11!il!lljlIll\illllllllilttIi:lilIJliti!tI::1il!:::!Illl!tl!lH
7

31

I..

f))))))):))))!)!!i~!:r!I:l)ijl)l)!)~!)ljl)~I!!!lj~~IIjjjljljj!j!j!j)))))jI)I!lj:)))I1)!1!Iijj)~1!~~))liI)j)lI!J

•

~

I

a

]

9

Priority Interrupt System

10

Write Direct

PROGRAM STATUS DOUBLEWORD

11

12

o

Condition Code

3

ITTI

31-digit
Decimal
Accumulator

14
15

rrrn

~------------------~ ~

13

o
S

Flooting-point Mode Control

7

Master/Slave Mode Control

o

~------------------~3' ~

Memory Map Control

9

OJ

MEMORY CONTROL STORAGE
Memory Map

Arithmetic Trap Masks

10 \I

Instructian Address

111111111111111111

I - 256 a-bit page addresses ---t

IS

Memory Access Protection

III1I111I1111

~ ~--+-I""-'-II"""'-II

I--- 256 2-bit access codes ~

II1II1III1I11 ~~~II~III
l---- 256 2-bit write locks ---I

Figure 3.

Central Processing Unit

31

OJ
OTI

-

Write Key

343S

Memory Write Protection

10

I

To/From
Core Memory
To/From
I/O Processors
• Read/Write
Direct
__ Interrupts

.•

37

I

Interrupt Inh ibits

39

III
III
ss

Register Block Pointer

59

SIGMA 6 Central Processing Unit

I

I

I

--

GENERAL REGISTERS AND REGISTER BLOCK POINTER
A register block is a high-speed memory consisting of sixteen 32-bit words contained in the basic SIGMA 6 CPU for
general-purpose register usage. A SIGMA 6 contains two
such register blocks (expandable to 32), and a 5-bit control
field (called the register block pointer) in the arithmetic
and control unit selects the block currently available to
a program. The 16 general registers selected by the
register block pointer are referred to as the current register
'block. The register block pointer can be changed only
when the computer is in the master mode; thus, a slave
program cannot change the register block pointer.
Each general register in a current register block is identified
by a 4-bit code in the range 0000 through 1111 (0 through 15
in decimal, or X'O' through X'F' in hexadecimcl notation).
Any general register can be used as a fixed-point accumulator, floating-point accumulator, temporary storage, or can
contain control information such as a data address, count,
pointer, etc. Any (or all) of general registers 1 through 7
can be used as index registers. Registers 12 through 15 are
used as a decimal accumulator that is capable of containing
31 decimal digits plus sign. The use of registers 12 through 15
is automatic when a decimal instruction is executed; however, these registers may be used for other purposes by instructions not in the decimal instruction set.

MEMORY CONTROL STORAGE
Three high-speed integrated-circuit memories are avai 1able for storage of a memory map, a set of memory accessprotection codes, and a set of memory write-protection
codes, all of which can be changed only when the computer
is in the master mode.

MEMORY MAP AND ACCESS PROTECTION
The memory map feature includes high-speed memories for
both the memory map and the access-protection codes. Use
of the map is determined by the state of the memory map
control bit in the arithmetic and control unit.

Memory Map. Two terms are essential to a proper understanding of the memory mapping concept: virtual address
(Jnd actua I address.
A virtual address is a value used by a machine-level program to designate the location of an instruction, the location of an element of data, the location of a data address
(indirect address), or to designate an explicit quantity,
such as a count. Normally, virtual addresses are derived
from programmer-suppl ied labels through an assembly (or
compi lation) process followed by a loading process. Virtual
addresses maya Iso be computed during a program's execution. Thus, virtual addresses include all instruction addresses, data addresses, indirect addresses, and addresses
used as counts within a s~ored program, as well as those
addresses computed by the program.

An actual address is a value used by the CPU t:. access memory for storage or retrieval of information, as required b>, tl1e
execution sequence of an instruction. Thus, actual addresses
designate wired-in hardware storage locations.
When the memory map is not in effect in a SIGMA 6 computer, as determined by the memory map control bit, all
virtual address values above 15 are used by the CPU as actual addresses. Virtual addresses in the range 0 through 15
are always used by the CPU as general register addresses
rather than as core memory addresses. Thus, for example,
if an instruction uses a virtual address of 5 as the address
where a result is to be stored, the result is stored in general
register 5 in the current register block instead of in core
memory location 5.
When the computer is operating with the memory map, virtual addresses in the range 0 through 15 are sti II used as
general register addresses. However, all virtual addresses
above 15 are transformed into actual addresses, by replacing
the high-order portion of the virtual address with a value obtained from the memory map. The memory map replacement
process is descri bed in the secti on II Memory Address Control" .
Memory Access Protection. When the computer is operati ng in the slave mode with the memory map, the accessprotection codes determine whether or not the program may
access instructions from, read from, or write into specific
regions of the virtual address continuum (virtual memory).
If the slave program attempts to access a region of virtual
memory that is so protected, program control is returned to
the executive program. (The access-protection codes are
described in the section "Memory Address Control".)

MEMORY WRITE PROTECTION
The memory write-protection feature operates independently
of the memory map and access protection. The memory
write-protection feature includes the high-speed memory
for the memory write locks. These locks operate in conjunction with a 2-bit field, called the write key, in the
arithmetic and control unit. The locks and the key determine whether or not the program (slave or master) may
alter the contents of specific regions of core memory as
accessed by actual addresses. The write key can be changed
only when the computer is in the master mode; thus the current write key cannot be changed by a slave program. (The
functions of the locks and key are described in the section
"Memory Address Control".)

INSTRUCTION FORMAT
The normal SIGMA 6 memory-addressing instruction has the
following format:

*

This bit position indicates whether or not indirect addressing is to be performed. Indirect
addressing is performed (one level only) if this

Instruction Format

11

bit position contains a 1, and is not performed
if this bit position contains a 0.
Operation

This 7-bit field contains the code that designates the operation to be performed.

R

This 4-bit field designates any of the 16 registers of the current register block as an operand
source, result destination, or both.

x

This 3-bit field designates anyone of registers
1-7 of the current register block as an index
register. X =0 designates no indexing; hence,
register cannot be used as an index register.

°

Reference
address

This 17-bit field contains the initial virtual address of the instruction operand. Although the
contents of this field is always, in itself, a word
address, the reference address field allows any
word, doubleword, left halfword, or leftmost
byte within a word in memory to be directly
addressed. Halfword and byte operations require additional address bits for halfwords and
bytes that do not begin on a word boundary.
Thus, to address the second halfword of a word,
the X fi~ld of the instruction must designate a
register that contains a 1 in its low-order bit
position. To address bytes 1, 2, or 3 of a word,
the X field of the instruction must designate a
register that contains 01, 10, or 11, respectively, in its two low-order bit positions. See
II Indexing and Index Registers" for a more complete description of the SIGMA 6 indexing
process.

Some SIGMA 6 instructions are ofthe immediate-addressing
type. The format of these instructions provides for an
operand within the instruction word itself, as shown below.
The functions of the Operation and Rfields are identical to
those of the normal instruction format.

°

This bit position is shown coded with a 0 because indirect addressing cannot be used with
this type of instruction. If indirect addressing
is attempted, the computer treats the instruction as a nonexistent instruction.

Operand

This field contains an operand that is 20 bits in
Iength, with negative numbers represented in
two's-complement form.

There are several methods by which an instruction word
may specify the source of an operand or the destination of
a result. These methods are explained below.

IMMEDIATE OPERAND
The operation code of an i'mmediate operand instruction
spec i fi es that an operand is to be found in the operand
field (bit positions 12-31) of the instruction word itself,

12

Instructi on Format

and not in a general register or core memory location. The
operand field of this type of instruction cannot be modified
by indexing. The following SIGMA 6. instructions are of
the immediate operand type:
Instruc ti on Name

Mnemonic

load Immediate

LI

29

load Conditions and Floating
Control Immediate

LCFI

32

Add Immediate

AI

36

Mul tipl y Immediate

MI

38

CI

41

Compare Immediate

Page

The byte string instructions are similar to those of the
. immediate operand type in that they cannot be modified
by indexing. However, the operand field of these instructions contains a byte address displacement (or a byte
address) that is a virtual address subject to modification by
the memory map. If an immediate or byte string instruction
is indirectl y addressed, it is treated as a nonexistent instruction by the computer.

MEMORY REFERENCE ADDRESSES

°

Core memory locations through 15 are not accessible to
the programm~r because memory addresses through 15 are
reserved as register designators for "register-to-register"
operations. Thus, an instruction can treat any register of
the current register block as if it were a location in core
memory. Furthermore, the register block can be used to
hold an instruction (or a series of up to 16 instructions) for
execution just as jf the instruction (or instructions) were in
core memory. The only restriction upon the use of the
register block for instruction storage is:

°

If an instruction accessed from a general register uses
the R field of the instruction word to designate the
next higher-numbered register and execution of the
instruction would alter the contents of the register so
designated, the contents of that register should not be
used as the next instruction in sequence because the
operation of the instruction in the affected register
would be unpredictable.
In the maximum core memory configuration (131,072 words),
memory addresses II wrap around" with address (general
register 0) being the next consecutive memory address after
X I1FFFFI(131,071). Core memory location 16 follows general register 15 as the next location in ascending sequence.

°

Direct Reference Address. If neither indirect addressing
nor indexing is called for by the instruction, the reference
address field of the instruction is a direct reference address.

Indirect Reference Address. If indirect addressing is called
forbythe instruction (a 1 in bit position 0 of the instruction
word), the reference address field is used to access a word
location that contains the direct reference address in bit

positions 15-31. Tile direct reference address then replaces the indirect reference address. Indirect addressing
is limited to one level; only the reference address field of
the indirect word is significant.
Index Reference Address. If indexing is called for by the
instruction (a nonzero value in bit positions 12-14 of the
instruction), the direct reference address is modified by
addition of the displacement value in the general register
(index) called for by the instruction (after scaling the displacement according to the instruction type). This final
reference address value (after indirect addressing, indexing, or both) is defined as the effective address of the
instruction. If indirect addressing and indexing are both
called for in an instruction, the index displacement is not
used to modi fy the indi rect reference address, but is used
to modify the direct reference obtained from the loca~
tion pointed to by the indirect reference address. ThiS
method of indexing after indirect addressing is called
postindexing.
Register Address. If any instruction produces a virtual address that is a memory reference (i. e., a direct, indirect
or indexed reference address) in the range 0 through 15,
the CPU does not attempt to read from or write into core
memory. Instead,the 4 low-order bits of the reference
address are used as a general register address, and the genera I register (of the current register block) corresponding to
this address is used as the operand location or result destination. Thus, the instruction can use any register in the
current register blockasthe source of an operand, thelocation ofa direct address, or the destination of a result. Such
usage is referred to as a IIregister-to-register ll operation.
Actual Address. An actual address is the address value
actually used by the CPU to access core memory. If the
computer is not operating with the memory map, all virtual
addresses above 15 automatically become actual addresses.
However, if the computer is operating in the memory map
mode, all virtual addresses above 15 are transformed (usually
into alternate addresses in a different memory page) by the
memory map, and these then become actual addresses. Virtual addresses below 16 are never transformed by the memory map and thus always refer to a general register for
a register-to-register operation.
Effective Address. The effective address is defined as the
final virtual address computed for an instruction. The
effective address is usually used as the virtual address of
an operand location or result destination. However, some
instructions do not use the effective address as a location
reference; instead, the effective address is used to control
the operation of the instruction (as in a shift instruction),
to designate the address of an input/output device (as in
an input/output instruction), or to designate a specific
element of the system (as in a READ DIRECT or WRITE
DIRECT instruction).
Effective Location. An effective location is defined to be
the actual location(in core memory or in the current register block) that is to receive the result of a memoryreferencing instruction, and is referred to by means of an effective address. Because an effective address can be either
an actual address or a virtual address, this definition of an

effective location assumes, where applicable, the transformation of vi rtual addresses into ac tual address.
Effective Operand. An effective operand is defined to be
the contents of an actual location (in core memory or in
the current register block) that is to be used as an operand
by a memory-referencing instruction, and is referred to by
means of an effective address. This definition of an effective operand also presupposes the transformation of virtual address into actual addresses.
ADDRESS MODI FICA nON
Indirect Addressing. The 7-bit operation code field of the
SIGMA 6 instruction word format provides for up to 128 instruction operation codes, nearl y all of which can use i ndirect addressing (the exceptions, already mentioned, are the
immediate and byte string instructions). The indirect addressing operation is limited to one level, as called for by
the indirect address bit (bit position 0) of the instruction
word. Indirect addressing does not proceed to further levels,
regardless of the contents of the word location pointed to by
the reference address field of the instruction. Indirect addressing occurs before indexing; that is, the 17-bit reference
address field of the instruction is used to obtain a word, and
the 17 low-order bits of the word thus obtained effectively
replace the initial reference address field; then, indexing
is carried out according to the operation code of the
instruction.
Indexing aAd Index Registers. The X field of the normal
instruction format permits anyone of registers 1 through 7
in the current register block to be designated as an index
register. The contents of this r~gister are then treated as
a displacement value.
Figure 4 shows how the indexing operation takes place. As
the instruction is brought from memory, it is loaded into a
34-bit instruction register that initially contains OIS in the
two low-order bi t posi ti ons (32 and 33). The di splacement val ue
from the index register is then aligned with the instruction
register (as an integer) according to the addressing type of
the instruction. That is; if it is a byte operation, the displacement is lined up so that its low-order bit is aligned
with the least significant bit of the 34-bit instruction register. The displacement is shifted one bit to the left of this
position for a halfword operation, two bits to the left for a
word operation, and three bits to the left for a doubleword
operation. An addition process then takes place to develop
a 19-bit address, which is referred to as the effective address of the instruction. High-order bits of the 32-bit displacement field are ignored in the development of th is
effective address (i. e., the 15 high-order bits are ignored
for word operations, the 25 high-order bits are ignored for
shift operations, and the 16 high-order bits are ignored for
doubleword operations). However, the displacement value
can cause the effective address to be less than the initial
reference address within the instruction if the displacement
value contains a sufficient number of high-order lis (i. e. ,
if the displacement is a negative integer in twols complement form).
The effective address of an instruction is always a 19-bit byte
address value; however, this va lue is automati cally ad justed

Instruction Format

13

Instruction in memory:

Instruction in instruction register:

Byte operation indexing alignment:

Halfword operation indexing alignment:

Word operation indexing alignment:

Shift operation indexing alignment:

Doubleword operation
indexing alignment:

Effective virtual address:

Figure 4.

Index Displacement Alignment

to the SIGMA 6 information boundary conventions. Thus,
for halfword operations, the low-order bit of the effective
halfword address is 0; for word operations, the two low-order
bits of the effective word address are OIS; and for doubleword
operations, the 3 low-order bits of the effective doubleword
address are 0 1 s.
If no indexing is used with a byte operation, the effective
byte is the first byte (bit positions 0-7) of a word location;
if no indexing is used with a halfword operation, the effective halfword is the first halfword (bit positions 0-15) of a
word location. A doubleword operation always involves a
word at an even-numbered word address and the word at the
next sequential (odd-numbered) word address. If an oddnumbered word location is specified for a doubleword operation, the low-order bit of the effective address field (bit
position 31) is automatically forced to O. Thus, an oddnumbered word address (referring to the middle of a doubleword) designates the same doubleword as an even-numbered
word address, when used for a doubleword operation.

the memory map and the memory write locks. The memory map provides for dynamic relocatabi lity of programs
and for access protection through inhibitions imposed on
slave mode programs. The memory write locks provide memory write protection for both master and slave mode programs.

MEMORY MAP AND ACCESS PROTECTION
The memory map can be represented as a series of 256 a-bit
registers, each of which contains an a-bit actual memory
page address code for a specific 512-word page of virtual
addresses, and a series of 256 2-bit registers, each of which
contains a 2-bit access control code for a specific 512-word
page of virtual addresses. (The access control codes are applicable only to programs operating in the slave mode with
the memory map. )
The memory page address codes are assigned to pages of virtual addresses as follows:

I

I

Memory page X Memory page K

MEMORY ADDRESS CONTROL
With a SIGMA 6 computer,' two methods are avai lable for
control Ii ng the use of core memory by a program; they are

14

Memory Address Control

Vi rtua I addresses
X'lO'_X'lFF '
(virtual page 0)

I~ ~ I

Memory page N

Virtual addresses Virtual addresses
X'200'-X ' 3FF'
Xil FEOO'-X'l FFFF'
(virtual page l)
(virtual page 255)

I

The access control codes are assigned as follows:

I I I IHI I I
AC

AC

AC

AC

AC

·Virtual addressts +Vi r tua I ~ddresses
1
I
I
X'lFEOOI-XllFFFF'
X 600 ' - X 7FF 1
Vi rtua I addresses
(virtual page 255)
XI4001-X I5FF'
Virtual addresses
Virtual addresses
XI2001-X I3FF'
XllFCOOI-XllFDFF'
Vi rtua I addresses
XllOI-XllFF'
(virtual page 0)

1

The memory page addresses and access control codes can
be changed only by the privileged instruction MOVE
TO MEMORY CONTROL (see "Control Instructions").
When the CPU is operating in the mapping mode, all memory references used by the program (including instruction addresses) whether direct, indirect, or indexed, are referred to
as virtual addresses. Virtual addresses in the range 0 through
15 are not used to address core memorYi instead, the 4 loworder bits of the virtual address comprise a general register
address. However, if an instruction produces a virtual address greater than 15, the 8 h~gh-order bits of the virtual
address are used to obtain the appropriate memory page address and access control codes. For example, if the 8 highorder bits of the virtual address are 0000 0000, the first page
address code and the first access control code are used; if
the 8 high-order bits of the virtual address are 0000 0001,
the second page address and access control codes are used;
and so on, through the 256th page address and control codes.
Thus, each 512-word page of virtual addresses is associated
wi th its own memory page address and access control codes.
When the memory map is accessed, the CPU performs a test
to determine whether or not there are any inhibitions on using
the virtual address by a slave program. (If the CPU is in the
master mode, this test is not performed.) The 2-bit access
control code is interpreted as follows:
AC Function
00

The slave program can write into, read from, or access
instructions from this page of virtual addresses.

01

The slave program cannot write into, but can read from
or access instructions from this page of virtual addresses.

10

The slave program cannot write into or access instructions from, but can read from this page of virtual addresses.

11

The slave program is denied any access to this page of
virtual addresses.

If the instruction being executed by the slave program fails
this test, the instruction execution is aborted and the computer traps to location X 140 ', the "nonallowed operation"
trap (see II Trap System").
If the instruction being executed by the slave program passes
this test (or the CPU is in the master mode), the page address

bits in the accessed byte of the memory map replace the 8
high-order bits of the virtual address, to produce the actua I
address of the core memory location to be used by the instruction.

If the page address bits in the accessed byte of the memory
map are all O'S, and when combined with 9 low-order bits
of the virtual address, an actual address is produced that
corresponds to a word address in the range 0 throug h 15,
the corresponding general register in the current register
block is not accessed. In this one particular instance, a
word address in the range 0 through 15 corresponds to actual
core memory locations rather than general registers.
Figure 5 illustrates the address modification and mapping
process for an indirectly addressed, indexed, halfword
operation. As the figure shows, word address 1 is the
contents of the reference address field in the instruction
stored in memory. The instruction is brought into the instruction register, and word address 1 (assumed to be greater
than 15) is converted from a virtual address to an actuol address by the memory map. The 17 low-order bi ts of the core
memory location pointed to by word address I, labeled word
address 2, then replaces word address 1 in the instruction register. The index register designated in the X field of the instruction is then aligned for incrementing at the halfwordaddress level, the final virtual (effective) address is formed,
and the effective address (assumed to be greater than 15) is
also transformed, through the memory map. The final 19bit core l1)emory address, which automatically contains a
low-order 0, is then used to access the halfword to be used
as an operand for the instruction.

MEMORY WRITE LOCKS
The access control bits in the memory map provide access
protection, through inhibitions imposed on slave programs.
However, this protection is only available when the memory
map is in effect, and is only operative with respect to slave
programs. A memory protection feature, independent of the
memory map, is provided by a lock and key technique. A
2-bit write-protect lock (WL) is provided for each 512word page of actual core memory addresses. The writeprotect locks consist of 256 2-bit write locks, each assigned to a 512-word page of actual addresses as follows:

I I I I I
WL

WL

WL

WL

•

WL

I~ ~ WL

I

I I
WL

+.

Actua I addresses
Actual addresses
X I600 1-X'7FF'
X'I FEOOI-XIIFFFF'
Actual addresses
(memory page 255)
XI4001-X I5FF'
Actual addresses
Actual addresses
XI2001-X I3FF'
XIIFCOOI-XIIFDFF'
Actual addresses
0-XI1FF'
(memory page 0)

1

I

The write-protect locks can be changed on Iy by the execution of the privileged instruction MOVE TO MEMORY CONTROL (see Control Instructions).

Memory Address Control

15

Instruction in memory:

Instruction in instruction register:

The 8 high -order bi ts of the reference address are
replaced with page address Z from memory map:

Actual address of memory location
that contains the direct address:

Di rect address in memory:

Indirect addressing replaces reference
address wi th di rect address:

II I I
Halfword operation indexing alignment:

II II
Effective virtual address:

The 8 high-order bits of the effective address are
replaced with page address N from memory map:

Final memory address, which is the actual address of
halfword location containing the effective halfword:
Figure 5.

Generation of Actual Memory Addresses

The write-key (a 2-bit field in the arithmetic and control
unit) works in conjunction with the lock storage to determine whether or not the program (whether slave or master)
can write into a specific page of core memory locations.
The keys and locks control access for wri ti ng, accordi ng to
the following rules:
A lock value of 00 means that the corresponding memory page is "unlocked"; write access to that page is
permitted independent of the key value.
A key value of 00 is a "skeleton ll key that wi II open
any locki thus, write access to any memory page is
permitted independent of its lock value.
A lock value other than 00 for a memory page permits
write access to that page only if the key value is
identical to the lock value.

16

Memory Address Control

Thus, a program can write into a given memory page if
the lock value is 00, if the key value is 00, or if the key
value matches the lock value.
Note that the memory access protection feature is provided with the memory map and operates on virtual addresses, whereas the memory write proctection feature
operates on actual memory addresses. Thus, if the access protection feature is invoked (that is, the CPU is
in the slave mode and is using the memory map), the access
protection codes are examined at the time the virtual address is converted into an actual address. Then, the locks
and keys are examined to determine whether or not the
program (master or slave) is a lIowed to alter the content<
of the core memory location corresponding to the final
actual address. If an instruction attempts to write into
a write-protected memory page, the computer aborts

the instruction, and traps to location X'40', which is
the "nonallowed operation" trap (see Trap System).

Designation

the generation of zero results, and the normalization of the results of floating-point additions and
subtractions, respectively. (The floating-point
mode controls are described in Chapter 3, "Floating-point Instructions".) Any program (slave or
master) can change the state of the current floatingpoint mode controls by executing either the instruction LCFI or the instruction LCF; any program can
store the current state of the current floatingpoint mode controls by executing the instruction
STCF.

PROGRAM STATUS DOUBLEWORD
The critical control conditions of the SIGMA 6 CPU can be
defined by 64 bits of information. These 64 bits are
collectively referred to as the current program statusdoubleword (PSD). The current PSD can be considered as a 64bit internal CPU register, although it actually exists as a
collection of separate registers and flip-flops. When stored
in memory, the PSD is always in the following format:

Designation
CC

MS

Master/slave mode control. The computer is in
the master mode when this bit is a 0; it is in the
slave mode when this bit is a 1. The master/slave
mode control cannot di rectly be changed by a slave
program; however, a master mode program can change
the control by executing either the instruction LOAD
PROGRAM STATUS DOUBLEWORD (LPSD) or the instruction EXCHANGE PROGRAM STATUS DOUBLEWORD (XPSD). These two privi leged instructions
are described in Chapter 3, "Control Instructions".

MM

Memory map control. The memory map is in effect when this bit is a 1; it is not in effect
when this bit is O. The memory map control
cannot be changed by a slave program. A mas'ter mode program can change the memory map
control by executing either the instruction LPSD
or the instruction XPSD.

DM

Decimal mask. The decimal arithmetic trap (see
"Trap System") is in effect when this bit is a 1;
the trap is not in effect when this bit is a O. The
conditions that can cause a decimal arithmetic
trap are described in Chapter 3, "Decimal Instructions". The decimal trap mask cannot be
changed by a slave program; a master mode program can change the mask by executi ng either the
instruction LPSD or the instruction XPSD.

AM

Arithmetic mask. The fixed-point arithmetic overflow trap is in effect when this bit is a 1; the trap
is not in effect when this bit is a O. The instructions that can cause fixed-point overflow are
described in the section "Trap System". The arithmetic trap mask cannot be changed by a slave program;
a master mode program can change the mask by executing either the instruction LPSD or the instruction
XPSD.

IA

Instruction address. This 17-bit field contains the
virtual address of the next instruction to be executed.

WK

Write key. This field contains the 2-bit key used
in conjunction with the memory protection feature. A slave program cannot change the current write key; a master mode program can change
the write key by executing either the instruction
LPSD or the instruction XPSD.

Functi on
Condition code. T~is generalized 4-bit code indicates the nature of the results of an instruction.
The significance of the condition code bits depends
on the particular instruction iust executed. After
an instruction is executed, the instructions BRANCH
ON CONDITIONS SET (BCS) and BRANCH ON
CONDITIONS RESET (BCR) can be.used, singly
or in combination, to test for a particular condition code setting (these instructionsaredescribed
in Chapter 3, "Execute/Branch Instructions").
In some operations, only a portion of the condition
code is involved; thus, the term CC 1 refers to the
first bit of the condition code, CC2 to the second
bit, CC3 to the third bit, and CC4 to the fourth
bit. Any program (slave or master mode) can change
the current value of the condition code by executing
either the instruction LOAD CONDITIONS AND
FLOATING CONTROL IMMEDIATE (LCFI) or the
instruction LOAD CONDITIONS AND FLOATING CONTROL (LCF); any program can store
the current condition code by executing STORE
CONDITIONS AND FLOATING CONTROL
(STCF). These instructions are described in
Chapter 3, "Load/Store Instructions".

FS

Floating significance mode control

FZ

Floating zero mode control

FN

Floating normal ize mode control
The three floating-point mode bits (FS, FZ, and
FN) control t~e operation of the computer with
respect to floating-point significance checking,

Function

Program Status Doub Ieword

17

il

Designation

Function

CI

Counter interrupt group inhibit.

II

Input/output interrupt group inhibit.

EI

External interrupt group inhibit.
The three inhibit bits (CI, II, and EI) determine
whether an interrupt can occur. The functions of
the interrupt inhibits are described in the section
"Interrupt System". A slave program cannot change
the state of the interrupt inhibits; a master mode
program can change the interrupt inhibits by executing LPSD, X PSD, or the instruction WRITE DIRECT (WD). The WD instruction is described in
Chapter 3, "Control Instructions ".
Register pointer. This 5-bit field selects one of
the 32 possible blocks of general-purpose registers
as the current register block. A slave program
cannot change the register pointer; a master mode
program can change the register pointer by executing LPSD, XPSD, or the instruction LOAD REGISTER POINTER (LRP). The LRP instruction is described in Chapter 3, "Control Instructions".

INTERRUPT SYSTEM
The SIGMA 6 priority interrupt system is an improved version of the system used successfully in XDS 900/9300 series
computers. Up to 237 external and internal interrupt levels
are normally available, each with a unique location (see
Table 2) assigned in core memory, each with a unique priority, and (except for the Power on and Power off interrupt
levels) each capabl e of being sel ectively armed and/or
enabled by the CPU. Also, any interrupt level can be
"triggered II by the CPU (suppl ied with a signal at the same
physical point where the signal from the external source
would enter the interrupt level). The triggering of an interrupt permits the te~,ting of special systems programs before
the special systems equipment is actually attached to the
computer, and also permits an interrupt-servicing routine to
defer a portion of the processing associated with an interrupt level by processing the urgent portion of an interruptservicing routine, triggering a lower-priority level (for a
routine that handles the less-urgent part), then clearing the
high-priority interrupt level so that other interrupts may be
processed before the deferred interrupt.
SIGMA6interruptleveisarearranged in groups that are connected in a predetermined priority chain by groups of levels.
The priority of each level within a group is fixed; the first
level has the highest priority and the last level has the lowest. The user has the option of ordering a machine with a
priority chain starting with the override group and connecting all remaining groups in any sequence. This allows
the user to establish external interrupts above, between, or
below the counter and input/output groups of internal interrupts. Figure 6 illustrates this with a configuration that
c typical user might establish; where (after the override
group) the counter group of internal interrupts is given

18

Interrupt System

the second-highest priori ty, followed by the first group of external interrupts, then the input/output group of internal i nterrupts, and finally all succeeding groups of external interrupts.

1st Priority
Override
Interrupts

4

2nd Priority

---

Counter
Interrupts

3rd Priority
Externa I Interrupts Group 2

4th Priority

~

I nput/Output
Interrupts

4

5th Priority
Externa I Interrupts Group 3

Figure 6.

r.

Typical Interrupt Priority Chain

INTERNAL INTERRUPTS
The three groups of internal interrupts include standard
interrupts that are normally supplied with a SIGMA 6
system, as well as power fail-safe and the additional
counter interrupts.
OVERRIDE GROUP (Locations X'50' to X'56')
This group of seven interrupt levels always has the highest priority in a SIGMA 6 system. The power fail-safe
feature inc Iudes the Power on and Power off interrupt
levels. A system can have two or four count-pulse interrupt levels that are triggered by pulses from clock sources.
Counter 4 has a constant frequency of 500 Hz; counters 1,
2, and 3 can be individually set to any of five manually
switchable frequencies - the commercial line frequency,
500 Hz, 2 kHz, 8 kHz, and a user-supplied external signal -:- that may be different for each counter. (All counter
frequenci es are synchronous except for the line frequency
and the signal supplied by the user.) Each of the countpulse interrupt locations must contain one of the modify and
test instructions (MTB, MTH, or MTW). Counter 4 uses the
mapped location if map is currently invoked in the PSD.
The results of any other instruction are unpredictable when
the instruction is executed as the result of a count-pulse
interrupt level advancing to the active state. When the
modification (of the effective byte, halfword, or word)
causes a zero result, the appropriate counter-equafs-zero
interrupt (see "Counter-Equals-Zero Group") is triggered.
The override group also includes a memory parity interrupt
level that is triggered whenever a memory parity error is
reported to the CPU.

Table 2.
Location
Dec. Hex.

WRITE DIRECT
Register bitt

SIGMA 6 Interrupt Locations

Function

Availabi lity

Power on ttt
Power offttt
Counter 1 count pulse
Counter 2 count pulse
Counter 3 count pu Ise
Counter 4 count pulse
Memory Pari ty
Reserved for future use

80
81
82
83
84
85
86
87

50
51
52
53
54
55
56
57

none

88
89
90
91

58
59
5A
5B

22
23
24
25

Counter
Counter
Counter
Counter

1 zero
2 zero
3 zero
4 zero

optional
(as a set)

92
93
94
95

5C
5D
5E
5F

26
27

Input/Output
Control Panel
Reserved for future use
Reserved for future use

standard

96

60

16

16
17
18
19
20

111

6F

31

112

70

16

127

7F

optional
(as a set)

120

standard

X'O'
CI

standard

II

External Group 2

X'2'

External Group 3

X'3'

EI ,

16

12F

31

304

130

16

13F

none

31

303

319

WRITE DIRECT
Group code tt
none

standard

optional
288

PSD
Inhibit

External Group 14

X'E'

External Group 15

X'F'

31

t When the privileged instruction WRITE DIRECT is used in the interrupt control mode to operate on interrupt levels, the
interrupt levels are sel ected by specific bit positions in register R. The numbers in this column indicate the bit position
in register R that corresponds to the various interrupt levels.
tt The numbers in this column indicate the group codes (for use with WRITE DIRECT) of the various interrupt levels.

tttThese interrupts can not be disarmed, disabled, nor inhibited.

COUNTER-EQUALS-ZERO GROUP
(Locations X'58' to X'SB')
Each interrupt level in the counter-equals-zero group (called
a counter-equals-zero interrupt) is associated with a countpulse interrupt in the override group. When the execution of
a modify and test instruction in the count-pulse interrupt 10cation causes a zero result in the effective byte, halfword, or
word location, the corresponding counter-equals-zero interrupt is tri ggered. The counter-equa Is-zero interrupts can be

inhibited or permitted asa group. If bit position 37 (CI) of the
current program status doubleword contains a 0, the counterequals-zero interrupts are allowed to interrupt the program being executed. However, if the CI bit is a 1, the counterequals-zero interrupts are notal lowed to interruptthe program.
I

INPUT/OUTPUT GROUP (Locations X'SC' and X'5D')
This interrupt group includes two standard interrupts: the I/O
interrupt and the control panel interrupt. The I/O interrupt

Interrupt System

19

level accepts interrupt signals from the standard I/o
system. The I/o interrupt location is assumed to contain
an EXCHANGE PROGRAM STATUS DOUBLEWORD (XPSD)
instruction that transfers program control to a routine for
servicing all I/O interrupts. The I/O routine then contains
an ACKNOWLEDGE I/o INTERRUPT (AIO) instruction that
identifies the source and reason for the interrupt.
The control panel interrupt level is connected to the INTERRUPT buttons on the processor control panel. The control
panel interrupt level can thus be triggered by the computer
operator, allowing him to initiate a specific routine.
The interrupts in the input/output group can be inhibited or
permitted by means of bit position 38 (II) of the program
status doubleword. If II is a 0, the interrupts in the I/O
group are allowed to interrupt the program being executed.
However, if the II bit is a 1, the interrupts are inhibited
from interrupting the program.
POWER FAIL-SAFE FEATURE
The two power fail-safe interrupt levels, which cannot be
disabled, disarmed, or inhibited, are used to enter routines
that save and restore volatile information (e. g., registers,
interrupt environment, etc.) in case of primary powerfailure.
When primary voltage drops below safe limits, the power off
interrupt is triggered. Typically, a power off routine stores
volati Ie information in main memory to faci litate recovery,
halts all I/O operations, and ends in a waiting state. When
primary power returns to safe limits, the power on interrupt
is triggered. Typically, a power on routine restores information from main memory and prepares to resume processing.
(Note: When power is restored, software timeouts for I/O
operations may occur.) Because the power on interrupt has
a hi gher priority than the power off interrupt (see Table 2),
a power failure cannot interrupt a power on routine before
the system is restored to a predi ctab Ie state (registers
restored, etc.). Since main frame power supplies maintain
voltages for five milliseconds after detecting an imminent
power failure, the total time of the power on and power off
routines must be less than five mi Iliseconds.

External
Input

Trigger
Input

:

~

Active, waiting, or
d;sarmed stale

I

A SIGMA 6 system can contain up fl.' 14 groups of optional
interrupt levels, with 161evels in each group. As shown in
Figure 6, the groups can be connected in any priority sequence.
All external interrupts can be inhibited or permitted by means
of bit position 39 (EI) of the program status doubleword. If
EI is a 0, external interrupts are allowed to interrupt the
program; however, if EI is a 1, all external interrupts are
inhibited from interrupting the program.

STATES OF AN INTERRUPT LEVEL
A SIGMA 6 interrupt level is mechanized by means of three
flip-flops. Two of the flip-flops are used to define any of
four mutually exclusive states: disarmed, armed, waiting,
and active. The third flip-flop is used as a level-enable.
The various states and the conditionscausing them to change
state (see Figure 7) are described in the following paragraphs.

DISARMED
When an interrupt level is in the disarmed state, no signal
to that interrupt level is admitted; that is, no record is retained of the existence of the signal, nor is any program
interrupt caused by it at any time.

ARMED
When an interrupt level is in the armed state, it can accept
and remember an interrupt signal. The receipt of such a signal advances the interrupt level to the waiting state.

WAITING
When an interrupt level in the armed state receives an interrupt signal, it advances to the waiting state, and remains

r---------------------I

~:

----0
Armed state

1-.

EXTERNAL INTERRUPTS

:
I
I

---------------------~

O;sabled stale

Remember

interr~pt

Enabled state

WAITING STATE

Group n
inhibit = 1
on
off
Group n
inhibit = 0

--------------------------------------------- I
Note: The armed, disarmed, waiting, and active states are controlled by two flip-flops and the enabled/disabled I states are controlled by
the level-enable flip-flop.

Figure 7.

20

Interrupt System

Operational States of an Interrupt Level

in the waiting state unti I it is allowed to advance to the
active state. If the level-enable flip-·flop is off, the interrupt level can undergo all state changes except that of
moving from the waiting to the active state. Furthermore,
if this flip-flop is off, the interrupt level is completely removed from the chain that determines the priority of access
to the CPU. Thus, an interrupt level in the waiting state
with its level-enable in the off condition does not prevent
an enabled, waiting interrupt of lower priority from moving
to the acti ve state.

interrupt-servicing routine cannot be interrupted by a
lower-priority interrupt as long as it remains in the active
state. Normally, the interrupt servicing routine clears its
interrupt and transfers program contro I back to the poi nt of
interrupt by means of an LPSD instruction with the same
effective address as the XPSD instruction in the interrupt
location.

CONTROL OF THE INTERRUPT SYSTEM
When an interrupt level is in the waiting state, the following conditions must all exist simultaneously before the level
advances to the active state.

1.

The level must be enabled (i. e., its level-enable flipflop must be set to 1).

2.

The CPU must be at an interruptible point in the execution of a program.

3.

The group inhibit (CI, II, or EI, if applicable) must be
a

4.

O.

No higher-priority interrupt level is in the active state
or is in the waiting sto4-e and totally enabled (i. e. ,
enabled and not inhibited).

ACTIVE
When an interrupt meets all of the conditions necessary to
permit it to move from the waiting state to the active state,
it is permitted to do so by being acknowledged by the computer, which then executes the contents of the assigned interrupt location as the next instruction. The instruction
address portion of the program status doubleword remains
unchanged until the instruction in the interrupt location is
executed.
The instruction in the interrupt location must be one of the
following: XPSD, MTB, MTH, or MTW. If the execution of
any other instruction in an interrupt location attempted as
the result of an interrupt level advancing to the active
state, the results of the instruction are unpredictable.
The use of the privi leged instruction XPSD in an interrupt
location permits an interrupt-servicing routine to save the
entire current machine environment and establish a new
environment. If working registers are needed by the
routine and additiona I register blocks are avai lable, the
contents of the current register block can be saved automatically with no time loss. This is accomplished by changing the value of the register pointer, which results in the
assignment of a new block of 16 registers to the routine.
An interrupt level remains in the active state unti I it is
cleared (removed from the active state) by the execution
of the LPSD instruction or the WD instruction. An interruptservicing routine can itself be interrupted whenever a
higher-priority interrupt level meets all of the conditions for becoming active; and then continued after the
higher-priority interrupt is cleared. However, an

The SIGMA 6 system has two points of interrupt control.
One point of interrupt control is at the individual interrupt
level. The WD instruction can be used to individually arm,
disarm, enable, disable, or trigger any interrupt level except for the power fail-safe interrupts (which are always
armed, always enabled, and cannot be triggered).

The second point of interrupt control is achieved by means
of the interrupt inhibits (CI, II, and EI) in the program status
doubleword. If an interrupt inhibit is set to 1, all interrupt
levels in the corresponding group are effectively disabled;
i. e., no interrupt in the group may advance from the waiting state to the active state and the group is removed from
the interrupt recognition priority chain. Thus, a waiting,
enabled interrupt level (in a group that is not inhibited) is
not prevented from interrupting the program by a higherpriority,' waiting, enabled interrupt level in a group that is
inhibited. However, if an interrupt group is inhibited whi Ie
a level in that group is in the active state, no lower-priority
interrupt level may advance to the active state.

nME OF INTERRUPT OCCURRENCES
The SIGMA 6 CPU permits an interrupt to occur during the
following time intervals (related to the execution cycle of
an instruction) providing the control panel COMPUTE switch
is in the RUN position and no "halt" condition exists:
1.

Between instructions: An interrupt is permitted between
the completion of any instruction and the initiation of
the next instruction.

2.

Between the initiation of an instruction and memory or
register modification: For some instructions, an interrupt
is permitted after an instruction has been in process and
up to the point in time when a memory location or a general
register is modified. If an interrupt occurs during this time
interval, the instruction is aborted, the instruction address
portion ofthe program status doubl eword remai ns poi nti ng
tothe interrupted instruction, and the instruction in the interrupt location is executed. After the interrupt-servi c i ng
routine has been processed, program control is returned to
the interrupted instruction, and the interrupted instruction
is then reinitialized. Most instru.:tions have such a short
execution time that they are not abortable by an interrupt;
thus, an interrupt normal I y occurs onl y before or after an
instruction execution.
Interrupt System

21

3.

When a modify and test instruction is executed in a countpulse interrupt location, all of the above conditions appl~
in addition to the following: If the resultant value in the
effective location is zero, the corresponding counterequals-zero interrupt is triggered.

Between instruction iterations: An interrupt is also
permitted to occur during the execution of the following multiple-operand instructions:
Move Byte String (MBS)
Compare Byte String (CBS)
Translate Byte String (TBS)
Translate and Test Byte String (TTBS)
Edit Byte String (EBS)
Decimal Multiply (OM)
Decimal Divide (00)
Move tt::) Memory Control (MMC)

TRAP SYSTEM
When a condition that is to result in an interrupt is
sensed, a signal is sent to an interrupt level. If that
level is "armed" it advances to the waiting state. When
all of the conditions for its acknowledgment have been
achieved, the interrupt level eventually advances to the
active state, where it finally causes the computer to take
an instruction from a specific location in memory. The computer may execute many instructions between the time that
the interrupt requesting condition is sensed and the time that
the actual interrupt acknowledgment occurs. However, detecting any of the conditions listed in Table 3 results in a
trap (the immediate execution of the instruction in a unique
location in memory).

The control and intermediate results of these instructions reside in registers and memory; thus, the instruction can be
interrupted between the completion of one iteration (operand execution cycle) and the point in time (during the next
iteration) when a memory location or register is modified.
If an interrupt occurs during this time, the current iteration
is aborted and the instruction address portion of the program
status doubleword remains pointing to the interrupted instruction. After the interrupt-servicing routine is completed, the
instruction continues from the point at which it was interrupted and does not begin anew.

SINGLE-INSTRUCTION INTERRUPTS
A s ingle- instruction interrupt is a situation where an interrupt
level is activated, the current program is interrupted, the singleinstruction in the interrupt location is executed, the interrupt
level is automatically cleared and armed, and the interrupted
program continues without be ing disturbed or delayed (except
for the time required for the singl e-instruction).
If any of the following instructions is executed in any interrupt location, then that interrupt automaticall y becomes
a single-instruction interrupt.
Instruction Name

Mnemonic

Modify and Test Byte

MTB

Modify and Test Halfword

MTH

Modify and Test Word

MTW

The modify and test instruction modifies the effective byte,
halfword, or word (as described in the section "Fixed-point
Arithmetic Instructions") but the current condition code remains unchanged (even if overflow occurs). The effective
address ofa modify and test instruction in an interrupt location (except counter 4) is always treated as an actual
address, regardless of whether or not the memory map is
currently being used. Counter 4 uses the mapped location if
map is currently invoked in the PSD. The execution of a
modify and test instruction in an interrupt location, including
mapped and unmapped counter 4, is independent of the
memory access protection codes and the write-protection
locks; thus, a memory protection violation trap cannot
occur (a nonexistent memory address wi II cause an unpredictable operation). Also, the fixed-point overflow trap
cannot occur as the result of overflow caused by executing
MTH or MTW in an interrupt location.
The execution of a modify and test instruction in an interrupt
location automatically clears and arms the corresponding interrupt level, allowing the interrupted program to continue.

22

Trap System

When a trap condition occurs, the CPU sets the trap state. Depending on the type of trap, the instruction currently being executed by the CPU mayor may not be carried to completion. In
any event, the instruction is terminated with a trap sequence.
~ In this sequ~nce, the instruction address (IA) portion of the
program status doubleword (PSD), which has already been
incremented by 1, is decremented by 1 and then the instruc
tion in the location associated wi th the trap is executed.
An interrupt acknowledgment cannot occur unti I the execution of the instruction in the trap location is completed. The
instruction in the trap focation must be an XPSO instruction;
if the execution of any other instruction in a trap location
is attempted as the resul t of a trap activation, the results of
the instruction are unpredictable. The detai led operation of
XPSD is described in Chapter 3, II Control Instructions".

I

The XPSO instruction in a trap location is accessed without
using the memory map, regardless of whether or not the memory map is in effect when the trap condition occurs. Also,
no memory protection violation or privileged instruction
violation can occur as a result of either accessing or executing an XPSO instruction in a trap location. Table 3
summarizes the description of the trap system.

NONALLOWED OPERATION TRAP
The occurrence of one of the nona II owed operations always
causes the computer to abort the instruction being executed (at the time that the nona II owed operation is detected)
and to immediately execute the instruction in trap location

X'40'.
NONEXISTENT INSTRUCTION
Any instruction that is neither standard nor optional on
SIGMA 6 is defined as nonexistent (this incl udes immediate
addressin"g instructions that are indirectly addressed). If
execution of a nonexistent instruction is attempted, the
computer traps to location X ' 40 ' at the time the instruction
is decoded. The operation of the XPSD instruction in trap

Table 3.
Location
Dec. Hex.

64

40

Summary of SIGMA 6 Trap System

Function

PSD
Mask Bit

Nonallowed operation

none

Time of Occurrence

Spec ial Action During XPSD

1. Nonexistent instruction

Instruction decoding

Set CCl after new CC is
loaded from memory. If bit
9 of XPSD is 1, add 8 to
the new instruction address
value loaded from memory.'

2. Nonexistent memory
address

Prior to memory access

Set CC2 after new CC is
loaded from memory. If bit
9 of XPSD is 1, add 4 to
the new instruction address
value loaded from memory.

3. Privileged instruction
in slave mode

Instruction decoding

Set CC3 after new CC is
loaded from memory. If bit
9 of XPSD is 1, add 2 to
the new instruction address
value loaded from memory.

4. Memory protection

Prior to memory access

Set CC4 after new CC is loaded
from memory. If bit 9 of XPSD is
1, add 1 to the new instruction
address value loaded from memory.

65

41

Unimplemented instruction

none

Instruction decoding

none

66

42

Push-down stac k lim it
reached

TW, TSt

At the time of stack limit
detection

none

67

43

Fixed-point arithmetic
overflow

AM

For al I instructions except DW none
and D H, trap occurs after completion of instruction. For DW
and D H, instruction is aborted
with memory, regi sters, CC 1,
CC3, CC4 unchanged.

68

44

Floating-point fault

1. Characteristic overflow

none

none

2. Divide by zero

none

At time of fault detection; the
condition code is set to indicate the reason for the trap

3. Significance check

FS, FZ,
FN

69

45

Decimal arithmetic fault

DM

At time of fault detection; the
condition code is set to indicate the reason for the trap

none

70

46

Watchdog timer runout

none

At time of runout

none

72

48

CALL 1

none

Instruction decoding

73

49

CALL 2

none

Instruction decoding

74

4A

CALL 3

none

Instruction decoding

75

4B

CALL 4

none

Instruction decoding

76

4C

The R fi el d of the CA LL i nstruction is ORed into new CC settings loaded from memory. If
bit 9 of XPSD is 1, the R field
of the CALL instruction is added to the new instruction address value loaded from memory.

Reserved

79
~

4F

_ _~~_ _~_ _ _ _ _ _~~_ _ _ _ _ _ _ _ _ _ _ _~_ _ _ _ _ _ _ _ _ _ L ' . _ _ _ • _ _ _ _ _•_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~

tThe TW and TS mask bits are contained within the stack pointer doubleword for each push-down stack.

Trap System

23

location X'40' (with respect to the condition code and
instruction add~ess portions of the PSD) is as follows:
1.

Store the current PSO. The condition code stored is
that which existed at the end of the instruction executed immediately prior to the nonexistent instruction.

2.

Load the new PSD. The current PSD is replaced by the
contents of the doubleword location following the doubleword location in which the current PSD was stored.

3.

Modify the new PSD:
a.

Set CCl to 1 (CC2, CC3, and CC4 remain set at
the values loaded from memory).

b.

Ifbitposition90fXPSDcontainsal, the instruction
address loaded from memory is incremented by S. If
bit position 9 of XPSD contains a 0, the instruction
address remai ns at the value loaded from memory.

NONEXISTENT MEMORY ADDRESS
Any attempt to access a nonex istent memory address causes a
trap to location X '40' at the time of the request for memory
service. A nonexistent memory address condition is detected
by memory on the basis of the actual address presented to it.
If the CPU is currently using the memory map, the virtual address wi II already have been modified by the memory map to
generate an actual (but nonexistent) address. The operation
of XPSD in trap location X'40' is as follows:
1.

Store the current PSD.

2.

Load the new PSD.

3.

Modify the new PSD:
a.

Set CC2 to 1 (CC1, CC3, and CC4 remain set at
the values loaded from memory).

b.

Ifbitposition90fXPSDcontainsa 1, the instruction
address loaded from memory is incremented by4. If
bit position 9 of XPSD contains a 0, the instruction
address remains at the value loaded from memory.

The operation codes, OC, aD, 2C, 20, and their indirectly
addressed forms, SC, SO, AC, AD, are both nonexistent
and privileged. If one of these operation codes is used
I
while the CPU is in the slave state, both CCl and CC3 wi~
be set to )'s after the new PSD has been loaded, and if bit
position 9 of XPSD contains a 1, the instruction address
loaded from memory is incremented by 10.

MEMORY PROTECTION VIOLATION
A memory protection violation can occur either because of
a memory map access control bit violation (by a slave program using the memory map) or because of a memory
write lock violation (by either a slave or a master mode
program). When either memory protection violation occurs,
the CPU aborts execution of the current instruction (without changing protected memory) and traps to location X'40'.
The operation of the XPS D in trap location X'40' is as
follows:
1.

Store the current PSD,

2.

Load the current PSO.

3.

Modify the new PSD:
a.

Set CC4 to 1 (CC 1, CC2, and CC3 remain at the
values loaded from memory.

b.

If bit position 9 of XPSD contains a 1, the instrucl
ti on address loaded from memory is incremented
by 1. If bit position 9 of XPSD contains a a, the
instruction address remains at the value loaded
from memory.

An attempt to access a memory location that is both protected and nonexistent causes both CC2 and CC4 to be set
to lis after the new PSD has been loaded, and if bit position 9 of XPSD contains a 1, the instruction address loaded
from memory is incremented by 5.

PRIVILEGED INSTRUCTION IN SLAVE MODE
An attempt to execute a privileged instruction while the
CPU is in the slave mode causes a trap to location X1 40 ' at
the time of instruction decoding. The operation of XPSD
in trap location X 140 ' is as follows:

UNIMPLEMENTED INSTRUCTION TRAP
There is one SIGMA 6 optional instruction group.
the floating-point option.

This is

The floating-point option includes the following instructions:
1.

Store the current PSD.

2.

Load the new PSD.

3.

Modify the new PSD.
a.

b.

24

Set CC3 to 1 (CC1, CC2, and CC4 remain at the
val ues loaded from memory).
If bi t position 9 of XPSD contains a 1, the instruction address loaded from memory is incremented
by 2. If bit position 9 of XPSD contains a 0, the
instruction address remains at the value loaded
from memory.

Trap System

Instruction Name

Mnemonic

Operation Code

Floating Add Short

FAS

X ' 3D'

Floating Add Long

FAL

X'ID'

FI oati ng Subtract Short

FSS

X ' 3C'

Floating Subtract Long

FSL

X'lC'

Floating Multiply Short

FMS

X'3F'

Floating Multiply Long

FML

X'lF'

Floating Divide Short

FDS

X'3E'

Floating Divide Long

FDL

X'lE'

If an attempt is made to execute an instruction (directly or
indirectly addressed) in this group when the floating-point
option is not implemented, the computer traps to location
X'41'. The operation of the XPSD in trap location X'41'
is as follows:
1.

2.

Store the current PSD. The condition code stored is
that which existed at the end of the instruction immediately prior to the unimplemented instruction.
Load the new PSD. The condition code and the instruction address portions of the PSD remain at the
values loaded from memory.

PUSH-DOWN STACK LIMIT TRAP
Push-down stack overflow or underflow can occur during
execution of any of the following instructions:
Instruction Name

Mnemonic

Push Word

PSW

Pull Word

PLW

Push Multiple

PSM

Pull Multiple

PLM

Modify Stack Pointer

MSP

During the execution of any stack-manipulating instruction
(see Push-down Instructions) the stack is either pushed
(words added to stack) or pulled (words removed from
stack). In either case, the space count and word count
fields of the stack pointer doubleword are tested prior
to moving any words. If execution of the instruction
would cause the space count to become less than 0 or
greater than 2 15 _1, the instruction is aborted with memory and registers unchanged; then, if bit 32 (TS) of the
stack pointer doubleword is 0, the CPU traps to location X'42'. If execution of the instruction would cause
the word count to become less than 0 or greater than
2 15 -1, the i nstructi on is aborted wi th memory and regi sters
unchanged; then, if bit 48 (TW) of the stack pointer
doubleword is a 0, the CPU traps to location X'42'. If
trapping does occur, the condition code remains at the
value it had immediately prior to the instruction that caused
the trap. When trapping is inhibited, either CCl or CC3
is set to 1 (or both CCI and CC3 are set to l's) to indicate
the reason for aborti ng the i nstructi on. The stack poi nter
doubleword, memory, and registers are modified only if the
instruction is successfully executed. The execution of
XPSD in trap location X'42' is as follows:

1.

2.

Store the current PSD. The condition code stored is
that which existed immediately prior to the execution
of the aborted push-down instruction.
Load the new PSD.' The condition code and instruction
address portions of the PSD remain at the values loaded
from memory.

fiXED-POINT OVERflOW TRAP
Fixed-point overflow can occur for any of the following
instructions:
Instruction Name

Mnemonic

Load Complement Word
Load Absolute Word
Load Complement Doubleword
Load Absol ute Doubleword
Add Immedi ate
Add Ha Ifword
Add Word
Add Doubleword
Subtract Halfword
Subtract Word
Subtract Doublword
Divide Halfword
Divide Word
Add Word to Memory
Modify and Test Halfword
Modify and Test Word

LCW
LAW
LCD
LAD
AI
AH
AW
AD
SH
SW
SD
DH
DW
AWM
MTH
MTW

Except for the instructions DIVIDE HALFWORD (DH) and
DIVIDE WORD (DW), the instruction execution is allowed
to proceed to completion, CC2 is set to 1 and CC3 and
CC4 represent the actual result (0, -, or +) after overflow.
If the fixed-point arithmetic trap mask (bit 11 of PSD) is a
1, the CPU traps to location X'43' instead of executing the
next instruction in sequence.
For OW and DH, the instructi,on execution is aborted without changing any registers and CC2 is set to 1; but CCl,
CC3, and CC4 remain unchanged from their values at the
end of the instruction immediately prior to the OW or DH.
If the fixed-point arithmetic trap mask is a 1, the CPU traps
to location X'43' instead of executing the next instruction
in sequence.
1.

Store the current PSD. If the instruction causing the
trap was an instruction other than DW or DH, the
stored condition code t is interpreted as follows:
CCl tt CC2 CC3

o

CC4 Meaning

o

o

resu It after overff ow is
negative

o

o

result after overflow is zero

result after overflow is
positive
no carry from bit position 0
carry from bit position 0

t A hyphen (-) indicates that the condition code bit is not
affected by the condition given under the "Meaning"
heading.
ttCCl remains unchanged for the instructions LCW, LAW,
LCD, and LAD.

Trap System

25

FS = 1 and FN = 0), or a postnormalization shift of m
more than two hexadecimal places (with FS = 1 and
FN = 0), the stored condition code is interpreted as
follows:

If the instruction causing the trap was DW or DH, the
stored condition code is interpreted as fol lows:
CCI

CC2 CC3

CC4 Meaning

CCI

overflow
2.

Load the new PSD. The condition code and instruction address portions of the PSD remain at the value
loaded from memory.

FLOATING-POINT ARITHMETIC FAULT TRAP
Floating-point fault detection is performed after the operation called for by the instruction code is performed, but before any results are actually loaded into the general registers;
thus, the floating-point operation that causes an arithmetic
fault is notcarried to completion (in the sense that the original contents of the general registers remain unchanged).
Instead, the computer traps to location X ' 44 1 with the current condition code indicating the reason for the trap. A
characteristic overflow or an attempt to divide by zero always results in a trap condition; a significance check or a
characteristic underflow result in a trap condition only if
the floating-point mode controls (FS, FZ, and FN) in the
program status doubleword are set to the appropriate state.
If a floating-point instruction causes a trap, the execution
of XPSD in trap location X' 44 1 is as follows:
1.

Store the current PS D. If division is attempted with a
zero divisor or if characteristic overflow occurs, the
stored condition code is interpreted as follows:

CC2 CC3 CC4 Meaning

0

0

0

0

0

2.

0

zero result of addition or
subtraction
more than 2 postnormal izing
shifts, negative result

0

more than 2 postnormalizing
shifts, positive result

Load the new PSD. The condition code and instruction
address portions of the PSD remain at the values loaded
from memory.

DECIMAL ARITHMETIC FAULT TRAP
When either of two decimal fault conditions occur (see
Decimal Instructions), the normal sequencing of instruction
execution is halted, CCI and CC2 are set according to the
reason for the fault condition, and CC3, CC4, memory, and
the decimal accumulator remain unchanged by the instruction. If the decimal arithmetic trap mask (bit position 10
of PSD) is a 0, the instruction execution sequence continues
with the next instruction (in sequence) at the time of fault
detection; however, if the decimal arithmetic trap mask bit
is a 1, the computer traps to location X'45 1 at the time of
fault detection.
The execution of XPSD in trap location X'45 1 is as follows:

CCl

CC2 CC3 CC4 Meaning

0

0

0

0

0

divide by zero

CC2 CC3 CC4 Meaning

o

characteristic overflow, positive result

If none of the above condi tions occurs, but characteristic underflow occurs with the floating zero (FZ) mode
bit set to 1, the stored condition code is interpreted
as follows:

Store the current PSD. The stored condition code is
interpreted as fo II ows :
CCI

characteristic overflow, negative result

0

0

1.

all digits legal and overflow

o
2.

illegal digit detected

Load the new PSD. The condition code and instruction
"address portions of the PSD remain at the values loaded
from memory.

WATCHDOG TIMER RUNOUT TRAP
CCI

CC2 CC3 CC4 Meaning
characteristic underflow, negative result

0

0

characteristic underflow, positive result

If none of the above conditions occurs, but an addition
or subtraction results in either a zero resul t (with
26

Trap System

The instruction watchdog timer insures that the CPU must
periodically reach interruptible points of operation in the
execution of instructions. An interruptible point is a time
during the execution of a program when an interrupt request
(if present) would be acknowledged. Interruptible points
occur at the end of every instruction and during the execution of some instructions (such as the byte string group). The
watchdog timer measures elapsed time from the last interruptible point. If the maximum allowable time has been
reached before the next time that an interrupt could be

recognized, the current instruction is aborted and the
watchdog timer runout trap is activated. Except for a nonexistent address used with READ DIRECT (RD) or WRITE
DIRECT (WD) instructions, programs trapped by the watchdog timer cannojo (in general) be continued. Execution of
XPSD in trap location X'46' is as follows:
1.

Store the current PSD. The stored condition code is,
in general, meaningless.

1.

Store the current PS D. The stored condi ti on code is
that which existed at the end of the instruction immediately prior to the call instruction.

2.

Load the new PSD.

3.

Modify the new PSD.
a.

The R field of the cal I instruction is logically
ORed with the condition code value loaded from
memory, and the result is loaded into the condition code.

b.
CAll INSTRUCTION TRAPS

If bit 9 of XPSD contains a 1, the R field of the
call instruction is added to the instruction address
loaded from memory.

The four call instructions (CAll, CAL2, CAL3, and CAL4)
cause the computer to trap to location X'48' (for CAll)

If bit 9 of XPSD containa a 0, the instruction address remains at the value loaded from memory.

2.

Load the new PSD. The instruction address portion of
the PSD remains at the values loaded from memory;
however, the resulting condition code is, generally,
meaningless.

X'49' (for CAL2), X'4A' (for CAL3), or X'4B' (for CAL4l.
Execution of XPSD in the trap location is as follows:

Trap System

27

3. INSTRUCTION REPERTOIRE
This section describes all SIGMA 6 instructions, grouped
in the following functional classes:

d.

Doubleword index alignment: the reference addre~
field of the instruction {plus the displacement valuel
can be used to address any doubleword in core memoryor in the current block of general registers. The
addressed doubleword is automatically located
within doubleword storage boundaries.

e.

Immediate operand: the instruction word contains
an operand value used as part of the instruction
execution. If indirect addressing is attempted
with this type of instruction (i.e., bit 0 of the
instruction word is a 1), the instruction is treated
as a nonexistent instruction, in which case the
computer unconditionally aborts execution of the
instruction (at the time of operation code decoding)
a nd traps to Iocat i on X 140 1, the nona /I owed
operation" trap. Indexing does not apply to this
type of instruction.

Page

28
34
36
41
43

1. Load and Store

2. Analyze and Interpret
3. Fixed-Point Arithmetic

4. Comparison
5. Logical
6. Shift
7. Conversion
8. Floating-Point Arithmetic (optional)
9. Decimal
10. Byte String
11. Push Down
12. Execute and Branch
13. Call
14. Control
15. Input/Output

44
46

47
51
57
64
69
71
72
79

II

f.

SIGMA 6 instructions are described in the following format:
MNEMONIC CD INSTRUCTION NAME

®

(Addressing type @, Optional 0
Privi leged @, Interrupt Action®)

Description
Affected

4.

If the instruction is not in the standard SIGMA 6 instruction set, it is labeled "optional". If execution of
an optional instruction is attempted on a computer in
which the instruction is not implemented, the computer
unconditionally aborts execution of the instruction (at
the time of operation code decoding) and traps to location X ' 41 1 , which is the "unimplemented instruction
trap".

5.

If the instruction is not executable while the computer
is in the slave mode, it is labeled "privileged". If
execution of a privileged instruction is attempted whi Ie
the computer is in the slave mode, the computer unconditionally aborts execution of the instruction (at
the time of operation code decoding) and traps to 10.cation X'40'.

6.

If the instruction can be successfully resumed after its
execution sequence has been interrupted by an interrupt
acknowledgment, the instruction is labeled "continue
after interrupt". Otherwise, the instruction is either
completed or the instruction is aborted and then restarted after the interrupt is cleared. In the case of
the "continue after interrupt" instructions, certain general registers contain intermediate results or control
information that allows the instruction to continue
properly. In the case of aborted instructions, all affected registers are restored to the values they contained immediately before the aborted instruction was
begun.

®

0

Trap @)

Symbol ic notation ®
Condition Code Settings@
Trap Action@
Example@
1.

MNEMONIC is the code used by the SIGMA 6 assemblers to produce the instruction IS basic operation code.

2.

INSTRUCTION NAME is the instruction's descriptive
title.

3.

The instruction's addressing type is one of the following:

28

a.

Byte index alignment: the reference address field
of the instruction (plus the displacement value) can
be used to address a byte in core memory or in the
current block of general registers.

b.

Halfword index alignment: the reference address
field of the instruction (plus the displacement value)
can be used to address a halfword in core memory
or in the current block of general registers.

c.

Word index alignment: the reference address field
of the instruction (plus the displacement value) can
be used to address any word in core memory or in
the current b lock of general registers.

Instruction Repertoire

Immediate displacement: the instruction word contains an address displacement used as part of the
instruction execution. If indirect addressing is attempted wi th th i s type of instruct i on, the computer
treats the instruction as a nonexistent instruction,
in wh i ch case the computer uncond i ti ona /I y aborts
execution of the instruction (at the time of operation code decoding) and traps to location X'40'.
Inde'xing does not apply to this type of instruction.

7.

Instruction format;
a.

Indirect addressing -If bit position 0 of the instruction format contains an asterisk (*), the instruction can uti Iize indirect addressing; however,
if bit position 0 of the instruction format contains
a 0, the instruction is of the immediate addressing
type, which is treated as a nonexistent instruction
if indirect addressing is attempted (resulting in a
trap to location XI401).

b.

Operation code - The operation code field (bit
positions 1-7) of the instruction is shown in hexadecimal notation.

c.

R field - If the register address field (bit positions
8-11) of the instruction format contains the character "R", the instruction can specify any register
in the current block of general registers as an operand source, result destination, or both; otherwise,
the function of this field is determined by the instruction.

d.

e.

f.

X field - If the index register address field (bit
positions 12-14) of the instruction format contains
the character II X" , the instruction can specify
indexing with anyone of registers 1 through 7
in the current block of general registers; otherwise, the function of this field is determined by
the instruction.
Reference address field - Normally, the reference
address field (bit positions 15-31) of the instruct ion format is used as the in Hia I address va lue for
an instruction operand. For instructions of the immediate addressing type, the effective address of
the instruction is not used to access an operand;
instead, the effective address itself is used as an
operand. In these cases, the function of the effective address is represented in the lower half of
the reference address field in the instruction format diagram.
Value field - In some fixed-point arithmetic instructions, bit positions 12-31 of the instruction
format contain the word "value". This field is
treated as a 20-bit integer, with negative integers represented in twols complement form.

g.

Displacement field - In the byte string instructions,
bit positions 12-31 of the instruction format contain the word "displacement. II In the execution
of the instruction, this field is used to modify the
source address of an operand, the destination address of a result, or both.

h.

Ignored fields - In the instruction format diagrams,
any area that is shaded represents a field or bit position that is ignored by the computer (i. e., the content of the shaded field or bit has no effect on instruction execution) but should be coded with O's so as to
preclude conflict with possible modifications.
In any format diagram of a general register or memory word modified by an instruction, a shaded area
represents a field' whose content is indeterminate
after execution of the instruction.

8. The description of the instruction defines the operations
performed by the computer in response to the instruction
configuration depicted by the instruction format diagram.
Any instruction configuration that causes an unpredictable result is so specified in the description.
9. All programmable registers and storage areas that can be
affected by the instruction are Iisted (symbol ically) after
the word II Affected". The instruction address portion of
the program status doubleword is considered to be affected only if a branch condition can occur as a resul t
of the instruction execution, since the instruction address is updated (incremented by 1) as part of every instruction execution.
10. All trap conditions that may be invoked by the execution of the instruction are Iisted after the word liT rap".
SIGMA 6 trap locations are summarized in the section
liT rap System".
11. The symbol ic notation presents the instruction operation
as a seri es of general i zed symboli c statements. The symbolic terms used in the notation are defined in Table 4.
12. Condition Code settings are given for each instruction
that affects the condition code. A 0 or a 1 under any
of columns 1, 2, 3, or 4 indicates that the instruction
causes a 0 or 1 to be placed in Cel, CC2, CC3, or
CC4, respectivel y, for the reasons given. If a hyphen
(-) appears in columns 1, 2, 3, or 4, that portion of the
condition code is not affected by the reason given for
the condition code bit{s) containing a 0 or 1. For example, the following condition code settings are given
for a comparison instruction:

2

3

4

Result of comparison

0

0

equal

0

register operand is arithmetically
less than effective operand

0
0

register operand is arithmetically
greater than effective operand
the logical product (AND) of the
two operands is zero
the logical product of the two
operands is nonzero

CC1 is unchanged by the instruction. CC2 indicates
whether or not the two operands have 11 sin corres. ponding bit positions, regardless of their arithmetic
relationship. Ce3 and Ce4 are set according to the
arithmetic relationship of the two operands, regardless of whether or not the two operands have lis in
corresponding bit positions. For example, if the
register operand is arithmetically less than the effective operand and the two operands both have l's in at
least one corresponding bit position, the condition
code setting for the comparison instruction is:

2

3

4

o
The .above statements about the condition code are valid
only if no trap occurs before the successful completion of

Instruction Repertoire

29

the instruction execution cycle. If a trap does occur
during the instruction execution, the condition code
is normally reset to the value it contained before the
instruction was started, and then the appropriate trap
location is activated.
13. Actions taken by the computer for those trap conditions that may be invoked by the execution of
the instruction are described. The description
includes the criteria for the trap condition, any
controlling trap mask or inhibit bits, and the action
taken by the computer. In order to avoid unnecessary
repetition, the two trap conditions that apply to all
Table 4.
Meaning

()

Contents of.

AM

Fixed-point arithmetic trap mask - bit 11 of
the program status doubleword. If this bit is
a 1, the computer traps to location X ' 43 1 after
executing an instruction that causes fixedpoint overflow; if this bit is a 0, the computer
does not trap to location X'43 1•

Term

Instruction register - the internal CPU register
used to hold instructions obtained from memory
whi Ie they are being decoded.

Ru 1

x

General register address value - the 4-bit contents of bit positions 8-11 (the R field) of an instruction word, also expressed symbolically as
(1)8-11' In the instruction descriptions, register R is the general register (of the current
register block) that corresponds to the R field
add ress va Iue •
Odd register address value - register Ru 1 is the
general register pointed to by the value obtained
by logically ORing 0001 into the address value
for register R. Thus, if the R field of an instruction contains an even value, Ru 1 = R + 1, and if
the R field contains an odd value, Ru 1 = R.

EVA

30

EBL

Effective byte location - the byte location
pointed to by the effective virtual address of
an instruction for a byte operation.

EB

Effective byte - the 8-bit contents of the
effective byte location, or (EBL).

EHL

Effective halfword location - the halfword location pointed to by the effective virtual addressof an instruction fora halfword operation.

EH

Effective halfword - the 16-bit contents of
the effective halfword location, or (EHL).

EWL

Effective word location - the word location
pointed to by the effective virtual address of
an instruction for a word operation.

EW

Effective word - the 32-bit contents of the
effective word location, or (EWL).

EDL

Effective doubleword location - the doubleword location pointed to by the effective
virtual address of an instruction for a doubleword operation. If an odd-numbered word location is specified for a doubleword operation,
the low-order bit of the effective address field
(bit position 31) is automatically forced to 0.
Thus, an odd-numbered word address (referring
to the middle of a doubleword) designates the
same doubleword as an even-numbered word
address, when used for a doubleword operation.

ED

Effective doubleword - the 64-bit contents of
the effective doubleword location, or (EDL).

CC

Condition code - a 4-bit value (whose bit
positions are labeled CC 1, CC2, CC3, and
CC4) that is establ ished as part of the execution of most SIGMA 6 instructions.

FN

Floating normal ize mode control - bit 7 of the
program status doubleword. If this bit is a 0,
the results of floating-point additions and
subtractions are to be normalized; if this bit
is a 1, the results Clre not normalized.

t-

Reference address - the contents of bit positions
15-31 of an instruction word. This 17-bit field
is capable of directly addressing any general
register in the current register block (by using
a value in the range 0-15) or any word in core
memory in the address range 16 through 131,07l.
This address value is the initial address value for
any subsequent address computations, memory
mapping, or both computation and mapping.
Effective vIrtual address - the virtual address
value obtained as a result of indirect addressing
and/or indexing.
This address value is

Instruction Repertoire

Meaning
independent of the program1s actual location
in core memory, and is the final address value
before memory mapping is performed.

Index register address value - the 3-bit contents
of bit positions 12-14 (the X field) of an instruction word. If X = for an instruction, no indexing is performed. If X a for an instruction, indexing is performed (after indirect addressing if
indirect addressing is called for) with general
register X in the current register block.

°

RA

14. Some instruction descriptions provide one or more
examples to illustrate the results of the instruction.
These examples are intended onl y to show how the
instructions operate, and not to demonstrate their
full capability. Within the examples, hexadecimal
notation is used to represent the contents of general
registers and storage locations {condition code settings are shown in binary notation. The character "x"
is used to indicate irrelevant or ignored information.

Glossary of Symbolic Terms

Term

R

instructions (i. e., nonallowed operations and
watchdog timer runout) are not described for each
instruction.

I

Table 4.

Glossary of Symbolic Terms (cont.)

Term

Meaning

FS

Floating significance mode control - bit 5 of
the program status doubleword. If this bit is
a 1, the computer traps to location X'44'
when more than two hexadecimal places of
postnormalization shifting are required for a
floating-point addition or subtraction; if this
bit is 0, no significance checking is performed.

FZ

Term

Floating zero mode control - bit 6 of the program status doubleword. If this bit is a 1, the
computer traps to location X'44' when either
characteristic underflow or a zero result occurs
for a floating-point multiplication or division;
if this bit is a 0, characteristic underflow and
zero resu I ts are treated as normal conditions.

IA

Instruction address - the 17-bit value that defines the virtual address of an instruction
immediately prior to the time that the instruction is executed.

X'n'

Hexadecimal qual ifier - a hexadecimal value
{n} is an unsigned string of hexadecimal digits
(O through 9 and A through F) surrounded by

LOAD/STORE INSTRUCTIONS
The following load/store instructions are implemented in
SI GMA 6 computers:
Instruction Name
Load Immediate
Load Byte
Load Ha Ifword
Load Word
Load Doubleword
Load Complement Halfword
Load Absolute Halfword
Load Complement Word
Load Absolute Word
Load Complement Doubleword
Load Absolute Doubleword
Load Selective
Load Multiple
Load Conditions and Floating Control
Immediate
Load Conditions and Floating Control
Exchange Word
Store Byte
Store Halfword
Store Word
Store Doubleword
Store Selecti ve
Store Multiple
Store Conditions and Floating Controls

Mnemonic

LI
LB
LH
LW
LD
LCH

Meaning
single quotation marks and preceded by the
qualifier "X" (for example, 7B0
is writ16
ten X'7BO'.
AND (Iogi cal product, where 0 nO;::: 0,
1 = 0, 1 n 0 = 0, and 1 n 1 = 1).

n

on

OR (logical inclusive OR, where 0 u 0 = 0,
1 u 0 ;::: 1, and 1 u 1 ;::: 1).

u

o u 1 = 1,

EOR {logical exclusive OR, where 0 @ 0
1 ;::: 1, 1@ 0;::: 1, and 1 @ 1 ;::: O}.

o@

Sign extension - some SIGMA 6 instructions
operate on two operands of different lengths;
the two operands are made equal in length by
extending the sign of the shorter operand by
the required number of bit positions. For positive operands, the result of sign extension is
high-order O's prefixed to the operand; for
negative operands, high-order l's are prefi xed
to the operand. This sign extension process is
performed after the operand is accessed from
memory and before the operation called for by
the instruction code is performed.

SE

Load instructions load the information indicated into one of
the genera~ registers in the current register block. Load
instructions do not affect core memory storage; however,
nearly all load instructions provide a condition code setting
that indicates the following inf9rmation about the contents
of the affected general register(s) after the instruction is
successfully completed:
Condition code settings:
2
3
4
------

o

LAH

LS
LM

STCF

SIGMA 6 load and store ihstructions operate with information fields of byte, halfword, word, and daubleword lengths.

o

Result
zero - the result in the.affected register{s)
is all O's.
negative - register R contains a 1 in bit
position O.

o

LAD

XW
STB
STH
STW
STD
STS
STM

0

o

LCW
LAW
LCD

LCFI
LCF

= 0,

positive - register R contains a 0 in bit
position 0, and at least one 1 appears in
the remainder of the affected register(s}
(or appeared during execution of the current instruction.)
no fixed-point overflow - the result in
the affected register{s} is arithmetica II y
correct.
fixed-point overflow - the result in the
affected register(s) is arithmetically
incorrect.

Store instructions affect only that portion of memory storage
that corresponds to the length of the information field specified by the operation code of the instruction; thus, register
byte<; are stored in memory byte locations, register halfwords
in memory halfword locations, register words in memory

Load/Store Instructions

31

word locations, and register doublewords in memory doubleword locations. Store instructions do not affect the contents
of the general register specified by the R field of the instruction, unless the same register is also specified by the effective virtual address of the instruction.
II

o

LOAD IMMEDIATE
(Immediate operand)

Condition code settings:
2

.LW

3

4

Result in R

0
0
1

0
1
0

zero
negative
positive

LOAD WORD
(Word index al ignment)

1

LOAD IMMEDIATE extends the sign of the value field (bit
position 12 of the instruction ward) 12 bit positions to the
left and then loods the 32-bit result into register R.
Affected: (R), CC3, CC4
(I)12-31SE R
Conditi on code setti ngs:
2

3

4

Result in R

0
0

0
1
0

zero
negative
positive

If LI is indirectly addressed, it is treated as a nonexistent
instruction, in .which case the computer unconditionally
aborts execution of the instruction (at the time of operation code decoding) and traps to location X' 40' with the
contents of register R and the condition code unchanged.
LB

LOAD BYTE
(Byte index alignment)

LOAD BYTE loads the effective byte into bit positions 24-31
of register R and clears bit positions 0-23 of the reg ister to
allOls.
Affected: (R), CC3, CC4
EB R24 - 31 ; 0 RO- 23

LOAD WORD loads the effective word into register R.
Affected: (R),CC3,CC4
EW R
Condition code settings:
2

4

3

o o
o

1
LH

.LD

Affected: (R),CC3,CC4
EHSE
32

R
Load/Store Instructions

o
o

0
1
0

zero
negative
positive

LOAD DOUBLEWORD
(Doubleword index alignment)

If R is an odd value, the result in register R is the 32 highorder bits of the effective doubleword. The condition code
settings are based on the effective doubleword, rather than
the final result in register R (see Example 3, below).
Affected: (R),(Ru 1),CC3,CC4
ED Rul; ED _ O 31
32 63
Condition code settings:
2

zero
nonzero

LOAD HALFWOR D extends the sign of the effective halfword 16 bit positions to the left and then loads the 32-bit
result into register R.

Result in R

LOAD DOUBLEWORD loads the 32 low-order bits of the effective doubleword into register Ru 1 and then loads the 32
high-order bits of the effective douhleword into register R.

Result in R

LOAD HALFWORD
(Halfword index alignment)

4

1

Condition code settings:

2

3

R

3

4

Effective doubleword

o
o

0
1

1

0

zero
negative
positive

Example 1, even R field value:
Before execution
ED
(R)
(Ru 1)
CC

After execution

X 1 0123456789ABCDEF ' X ' 0123456789ABCDEF I
xxxxxxxx
X1 01234567 1
xxxxxxxx
X' 89ABCDEF '
xxx x
xx 10

Example 2, odd R field value:
ED
(R)
CC

X ' 0123456789ABCDEF'
xxxxxxxx
xxxx

X' 0123456789ABCDEF'

X' 01234567 1
xx 10

Condi tion code settings:

Example 3, odd R field value:

X'00000000 I 2345678'
X' 00000000'

X 00000000 12345678'

ED

I

(R)
CC

~

LCH

xxxxxxxx
xxxx

xxlO

LOAD COMPLEMENT HALFWORD
(Halfword index alignment)

2

3

4

Result in R

0

0
0

0

0
0

1

0

1

0

zero
negative
positive
no fixed-point overflow
fixed-point overflow

1

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X '43 ' after execution of LOAD COMPLEMENT WOR D; otherwise, the computer executes the next instruction in sequence.
LOAD COMPLEMENT HALFWORD extends the sign of the
effective halfword 16 bit positions to the left and then loads
the 32-bit two's complement of the result into register R.
(Overflow cannot occur. )

LAW

LOAD ABSOLUTE WORD
(Word index 01 ignment)

Affected: (R),CC3,CC4

~~HSEJ

- R
Condition code settings:
2

3

4

Resu I tin R

o
o

O·
I
0

zero
negative
positive

I

If the effective word is positive, LOAD ABSOLUTE WORD
loads the effective word into register R. If the effective
word is negative, LAW loads the 32-bit two's complement
of the effective word into register R. Fixed-point overflow
occurs if the effective word is -231 (X '80000000 ' ), in which
case the result in register R is _2 31 and CC2 is set to 1;
otherwise, CC2 is reset to O.

LOAD ABSOLUTE HALFWORD
(Halfword index alignment)

LAH

Affected: (R),CC2,CC3,CC4

Trap: Fixed-point overflow

IEWI-· R
Condition code settings:

If the effective halfword is positive, LOAD ABSOLUTE
HALFWORD extends the sign of the effective halfword 16
bit positions to the left and then loads the 32-bit result in
register R. If the effective halfword is negative, LAH extends the sign of the effective halfword 16 bit positions to
the left and then loads the 32-bit two's complement of the
result into register R. (Overflow cannot occur.)
Affected: (R),CC3,CC4

IEH SEI --

R

2

3

4

Result in R

0

0

0
0

zero
nonzero
no fixed-point overflow
fixed-point overflow (sign bit on)

1

0
1

0

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X'43 ' afterexecution of LOAD ABSOLUTE WORD; otherwise, the computer executes the next instruction in sequence.

Condition code settings:
2

3

4

Resu Itin R

o

0
0

zero
nonzero

1
LCW

LCD

LOAD COMPLEMENT WORD
(Word index alignment)

LOAD COMPLEMENT WORD loads the 32-bit two's complement of the effective word into register R. Fixed-point
overflow occurs if the effective word is _2 31 (X 'BOOOOOoo"
in which case the result in register R is -2 31 and CC2 is set
to 1; otherwise, CC2 is reset to O.
Affected: (R),CC2,CC3, CC4

-EW -

R

Trap: Fixed-point overflow.

LOAD COMPLEMENT DOUBLEWORD
(Doubleword index alignment)

LOAD COMPLEMENT DOUBLEWORD forms the 64-bit two's
complement of the effective doubleword, loads the 32 loworder bits of the result into register Ru I, and then loads the
32 high-order bits of the result into register R.

If R is an odd value, the result in register R is the 32 highorder bits of the two's complemented doubleword. The condition code settings are based on the two IS complement of
the effective doubleword, rather than the final result in
register R.
Fixed-point overflow occurs if the effective doubleword is
-263 (X '8000000000000000 '), in which case the result in
Load/Store Instructions

33

registers Rand Rul is -2 63 and CC2 is set to 1; otherwise,
CC2 is reset to O.

registers Rand Ru 1 is -2 63 and CC2 is set to 1; otherwise,
CC2 is reset to O.

Affected: (R), (Ru1 ),CC2,
Trap: Fixed -point overflow
CC3,CC4
[-ED] 32-63 Ru 1; [-ED]O_31 R

Affected: (R),(Ru 1),CC2,
CC3,CC4
IED1 _
Rul; 1ED10_31 32 63
Condition code settings:

Cond i ti on code setti ngs:
2

3

4

Two's complement of effective doubleword

0

0
0

0
1
0

zero
negative
positive
no fixed-point overflow
fixed-point overflow

0
0
1

0

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X'43' after execution of LOAD COMPLEMENT DOUBLEWORD; otherwise,
the computer executes the next instruction in sequence.

ED
(R)
(Ru 1)
CC

After execution

X'0123456789ABCDEF'
xxxxxxxx
xxxxxxxx
xxxx

X '0123456789ABC DEF'
X'FEDCBA98'
X '76543211'
xOOl

Example 2, odd R field value:
ED
(R)
CC

X'0123456789ABCDEF'
xxxxxxxx
xxxx

LAD

LOAD ABSOLUTE DOUBLEWORD
(Doubleword index al ignment)

X'0123456789ABCDEF'
X'FEDCBA98'
xOOl

3

4

Absolute value of effective doubleword

0

0
1

0
0

zero
nonzero
no fixed-point overflow
fixed-point overflow (sign bit on)

0
1

0

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X'43' after execution of LOAD ABSOLUTE DOUBLEWORDi otherwise, the
computer executes the next instruction in sequence.
Example 1, even R field value:

ED
(R)
(Ru 1)
CC

Before execution

After execution

X'0123456789ABCDEF'
xxxxxxxx
xxxxxxxx
xxxx

X'0123456789ABCDEF'
X'01234567'
X'89ABCDEF'
xOl0

Example 2, even R field value:
ED
(R)
(Ru 1)
CC

X'FEDCBA9876543210'
xxxxxxxx
xxxxxxxx
xxx x

X'FEDCBA9876543210'
X'01234567'
X'89ABCDFO'
x010

Example 3, odd R field value:
ED

(R)
CC
LS

If the effective doubleword is positive, LOAD ABSOLUTE
DOUBLEWORD loads the 32 low-order bits of the effective
doubleword into register Ru 1, and then loads the 32 highorder bits of the effective doubleword into register R. If R
is an odd value, the result in register R is the 32 high-order
bits of the effective doubleword. The condition code settings
are based on the effective doubleword, rather than the fina'!
result in register R.

R

2

Example 1, evenR field value:
Before execution

Trap: Fixed-point overflow.

X'0123456789ABCDEF'
xxxxxxxx
xxxx

X '0123456789ABCDEF'
X'01234567'
xOl0

LOAD SELECTIVE
(Word index alignment

Register Ru1 contains a 32-bit mask. If R is an even value,
LOAD SELECTIVE loads the effective word into register R
in those bit positions selected by a 1 in correspondi ng bit
positions of register Ru 1. The contents of register R are not
affected in those bit positions selected by a 0 in corresponding bit positions of register Ru 1.

If the effective doubleword is negative, LAD forms the
64-bit two's complement of the effective doubleword, loads
the 32 low-order bits of the two's complemented doubleword
into register Ru 1, and then loads the 32 high-order bits of the
two's complemented doubleword into register R. If R is an
odd value, the result in register R is the 32 high-order bits
of the two's complemented doubleword. The condition code
settings are based on the two's complement of the effective
doubleword, rather than the final result in register R.

Affected:

Fixed-point overflow occurs if the effective doubleword is
_~3 (X'8000000000000000'), in which case the result in

If R is even, [EWn(RulUu[(R)n(Rul)]-R
If R is odd, EWn(R)-R

34

Load/Store Instructions

If R is an odd value, LS logically ANDs the contents of
register R with the effective word and loads the result into
register R. If corresponding bit positions of register Rand
the effective word both contain l's, a 1 remains in register
Ri otherwise, a 0 is placed in the corresponding bit position
of register R.
(R), CC3, CC4

If the effective virtual address of the LM instruction is in
the range 0 through 15, then the words to be 'oaded are
taken from the general registers rather than from core memory. In this case the results will be unpredictable if any of
the source registers are also used as destination registers.

Condition code settings:

2

3

4

Resul t in R

o

0

zero

o

bit 0 of register R is a

o

bit 0 of register R is a 0 and bit positions
1-31 of register R contain at least one 1

LeFt

LOAD CONDITIONS AND FLOATING
CONTROL IMMEDIATE
(Immediate operand)

Example 1, even R field value:

EW
(Ru 1)
(R)
CC

Before execution

After execution

X' 01234567'
X'FFOOFFOO'

X'01234567'
X' FFOOFFOO'

xxxxxxxx
xxxx

X'01xx45xx'
xx10

Example 2, odd R field value:
Before execution

After execution

EW
(R)
CC

X'89ABCDEF'
X' FOFOFOFO'

X'89ABCDEF'
X' 80AOCOEO'
xxOl

LM

LOAD MULTIPLE
0Nord index alignment)

xxxx

If bit position 10 of the instruction word contains a 1, LOAD
CONDITIONS AND FLOATING CONTROL IMMEDIATE
loads the contents of bit positions 24 through 27 of the instruction word into the condition code; however, if bit 10
is 0, the condition code is not affected.
If bit position 11 of the instruction word contains a 1, LCFI
loads the contents of bit positions 29 through 31 of the instruction word into the floating significance (FS), floating
zero (FZ), and floating normalize (FN) mode control bits,
respectivel y (in the program status doubl eword); however,
if bit 11 is 0, the FS, FZ and FN control bits are not affected. The functions of the floating-point control bits
are described in the section "Floating-point Instructions".
Affected: CC, FS, FZ, FN

If (1)10 = 1, (1)24-27 LOAD MULTIPLE loads a sequential set of words into a sequential set of registers. The set of words to be loaded begi ns wi th the word poi nted to by the effecti ve address of LM,
and the set of registers begins with register R. The set ofregisters is treated modulo 16 (i. e., the next register loaded
after register 15 is register 0 in the current register block).
The number of words to be loaded into the general registers
is determined by the value of the condition code immediately
before the execution of LM. (The desired value of the condition code can be set with LCF or LCFI.) An initial val ue
of 0000 for the condition code causes 16 consecutive words
to be loaded into the register block.
Affected: (R) to (R+CC-l)
(EWL) -R, (EWL+1) - R+l, ... , (EWL +CC-1) -R+CC-l

If the instruction starts loading words from an accessible
region of memory and then crosses into an inaccessible memory region, either the memory protection trap or the nonexistent memory address trap can occur. In either case, the
trap is activated with the condition code unchanged from
the value it contained before the execution of LM. The effecti ve address of the instruction permits the trap routine to
compute how many registers have been loaded. Since it is
permissible to use indirect addressing or indexing through a
general register, or even to execute an instruction located
in a general register,. a trapped LM instruction may have
already overwritten the index, direct address, or the LM
instruction itself, thus destroying any possibility of continuing the program successfully. If such programming must
be done, it is advisable ,that the register containing the direct address, index displacement, or instruction be the last
register loaded by the LM instruction.

CC

If (1)10 =·0, CC is not affected
If (1)11 = 1, (1)29-31 - - FS, FZ, FN
If (1)11 = 0, FS, FZ, and FN n,ot affected
Condition code settings, if (I) 10 = 1:

2

3

4

If LCFI is indirectly addressed, it is treated as a nonexistent instruction, in which case the computer unconditionally aborts execution of instruction (at the time of operation
code decoding) and traps to location X'40' with the condition code unchanged.
LCF

LOAD CONDITIONS AND FLOATING
CONTROL
(Byte index 01 ignment)

If bit position 10 of the instruction word contains a 1, LOAD
CONDITIONS AND FLOATING CONTROL loads bits 0
through 3 of the effective byte into the condition code; however, if bit 10 is 0, the condition code is not affected.
If bit position 11 of the instruction word contains a 1, LCF
loads bits 5 through 7 of the effective byte into the floating
significance (FS), floating zero (FZ), and floating normalize
(FN) mode control bits, respectively; however, if bit 11 is
0, the FS, FZ and FN control bits are not affected. The

Load/Store Instructions

35

functions of the floating-point mode control bits are described in the section "Floating-point Instructions".

STW

STORE WORD
(Word index alignment)

Affected: CC, FS, FZ, FN
If (1)10 = I, EB O_ - - CC
3
If (1)10 = 0, CC not affected
If (1)11

If (1)11

= I,
= 0,

EB _ FS, FZ, FN
5 7
FS, FZ, FN not affected

Condition code setti ngs, if (1)10

2

3

= 1:

STORE WOR D stores the contents of register R into the effective word location.
Affected: (EWl)
(R) EWl

STD

4

STORE DOUBlEWORD
(Doubleword index alignment)

{EB)2
XW

EXCHANGE WORD
(Word index alignment)

EXCHANGE WORD exchanges the contents of register R
with the contents of the effective word location.
Affected: (R),(EWl),CC3,CC4
(R) (EWl)

STORE DOU BlEWORD stores the contents of register R into the
32 high-order bit positions of the effectivedoubleword location and then stores the contents of register Ru 1 into the 32 loworder bit positions of the effective doubleword location.
Affected: (EDl)
(R) EDl _ ; (Ru1) O 31

3
0
0
1

4
0
1
0

Result in R

(R)
(Ru I)
(EDl)

zero
negative
positive

=

Before execution

After execution

X ' 01234567'
X ' 89ABCDEF'
xxxxxxxxxxxxxxxx

X '01234567 1
X'89ABCDEF'
X ' 0123456789ABCDEF'

Example 2, odd R field value:

STORE BYTE
(Byte index alignment)

ST8

_
32 63

Example I, even R field value:

Condition code settings:
2

EDl

(R)
X ' 89ABCDEF'
(EDl) = xxxxxxxxxxxxxxxx

STS
STORE BYTE stores the contents of bit positions 24-31 of
register R into the effective byte location.

X'89ABCDEF'
X '89ABC DEF89ABC DEF'

STORE SELECTIVE
0/Vord index alignment)

Affected: (EBl)
(R)24-31

STH

-

EBl

STORE HAlFWORD
(Halfword index alignment)

STORE HAlFWORD stores the contents of bit positions 16-31
of register R into the effective halfword location. If the information in register R exceeds halfword data limits, CC2 is
set to 1; otherwise, CC2 is reset to O.
EHl

Condition code settings:
2

o

3

4

-

EWl

Example 1, even R field value:

Information in R
(R) 0 _ 16 ~ a II 0' s or all 1 Is
(R)0-16

36

IfR isan odd value, STS logically inclusiveORs the contents
of register R with the effective word and stores the result
into the effective word location. The contents of register
R are not affected.
Affected: (EWl)
If R is even, [(R)n(Ru 1)] u [EWn(~)]
If R is odd, (R) u EW EWl

Affected: (EHl),CC2
(R)16-31 -

Register Ru1 contains a 32-bit mask. If R is an even value,
STORE SELECTIVE stores the contents of register R into the
effective word location in those bit positions sel·ected by a I
in corresponding bit positions of register Ru 1; the effective
word remains unchanged in those bit positions selected by a
o in corresponding bit positions of register Rul.

:I all

load/Store Instructions

O's or all l's

(R)
(Ru 1)
EW

Before execution

After execution

XI 12345678 1
XI FOFOFOFO'
xxxxxxxx

XI 12345678'
XI FOFOFOFO '
X'1x3x5x7x '

Example 2, odd R field value:
Before execution

After executi on

(R)
EW

X'OOFFOOFF '
XI 12345678 1

X'OOFFOOFP
XI 12FF56FP

STM

STORE MULTIPLE
(Word index alignment)

Affected: (EBL)
(PSD)O_7 EBL

ANALYZE/INTERPRET INSTRUCTIONS
ANLZ

o )

STORE MULTIPLE stores the contents of a sequential set of
registers into a sequential set of word locations. The set of
locations begins with the location pointed to by the effective
word address of STM, and the set of registers begins with
register R. The set of registers is treated modulo 16 (i.e.,
the next sequential register after register 15 is register 0).
The number of registers to be stored is determined by the
value of the condition code immediately before execution
of STM. (The condition code can be set to the desired value before execution of STM with LCF or LCFI.) An initial
va lue of 0000 for the condition code causes 16 general registers to be stored.
Affected: (EW L)to (EWL + CC-1)
(R) --EWL, (R+ 1)-EWL+ 1, ... , (R+CC-l)- EWL+CC-l

If the instruction starts stori ng words into an accessible region
of the memory and then crosses into an inaccessible memory
region, either the memory protection trap or the nonexistent
memory address trap can occur. In either case, the trap is
activated with the condition code unchanged from the value
it contained before the execution of STM. The effective
address of the instruction permits the trap routine to compute how many words of memory have been changed. Since
it is permissible to use indirect addressing through one of
the affected locations, or even to execute an instruction located in one of the affected locations, a trapped STM
instruction may have al ready overwritten the direct address,
or the STM instruction itself, thus destroying any possibil ity
of continuing the program successfully. If such programming
must be done, it is advisabl e that the direct address, or the
STM instruction, occupy the last location in which the contents of a register are to be stored by the STM instruction.

If the effective virtual address of the STM instruction is in
the range 0 through 15, then the registers indicated by the
R field of the STM instruction are stored in the general registers rather than in core memory. In this case the resul ts
will be unpredictable if any of the source registers are also
used as destination registers.

STCF

STORE CONDITIO NS AND FLOATING CONTROL
(Byte index alignment)

STORE CONDITIONS AND FLOATING CONTROL stores
the current condition code and the current values of the
floating significance (FS), floating zero (FZ), and floating
normalize (FN) mode cOr:ltrol bits of the program status
doubleword into the effective byte location as follows:

ANALYZE
(Word index alignment)

The ANALYZE instruction treats the effective word as a
SIGMA 6 instruction and calculates the effective virtual
address that would be generated by the instruction if the
instruction were to be executed. ANALYZE produces an
answer to the question, "What effective vi rtual address
would be used by the instruction located at N if it were
executed now?" The ANALYZE instruction determines
the addressing type of the "analyzed" instruction, calculates its effective virtual address (if the instruction is not
an immediate-operand instruction), and loads the effective
virtual address into register R as a displacement value
(the condition code settings for the ANALYZE instruction
indicate the addressing type of the anal yzed instruction).
The nonexistent instruction, the privileged instruction violation, and the unimplemented instruction trap conditions
can never occur during execution of the ANLZ instruction.
However, either the nonexistent memory address condition
or the memory protection violation trap condition (or both)
can occur as a result of any memory access initiated by the
ANLZ instruction. If either of these trap conditions occur,
the instruction address stored by an XPSD in trap location
X ' 40 ' is always the virtual address of the ANLZ instruction.
The detailed operation of ANAL YZE is as follows:
1.

The contents of the locarion pointed to by the effective
virtual address of the ANLZ instruction is obtained. This
effective word is the instruction to be analyzed. From (1
memory-protection viewpoint, the instruction (to be analyzed) is treated as an operand of the ANLZ instruction;
that is, the analyzed instruction may be obtained from
any memory area to which the program has read access.

2a. If the operation code portion of the effective word specifies an immediate-addressing instruction type, the
condition code is set to indicate the addressing type,
and instruction execution proceeds to the next instruc,,"
tion in sequence after ANLZ. The original contents of
register R are not changed when the analyzed instruction is of the immediate-addressing type.
2b. If the operation code portion of the effective word specifies a reference-addressing instruction type, the condition code is set to indicate the addressing type of the
analyzed instruction and the effective address of the
analyzed instruction is computed (using all of the normal
address computation rules). If bit 0 of the effective word
is a 1, the contents of the memory locat;on specified by
bits 15-31 of the effective word are obtained and then

Analyze/Interpret Instructions

37

used as a di rect address. The nonallowed operation
trap (memory protection violation or nonexistent memory
address) can occur as a resu I t of the memory access. Indexingisalwaysperformed{with an index register in the
current register block) if bits 12-14 of the analyzed instruction are nonzero. The effective virtual address of
the analyzed instruction is aligned as an integer displacement val ue and loaded into register R, according to the instruction addressing type, as follows:

Table 5.
X'n l

Byte Addressing:

Halfword Addressing:

Word Addressing:

Doubleword Addressing:

Operation codes and mnemonics for the SIGMA 6 instruction set are shown in Table 5. Circled numbers in the table
indicate the condition code val ue (decimal) available to the
next instruction after ANALYZE when a direct-addressing
operation code in the corresponding addressing type is analyzed.
Affected:

(R), CC

Condition code settings:
2
a
a
a
1
1
1

3

a
a
1
a
a
a
1

4

Instruction addressi ng type

a
1
a
a
1
a

byte
immediate byte
halfword
word
immediate, word
doubleword
direct addressing (EWO = 0)
indirect addressing (EWO = 1)

X'OO'+n

X120'+n

X'40'+n

X'60'+n

00
01
02
03

-

AI
CI

TTBS
TBS

CBS
MBS

LCFI®

LI

-

MI

04
05
06
07

CAll
CAL2
CAL3
CAL4

SF
S

-

08
09
OA
OB

PLW
PSW
PLM
PSM

CVA
LM
STM

OC
OD
OE
OF

LPSD @
XPSD

10
11
12
13

AD
CD
LD
MSP

INTERPRET
(Word index alignment)

-

EOR
OR
LS
AND

BCR
BCS
BAL
INT

WAIT
LRP

SIO
TIO
TDV
HIO

RD
WD
AIO
MMC

AW
CW
lW
MTW

AH
CH
lH
MTH

LCF
CB
LB
MTB

-

-

-

STCF

STD

STH
DH
MH

STB
PACK 0
UNPK

CVS

®

-

-

14
15
16
17

-

-

STW
DW
MW

18
19
1A
1B

SD
CLM
LCD
LAD

SW
CLR
LCW
LAW

IC
ID
1E
IF

FSL
FAL
FDL
FMl

FSS
FAS
FDS
FMS

SH
LCH
LAH

--

-

EXU

®

DS
DA
DD
DM
DSA
DC
DL
DST

loads OIS into bit positions 0-15 of register R (bits 4-15
of the effective word are ignored in this case).
Affected: (R), (Ru 1), CC

O3
EW 4._ 15 -

2

Analyze/Interpret Instructions

0

-

CC

R20 - 31 ; 0 -

RO- 19

Rul _ ; 0 _
16 3I
16 31
Condition code settings:

38

EBS
BDR
BIR
AWM

EW

INTERPRET loads bits 0-3 of the effective word into the
conditi on code, loads bits 4-15 of the effective word
into bit positions 20-31 of register R (and loads a's into
the remai nder of register R), and then loads bits 16-31
of the effective word into bit positions 16-31 of register
Ru 1 (and loads a's into bit positions 0-15 of register Ru 1).
If R is an odd val ue, I NT loads bits 0-3 of the effective
word int0 the condition code, loads bits 16-31 of the effective word into bit positions 16-31 of register R, and

CD -

-

ANLZ
CS
XW
STS

EW _
INT

ANA LYZE Table for SIGMA 6 Operation Codes

3

RuI _
O 15

4

EWO
Example 1, even R field value:

EW
(R)
(Ru 1)
CC

Before execution

After execution

X I12345678 I
xxxxxxxx
xxxxxxxx
xxxx

X I 12345678'
X 100000234'
X'00005678'
0001

2

FIXED-POINT ARITHMETIC INSTRUCTIONS
The following fixed-point arithmetic instructionsare included
as a standard feature of the SIGMA 6 computer:
Instruction Name

Mnemonic

Add Immediate
Add Halfword
Add Word
Add Doubleword
Subtract Halfword
Subtract Word
Subtract Doubl eword
Multiply Immediate
Multiply Halfword
Multiply Word
Divide Hal fword
Divide Word
Add Word to Memory
Modify and Test Byte
Modify and Test Halfword
Modify and Test Word

AI
AH
AW
AD
SH
SW
SO
MI
MH
MW
DH
OW
AWM
MTB
MTH
MTW

The fixed-point arithmetic instruction set performs binary
addition, subtraction, multiplication, and division with
integer operands that may bf; data, addresses, index values,
or counts. One operand may be either in the instruction
word i tsel f or may be in one or two of the current general
registers; the second operand may be either in core memory
or in one or two of the current general reg isters. For most
of these instructions, both operands may be in the same
gen era I reg i ster, thus perm i tti ng the doubl i ng, squari ng, or
clearing the contEmts of a register by using a reference
address value equal to the R field value.
All fixed-point arithmetic instructions provide a condition
code setting that indicates the folJowing information about
the result of the operation called for by the instruction:

3

4

o

Result
no carry - For an add or subtract i nstruction, there was no carry of a I-bit out of
the high-order (sign) bit position of the
result.
carry - For an add or subtract instruction,
there was a l-bit carry out of the sign bit
position of the result. (Subtracting zero
will always produce carry.)

AI

ADD IMMEDIATE
(Immediate operand)

The value field (bit positions 12-31 of the instruction word)
is treated as a 20-bit, two's complement integer. ADD
IMMEDIATE extends the sign of the value field (bit position
12 of the instruction word) 12 bit positions to the left, adds
the resulting 32-bit value to the contents of register R, and
loads the sum into register R.
Affected: (R), CC

Trap: Fixed-point overflow

(R) + (I) 12-31SE - - R
Condition code settings:
2

o
o

3

4

Result in R

o
o

0
1

zero
negative
positive
no fixed-point overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

o

If AI is indirectly addressed, it is treated as a nonexistent
Condition code settings:
2

3

4

Resul t

o

0

zero - The result in the specified general
register{s) is all zeros.

o

negative - The instruction has produced a
fixed-point negative result.

o
o

positive - The instruction has produced a
fixed-poi nt posi ti ve resu It.
fixed-point overflow has not occurred
during execution of an add, subtract, or
divide instruction, and the result is
correct.
fixed-point overflow has occurred during
execution of an add, subtract, or di vide
instruction. For addition and subtraction,
the incorrect result is loaded into the
designated register{sL For a divide instruction, the designated register(s), and
CC1, CC3, and CC4 are not affected.

instruction, in which case the computer unconditionally
aborts execution of the instruction {at the time of operation
code decoding) and traps to location X'40' with the contents
of register R and the condition code unchanged.

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X'43' after
loading the sum into register R; otherwise, the computer
executes the next instruction in sequence.

AH

AOD HALFWORD
(Halfword index 01 ignment)

ADD· HALFWORD extends the sign· of the effective hal ~ord
16 bit positions to the left (to form a 32-bit word in which
bit positions 0-15 contain the sign of the effective halfword),
adds the 32-bit result to the contents of register R, and loads
the sum into register R.
Affected: (R), CC
(R) + EHSE - - R

Trap: Fixed-point overflow

Fixed-Point Arithmetic Instructions

39

2

Condition code settings:
_---.:2::....-_3_ _
4

o
o
1

0
1
0

o
o

1

1

Resu It in R
zero
negative
positive
no fi xed-poi nt overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

If C C2 is set to 1 and the fi xed-poi nt ari thmetic trap mask
is 1, the computer traps to location X 143 1 after loading the
sum into regi ster R; otherwise, the computer executes the
next instruction in sequence.
ADD WORD
(Word index alignment)

AW

o

Condition code settings:
3

4

Result in R

o
o

0
1
0

zero
negative
positive
n() fixed-point overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

o
1

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X ' 43 1 after
loading the sum into registers Rand Ru1; otherwise, the
computer executes the next instruction in sequence.
Example 1, even R field value:

ED
(R)
(Ru 1)
CC

ADD DOUBlEWORD
(Doubleword index alignment)

ADD DOUBlEWORD adds the effective doubleword to the
contents of registers Rand Ru 1 (treated as a single, 64-bit
register); loads the 32 low-order bits of the sum into register Ru1 and then loads the 32 high-order bits of the sum
into register R. R must be an even value; if R is an odd
value, the result in register R is unpredictable.
Affected: (R), (Ru 1), CC
(R,Ru1) + ED--R,Rul

After execution

X' 33333333EEEEEEEE '

X' 33333333EEEEEEEE '
X 144444445 1
X1222222211
0010

X ' 11111111 1
X' 33333333 1
xxxx

SUBTRACT HAlFWORD
(Halfword index al ignment)

Affected: (R), CC
-EH
+ (R)-R
SE

Trap: Fixed-point overflow

Condition code settings:

2

o

3

4

Result in R

o
o

0

zero
negative
positive
no fixed-poi nt overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

1

1
0

1

o

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM)" is a 1, the computer traps to location X ' 43 1 after
loading the sum into register R; otherwise, the computer
executes the next instruction in sequence.

SW

SUBTRACT WORD
'YVord index 01 ignment)

Trap: Fixed-point overflow

3

4

_Resu It in R, Ru 1

SUBTRACT WORD forms the two1s complement of the effective word, adds that complement to the contents of register
R, and loads the sum into register R.

o

0

zero
negative

Affected: (R), CC
-EW + (R)-- R

Condition code settings:

o

40

Before execution

SUBTRACT HAlFWORD extends the sign of the effective
halfword 16 bit positions to the left (to form a 32-bit word
in which bit positions 0-15 contain the sign of the effective halfword), forms the two1s complement of the resulting
word, adds the complemented word to the contents of register R, and loads the sum into register R.

(AM) is a 1, the computer traps to location X' 43 1 after
loading the sum into register R; otherwise, the computer
executes the next instruction in sequence.

2

positive
no fixed-point ove:-flow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

1

If CC2 is set to 1 and the fixed-point arithmetic trap mask

AD

o

Trap: Fixed-point overflow

Affected: (R), CC
(R) + EW- R

1

Result in R, Ru1

1

ADD WORD adds the effective word to the contents of register R and loads the sum into register R.

o

4

o

SH

2

3

Fixed-Point Arithmetic Instructions

Trap: Fixed-point overflow

If R is an odd value, the result in register R is the 32 low-

Condition code settings:

2

3

4

Result in R

o

o

zero
negative
positive
no fi xed-poi nt overflow
fixed-poi nt overflow
no corry from bit position 0
corry from bit position 0

o
o

1

1

o

1

o

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X '43 1 after

order bits of the product. Thus, in order to generate a 64bit product, the R field of the instruction must be even and
the multiplicand must be in register R+1. The conditioncode
settings are based on the 64-bit product formed duri ng instruction execution, rather than on the final contents of
register R. Overflow cannot occur.
Affected: (R), (Ru1), CC2, CC3, CC4
(Rul) x (1)12-31 SE Condition code setti ngs:

2

loading the sum into register R; otherwise, the computer
executes the next instruction in sequence.

so

R, Ru1

3

4

64-bit product

o
o

o

zero
negative

o

SUBTRACT DOUBLEWORD
(Doubleword index alignment)

o

positive
resul t is correct, as represented in register Ru 1
result is not correctly representable in
register Ru 1 alone

SUBTRACT DOUBlEWORD forms the 64-bit twols complement of the effective doubleword, adds the complemented
doubleword to the contents of registers Rand Ru1 (treated
as a single, 64-bit register), loads the 32 low-order bits
of the sum into register Ru1 and loads the 32 high-or.der bits
of the sum into register R. R must be on even value; if R is
an odd value, the result in register R is unpredictable.
Affected: (R),(Rul),CC
-ED + (R, Ru1)--R, Ru1

Trap: Fixed-point overflow

If MI is indirectly addressed, it is treated as a nonexistent
instruction, in which case the computer unconditionally
aborts execution of the instruction (at the time of operation code decoding) and traps to location X ' 40 ' with the
contents of register R, register Ru 1, and the condition code
unchanged; otherwi se, the computer executes the next i nstruction° in sequence.
Example 1, even R field value:

Condition code settings:
Before executi on

2

o
i

o

3

4

Result in R, Ru1

o
o

o

zero
negative
positive
no fixed-point overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

1

o

If CC2 is set to 1 and the fixed-point arithmetic trap mask

(AM) is a 1, the computer traps to location X I43 1 after the
result is loaded into registers Rand Ru1; otherwise, the computer executes the next instruction in sequence.
MI

MULTIPLY IMMEDIA TE
(Immediate operand)

The value field (bit positions 12-31 of the instructions word)
is treated as a 20-bit, twols complement integer. MUlTIPLY IMMEDIATE extends the sign of the value field (bit
position 12) of the instruction word 12 bit positions to the
left and multiplies the resulting 32-bit value by the contents of register Ru 1, then loads the 32 high-order bits of
the product into register R, and then loads the 32 loworder bits of the product into register Rul.

After execution

(1)12-31 = X?OOOOI

X?OOOOI

(R)

xxxxxxxx

X 100007000 1

(Ru 1)

X 110001000 1

X?OOOOOOOI

CC

xxxx

xll 0

Example 2, odd R field value:
1
1
(1)12-31= X 01234

X ' 01234 1

(R)

X 1000300021

X '369C2468I

CC

xxxx

xOlO

MH

MULTIPLY HAlFWORD
(Halfword index al ignment)

MULTIPLY HALFWORD multiplies the contents of bit positions 16-31 of register R by the effective halfword (with
both halfwords treated as signed, twols complement integers) and stores the product in register Ru1 (overflow cannot occur). If R is an even value, the original multiplier
in register R is preserved, allowi ng repetitive halfword
multiplication with a constant multiplier; however, if R is

Fixed-Point Arithmetic Instructions

41

an odd value, the product is loaded into the same register.
Overflow cannot occur.

OH

DIVIDE HALFWORD
(Halfword index alignment)

Affected: (Rul), (C3, CC4
(R)16-31 x EH - - Rul
Condition code settings:
2

3

4

a a
a 1
a

DIVIDE HALFWORD divides the contents of register R (treated
as a 32-bit fixed-point integer) by the effective hal fword
and loads the quotient into register R. If the absolute value
of the quotient cannot be correctly represented in 32 bits,
fixed-point overflow occurs; in which case CC2 is set to 1
and the contents of register R, and CC1, CC3, and CC4
are unchanged.

ResultinRul
zero
negative
positive

Example 1, even R field value:

EH
(R)

(R u 1)
CC

Before execution

After execution

X'FFFF '
X 'xxxxOOOA I
xxxxxxxx
xxxx

X'FFFF '
X I xxxxOOOA I
X ' FFFFFFF6 1
xx01

Affected: (R), CC2, CC3,
CC4
(R)~ E H - R
Condition code settings:
2

X'FFFF '
X I xxxxOOOA I
xxxx

EH
CC

3

4

a a a
0
a 1
a 1 a

Example 2, odd R field value:

(R)

Trap: Fixed-point overflow

X'FFFF '
X ' FFFFFFF6 1
xx01

Result in R
zero quotient, no overflow
negative quotient, no overflow
positive quotient, no overflow
fixed-point overflow

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X ' 43 1 with the
contents of register R, CC1, CC3, and CC4 unchanged.

MW

MULTIPLY WORD
(Word index al ignment)

MUL TIPL Y WORD multipl ies the contents of register Ru 1 by
the effective word, loads the 32 high-order bits of the product into register R and then loads the 32 low-order bits of
the product into register Rul (overflow cannot occur).

If R is an odd value, the result in register R is the 32 loworder bits of the product. Thus, in order to generate a 64bit product, the R field of the instruction must be even and
the multiplicand must be in register R+1. The condition
code settings are based on the 64-bit product formed during
instruction execution, rather than on the final contents of
register R.
Affected: (R),(Rul),CC
(Ru 1) x EW - - - + R, Ru 1

Condition code settings:
2

3

4

64-bit product

a

0

zero

a

negative

a
a

positive
result is correct, as represented in register Ru 1
result is not correctly representable in
register Rul alone

42

Fixed-Point Arithmetic Instructions

ow

DIVIDE WORD
(Word index al ignment)

DIVIDE WORD divides the contents of registers Rand Ru 1
(treated as a 64-bit fixed-point integer) by the effective
word, loads the integer remainder into register R and then
loads the integer quotient into register Ru 1. If a nonzero
reml..li nder occurs, the remai nder has the same sign as the
dividend (original contents of register R). If R is an odd
value, DW forms a 64-bit register operand by extending
the sign of the contents of register R 32 bit positions to the
left, then divides the 64-bit register operand by the effective word, and loads the quotient into register R. In this
case, the remainder is lost and only the contents of register
R are affected.
If the absolute value of the quotient cannot be correctly
represented in 32 bits, fixed-point overflow occurs; in
which case, CC2 is set to 1 and the contents of register R,
register Rul, CC1, CC3, and CC4 remain unchanged; otherwise, CC2 is reset to 0, CC3 and CC4 reflect the quotient
in register Ru1, and CCl is unchanged.
Affected: (R), (Rul), CC2
Trap: Fixed-point overflow
CC3, CC4
(R, Rul) -;- E W - R (remainder), Ru1 (quotient)
Condition code settings:

2

3

4

o a a
o a

Resul tin Ru1
zero quotient, no overflow
negative quotient, no overflow

violation cannot occur in this case; however, a memory
read-protection violation can occur.

Condition code seHings:

2

3

o

4

Result in Rul

o

positive quotient, no overflow
fixed-point overflow

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X ' 43 1 with the
original contents of register R, register Ru1, CCl, CC3, and
CC4 unchanged; otherwise, the computer executes the next
instruction in sequence.
AWM

ADD WORD TO MEMORY
(Word index al ignment)

ADD WORD TO MEMORY adds the contents of register R to
the effective word and stores the sum in the effective word
location. The sum is stored regardless of whether or not
overflow occurs.
Affected: (EWL), CC
EW + (R)-- EWL

Affected: CC if (1)8-11
OJ
(EBL) and CC if (1)8-11

If (1)8-11

f

If (1)8-11

= 0,

I

0

0, EB + (1)8-11 SE-- EBL and set CC
test byte and set CC

Condition code settings:

2

3

4

Result in EBL

0
0

0
1

0
0

zero
nonzero
no carry from byte
corry from byte

0
1

If MTB is executed in an interrupt location, the condition
code is not affected (see Chapter 2, "Single-Instruction
Interrupts") .

MTH

Trap: Fixed-point overflow

MODIFY AND TEST HALFWORD
(Halfword index alignment)

Condition code settings:
234

o
o

o
o

0

1

0

1

Result in EWL
zero
negative
positive
no fixed-point overflow
fixed-point overflow
no carry from bit position 0
carry from bit position 0

If CC2 is set to 1 and the fixed-point arithmetic trap mask
(AM) is a 1, the computer traps to location X ' 43 1 after the
result is stored in the effective word location; otherwise,
the computer executes the next instruction in sequence.

MTB

MODIFY AND TEST BYTE
(Byte index alignment)

If the value of the R field is nonzero, the high-order bit of
the R field (bit position 8 of the instruction word) is extended
12 bit positions to the left, to form a halfword with bit positions 0-11 of that halfword equal to the high-order bit of the
R field. This halfword is added to the effective halfword and
then (if no memory protectior violation occurs) the sum is
stored in the effective halfword location and the condition
code is set according to the value of the resultant halfword.
The sum is stored regardless of whether or not overflow occurs. This process allows modification of a halfword by any
number in the range -8 through +7, foil owed by a test.
If tile value of the R field is zero, the effective halfword is
tested for being a zero, negative, or positive value. The
condition code is set, according to the result of the test,
but the effective halfword is not affected. A memory writ€:protection violation cannot occur in this case; however, a
memory read-protection violation can occur.
Affected: CC if (1)8-11

If the value of R field is nonzero, the high-order bit of the
R field (bit position 8 of the instruction word) is extended
4 bit positions to the left, to form a byte with bit positions 0-4 of that byte equal to the high-order bit of the
R field. This byte is added to the effective byte and then
(if no memory protection violation occurs) the sum is stored
in the effective byte location and the condition code is set
according to the value of the resultant byte. This process
al lows modification of a byte by any number in the range
-8 through +7, fol lowed by a test.

Trap: Fixed-poi nt overflow

(EHL) and CC if (1)8-11

If (1)8-11

= 0,

If (1)8-11

f

f

0

test halfword and set CC

0, EH + (1)8-11 SE-- EHL and set CC

Condition code settings:

2

3

4

Result in EHL

o

0

zero
negative
positive
no fixed-point overflow
fixed-point overflow
no carry from hal fword
carry from hal fword

o
1

If the value of the R field is zero, the effective byte is
tested for being a zero or nonzero value. The condition
code is set according to the result of the test, but the
effective byte is not affected. A memory write-protection

= 0;

o
1

o
1

1
0

Fixed-Point Arithmetic Instructions

43

If CC2 is set to 1 and the fixed-point arithmetic trap
mask (AM) is a 1, the computer traps to location X'43'
after the result is stored in the effective halfword location; otherwise, the computer executes the next instruction in sequence. However, if MTH is executed in an
interrupt location, the condition code is not affected
and no fixed-point overflow trap can occur (see "SingleInstruction Interrupts").

MTW

MODIFY AND TEST WORD
(Word index alignment)

If the value of the R field is nonzero, the high-order
bit of the R field (bit position 8 of the instruction
word) is extended 28 bit positions to the left, to form
a word with bit positions 0-27 of that word equal to
the high-order bit of the R field. This word is added
to the effective word and then (if no memory protection violation occurs) the sum is stored in the effective
word location and the condition code is set according
to the value of the resultant word. The sum is stored
regardless of whether or not overflow occurs. This
process allows modification of a word by any number
in the range -8 through +7, followed by a test.

If the value of the R field is zero, the effective word
is tested for being a zero, negative, or positive value.
The condition code is set according to the result of the
test, but the effective word is not affected. A memory
write-protection violation cannot occur in this case;
however, a memory read-protection violation can occur.
Affected: CC if (1)8-11

= 0;

Trap: Fixed-point overflow

(EWL) and CC if (1)8-11

f

COMPARISON INSTRUCTIONS
The following comparison instructions are available to
SIGMA 6 computers:
Instruction Name

Mnemonic

Compare
Compare
Compare
Compare
Compare
Compare
Compare
Compare

CI
CB
CH
CW
CD
CS

f

COMPARE IMMEDIATE
(Immediate operand)

(I

COMPARE IMMEDIATE extends the sign of the value field
(bit position 12) of the instruction word 12 bit positions to
the left, compares the 32-bit result with the contents of register R (with both operands treated as signed fixed-point
quantities), and then sets the condition code according to
the results of the comparison.
Affected: CC2, CC3, CC4
(R) : (1)12-31 SE
Cond ition code setti ngs:

2

0

3

4

Result in EWL

o
o

0

zero
negative
positive
no fixed-point overflow
fixed-point overflow
no carry from word
carry from word

1

o

o

1

1
0

If CC2 is set to 1 and the fixed-point arithmetic trap
mask (AM) is a 1, the computer traps to location X'43'
after the result is stored in the effective word location;
otherwise, the computer executes the next instruction
in sequence. However, if MTVV is executed in an
interrupt location, the condition code is not affected
and no fixed-point overflow trap can occur (see IISingleInstruction Interrupts ll ) .

44

Comparison Instructions

3

4

Result of Comparison

o

0

equal

o

0, EW + 18 _ 11 SE -EWL and set CC

register value less than immediate value

o

Condition code settings:

2

ClR
ClM

All SIGMA 6 comparison instructions produce a condition
code setting which is indicative of the results of the comparison, without affecting the effective operand in memory
and without affecting the contents ofthedesignated register.

If (1)8-11 = 0, test word and set CC
If (1)8-11

Immediate
Byte
Halfword
Word
Doubleword
Selective
With Limits in Register
With Limits in Memory

o

register value greater than immediate
value
no I-bits compare, (R) n (I) 12-32SE = 0
one or more I-bits compare,
(R) n (I)12-32SE

f

0

If CI· is indirectl y addressed, it is treated as a nonexistent
instruction, in which case the computer unconditionally
aborts execution of the instruction (at the time of operation
code decoding) and then traps to location X'40' with the
condition code unchanged.
CB

COMPARE BYTE
(Byte index al ignment)

COMPARE BYTE compares the contents of bit positions
24-31 of register R with the effective byte (with both bytes

treated as positive integer magnitudes) and sets the condition code according to the results of the comparison.

2

Affected:

o

CC2, CC3, CC4

Condition code settings:
3

4

Result of Comparison

o

o

equal

o

1

register byte less than effective byte

o

register byte greater than effective byte

o

no l-bits compare, (R)24-31 n EB = 0
one or more l-bits compare,
(R)24-31 n EB -I 0

CH

4

Result of Comparison

o

reg i ster word greater than effect i ve word
no 1-bits compare, (R) n EW = 0
one or more l-bits compare, (R) n EVv fa

1

(R)24-31 : EB

2

3

COMPARE HALFWORD
(Halfword index alignment)

COMPARE HALFWORD extends the sign of the effective hal fword 16 bit positions to the I eft, then compares the resultant
32-bit word with the contents of register R (with both words
treated as signed, fixed-poin l quantities) and sets the condition code according to the results of the comparison.

COMPARE DOUBLEWORD
(Doubleword index alignment)

CD

COMPARE DOUBLEVvORD compares the effective doubleword with the contents of registers Rand Ru 1 (with both
doublewords treated as signed, fixed-point quantities) and
sets the condition code accordi ng to the resul ts of the comparison. If the R field of CD is an odd value, CD forms a
64-bit register operand (by duplicating the contents of register R for both the 32 high-order bits and the 32 low-order
bits) and compares the effective doubl eword with the 64-bi t
register operand. The condition code settings are based on
the 64-bit comparison.
Affected: CC3, CC4
(R, Ru 1) : ED
Condition code settings:
2

Affected: CC2, CC3, CC4
(R) : EHSE

3

4

Result of Comparison

0

0

equal

{)

register doubleword less than effective
doubleword

Condition code settings:
2

3

4

Result of Comparison

o
o

0

equal
register word less than effective halfword wi th si gn extended

o
o

no 1-b its compare, (R) n EH SE = 0

COMPARE WORD
(Word index alignment)

COMPARE WORD compares the contents of register R with
the effective word, with both words treated as signed fixedpoi nt quantities, and sets the condition code according to
the results of the comparison.
Affected: CC2, CC3, CC4
(R) : EW
Condition code setti ngs:

2

3

4

-----o 0
o

cs

register dou91eword greater than effective
doubleword

COMPARE SELECTIVE
(Word index alignment)

register word greater than effective
halfword with sign extended

one or more 1-bits compare,
(R) n EHSEfO

CW

0

Result of Comparison
equal
register word less than effective word

COMPARE SELECTIVE compares the contents of register R
with the effective word in only those bit positions selected by
a 1 in corresponding bit positions of register Ru 1 (mask). The
contentsof register R and the effective word are ignored in
those bit positions designated by a 0 in corresponding bit
positions of register Ru 1. The selected contents of register R
and the effective word are treated as positive integer magnitudes, and the condition code is set according to the result of the comparison. If the R field of CS is an odd value,
CS compares the contents of register R wi th the logical product (AND) of the effective word and the contents of regi ster R.
Affected: CC3,CC4
If R is even: (R) n(Ru 1) : EW n(Ru 1)
If R is odd: (R) : EW n(R)
Condition code settings:

2

3

4

Results of Comparison under Mask in Rul

o
o

0
1

1

0

equal
register word less than effective word
register word greater than effective word
(if R is even)
Comparison Instructions

45

ClR

All logical operations are performed bit by corresponding
bit between two operands; one operar d is in register Rand
the other operand is the effective word. The result of the
logical operation is loaded into register R.

39
~

!

2

J!4

5

COMPARE WITH LIMITS IN REGISTERS simultaneously compares the effective word with the contents of register Rand
with the contents of register Ru 1 (with all three words treated
as signed fixed-point quantities), and sets the condition
code according to the results of the comparisons.
Affected: CC
(R) : EW, (Ru 1) : EW

2

3

4

Result of Comparison

o
o

0

1

0

contents
contents
contents
contents
contents
contents

1

o
J

o
elM

OR

of
of
of
of
of
of

R equal to effective word
R less than effective word
R greater than effecti ve word
Ru 1 equal to effecti ve word
Ru 1 less than effective word
Ru 1 greater than effective word

OR WORD
(Word index alignment)

I

2

Condition code setti ngs:
2

3

4

Result of Com~arison

0

0

contents of R equal to most significant
word, (R) = ED _
O 31

word, (R)
0

0

0

2

I~

" " n"" " "

vl~ ~

i
• "

4

Resul t in R

o

0

zero
bit 0 of register R is a 1

Obit 0 of register R is a 0 and bit positions
1-31 of register R contain at least one 1

o

I

EXCLUSIVE OR WORD
(Word index alignment)

2

EXCLUSIVE OR WORD I ogical/y exclusive ORs the effective
word into register R. If corresponding bits of register Rand
the effective word are di fferent, a 1 is placed in the corresponding bit position of register R; if the contents of the
corr<:!sponding bit positions are alike, a 0 is placed in the
corresponding bit position of register R. The effective word
is not affected.
Affected: (R), CC3, CC4
(R)@EW--- R, where O@O = 0, 0@1 = 1,
1@0=1, 1@1=0
Condition code settings:

2

contents of R greater than most significant word, (R) > ED _
O 31

3

4

Result in R

o
o

0

zero
bit 0 of register R is a 1

Obit 0 of register R is a 0 and bit positions
1-31 of register R conta in at least one 1

contents of R equal to least significant

AND

AND WORD
0/'Iord index alignment)

contents of R less than least significant

0

word, (R)
0

46

3

o

< ED 0-31

word, (R) = ED 32-63

I X I : Referenc~ address

Condition code settings:

contents of R less than most significant

0

R

• '" " " " " " " " " ..

Affected: (R), CC3, CC4
(R) u EW R, where 0 u 0 = 0, 0 u 1 = 1, 1 u 0 = 1, 1 u 1 = 1

EOR

Affected: CC
(R) = ED _ ; (R) : ED O 31
32 63

"

OR WORD logically ORs the effective word into register R.
If corresponding bits of register R and the effective word are
both 0, a 0 remains in register R; otherwise, a 1 is placed in
the corresponding bit position of register R. The effective
word is not affected.

COMPARE WITH LIMITS IN MEMORY
(Doubleword index alignment)

COMPARE WITH LIMITS IN MEMORY simultaneously compares the contents of register R with the 32 high-order bits
of the effective doubleword and with the 32 low-order bits
of the effective doubleword, with all three words treated
as 32-bit signed quantities, and sets the condition code
according to the results of the comparisons.

I

49
o

Condition code settings:

o
o

LOGICAL INSTRUCTIONS

COMPARE WITH LIMITS IN REGISTERS
(Word index alignment)

< ED 32-63

contents' of R greater than Ieast significant word, (R) > ED _
32 63

Logical Instructions

o

I

2

AND WORD logically ANDs the effective word into register
R. If corresponding bits of register R and the effective word

ale bath 1, a 1 remains in register R; otherwise, a 0 is
placed in the corresponding bit position of register R. The
effecti ve word is not affected.
Affected: (R), CC3, CC4
(R) n EW - - R, where 0 n 0
1 n0

I

= 0,
= 0,

0 n1
1 n1

= 0,
=1

Condition code settings:
2

3

4

Result in R

0

0

zero

0

bit 0 of register R is a
0

bit 0 of register R is a 0 and bit positions
1-31 of register R contain at least one 1

SHIFT INSTRUCTIONS
The instruction format for logical, circular, and arithmetic
shift operations is:

s

integer, with the high-order bit (bit position 25) as the sign
(negative integers are represented in two's complement form).
A positive shift count causes a left shift of C bit positions.
A negative shift count causes a right shift of Ic bit positions. The value of C is within the range: -64: C :: +63.
All double-register shift operations require an even value for
the R field of the instruction, and treat registers Rand Rul
as a 64-bit register with the high-order bit (bit position Oaf
register R) as the sign for the entire register. If the R field
of SHIFT is an odd value and a double-register shift operation is specified, a register doubleword is formed by duplicating the contents of register R for both the 32 high-order
bits and the 32 low-order bits of the doubleword. The shift
operation is then performed and the 32 high-order bits of the
result are loaded into register R.
Overflow occurs (on left shifts only) whenever the value of
the sign bit (bit position 0 of register R) changes. At the
completion of logical left, circular left, and arithmetic left
shifts, the condition code is set as follows:

SHIFT
(Word index 01 ignment)

2

3

4

o

If neither indirect addressing nor indexing is called for in
the instruction SHIFT, bit positions 21-23 of the reference
address fi eld determine the type, and bit positions 25-31
determine the direction and amount of the shift. If only indirect addressing is called for in the instruction, bits 15-31
of the instruction are used to access the indirect word and
then bits 21-31 of the indirect word determine the type,
direction, and amount of the shift. If only indexing is
called for in the instruction, bits 21-23 of the instruction
word determine the type of shift; the direction and amount
of shift are determined by bits 25-31 of the instruction plus
bits 25-31 of the specified index register. If both indirect
addressing and indexing are called for in the instruction,
bits 15-31 of the instruction are used to access the indirect
word and then bits 21-23 of the indirect word determine the
type of shift; the direction and amount of the shiftare determined by bits 25-31 of the indirect word plus bits 25-31 of
the specified index register.
Bit positions 15-20 and 24 of the effective virtual address
are ignored. Bit positions 21, 22 and 23 of the effective
virtual address determine the type of shift, as follows:
21

22

23

Shift Type

0
0
0
0
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Logical, single register
Logical, double register
Circular, single register
Circular, double register
Arithmetic, single register
Arithmetic, double register
Undefined
Undefined

Bit positions 25 through 31 of the effective virtual address are
a shift count that determines the direction and amount of the
shift. Theshiftcount(C} is treated asa7-bit signed binary

Result of Shift
even number of l's shifted off left end of
register R
odd number of l's shifted off I eft end of
register R

o

no overflow on left shift
overflow on left shift

At the completion of logical right, circular right, and arithmetic right shifts, the condition code is set as follows:
234

o

0

Logica I Shift, Single Register

If the shift count, C, is positive, the contents of register R
are shifted left C places, with O's copied into vacated bit
positions on the right. (Bits shifted past RO are lost.) If C
is negative, the contents of register R are shifted right IC
places, with O's copied into vacated bit positions on the
left.· (Bits shifted past R31 are lost.)

I

Affected: (R), CC1, CC2
Logical Shift, Double Register

If the shift count, C, is positive, the contents of registers
Rand Ru 1 are shifted left C places, with O's copied into
vacated bit positions on the right. Bits shifted past bit position 0 of register Ru1 are copied into bit position 31 of register R. (Bits shifted past RO are lost.) If C is negative, the
contents of registers Rand Ru 1 are shifted right IC I places,
Shift Instructions

47

with OIS copied into vacated bit positions on the left. Bits
shifted past bit position 31 of register R are copied into bit
position a of register Ru 1. (Bits sh ifted past Ru 131 are lost.)
Affected: (R), (Ru1), CC1, CC2
Circular Shift, Single Register

FLOATING-POINT SHifT
See "Floating-Point Arithmetic Instructions" for a definition
of floating-point numbers. The forma~ for the floating-poinj
shift instruction is:
SF

If the shift count, C, is positive, the contents of registerR
are shifted left C places. Bits shifted past bit position 0
are copied into bit position 31. (No bits are lost.) If C
is negative, the contents of register R are shifted right ICI
places. Bits shifted past bit position 31 are copied into
bit position O. (No bits are lost.)

Affected: (R),CC1,CC2
Circular Shift, Double Register

If the shift count, C is positive, the contents of registers
Rand Ru 1 are shifted left C places. Bits shifted past bit
position a of register R are copied into bit position 31 of
register Ru1. (No bits are lost.) If C is negative, the
contents of registers Rand Ru1 are shifted right
places.
Bits shifted past bit position 31 of register Ru1 are copied
into bit position a of register R. (No bits are lost.)

Ici

Affected: (R), (Ru1), CC1, CC2
Arithmetic Shift, Single Register

If the shift count, C, is positive, the contents of register
R are shifted left C places, with O's copied into vacated
bit positions on the right. (Bits shifted past RO are lost.)
If C is negative, the contents of register R are shifted right
places, with the contents of bit position 0 copied into
vacated bit positions on the left. (Bits sh ifted past R31 are
lost. )

Ic I

If indirectaddressing or indexing is called for in the instruction
word, the effective virtual address is computed as for the instruction SHIFT except that bit position 23 of the effective
virtual address determines the type ofshift. Ifbit 23 is aO, the
contents of register R are treated as a short-format floatingpoint number; if bit 23 is a 1, the contents of registers Rand
Ru1 are treated as a long-format floating-point number.
The shift count, C, in bit positions 25 through 31 of the
effective virtual address determines the amount and direction of the shift. The shift count is treated as a 7-bit
signed binary integer, with the high-order bit (bit position
25) as the sign (negative integers are represented in twols
compl ement form).
The absolute value of the shift count determines the number
of hexadecimal digit positions the floating-point number is
to be shifted. If the shift count is positive, the floatingpoint number"is shifted left; if the count is negative, the
number is shifted right.
SHIFT FLOATING loads the floatLng-point number from the
register(s) specified by the R field of the instruction into a
set of internal registers. If the number is negative, it is
two's complemented. A record of the original sign is retained. The floating-point number is then separated into
a characteristic and a fraction, and CCl and CC2 are both
reset to O's.
A positive shift count produces the following left shift
operations:

1.

If the fraction is normalized (i.e., is less than 1 and is
equal to or greater than 1/16), or the fraction is all
O's, CC1 is set to 1.

2.

If the fraction field is all O's, the entire floating-point
number is set to all O's (true zero), regardless of the
sign and the characteristic of the original number.

3.

If the fraction is not normalized, the fraction field is
shifted 1 hexadecimal digit position (4 bit positions) to
the left and the characteristic field is decremented by
1. Vacated digit positions at the right of the fraction
are filled with hexadecimal O's.

Affected: (R), CC1, CC2
Arithmetic Shift, Double Register

If the shift count, C, is positive, the contents of registers
Rand Ru1 are shifted left C places, with O's copied into
vacated bit positions on the right. Bits shifted past bit
position a of register Ru 1 are copied into bit position 31
of register R. (Bits shifted past RO are lost.) If C is negative, the contents of registers Rand Ru 1 are shifted right ICI
places, with the contents of bit position a of register R
copied into vacated bit positions on the left. Bits shifted
past bit position 31 of register R are copied into bit position a of register Rul. (Bits shifted past Ru1 31 are lost.)
Affected: (R), (Ru1), CC1, CC2

48

Shift Instructions

SHIFT FLOATING
(Word index al ignment)

If the characteristic field underflows (i.e., is all lis
as the result of being decremented), CC2 is set to 1.
However, if the characteristic field does not underflow, the shift process (shift fraction, and decrement
characteristic) continues until the fraction is normalized, until the characteristic field underflows, or
until the fraction is shifted left C hexadecimal digit

positions, whichever occurs first. (Any two, or all
three, of the terminating conditions can occur
simultaneously. )
4.

5

At the completion of the left shift operation, the f1oatingpoint result is loaded back into the general register{s).
If the number was originall y negative, the two's compi ement of the resul tant number is loaded into the general register{s}.
The condition code settings following a floating-point
left shift are as follows:

2

3

4

Result

o
o

o

true zero (all O's)
negative

o
o

o

positive
C digits shifted (fraction unnormalized, no characteristic underflow)
fraction normalized {includes true
zero}

Floating Shift, Single Register

The short-format floating-point number in register R is shifted
according to the rules established above for floating-point
shift operations.
Affected: {R},

cc

Floating Shift, Double Register

The long-format floating-point number in registers Rand Rul
is shifted according to the rules established above for floatingpoint shift operations. (If the R field of the instruction word
is an odd value, a long-format floating-point number is generated by duplicating the contents of register R, and the 32
high-order bits of the result are loaded into register R.)
Affected: (R), (Ru 1 ),

cc

characteristic underflow

CONVERSION INSTRUCTIONS

A negative shift count produces the following right shift operations (again assuming that negative numbers are two's
complemented before and atter the shift operation):

The following two conversion instructions are provided by the
SI GMA 6 computer:

1.

The fraction field is shifted 1 hexadecimal digit position to the right and the characteristic field is incremented by 1. Vacated digit positions at the left are
filled with hexadecimal O's.

Instruction Name

Mnemonic

Convert by Addition
Convert by Subtraction

CVA
CVS

If the characteristic field overflows (i.e., is all O's as

These two conversion instructions can be used to accompl ish
bidirectional translation betw~en binary code and any other
weighted binary code, such as BCD.

2.

the result of being incremented), CC2 is set to 1. However, if the characteristic field does not overflow, the
shift process {shift fraction, and increment characteristic} conti nues unti I the characteristic field overflows
or until the fraction is shifted right
hexadecimal
digit positions, whichever occurs first. (Both terminating conditions can occur simultaneously.)

Ici

3.

If the resultant fraction field is all O's, the entire
floating-point number is set to all O's {true zero}, regardless of the sign and the characteristic of the original number.

4.

At the completion of the right shift operation, the
floating-point result is loaded back into the general
register{s}. If the number was originally negative, the
two's complement of the resultant number is loaded
into the general register{s}.

5.

3

4

Resul t

If an interrupt or memory protection violation trap occurs during
the execution of either instruction, the instruction sequence is
aborted (without having changed the contents of register R or
Ru 1) and restarted {at the beg inning of the instruction sequence}
after the interrupt or trap routine is processed.

o
o

o

true zero {all zeros}

eVA

The condition code settings following a floating-point
right shift are as follows:

2

negative

o

o
o

0

The effective addresses of the instructions CONVERT BY
ADDITION and CONVERT BY SUBTRACTION each point
to the starting location of a conversion table of 32 words,
containing weighted values for each bit position of register
Rul. The 32 words of the conversion table are considered to
be 32-bit positive quantities, and are referred to as conversion values. The intermediate results of these instructions
are accumulated in internal CPU registers unti I the i nstruction is completed; the result is then loaded into the appropriate general register. Both instructions use a counter (n)
that is set to 0 at the beginning of the instruction execution
and is incremented by 1 with each iteration, unti I a total of
32 iterations have been performed.

CONVERT BY ADDITION
0/Vord index alignment)

positive

I

IC digi ts shifted (no characteristic
overflow)
characteri sti c overfl ow

CONVERT BY ADDITION initially clears the internal A register and sets an i nterna I counter (n) to O. If bit position n
Conversion Instructions

49

of register Ru1 contains a 1, CVA adds the nth conversion
value (contents of the word location pointed to by the effective address plus n) to the contents of the A register,
accumulates the sum in the A register, and increments n
by 1. If bit position n of register Ru1 contains a 0, CVA
only increments n. If n is less than 32 after being incremented, the next bit position of register Ru 1 is examined,
and the addition process continues through n equal to 31;
the result is then loaded into register R. If, on any iteration, the sum has exceeded the value 2 32 -1, CCl is set to
1; otherwise, CC 1 is reset to O.

If n < 32, repeat; otherwise, (A) - - R, (B) conti nue to the next instruction
Condition code settings:
2

n

If n

= 0,

Result in Ru 1

0

0

zero

repeat; otherwise, (A) next instruction

0

bit 0 of register Ru 1 is a 0 and bit positions 1-31 of register Ru 1 contain at
least one 1

The following floating-point arithmetic instructions are
available as optional SIGMA 6 instructions:

234
0

Instruction Name

Mnemonic

Floating
Floating
Floating
Floating
Floating
Floating
Floating
Floating

FAS
FAL
FSS
FSL
FMS
FML
FDS
FDL

R and continue to

Condition code settings:
ResultinR
zero
bit 0 of register R is a 1

Add Short
Add Long
Subtract Short
Subtract Long
Multiply Short
Multiply Long
Divide Short
Divide Long

Obit 0 of register R is a 0 and bit positions
1-31 of register R contain at least one 1

o

sum is correct (less than 2 32 )
sum is greater than 2 32 - 1

cvs

bit 0 of register Ru 1 is a 1

then n + 1 - - n

< 32,

o
o

4

FLOATING-POINT ARITHMETIC INSTRUCTIONS

If (Rul) = 1, then (EWL + n) + (A) - A , n + 1 - n
n

3

0

Affected: (R), CC1, CC3, CC4
o --A, 0 - - n

If (Ru 1)

Ru 1 and

CO NVERT BY SUBTRACTION
0Nord index al ignment)

CONVERT BY SUBTRACTION loads the internal A register
with the contents of register R, clears the internal B register, Old sets an internal counter (n) to O. All conversion
val ues are considered to be 32-bit positive quantities. If
the nth conversion value (the contents of the word location
pointed to by the effective address plus n) is equal to or less
than the current contents of the A register, CVS increments
n by 1, adds the two's complement of the nth conversion
value to the contents of the A register, stores the sum in
the A register, and stores a 1 in bit position n of the B regi ster. If the nth conversi on val ue is greater than the current
contents of the A register, CVS only increments n by 1. If
n is I ess than 32 after bei ng incremented, the next conversion value is compared and the process continues through
n equal to 31; the remainder in the A register is loaded into
register R, and the converted quantity in the B register is
loaded into register Rul.

FLOATING-POINT NUMBERS
SIGMA 6 accommodates two number formats for floatingpoint arithmetic: short and long. A short-format floatingpoint number consists of a sign (bit 0), a biased t , base 16
exponent, which is called a characteristic (bits 1-7), and
a six-digit hexadecimal fraction (bits 8-31). A long-format
floating-point number consists of a short-format floatingpoint number followed by an additional eight hexadecimal
digits of fractional significance and occupies a doubl eword
memory location or an even-odd pair of general registers.
A SIGMA 6 floating-point number (N) has the following
formct:

A floQting-point number (N) has the following formal
defi nition:

1.

N

=F x

16 C -64 where F

= 0 or

16- 6 :s IF l::s 1 (short format) or
16- 14 :s IFI::s 1 (long format)
and O::s C ::s 127

Affected: (R), (Rul), CC3, CC4

(R) --- A, 0 --B, 0 - - n
If (EWL + n) :s (A) then A - (EWL + n) - - A,
1 - - Bn, n + 1 - - n .
If (EWL + n)

50

> (A)

then n + 1 - - n

Floating-Point Arithmetic Instructions

tThe bias value of 4016 is added to the exponent for the
purpose of making it possible to compare the absolute magnitude of two numbers, i. e., without reference to a sign
bit. This manipulation effectively removes the sign bit,
making each characteristic a 7-bit positive number.

2.

3.

5.

SIGMA 6 contains three mode control bits that are used to
qualify floating-point operations. These mode control bits
are identified as FS (floating significance), FZ (floating
zero), and FN (floating normalize), and are contained
in bit positions 5, 6, and 7, respectively, of the program
status doubleword (PSD 5 -7)'
The_ floating-point mode is established by setting the three
floating-point mode control bits. This can be performed by
any of the following instructions:

<1

A negative floclting-point number is the two's compl ement of its positive representation.

By this definition, a floating-point number of the form
1xxx xxxx 11 11 0000 . .. 0000

1xxx xxxx 0000 0000 . •• 0000
is illegal and, whenever gf'nerated by floating-point instructions, is converted to the form
1yyy yyyy 1111 0000 . .. 0000

+(16 -3)(209/256)
+ (16 -63)(2047/4096)
+(16 -64) (1 /16)

a (called

true zero)

Load Conditions and Floating Control
Immediate

LCFI

Load Program Status Doubleword

LPSD

Exchange Program Status Doubleword

XPSD

Instruction Name

Mnemonic

Store Conditions and Floating Control

STCF

Exchange Program Status Doubleword

XPSD

Floating-Point Number Representation

±

+(16+ )(5/16)

LCF

Short Floating -point Format

Dec imal Number

3

. Load Conditions and Floating Control

The floating-point mode control bits are stored by executi ng
either of the following instructions:

is normal ized, and a floating-point number of the form

+(16+63)(1-2 -24)

Mnemonic

Instruction Name

A negative floating-point number is normal ized if and
onl y if its two's compl ement is a normal ized positive
number.

Table 6.

a
a
a
a
a
a

Table 6 contains

MODES OF OPERATION

A positive floating-point number is normal ized if and
onl y if the fraction is contained in the interval
1/16 sF

4.

where yy ... y is 1 less than xx ... x.
examples of floating-point numbers.

Apositivefloating-pointnumberwith a fraction of zero
and a characteristi c of zero is a IItrue ll zero. A positive
floating-point number with a fraction of zero and a nonzerO characteristic is an lIabnormal ll zero. For floatingpoint multipl ication and division, an abnormal zero is
treated as a true zero. However, for addition and
subtraction, an abnormal zero is treated the same as
any nonzero operand.

F

C
111

Hexadecimal Value

1111

1111 1111 1111

1111

1111

7F

FFFFFF

100 0011

0101 0000 0000 0000 0000 0000

43

500000

all

1101 0001 0000 0000 0000 0000

3D

Dl0000

1101

1111

000 0001

0111

1111 1111 0000 0000 0000

01

7FFOOO

000 0000

0001 0000 0000 0000 0000 0000

00

100000

000 0000

0000 0000 0000 0000 0000 0000

00

000000

-(16 -64)(1/16)

1

111

1111

1111 0000 0000 0000 0000 0000

FF

FOOOOO

-(16 -63)(2047/4096)

1

111

1110

1000 0000 0001 0000 0000 0000

FE

801000

-( 16 -3) (209/256)
3
-( 16+ )(5/16)
_(16+ 63 )(1_2 24 )

1

100 0010

0010 1111 0000 0000 0000 0000

C2

2 FOOOO

1

all

1100

1011 0000 0000 0000 0000 0000

BC

BOOOOO

1

000 0000

0000 0000 0000 0000 0000 0001

80

000001

Spec ia I Case:
e
-(16 )(l)

e 1
-(16 + )(1/16)

1
is changed to

e

0000 0000 0000 0000 0000 0000

--

1
e + 1
1111 0000 0000 0000 0000 0000
whenever generated as the result of a floating-.point instruction.

Floating-Point Arithmetic Instructions

51

UNIMPLEMENTED FLOATING-POINT INSTRUCTIONS ~S

set equal to true zero, the condition code is
set to 1000, and the computer executes the
next instruction in sequence. If more than
two hexadecimal place~ of postnormalization
shifting are required one characteristic under ....
flow does not occur, the condition code is set
to 1010 if the result is positive, or to 1001 if
the result is negative; then, the computer executes the next instruction in sequence.
(Exception: if characteristic underflow occurs
with FS = 0, FZ determines the resultant action.)

If the optional floating-point instruction set is not implemented in the computer and execution of a floating-point
arithmetic instruction is attempted, the computer unconditi onall y aborts execution of the instruction (at the time of
operation code decoding). The computer then traps to location X ' 41 1 , with the contents of the condition code and
all general registers unchanged. Location X'41' is the
"unimplemented instruction" trap location.

FLOA TlNG·-POINT ADD AND SUBTRACT

FS

=1

The floating normalize (FN), floating zero (FZ), and floati ng
significance (FS) mode control bits determine the operation of
floating-point addition and subtraction (if characteristic
overflow does not occur) as follows:
FN Floating normalize:
FN = a The results of additions and subtractions are
to be postnormalized. If characteristic underflow occurs, if the result is zero, or if more
than two postnormalization hexadecimal shifts
are required, the setti ngs for FZ and FS determine the resultant action. If none of the
above conditions occur, the condition code
is set to 0010 if the result is positive or to
0001 if the result is negative.
FN = 1

FZ

Floating zero: (applies only if FN
FZ = a

FZ = 1

FS

a

If characteristic overflow occurs, the CPU always traps to
location X'44' with the general registers unchanged and the
condition code set to 0110 if the result is positive, or to
0101 if the result is negative.

FLOATING-POINT MULTIPLY AND DIVIDE
The floating zero (FZ) mode control bit alone determines
the operation of floating-point multiplication and division
(if characteristic overflow does nqt occur and division by
zero is not attempted) as follows:
FZ Floating zero:
FZ

=a

If the final result of a multiplication or division operation cannot be expressed in normalized form because of the characteristic being
reduced below zero, underflow has occurred.
If underflow occurs, the result is set equal to
true zero and the condition code is set to 1100.
If underflow does not occur, the condition code
is set to 0010 if the result is positive, to 0001
if the result is negative, orto 0000 if the result
is zero.

FZ

=1

Underflow causes the computer to trap to location X'44' with the contents of the general
registers unchanged. The condition code is
set to 1110 if the result is positive, or to 1101
if the result is negative. If underflow does
not occur, the resultant action is the same
as that for FZ = O.

= 0)

If the final result of an addition or subtraction operation cannot be expressed in normalized form because of the characteristic being
reduced below zero, underflow has occurred,
in which case the result is set equal to true
zero and the condition code is set to 1100.
(Exception: if a trap results from significance
checking with FS = 1 and FZ = 0, an underflow generated in the process of postnormalizing is ignored.)
Characteristi c underflow causes the computer
to trap to Iocati on X '44' with the contents of
the general registers unchanged. If the result
is positive, the condition code is set to 1110.
If the result is negative, the condition code
is set to 110 1.

Floating significance: (applies only if FN = 0)
FS -=

52

Inhibit postnormalization of the results of additions and subtractions. The settings of FZ
and FS have no effect on the i nstructi on operation. If the result is zero, the result is
set to true zero and the condition code is set
to 0000. If the result is positive, the condition code is set to 0010. If the result is
negative, the condition code is set to 0001.

Inhibit signifi-ance trap. If the result of an
addition or subtraction is zero, the result is

Floating-Point Arithmetic Instructions

The computer traps to location X'44' if more
than two hexadecimal places of postnormalization shifting are required or if the result is
zero. The condition code is set to 1000 if the
result is zero, to 1010 if the result is positive,
or to 1001 if the result is negative; however,
the contents of the general registers are not
changed. (Exception: if a trap results from
characteristic underflow wi th FZ = 1, the results of significance testing are ignored.)

If the divisor is zero in a floating-point division, the computer always traps to location X'44' with the general registers unchanged and the condition code set to 01 00. If
characteristic overflow occurs, the computer al ways traps
to location X'44' with the general registers unchanged and
the condition code set to 0110 if the result is positive, or
to 0101 if the resu It is negative.

FAl

CONDITION CODES FOR FLOATING-POINT INSTRUCTIONS

The condition code settings for floating-point instructions
are summarized in Table 7. The following provisions apply
to all floating-point instructions:
1.

The effective doubleword and the contents of registers Rand
Ru1 are loaded into a set of internal registers.

Underflow and overflow detection apply to the final
characteristic, not to any lIintermediate ll value.

2.

If a floating-point operation results in a trap, the
original contents of all general registers remain
unchanged.

3.

All shifting and truncation are performed on absolute
magnitudes. If the fraction is negative, then the two's
complement is formed after shifting or truncation.

FAS

The operation of FAL is identical to that of F LOA TIN G ADD
SHORT (FAS) except that the fractions to be added are each
14 hexadecimal digits long, guard digits are not appended
to the fractions, and R must be an even value for correct results. If no floating-point arithmetic fault occurs, the sum
is loaded into registers Rand Ru1 as a long-format floatingpoint number.
Traps: Unimplemented instruction, floatingpoint arithmetic fault

Affected: (R), (Ru1), CC
(R, Ru1) + ED R, Ru1

FLOATING ADD SHORT
(Word index al ignment, optional)

FSS

The effective word and the contents of register R are loaded
into a set of internal registprs and a low-order hexadecimal
zero (guard digit) is appended to both fractions, extending
them to seven hexadecimal digits each. FAS then forms the
floating-point sum of the two numbers. If no floating-point
arithmetic fault occurs, the sum is loaded into register R as
a short-format fl oati ng-poi nt number.
Affected: (R), CC
(R) + EW-R

FLOATING ADD LONG
(Doubleword index al ignment, optional)

FLOATING SUBTRACT SHORT
(Word index alignment, optional)

The effective word and the contents of register R are loaded
into a set of i nterna I registers.
FLOATING SUBTRACT SHORT forms the two's complement
of the effective word and then operates identicall y to
FLOATING ADD SHORT (FAS). If no floating-point arithmetic fault occurs, the difference is loaded into register R
as a short-format fl oati ng-poi nt number.

Traps: Unimplemented instruction, floatingpoint arithmetic fault

Affected: (R), CC
(R) - EW-R

; Traps: Unimplemented instruction, floatingpoint arithmetic fault

Table 7. Condition Code Settings for Floating-Point Instructions
Condition Code

Mean i ng if no trap to location X'44 t occurs

1

2

3

4

0
0
0

0
0
0

0
0

0

1

0

0
0
0

1
1
1

0
0

0

1

0

*(l)
*
*

0
0
0

0
0

0

-A + A

1

N

1

0

N >0

1
1

0
0
1

0

underflow with FZ=O and no trap by FS=l

1

*
*

~I :
1
1
1

1

1

1

0

A x 0, O/A, or -A + ACD with FN=l
N <0
N >0

Notes: CD
-

I

I

norma I
results

Meaning if trap to location X'44' occurs

*(l)
*
*
div ide by zero
overflow, N < 0
overflow, N > 0

<

CD

°I> 2

postnorma'-l FS=O, FN=O, and
izing shifts

no underflow

CD

-A + A
N <0
N >0

I

I

always trapped

> 2 postnormalizing shifts

*
underflow, N < 0
underflow, N >0

l

I

FS=l, FN=O, and no
underflow with FZ= 1

FZ=l

result ~et to true zero

(l) 11*11 indicates impossible configurations
@ applies to add and subtract only where FN=O

Floating-Point Arithmetic Instructions

53

FSL

FLOATING SUBTRACT LONG
(Doubleword index 01 ignment, optional)

Affected: (R), (Ru 1), CC
(R, Ru 1) x ED R, Ru 1

FDS

Traps: Un implemented instruction, floatingpoint arithmetic faull

FLOA TING DIVIDE SHORT
0Nord index al ignment, optional)

The effective doubleword and the contents of registers Rand
Ru 1 are loaded into a set of internal registers.

3E
FLOATING SUBTRACT LONG forms the two·s complement
of the effective doubleword and then operates identically
to FLOATING ADD LONG (FAL). If no floating-point
arithmetic fault occurs, the difference is loaded into registers Rand Ru 1 as a long-format floating-point number.
Affected: (R), (Ru 1), CC
(R, Rul) - ED - R , Rul

FMS

Traps: Unimplemented instruction, f/oatingpoint arithmetic fault

o

1

1

78,9

1011 12

1~

14 15 16 17 18 19120 21222324 25262712829 30 31

The effective word (divisor) and the contents of register R
(dividend) are loaded into a set of internal registers and both
numbers are then prenormal ized (if necessary). FLOATING
DIVIDE SHORT then forms a floating-point quotient with a
6-digit, normal ized hexadecimal fraction. If no floatingpoint arithmetic fault occurs, the quotient is loaded into
. register R as a short-format floating-point number.
Affected: (R), CC
(R) + EW R

Traps: Unimplemented instruction, floatingpoint arithmetic faul t

FLOATING MULTIPLY SHORT
(Word index al ignment, optional)

FDL
o

2

FLOATING DIVIDE LONG
(Doubleword index alignment, optional)

2

The effective word (multipl ier) and the- contents of register
R (mul tipl icand) are loaded into a set of internal registers,
and both numbers are then prenormal ized (if necessary).
The product of the fractions contains 12 hexadecimal digits.
If no floating-point arithmetic fault occurs, the product is
loaded into register R as a properly truncated short-format
floating-point number.

The result of floating-mul tiply is always postnormal ized.
At most, one place of postnormalizing shift may be required.
Truncation takes place after postnormal ization.
Affected: (R), CC
(R) x EW R

Traps: Unimplemented ins tru cti on, fI oat i ngpointarithmetic fault

The effective doubleword (divisor) and the contents of registers Rand Ru 1 (dividend) are loaded into a set of internal
registers. FLOATING DIVIDE LONG then operates identically to FLOATING DIVIDE SHORT (FDS), except that the
divisor, dividend, and quotient fractions are each 14 hexadecimal digits long, and R must be an even value for correct
results. If no floating-point arithmetic fault occurs, the
quotient is loaded into registers Rand Ru 1 as a long-format
floating-point number.
Affected: (R), (Ru 1), CC
(R, Rul) + ED R, Rul

Traps: Unimplemented instruction, floatingpoint arithmetic faul t

DECIMAL INSTRUCTIONS
FML

FLOATING MULTIPLY LONG
(Doubleword index alignment, optional)

The effective doubreword (multiplier) and the contents of
registers Rand Ru 1 (multiplicand) are loaded into a set of
internal registers. FLOATING MULTIPLY LONG then
operates identically to FLOA TING MULTIPLY SHORT (FMS),
except that the mul tipl ier and the multiplicand fractions are
each 14 hexadecimal digits long, the product fraction is 28
hexadecimal digits long, and R must be an even value for
correct results. If no floating-point arithmetic fault occurs,
the postnormalized product is truncated to a long-format
floating-point number and loaded into registers Rand Ru 1.

54

Decimal Instructions

The fallowing instructions comprise the standard decimal instruction set:
Instruction Name

Mnemonic

Decimal Load
Decimal Store
Decimal Add
Decimal Subtract
Decimal Multiply
Decimal Divide
Decimal Compare
Decimal Shift Arithmetic
Pack Decimal Digits
Unpack Decimal Digits
Edit Byte String (described under
Byte String Instructions)

DL
DST
DA
DS
DM
DD
DC
DSA
PACK
UNPK
EBS

PACKED DECIMAL NUMBERS
All SIGMA 6 decimal arithmetic instructions operate on
packed decimal numbers, each consisting of from 1 to 31
decimal digits (in absolute form) plus a decimal sign. A
decimal digit is a 4-bit code in the range 0000 through 1001,
where 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 3, 0100 = 4,
0101 = 5, 0110 = 6, 0111 = 7, 1000 = 8, and 1001 = 9. A
positive decimal sign is a 4-bit code of the form: 1010(X'A'~
1100(X'C}, 1110(X ' E' ), or 1111 (X'F"). A negative decimal
sign is a 4-bit code of the form: 1011 (X'B') or 1101 (X'D').
However, the decimal sign codes generated for the result of
a decimal instruction are: 1100 (XlC') for positive results,
and 1101 (X'D') for negative results. The format of packed
decimal numbers is:

II

I sign

digit
o

1

2

3

4

5

6

7

I

For the decimal arithmetic instructions, a packed decimal
number must occupy an integral number (1 through 16) of
consecutive bytes. Thus, a decimal number must contain an
odd number of decimal digits, the high-order digit (zero or
nonzero) of the number must be in bit positions 0-3 of the
first byte, the decimal sign must be in bit positions 4-7 of
the last byte, and all decimal digits and the decimal sign
must be 4-bit codes of the fc-rm described above.

ZONED DECIMAL NUMBERS

The indirect address bit (position a), the operation code
(positions 1-7), the index field (12-14), and the reference
address field (15-31) all have the same functions for the
decimal instructions as they do for any other SIGMA 6 byte
addressing instruction. However, bit positions 8-11 of the
instruction word do not refer to a general register; instead,
the contents of this field (designated by the character ilL")
designate the length, in bytes, of a packed decimal number. (If L = 0, a length of 16 bytes is assumed.)

ILLEGAL DIGIT AND SIGN DETECTION
Prior to executing any decimal instruction, the computer
checks all decimal operands for the presence of illegal decimal digits or illegal decimal signs. For all decimal arithmetic instructions except DECIMAL MULTIPLY and DECIMAL DIVIDE, an illegal decimal digit is a sign code (i. e.,
in the range X'A ' through X'F') that appears anywhere except in bit positions 4-7 of the least significant byte (the
sign position) of the packed decimal number; an illegal
decimal sign is a digit code (i. e., in the range X'O' through
X ' 9 1) that appears in the sign position of the packed decimal number.
For the instructions DECIMAL MULTIPLY and DECIMAL
DIVIDE, the effective decimal operand is checked for
illegal digits or signs as above. However, the operand in
the decimal accumulator is checked to verify that there is
at least one legal decimal sign code somewhere in the number. (This type of check is a result of the interruptibility
of these instructions, which may leave the decimal accumulatorwith a partially-completed result containing an internal
sign code.)

In zoned decimal format, a single decimal digit is contained
within bit positions 4-7 of a byte, and bit positions 0-3 of
the byte are referred to as the "zone" of the decimal digit.
A zoned decimal number consists of from 1 to 31 bytes, with
the decimal sign appearing as the zone for the last byte, as
follows:

If an illegal digit or sign is detected, the computer uncon-

A decimal number can be converted from zoned to packed
format by means of the instruction PACK DECIMAL DIGITS.
A decimal number can be converted from packed to zoned
format by means of the instruction UNPACK DECIMAL
DIGITS.

ditionally aborts the execution of the instruction (at the
time that the illegal digit or sign is detected), sets CC 1 to 1
and -esets CC2 to O. If the decimal arithmetic faul t trap
mask (bit position 10 of the program status doubleword)
is a 0, the computer then executes the next instruction in
sequence; however, if the decimal arithmetic fault trap
mask (PSDlO) is a 1, the computer traps to location X'4S'.
In either case, the contents of the decimal accumulator,
the effective deci mal operand, CC3, and CC4 remain
unchanged.

DECIMAL ACCUMULATOR

OVERfLOW DETECTION

All decimal arithmetic instructions imply the use of registers
12 through 15 of the current register bank as the decimal accumulator, and registers 12 through 15 are treated as a single
16-byte register. The entire decimal accumulator is used in
every decimal arithmetic instruction.

Arithmetic overflow can occur during execution of the following decimal instructions:

DECIMAL INSTRUCTION FORMAT

DECIMAL ADD: overflow occurs when the sum of the two
decimal numbers exceeds the 31-digit ca)acity of the
decimal accumulator (+ 10 31 - 1 to - 10 3 + 1).

The general format of a decimal instruction is as follows:
DECIMAL SUBTRACT: overflow occurs when the difference
between the two decimal numbers exceeds the 31-digit
capacity of the decimal accumulator.

Decimal Instructions

55

DECIMAL DIVIDE: overflow occurs either when the divisor
is zero, or when the dividend is greater than 14 digits in
length and the absolute value of the significant digits to
the left of the 15th digit position (counting from the right)
is greater than or equal to the absolute value of the
divisor.

If arithmeti c overflow occurs during execution of DECIMAL
ADD, DECIMAL SUBTRACT, or DECIMAL DIVIDE, the computer unconditionally aborts execution of the instruction (at
the time of overflow detection), resets CC 1 to 0, and sets'
CC2 to 1. Then, if the decimal arithmetic fault trap mask
(PSD 10) is a 1, the computer traps to location X'45'; if the
decimal arithmetic fault trap mask is a 0, the computer executes the next instruction in sequence. In either case, the
contents of the decimal accumulator, memory storage, CC3,
and CC4 remain unchanged.

DECIMAL INSTRUCnON NOMENClATURE
For the purpose of abbreviating the instruction descriptions
to follow, the symbol ic term IIDECA" is used to represent
the decimal accumulator, and the symbolic term IIEDO II is
used to represent the effective decimal operand of the instruction. For the instructions DECIMAL LOAD, DECIMAL
ADD, DECIMAL SUBTRACT, DECIMAL MULTIPLY, DECIMAL DIVIDE, and DECIMAL COMPARE, the effective decimal operand is a packed decimal number that is IILII bytes
in length, where L is the numeric value of bit positions 8-11
of the instruction word, and a val ue of a for L designates
16 bytes. The effective byte addresses of these instructions
point to the byte location that contains the most significant
byte (high-order digits) of the decimal number, and the effective byte address pi us L-l (where L = a = 16) points to
the least significant byte (low-order digit and sign) of the
dec imal number. Thus, for these instructions, the effective
decimal operand (EDO) is the contents of the byte string
that begins with the effective byte location, is L bytes in
Iength, and ends with the effective byte location plus L-l .

CONDITION CODE SETTINGS
All decimal instructions provide condition code settings,
using CCI toindicate whether or not an illegal digit or sign
has been detected, and CC2 to indicate whether or not overflow has occurred. Most (but notall) of the decimal instructions provide condition code settings, using CC3 and CC4 to
indicate whether the decimal number in the decimal accumulator is zero, negative, or positive, as follows:
CC3 CC4

Result in DECA

a

zero - the decimal accumulator contains a
positive or negative decimal sign code in the
4 low-order bit positions; the remainder of
the decimal accumulator contains all a's.

a

56

a

negative - the deci mal accumulator contains
a negative decimal sign code in the 4 loworder bit positions; the remainder of the decimal accumulator contains at least one nonzero
decimal digit.

Decimal Instructions

CC3 CC4

positive - the decimal accumulator contains
a positive dec imal sign code in the 4 loworder bit positions; the remainder of the decimal accumulator contains at least one
nonzero decimal digit.

a

DL

Result in DECA

DECIMAL LOAD
(Byte index alignment)

If no illegal digit or illegal sign is detected in the effective
decimal operand, DECIMAL LOAD expands the effective
decimal operand to 16 bytes (31 digits + sign) by appending
high-order D's, and then loads the expanded decimal number into the decimal accumulator. If the result i., the decimal
accumulator is zero, the converted sign remains unchanged.
Affected: (DECA), CC
Traps: Deci mal arithmetic
(EBL to EBL + L-I) - - DECA
Condition code settings:
2

3

4

illegal digit or sign detected, instruction
aborted

a
a

a

a

a

a

a

a

a

CST

Result in DECA

·0

zero
negative

a

positive

I

no illegal digit or illegal
sign detected, instruct i on
completed

DECIMAL STORE
(Byte index al ignment)

If no illegal digit or sign is detected in the decimal accumulator, DECIMAL STORE stores the low-order L bytes
of the decimal accumulator into memory from the effective byte location to the effective byte location plus L-l.
If the decimal accumulator contains more significant information than is actually stored (i. e., at least one nonzero digit was not stored), CC2 is set to I; otherwise
CC2. is reset to O. If the result in memory is zero, the
converted sign remains unchanged.

Affected: (EBL to EBL + L-l),
CC1, CC2

Traps: Decimal arithmetic

(DECA) low-order bytes - - EBL to EBL + L-l
Condition code setti ngs:

2

a

3

4

Result of DST
illegal digit or sign detected, instruction
aborted

2

o

3

4

o

Result of DST
all significant in_j
formation stored
no illegal digit or
illegal sign detecsome significant
ted, i nstructi on
information not
completed
stored

o

CCl is reset to 0, CC2 is set to 1, and the instruction is
aborted with the contents of the previous decimal accumulator, CC3 and CC4 unchanged.
Affected: (DECA), CC
(DECA) - EDO - - DEC A
Condition code settings:
2

OA

DECIMAL ADD
(Byte index 01 ignment)

mal operand or in the decimal accumulator, DECIMAL ADD
expands the effective decimal operand to 16 bytes (31 digits
plus sign) by appE~nding high-order O's, algebraically adds
the expanded decimal number to the contents of the entire
decimal accumulator, and then loads the sum into the decimal accumulator. If the result in the decimal accumulator
is zero, the resulting sign is forced to the positive form.
Overflow occursifthesum exceeds thecapacityof the decimal accumulator (i. e. , if the absolute value of the sum is equal
to or greater than 1031 ), inwhich case CC1 is reset to 0, CC2
is set to 1, and the instruction aborted with the previous contents of the decimal accumulator, CC3 and CC4 unchanged.
Affected: (DECA), CC
(DECA) + EDO DECA

Traps: Decimal arithmetic

Condition code settings:

2

3

4

0
0

instruction aborted

overflow

0

0

0

0

0

0

0

0

OS

Result in DECA
illegal digit or
sign detected

0

0

zero
)
negative
positive

3

4

0

If no i II ega I di git or sign is detected in the effecti ve dec i-

no illegal digit or sign
detected, no overflow,
instruction completed

DECIMAL SUBTRACT
(Byte index 01 ignment)

If no illegal digit or sign is detected in the effective decimal operand or in the decimal accumulator, DECIMAL SUBTRACT expands the effective decimal operand to 16 bytes
(31 digits plus sign) by appending high-order O's, algebraically subtracts the expanded decimal number from the contents of the entire decimal accumulaTor, and then loads the
difference into the decimal accumulator. If the result in the
decimal accumulator is zero, the resulting sign is forced to
the positive form.
Overfl ow occurs if the <:Ji fference exceeds the capac i ty of
the decimal accumulator (i.e., if the absolute value of the
difference is equal to or greater then 10 31 ), in which case

Traps: Decimal arithmetic

illegal digit or
sign detected

a
a a a a
a a a
a a
0
OM

Result in DECA

i nstructi on aborted

overflow
zero
negative
positive

} no illegal digit or sign detected, no overflow, instruction completed

DECIMAL MU LTIPL Y
(Byte index 01 ignment, continue after interrupt)

If no illegal digit or sign is detected in the effective dec imal operand and there is at least one decimal sign in the
decimal accumulator, DECIMAL MULTIPLY multiplies the
effective decimal operand (multiplicand) by the entire
contents of the decimal accumu~ator (multiplier) and then
loads th~ product into the decimal accumulator. If the
result in the decimal accumulator is zero, the resulting
sign is forced to the positive form.
No overflow can occur; how~ver, an indeterminate result
occurs (with an incorrect condition code indication, and
with no trap activation) if any of the following conditions
are not satisfied before the initial execution of DECIMAL
MULTIPLY:
1.

The 4 low-order bit positions of the decimal accumulator must contain the sign of the multiplier.

2.

The 16 high-order digit positions of the decimal accumulator (i .e., general registers 12 and 13) must contain
all O's.

3.

The effective decimal operand must not exceed 15 decimal digits (i. e., the value of L must not exceed 8).

This instruction can be interrupted during the course of its
exec;ution, and then be resumed, without producing an erroneous product (provided that the contents of the decimal
accumulator are not altered between the interruption and
continuation). Actually, the instruction is reexecuted,
but since there is no initializing phase, it begins with the
same iteration that was started prior to the interrupt.
Affected: (DECA), CC
(DECA) x EDO DECA

Traps: Decimal arithmetic

Condition code settings:
234

Result in DECA
illegal digit or sign detected, instruction aborted
Decimal Instructions

57

2

3

4

a a a a
a 0 a
a
a a

Result in DECA
zero
negative
positive

DC

} no illegal digit or sign
detected, i nstructi on
completed

DECIMAL DIVIDE
(Byte index al ignment, continue after interrupt)

DO

If there is no illegal digit or sign in the effe~tive decimal operand and if there is at least one decimal sign in
the dec imal accumulator, DECIMAL DIVIDE divides the
contents of the decimal accumulator (dividend) by the effective decimal operand (divisor). Then, if no overflow
has occurred, the computer loads the quotient (15 decimal
digits plus sign) into the 8 low-order bytes of the decimal
accumulator (registers 14 and 15), and loads the remainder
(also 15 decimal digits plus sign) into the 8 high-order bytes
of the dec imal accumulator (registers 12 and 13). The sign
of the remai nder is the same as that of the original dividend.
If the quotient is zero, the sign of the quotient is forced to
the positive form.
Overflow can occur if any of the following conditions are
not satisfied before the initial execution of DECIMAL
DIVIDE:

If there is no illegal digit or illegal sign in the effective
decimal operand or in the decimal accumulator, DECIMAL
COMPARE expands the effective decimal operand to 16
bytes (31 digits plus sign) by appending high-order OIS, algebraical Iy compares the expanded decimal number to the
contents of the entire dec imal accumulator, and sets CC3
and CC4 according to the result of the comparison (a positive zero compares equal to a negative zero).

The divisor must not be zero.

2.

The length of the divisor must not be greater than 15
decimal digits (i.e., the value of L must not exceed 8.)

3.

If the length of the dividend is greater than 15 decimal
digits, the absolute value of the significant di gits to
the left of the 15th digit position (i.e., those digits in
registers 12 and 13) must be less than the absolute value
of the divisor.

This instruction can be interrupted during the course of its
execution, and can then be resumed without producing an
erroneous result (provided that the contents of the decimal
accumulator are not altered between interruption and continuation). Actually, the instruction is reexecuted, but
since there is no initializing phase, it begins with the same
iteration that was started prior to the interrupt.

Condition code settings:
2

3

4

a
a
a a a a
a 0 a
0
a 0

a

58

zero quotient

I

negative quotient
positive quotient

Decimal Instructions

Result of comparison

I

illegal digit or sign detected, instruction
aborted

0

a

0

0

0

a

0

0

0

(DECA) equals EDO

(DECA) less than EDO
0

(DECA) greater than
EDO

no illegal digit
or sign detected,
instruction completed

DECIMAL SHIFT ARITHMETIC
(Byte index alignment)
Reference address

If no illegal digit or sign is detected in the decimal accumulator, DECIMAL SHIFT ARITHMETIC arithmetically shifts
the contents of the decimal accumulator (excluding the
decimal sign), with the direction and amount of the shift
determined by the effective virtual address of the instruction. If the result in the decimal accumulator is zero, the
resulting sign remains unchanged.

no illegal digit or
sign detected, no
overflow, instruction completed

The shift count, C, is treated as a 16-bit signed binary integer, with negative integers in twols complement form.
If the shift count is positive, the contents of the decimal
accumulator are shifted left C decimal digit positions; if
the shift count is negative, the contents ::If the decimal

Result in DECA

overflow

4

instruction aborted

Traps: Decimal arithmetic

illegal digit or
sign detected

3

If no indirect addressing or indexing is used with DSA, the
shift count C is the contents of bit positions 16-31 of the
instruction word. If only indirect addressing is used with
DSA, the shift count is the contents of bit positions 16-31
of the word pointed to by the indirect address in the
instruction word. If indexing only is used with DSA, the
shift count is the contents of bit positions 16-31 of the
instruction word plus the contents of bit positions 14-29
of the designated index register (bits 0-13, 30, and 31 of
the index are ignored). If indirect addressing and indexing
are both used with DSA, the shift count is the sum of the
contents of bit positions 16-31 of the word pointed to by
the indirect address and the contents of bit positions 14-29
of the designated index register.

Condition code settings:
2

Traps: Decimal arithmetic

Affected: CC
(DECA) : EDO

DSA
1.

Affected: (DECA), CC
(DECA)';- EDO DECA

DECIMAL COMPARE
(Byte index al ignment)

}

accumulator are shifted right -C decimal digit positions. In
either case, the decimal sign is not shifted, vacated decimal digit positions are filled with OIS, and any digits shifted
out of the decimal accumulator are lost, Although the range
of possible values for C is 2 -15 ~ C ~ 2 5_ 1, a shift account
greater than +31 or less than -31 is interpreted as a shift
count of exactly +31 or -31.

If any nonzero decimal digit is shifted out of the decimal
accumulator during a left shift, CC2 is set to 1; otherwise,
CC2 is reset to O. CC2 is unconditionally reset to 0 at the
completion of a right shift.
Affected: (DECA),

cc

3

4

o
o
o

o
o o
o

PACK

2

3

4

0

0

0

0

Result in DECA

0

0

illegal di git or sign detected, instruction
aborted

Example 1, L == 6:

negative
positive
right shift or no nonzero dir:;it shifted out
of DECA on I eft shi ft

no illegal digit
or sign detected,
instruction
completed

1 or more nonzero
digit{s) shifted out
of DECA on left shift

PACK DECIMAL DIGITS
(Byte index al ignment, continue after interrupt)

PACK DECIMAL DIGITS converts the effective decimal
operand (assumed t·o be in zoned format) into a packed
decimal number and, if necessary, appends sufficient highorder OIS to produce a decimal number that is 16 bytes (31
decimal digits plus sign) in length. The zone (bits 0-3) of
the low-orderdigitof the effective decimal operand is used
to select the sign code for the packed decimal number; all
other zones are ignored in forming the packed decimal
number. If no illegal digit or sign appears in the packed
decimal number, it is then loaded into the decimal accumulator. If the result in the decimal accumulator is zero,
the resulting sign remains unchanged.
The L field of this instruction specifies the length, in bytes,
of the resultant packed decimal number in the decimal accumulator; therefore, the length of the effective decimal operand is 2L-1 bytes (where L :-= 0 implies a length of 31 bytes
for the effective decimal operand).
This instruction can be interrupted during the course of its
execution, and can then be resumed without producing an
erroneous result {provided that the contents of the decimal
accumu lator are not .al tered between interruption and continuation}. Actually, the instruction is re-executed, but

Result in DECA
illegal digit or sign detected, instruction
aborted

0
0

o
o

Condition code settings:

0

zero

Traps: Decimal arithmetic

packed (EBL to EBL + 2L - 2 ) - DECA

0

o o

cc

Affected: (DECA),

Traps: Decimal arithmetic

Condition code setti ngs:

2

since there is no initializing phase, it begins with the
same iteration that was started prior to the interrupt.

zero
negati ve

0

positive

} no illegal digit or sign
detected, instruction
completed

Before exec uti on

After execution

EDO

X'FOFIF2F3
F4F5F6F7
F8F9FO I

X'FOF1 F2F3
F4F5F6F7
F8F9FO I

(DECA)

xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx

X'OOOOOOOO
00000000
00000123
4567890('

CC

xxxx

0010

Example 2, L = 6:
EDO

X'000938F7
E655B483
02Fl BOI

X'OO0938F7
E655B483
02Fl BOI

(DECA)

xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx

X'OOOOOOOO
00000000
00000987
6543210D I

CC

xxxx

0001

UNPK

UNPACK DECIMAL DIGITS
(Byte index al ignrnent, continue after interrupt)

If no illegal digit or sign is detected in the decimal accumulator (assumed to be in packed decimal format), UNPACK
DECIMAL DIGITS converts the contents of the low-order L
bytes of the decimal accumulator to zoned decimal format
and stores the result, as a byte string, from the effective byte
location to the effective byte location plus 2L-2. The contents of the 4 low-order bit positions of the decimal accumulator are used to select the sign code for the last digit of
the string; a zone of 1111 (XI FI) is used for all other digits.
The contents of the decimal accumulator remain unchanged,
and only 2L-l bytes of memory are altered. If the decimal

Decimal Instructions

59

accumulator contains more significant information than is
actually unpacked and stored, CC2 is set to 1; otherwise
eC2 is reset to O. If the result in memory is zero, the
resulting sign remains unchanged.
This instruction can be interrupted during the course of its
execution, and can then be resumed without producing an
erroneous result (provided that the contents of the decimal
accumu lator are not altered between interruption and conti nuation). Actually, the instruction is re-executed, but
since there is no initializing phase, it begins with the same
iteration that was started prior to the interrupt.
Affected: (EBl to EBl + 2l -2),
Cel, CC2

Traps: Decimal arithmetic

zoned (DECA)- EBl to EBl + 2l -2
Condition code settings:
2

o

3

4

Result of UNPK

o

illegal digit or sign detected, instruction
aborted

0

all significant information zoned and
stored

o

some significant
information not
zoned and stored

no illegal digit
or sign detected,
i nstructi on completed

Example 1, l = 10:
Before execution

After execution

(DECA)

X '00000000
00000001
23456789
0123456D'

X '00000000
00000001
23456789
0123456D'

EDO

xxx xxx xx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxx

X'FOFOFOF1
F2F3F4F5
F6F7F8F9
FOF1F2F3
F4F5D6'

ce

xxxx

OOxx

EDO

xxxxxxxx
xxxxxxxx

X'FOFOFOFl
FOFOC4'

CC

xxxx

01xx

BYTE -STRING INSTRUCTIONS
Five instructions provide for the manipulation of strings
of consecutive bytes. These instructions are standard
with the SIGMA 6 computer. The byte string instructions and their mnemonic codes are as follows:
Instruction Name

Mnemonic

Move Byte String
Compare Byte String
Translate Byte String
Translate and Test Byte String
Edit Byte String

MBS
CBS
TBS
TTBS
EBS

These instructions are in the immediate displacement class,
are memory-to-memory operations, and proceed one byte
at a time (except for the instruction MOVE BYTE STRING,
which proceeds four bytes at a time under certain conditions). These operations are under the control of information that must be loaded into certain general registers before
the instruction is executed; hence, they may be interrupted
after any individual byte operation. The general format for
the information in the instruction word and in the general
registers is as· follows:
Instructi on word:

Contents of register R:

Contents of reg i ster Ru 1:

Example 2, l = 8:
(DECA) =

EDO

ee

X '00000000
23000000
10001234
0012345C'

X '00000000
23000000
10001234
0012345C'

xxxxxx.xx
xxxxxxxx
xxxxxxxx
xxxxxx

X'F1FOFOFO
F1F2F3F4
FOFOF1F2
F3F4C5'

xxxx

01xx

Example 3, l = 4:
(DECA) =

60

X '00001 001
00001002
00001003
0001004F'

Byte-String Instructions

X'00001001
00001002
00001003
0001004F'

Designation

Function

Operation

The 7-bit operation code of the instruction. (If any byte string instruction is
indirectly addressed, the computer traps
to location X'40' at the time of operation code decoding. )

R

The 4-bit field that identifies register R
of the current general register bank.

Displacement

A 20-bit field that contains a signed byte
displacement value, used to form an effecti ve byte address. The displacement
value is right-justified in the 20-bit fiel # # 035 END

The new condition code is: 1011
Fxampl e 2, before execution:
The initial conditions are identical to example 1, except
that the contents of the decimal information field are:
06 54 32 1Example 2, after execution:
The instruction word and the decimal field are unchanged
The new contents of registers 6 and 7 are identical to those
given for example 1
The new contents of the destination byte string are
*6,543.2115CR

The new contents of register 1 are: X 'xxx020l3'

PUSH-DOWN INSTRUCTIONS
The term "push-down processing" refers to the programming
technique (used extensively in recursive routines) of storing
the context of a calculation in memory, proceeding with a
new set of information, and then activating the previously
stored information. Typically, this process involves a reserved area of memory (stack) into which operands are
pushed (stored) and from which operands are pulled
{loaded} on a lost-in, first-out basis. The SIGMA 6 computer

Push-Down Instructions

67

provides for simplified and efficient programming of pushdown processing by means of the following instructions:
Instruction Name

Mnemonic

Push Word
Pull Word
Push Multiple
Pull Multiple
Modify Stack Poi nter

PSW
PLW
PSM
PLM
MSP

However, this trap action can be selectively inhibited by
setting either (or both) of the trap inhibit bits in the SPD to 1.
Bit position 32 of the SPD, referred h as the trap-on-spac8
(TS) inhibit bit, determines whether 0\ not the computer is
to trap to location X'421 as a result of impending overflow
or underflow of the space count (SPD33-47), as follows:
TS

Space count overflow/underflow action

o

If the execution of a pull instruction would cause the
space count to exceed 2 15 -1, or if the execution of a
push instruction would cause the space count to be less
than 0, the computer traps to location X'421 with the
condition code unchanged.

STACK POINTER DOUBLEWORD
Each of these instructions operates with respect to a memory
stack that is defined by a doubleword located at the effective address of the instruction. This doubleword, referred
to as a stack pointer doubleword (SPD), has the following
structure:

Instead of trapping to location X'42', the computer
sets CCl to 1 and then executes the next instruction
in sequence.
Bit position 48 of the SPD, referred to as the trap-on-word
(TW) inhibit bit, determines whether or not the computer is
to trap to location X'42' as a result of impending overflow
or underflow of the word count (SPD49-63)' as follows:
TW Word count overflow/underflow action

o
Bit positions 15 through 31 of the SPD contain a 17-bit address field that points to the location of the word currently
at the top (highest-numbered address) of the operand stack
in a push operation, the top-of-stack address is incremented
by 1 and then an operand in a general register is pushed
(stored) i~to that'location, thus becoming the contents of
the new top of the stack; the contents of the previous top of
the stack remain unchanged. In a pull operation, the contents of the current top of the stack are pulled (loaded) into
a general register and then the top-of-stack address is decremented by 1; the previ ous contents of the stack remain unchanged.
Bit positions 33 through 47 of the SPD, referred to as the
space count, contai n a 15-bit count (0 to 32,767) of the
number of word locations currently available in the region
of memory allocated to the stack. Bit positions 49 through
63 of the SPD, referred to as the word count, contai n a 15bit count (0 to 32,767) of the number of words currently in
the stack. In a push operation, the space count is decremented by 1 and the word count is incremented by 1; ina
pull operation, the space count is incremented by 1 and the
word count is decremented by 1. At the beginning of all
push-down instructions, the space count and the word count
are each tested to determi ne whether or not the i nstructi on
would cause either count field to be incremented above the
upper I imit of 2 15 -1 (32,767), or to be decremented below
the lower limit of O. If execution of the push-down instruction would cause either count limit to be exceeded, the
computer unconditionally aborts execution of the instruction, with the stack, the stack pointer doubleword, and the
contents of general registers unchanged. Ordinarily, the
computer traps to location X ' 42 1 after aborting a push-down
instruction because of impending stack limit overflow or
underflow, and with the condition code unchanged from the
value it contained before execution of the instruction.

68

Push-Down Instructions

If the execution of a push instructi on would cause the
word count to exceed 2 15 _1, or if the execution of a
pull instruction would cause the word count to be less
than 0, the computer traps to location X'421 with the
condition code unchanged.
Instead of trapping to location X ' 42 1, the computer
sets CC3 to 1 and then executes the next instruction
in sequence.
PUSH-DOWN CONDITION CODE SETTINGS

If the execution of a push-down instruction is attempted and
the computer traps to location X ' 42 1, the condition code remains unchanged from the value it contained immediately
before the instruction was executed.
If the execution of a push-down instruction is attempted and
the instruction is aborted because of impending stack limit
overflow or underflow (or both) but the push-down stack
limit trap is inhibited by one (or both) of the inhibits (TS
and TW), then, eCl or CC3 is set to 1 (or both are set to
lis) to indicate the reason for aborti ng the push-down i nstruction, as follows:

2

3

o

4

Reason for abort
impending overflow of word count on a
push operation or impending underflow
of word count on a pull operation. The
push-down stack limit trap was inhibi ted
by the TW bit (SPD 48)

o

impending overflow of space count on a
pull operation or impending underflow
of space count on a push operation. The
push-down stack limit trap was inhibited
by the TS bit (SPD )
32

2

3

4

Reason for abort
impending overflow of word count and
underflow of space count on a push operation or impending overflow of space
count and underflow of word count on
a pull operation. The push-down stack
limit trap was inhibited by both the TW
and the TS bits

4.

The condition code is set to reflect the new status of
the space count.

Affected: (SPD), (TSA+1),
CC
(SPD)15_31 + 1 - - SPD 15 _ 31
(R) -

(SPD

_ )
15 31
(SPD)33_47 - 1 - - SPD 33 _47

If a push-down instruction is successfully executed, CC1

(SPD)49-63 + 1 -

and CC3 are reset to 0 at the completion af the instruction.
Also, CC2 and CC4 are independently set to indicate the
current status of the space count and the word count, respectivel y, as follows:

Condition code settings:

2

3

4

------o
0

o

Status of space and word counts
the current space count and the current
word count are both greater than zero
the current space count is greater than
zero, but the current word count is zero,
indicating that the stack is now empty.
If the next operation on the stack is a
pull instruction, the instruction wi II be
aborted

o

0

Result of PSW

0

0

0

space count is greater
than 0

0

0

space count is now 0

0

word count = 2 15 _1,
TW = 1

0

space count
TS = 1

0

0

PUSH WORD
(Doubleword index al ignment)

PUSH WORD stores the contents of register R into the pushdown stack defined by the stack pointer doubleword located
at the effective doubleword address of PSW. If the push
operation can be successfully performed, the instruction
operates as follows:
The current top-of-stack address (SPD15-31) is incremented by 1, to point to the new top-of-stack
location.

2.

The contents of register R are stored in the location
poi nted to by the new top-of-stack address.

3.

The space count (SPD33-47) is decremented by 1 and
the word count (SPD49-63) is incremented by 1.

I

instruct i on
completed

= 0,

space count = 0, word
count = 0, TS = 1

°
PlW

1.

4

0

If the computer does not trap to location X 1421 as a result

PSW

3

0
0

SPD 49-63

2

the currert word count is greater than
zero, but the current space count is zero,
indicating that the stack is now full. If
the next operation on the stack is a push
i nstructi on, the i nstructi on wi II be aborted

of impending stack limit overflow/underflow, CC2 and
CC4 indicate the status of the space and word counts at
the termination of the push-down instruction, regardless
of whether or not the space and word counts were actually
modified by the instruction. In the following descriptions
of the push-down instruction, only those condition codes
are given that can actual I y be produced by the instruction,
provided the computer does not trap to location X1421.

Trap: push-down stack limit

instruction
aborted

word count = 2 15 _1,
space count = 0,
TW = 1, and TS=l

PULL WORD
(Doubleword index alignment)

PULL WORD loads register R with the word currently at the
top of the push-down stack defined by the stack pointer
doubleword located at the effective doubleword address of
PLW. If the pull operation can be performed successfully,
the instruction operates as follows:
1.

Register R is loaded with the contents of the location
pointed to by the current top-of-stack address
(SPD 15-31).

2.

The current top-of-stack address is decremented by 1,
to point to the new top-of-stack location.

3.

The space count (SPD33-47) is incremented by 1 and
the word count (SPD49-63) is decremented by 1.

4.

The condition code is set to reflect the status of the
new word count.

Affected: (SPD), (R), CC
((SPD)15_31) (SPD)33_47 + 1 -SPD

Trap: Push-down stack limit

Ri (SPD)15_31 -1 SPD 33 _4 i

SPD 15 _ 31

(SPD 49-63- 1

49 63
Push-Down Instructions

69

Condition code settings:

0

2

3

4

Result of PLW

0

0

0

word count is greoter
than 0

0

0

0

0

0

I

word count is now 0

Condition code settings:

instruction
completed

2

3

4

Resu I t of PSM

°

0

0

0

spoce count>

0

0

space count =

0

0

0

word count + ec> 2 15 _1,
TW = 1

0

space count  2 15 _1,
TS = 1, and TW = 1

0

space count = 0, TS = 1

OB
i

2

PUSH MULTIPLE stores the contents of a sequential set of
general registers into the push-down stack defined by the
stack pointer doubleword located at the effective doubleword address of PSM. The condition code is assumed to
contai n a count of the number of regi sters to be pushed i nto the stack. (An initial value of 0000 for the condition
code specifies that all 16 general registers are to be pushed
into the stack.) The registers are treated as a circular set
(with register 0 following register 15) and the first register
to be pushed into the stack is register R. The last register
to be pushed into the stack is register R+ CC -1, and the
contents of this register become the contents of the new
top-of-stack location.

If there is sufficient space in the stack for all of the specified registers, PSM operates as follows:
1.

The contents of registers R to R+ CC -1 are stored in
an ascending sequence, beginning with the location
pointed to by the current top-of-stack address
(SPD15-31) plus 1 and ending with the current topof-stack address pi us Cc.

2.

The current top-of-stack address is incremented by the
value of CC, to point to the new top-of-stack location.

3.

The space count (SPD 33 - 47 ) is decremented by the
value of CC and the word count is incremented by
the value of CC.

4.

space count = Of word
count + ec > 2 5-1,
TS = 1, and TW = 1

If the instruction starts storing words into an accessible region of memory and then crosses into an inaccessible memory
region, either the memory protection trap or the nonexistent
memory address trap can occur. In ei ther case, the trap is
activated with the condition code unchanged from the val ue
it contained before the execution of PSM. The effective address of the instruction permits the trap routine to compute
how many words of memory have been changed. Since it is
permissible to use indirect addressing through one of the affected locations, or even to execute an instruction located
in one of the affected locations; a trapped PSM instruction
may have already overwritten the direct address, or the
PSM instruction itself, thus destroying any possibility of
continuing the program successfully. If such programming
must be done, it is advisable that the direct address, or the
PSM instruction, occupy the last location in which the contents of a register are to be stored by the PSM instruction.

If the address of the elements within the stack (pointed to
by the top-of-stack address) is in the range 0 through 15,
then the registers indicated by the R field of the PSM instruction are stored in the general registers rather than in
core memory. In this case the results wi /I be unpredictable
if any source registers are also used as destination registers.

PLM

PULL MULTIPLE
(Doubleword index alignment)

The condition code is set to reflect the new status of
the space count.

Affected: (SPD), (TSA+1)to
(TSA+CC), CC

Trap: Push-down stack limit

(R)-(SPD)15_31 + 1 ... (R+CC-l)-(SPD)15_31+ CC
(SPD)15_31+ CC (SPD )33-47- CC -

SPD 15 _31
SPD 33_47

(SPD)49_63+CC-SPD 49-63

70

instruction
aborted

space count = 0, word
count = 0, TS = 1
0

o

instruction
completed

space count 0

= 0,

TW

=1

space count = 0, word
count 2 -1,
TS = 1
15
space count + CC >2 -1,
word count 2 -1,
word count = 0, TS = 1,
and TW = 1

Bit positions 16 through 31 of register R are treated as a
signed integer, with negative integers in f"'NCls complement
form (i. e., a fixed-point halfword). The modifier is algebraicallyadded to the top-of-stack address, subtracted from
the space count, and added to the word count in the stack
pointer doubleword. If, as a result of MSP, either the space
count or the word count would be decreased below 0 or increased above 2 15 _1, the instruction is aborted. Then, the
computer either traps to location X ' 42 1 or sets the condition
code to refl ect the reason for aborti ng, dependi ng on the
stack limit trap inhibits.

If the modification of the stack pointer doubleword can be
successfully performed, MSP operates as follows:
instruction
aborted

If the instruction starts loading from an existent region of
memory and then crosses a memory page boundary into an
inaccessible memory region, either the memory protection
trap or the nonexistent' memory address trap can occur. In
either case, the trap is activated with the condition code

1.

The modifier in register R is algebraically added to the
current top-of-stack address (SPD}J 5-31, to poi nt to a
new top-of-stack location. (If the modifier is negative,
it is extended to 17 bits byappending a high-order 1.)

2.

The modifier is algebraically subtracted from the current space count (SPD 33 - 47 ) and the result becomes
the new space count.

3.

The modifier is algebraically added to the current word
count {SPD49-63} and the result becomes the new word
count.

4.

The condition code is set to reflect the new status of
the new space count and new word count.

Affected: (SPD), CC

Trap: Push-down stack limit

Push-Down Instructions

71

computer traps to location X '40 ' if the actual address of
the instruction is nonexistent or instruction-access protected. If the instruction address ;s existent and is
not instruction-access protected, tht: instruction is accessed and the instruction address portion of the program
status doubleword is incremented by 1, so that it now contains the virtual address of the next instruction in sequence
(referred to as the updated instruction address).

(SPD)15_31 + (R)16-31SE -SPD 15 _ 31
(SPD)33_47 - (R)16-31 - - SPD 33 _47
(SPD)49_63 + (R)16-31 -

SPD 49-63

Condition code settings:
2

3

4

a a a a

Result of MSP
space count > 0,
word count> 0

a

space count> 0,
word count = 0

a

a a

space count:::: 0,
word count> 0

a

a

space count = 0,
word count = 0,
modifier = a

a

0

instruction
completed

If CC1, or CC3, or both CC1 and CC3 are lis after execution of MSP, the instruction was aborted but the pushdown stack limit trap was inhibited by the trap-an-space
inhibit (SPD32), by the trap-on-word inhibit (SPD48), or
both. The condition code is set to reflect the reason for
aborting as follows:

2

3

4

Status of space count and word count

a

word count > 0
word count

a

o =::

If a trap condition occurs during the execution sequence of
any instruction, the computer decrements the updated instruction address by 1 and then traps to the location assigned
to the trap condition. If neither a trap condition nor a
satisfied branch condition occurs during the execution of an
instruction, the next instruction is accessed from the location
pointed to by the updated instruction address. Ifa satisfied
branch condition occurs during the execution of a branch
instruction (and no trap condition occurs), the next instruction is accessed from the location pointed to by the effective address of the branch instruction. Thus, during execution of a branch instruction, the updated instruction address
is decremented, unchanged, or replaced, as determi ned by
the following critera:

1.

=0

a

space cou nt

>0

space count

=0

a =::

space count - modifier =:: 2 15 -1

space count - modifier < 0, and TS = 1
or space count - modifier> 215 -1
TS = 1

The branch instruction is indirectly addressed, but
the address of the location containing the direct
address is either nonexistent or unavailable to the
slave program for read access.

b.

The branch instruction is unconditional (or the
branch is conditional and the condition for the
branch is satisfied), but the effective address of
the branch instruction is unavailable to the slave
program for instruction access.

c.

The effective address of any branch instruction
{conditional or unconditional} is nonexistent.

If any of the above situations occur, the computer
aborts execution of the branch instruction, decrements
the updated instruction address by 1, and traps to location X1401. In this case, the instruction address value
(IA) stored by the XPSD instruction in location X I 40 1 is
the address of the aborted branch instruction.

EXECUTE/BRANCH INSTRUCTIONS
The EXECUTE instruction can be used to insert another instruction into the program sequence, and the branch instructions can be used to alter the program sequence, either
unconditionally or conditionall y. If a branch is unconditiona (or conditional and the branch condition is satisfied),
the instruction pointed to by the effective address of the
branch instruction is normally the next instruction to be
executed. If a branch is conditional and the condition for
the branch is not satisfied, the next instruction is normall y
taken from the next location, in ascending sequence, after
the branch instruction.
Prior to the time that an in~truction is accessed from memory
for execution, bit positions 15-31 of the program status
doubleword contain the virtual address of the instruction,
referred to as the instruction address. At this time, the

72

a.

word count + modifier =:: 2 15 _1

word count + modifier < 0, and TW = 1
or word count + modifier> 215 _1 and
TW = 1

a

Trap condition. A nonal/owed operation trap condition
can occur during execution of a branch instruction, but
onl y if an attempt is made to access ei ther a nonexistent memory address or an address that is not avai I abl e
to the slave program for instruction access. The trap
condition occurs in the following situations:

Execute/Branch Instructions

2.

No branch condition. If the branch instruction is conditional, the condition for the branch is not satisfied,
and no trap condition occurs, the updated instruction
address remains unchanged. Then, instruction execution proceeds with the instruction pointed to by the
updated instruction address.

3.

Branch condition. If the branch instruction is unconditional (or if the branch instruction is conditional and
the condition for the branch is satisfied) and no trap
condition occurs, the updated instruction address is
replaced by the effective virtual address of the branch
instruction. Then, instruction execution proceeds with
the instruction pointed to by the effective virtual address of the branch instruction.

EXU

Affected: (IA) if CC n RIO

EXECUTE
\.Word index alignment)

If CC n (1)8_11 /0, EVA

If CC n (1)8-11
EXECUTE causes the computer to access the instruction in
the location pointed to by the effective address of EXU and
execute the subject instruction. The execution of the subject instruction, including the processing of trap and interrupt conditions, is performed exactly as if the subject
instruction were initially accessed instead of the EXU instructi on. If the subj ect instruction is another EXU, the
computer executes the subject instruction pointed to by the
effective address of the second EXU as described above.
Such "chains" of EXECUTE instructions may be of any length,
and are processed (without affecting the updated instruction
address) until an instruction other than EXU is encountered.
After the final subject instruction is executed, instruction
execution proceeds with the next instruction in sequence
after the initial EXU (unless the subject instruction is an
LPSD or XPSD instruction, or is a branch instruction and
the branch condition is satisfied).

If an interrupt activation occurs between the beginning of
an EXU instruction (or chain of EXU instructions) and the
last interruptible point in the subject instruction, the computer processes the interrupt-servicing routine for the active interrupt I evel and then returns program control to the
EXU instruction (or the intial instruction of a chain of
EXU instructions), which is started anew. Note that a program is interruptible after every instruction access, including accesses made with the EXU instruction, and the interruptibility of the subject instruction is the same as the
normal interruptibility for that instruction.
If a trap condition occurs between the beginning of an EXU
instruction (or chain of EXU instructions) and the completion
of the subject instruction, the computer traps to the appropriate trap location. The instruction address stored by the
XPSD instruction in the trap location is the address of the
EXU instruction (or the initial instruction of a chain of
EXU instructions).
Affected: Determi ned by
subject instruction

Traps: Determined by
subject instruction

Condition code settings: Determined by subject instruction

BCS

BRANCH ON CONDITIONS SET
(V%rd index alignment)

BRANCH ON CONDITIONS SET forms the logical product
(AND) of the R field of the instruction word and the current
condition code. If the logical product is nonzero, the
branch condition is satisfied and instruction execution proceeds with the instruction pointed to by the effective address of the BCS instru~tion. However, if the logical
product is zero, the br:anch condition is unsatisfied and
instruction execution then proceeds with the next instruction in normal sequence.

= 0,

_ --- IA
15 31

IA not affected

If the R field of BCS is 0, the next instruction to be executed after BCS is always the next instruction in ascending
sequence, thus effectively producing a "no operation"
instruction.

BCR

BRANCH ON CONDITIONS RESET
N'/ord index alignment)

BRANCH ON CONDITIONS RESET forms the logical product (AND) of the R field of the instruction word and the
current condition code. If the logical product is zero, the
branch condition is satisfied and instruction execution then
proceeds with the instruction pointed to by the effective address of the BCR instruction. However, if the logical product is nonzero, the branch condition is unsatisfied and instruction execution then proceeds with the next instruction
in normal sequence.
Affected: (IA) if CC n R = 0

If CC n (1)8-11 = 0, EVA 15 _ 31
IF CC n (1)8-11

10,

IA

IA not affected

If the R field of BCR is 0, the 'next instruction to be executed after BCR is always the instruction located at the effective address of BCR, thus effectively producing a "branch
unconditional! y" instruction.
BIR

BRANCH ON INCREMENTING REGISTER
N'/ord index alignment)

BRANCH ON INCREMENTING REGISTER computes the
effective virtual address (EVA) and then increments the
contents of general regi ster R by 1. If the resul t is a negative value, the branch condition is satisfied and instruction
execution then proceeds with the instruction pointed to by
the effective address of the BIR instruction. However, if
the result is zero or a positive value, the branch condition
is not satisfied and instruction execution proceeds with the
next instruction in normal sequence.
Affected: (R), (IA)

(R) + 1 - R

If (R)O = 1, EVA 15 - 31 - I A
If (R)O

= 0,

IA not affected

If the effective address of BIR is unavailable to the slave
program for instruction access and the branch condition is
satisfied, or if the effective address of BIR is nonexistent,

Execute/Branch Instructions

73

the computer aborts execution of the BIR instruction and
traps to location X'40'. In this case, the instruction address
stored by the XPSD instruction in location X ' 40 ' is the virtual address of the aborted BIR instruction. If the computer
traps because of instruction access protection, register R will
contain the value that existed just before the BIR instruction.

the computer aborts execution of the BAL instruction (after
loading the updated instruction address into register R) and
traps to location X 140'. In thi s case, the instruction address stored by the XPSD instruction in location X ' 40 ' is
the virtual address of the BAL instruction.

BRANCH ON DECREMENTING REGISTER
0/Vord index alignment)

BDR

CALL INSTRUCTIONS
Each of the four call instructions causes the computer to
trap to a specific location for the next instruction in sequence. The four cal I instructions, their mnemonics, and
the locations to which the computer traps are:

BRANCH ON DECREMENTI NG REGISTER computes the
effective virtual address (EVA) and then decrements the
contents of general register R by 1. If the result is a positi ve val ue, the branch condition is satisfied and instruction
execution then proceeds with the instruction pointed to by
the effective address of the BDR instruction. However, if
the result is zero or a negative value, the branch condition
is unsatisfied and instruction execution proceeds with the
next instruction in normal sequence.
Affected: (R), (IA)

(R) - 1 - R
If (R)O

=0

if (R)O

= 1 or

and (R)1-31 ,0, EVA 15 -31 (R)

= 0,

IA

IA not affected

If the effective address of BDR is unavailable to the slave
program for instruction access and the branch condition is
satisfied, or if the effective address of BDR is nonexistent,
the computer aborts execution of the BDR instruction and
traps to location X ' 40 ' • In this case, the instruction address
stored by the XPSD instruction in location X' 40 ' is the virtua I address of the aborted BDR instruction. If the computer
traps because of instruction access protection, register R will
contain the value that existed just before the BDR instruction.

BAl

BRANCH AND LINK
0/Vord index alignment)

BRANCH AND LINK determines the effective virtual address, loads the updated instruction address (the virtual address of the next instruction in normal sequence after the
BAL instruction) into bit positions 15-31 of general register R, clears bit positions 0-14 of register R to Dis and then
replaces the updated instruction address with the effective
virtual address. Instruction execution proceeds with the
instruction pointed to by the effective address of the BAL
instruction.
Affected: (R), (IA)

Instruction Name

Mnemonic

Trap Location

CALL
CALL
CALL
CALL

CAll
CAL2
CAL3
CAL4

X ' 48 1
X ' 49 1
X '4A '
X ' 4B '

1
2
3
4

Each of these four trap locations must contain an EXCHANGE
PROGRAM STATUS DOUBLEWORD (XPSD) instruction. Execution of XPSD in the trap location for a call instruction is
described under the XPSD instruction. If the XPSD instruction is coded with bit position 9 set to 1, the next instructi on (executed after the XPSD) is taken from one of 16 possible locations, as designated by the value in the R field of
the call instruction. Each of the 16 locations may contain
an i nstructi on that causes the computer to branch to a specific routine; thus, the four call instructions can be used to
enter any of as many as 64 unique routines.

CAll

CALL 1
(Word index alignment)

CALL 1 causes the computer to trap to location X 148 1 •

CAl2

CALL 2
0/Vord index alignment)

CALL 2 causes the computer to trap to location X'49 1.

CAl3

o

I

CALL 3
(Word index alignment)

2

CALL 3 causes the computer to trap to location X'4A'.

CAl4

CALL 4
0/Vord index alignment)

If the effective address of BAL is either nonexistent or is
unavai labl e to the slave program for instruction access,

74

Call Instructions

CALL 4 causes the computer to trap to location X '4B '.

CONTROL INSTRUCTIONS

1.

If bit position S (LP) of LPSD contains a 1, bits 55
through 59 of th e current program status doubl eword
(register pointer) are replaced by bits 55 through S9
of the effective doublewordi if bit S of LPSD is a 0,
the current register pointer value remains unchanged.

2.

If bit position 10 (CL) of LPS D contains a 1, the
highest-priority interrupt level currently in the active
state is cleared (i. e., reset to either the armed state
or the disarmed state); the interrupt level is armed if
bit 11 of LPSD (AD) is a 1, or is disarmed if bit 11 of
LPSD is O. If bit 10 of LPSD is a 0, no interrupt level
is affected in any way, regardless of whether bit 11
of LPSD is 1 or O. (Interrupt levels are described in
detail under "Interrupt System" in Chapter 2.

The following privileged instructions are used to control
the basic operating conditions of the SIGMA 6 computer:
Instruction Name

Mnemonic

Load Program Status Doubl eword
Exchange Program Status Doubl eword
Load Register Pointer
Move to Memory Control
Wait
Read Direct
Write Direct

LPSD
XPSD
LRP
MMC
WAIT
RD
WD

If execution of any control instruction is attempted while
the computer is in the slave mode (i.e., while bit 8 of the
current program status doubl eword is a 1), the computer unconditionally aborts execution of the instruction (at the time
of operation code decoding) and traps to location X'40'.

PROGRAM STATUS OOUBl£WORD
The SIGMA 6 program status doubleword has the following
structure when stored in memory:

Those portions of the effective doubleword that correspond
to undefined fields in the program status doubleword are
ignored.
Affected: (PSD), interrupt system if (1)10 = 1
ED _ CC; ED _ FS, FZ, FN
5 7
O3
EDS-MS; ED --MM

9

ED

10

- - DM; ED

11

-

AM

Bit
DesigPosition nation Function

_ IAi ED _
-WK
34 35
15 31
ED _ CI, II, Eli If (I)S = 1, ED _ RP
55 59
37 39
If (1)10 = 1 and (1)11 = 1, clear and arm interrupt

0-3

If (1)10 = 1 and (1)11 = 0, c1~ar and disarm interrupt

ED

5
6

7
8
9

CC
FS
FZ
FN
MS
MM

10

OM

11
15-31
34,35
37

AM
IA
WK
CI

38

II

,39
1 ·55-59

EI
RP

Condition code
Floating significance mask
Floating zero mask
Floating normalize mask
Master/Slave mode control
Memory Map mode control
Decimal arithmetic trap mask
Fixed-point arithmetic overflow trap mask
Instruction address
Write key
Counter interrupt group inhibit
I/O interrupt group inhibit
External interrupt inhibit
Register pointer

The detai led functions of the various portions of the SIGMA 6
program status doubleword are described under II Program
Status Doubleword" in Chapter 2.

LPSD

XPSD

EXCHANGE PROGRAM STATUS DOUBLEWORD stores the
entire program status doubleword and then replaces the current program status doubleword with a new program status
doubleword.
Use of the memory map in interpreting the XPSD instruction
address depends on the combined settings of bit 9 of the
current PSD and bit 10 of the XPSD instruction, and on
whether or not the XPSD is executed in an interrupt or trap
location as the result of an interrupt or trap:
1.

If the XPSD instruction is executed in an interrupt or
trap location, the map is used to interpret the indirect
reference address and the effective address if, and only
if, a 1 is contained in bit positions 9 (MM) of the current PSD and 10 (MP) of XPSD.

2.

The same logic applies with one exception when the
instruction is not executed in an interrupt or trap location. The exception is that if the program is in the
mapping mode (PSD 9 = 1), the map is used to interpret
the indirect reference address regardless of the state
of XPSD lO •

LOAD PROGRAM STATUS DOUBLEWORD
(Doubleword index alignment, privileged)

LOAD PROGRAM STATUS DOUBLEWORD replaces bits 0
through 39 of the current program status doubleword with
bits 0 through 39 of the effective doubleword. The following conditional operations are also performed:

EXCHANGE PROGRAM STATUS DOU BLEWORD
(Doubleword index alignment, privileged)

Control Instructions

75

and bits 37 through 39 of the second effective doubleword.

These conditions are summarized in the truth table shown
below. General information on memory addressing is contained in Chapter2 under "Memory Control Storage", "Memory Reference Addresses", and IIMemory Address Control II.
XPSD 10

PSD9

1
1
0
1
0
0

XPSD Address Type

Map?

Ind. Ref. Addr.
Effect. Addr.
Ind. Ref. Addr.
Effect. Addr.
Ind. Ref. Addr.
Effect. Addr.
Ind. Ref. Addr.
Effect. Addr.

yes
yes
no
no
no
no
no
no

Bit
Position Designation

Function

37

CI

Counter interrupt inhibit

38

II

VO

39

EI

External interrupt inhibit

interrupt inhibit

If any (or all) of bits 37, 38, or 39 of the second effective doubleword are OIS, the corresponding bits in the
current program status doubleword remain unchanged;
if any (or all) of bits 37, 38, or 39 of the second effective doubleword are ]Is, the corresponding bits in the
current program status doubl eword are set to lis. See
page 19 for a detai I ed discussion of the interrupt inhibits.

I yes t

tllYes li only if XPSD not executed in an interrupt or
trap location.
4.
The current program status doubleword is stored in the doubleword location pointed to by the effective address of XPSD
in the following form:

If bit position 8 (LP) of XPSD contains a I, bits 55-59 of
the current program status doubleword (register pointer)
are replaced by bits 55 through 59 of the second effective doubleword; if bit 8 of XPSD is a 0, the current
register pointer value remains unchanged.

The following additional operations are performed on the new
program status doubleword if, and only if the XPSD is being
executed as the result of a nonallowed operation (trap to location X'40') or a call instruction (trap to location X'48',
X 149 1, X'4A', or XI4BI):
The current program status doubleword is replaced by a new
program status doubleword as follows:

1.

2.

3.

76

The effective address of XPSD is incremented by 2, so
that it points to the next doubleword location. The address thus generated is subject to the same mapping consideration as the original effective address {i.e., mapping
is performed with the new address if bit 10 of XPSD is
,a 1 and bit 9 of the current program status doubl eword
is also a 1; otherwise, mapping is not performed}. The
contents of the next doubleword location are referred
to as the second effective doubleword, or ED2.

1.

Nonallowed operations - the following additional functions are performed when XPSD is being executed as a
resul t of a trap to location X1 40 1 :
a.

Nonexistent instruction - if the reason for the trap
condition is an attempt to execute a nonexistent instruction, bit position 0 of the new program status
doubleword (CC I) is set to 1. Then, if bit 9 (AI)
of XPSD is a I, bit positions 15-31 of the new program status doubleword (next instrucHon address)
are incremented by 8.

b.

Nonexistent memory address - if the reason for the
trap condition is an attempt to access or write into
a nonexistent memory region, bit position 1 of the
new program status doubl eword (CC2) is set to 1.
Then, if bit 9 of XPSD is a I, the instruction address portion of the new program status doubl eword
is incremented by 4.

c.

Privileged instruction violation - if the reason for
the trap condition is an attempt to execute a privileged instruction while the computer is in the slave
mode, bit position 2 of the new program statusdoubleword (CC3) is set to 1. Then, if bit position 9 of
XPSD is 1, the instruction address portion of the new
program status doubleword is incremented by 2.

d.

Memory protection violation - if the reason for the
trap condition is an attempt to read from or write into
a memory reg ion to wh i ch the program does not have
proper access, bit position 3 of the new program status
doubleword (CC4) is set to 1. Then, if bit 9 of XPSD
is a 1, the instruction address portion of the new
program status doubleword is incremented by 1.

Bits 0 through 35 of the current program status doubleword are unconditionally replaced by bits 0 through 35
of the second effective doubl eword. The affected portions of the program status doubleword are:
Bit
Position Designation

Function

0-3

CC

Condition code

5-7

FS, FZ, FN

Floating control

8

MS

Master/slave mode control

9

MM

Mapping mode control

10

DM

Decimal arithmetic trap mask

11

AM

Fixed-point arithmetic trap mask

15-31

IA

Instruction address

34-35

WK

'Write key

A logical inclusive OR is performed between bits 37
through 39 of the current program status doubleword

Control Instructions

There are certain circumstances under which two of the
above nonal/owed operations can occur simultaneously.
The following operation codes (including their counterparts) are considered to be both nonexistent and privileged: XIOC, XIOD I, XI2C, and XI2DI. If any one of
these operation codes is used as an instruction while
the computer is in the slave mode, CC 1 and CC3 are
both set to lis; if bit 9 of XPSD is a 1, the instruction
address portion of the new program status doubl eword is
incremented by 10. If an attempt is made to access or
write into a memory region that is both nonexistent and
prohibited to the program by means of the memory control feature, CC2 and CC4 are both set to lis; if bit 9
of XPSD is a 1, the instruction address of the new program status doubleword is incremented by 5.
2.

C::III instructions - the following additional functions
are performed when XPSD is being executed as a resu It
of a trap to location X' 48 1 , X 1 49 1, XI4AI, or XI4BI:
a:

The R field of the call instruction causing the
trap is logically inclusively ORed into bit positions 0-3 (CC) of the new PSD.

b.

If bit position 9 of XPSD contains a 1, the R field
of the call instructi-:>n causing the trap is added
to the instruction address portion of the new PSD.

If bit position 9 of XPSD contains a 0, the instruction address portion of the new PSD always remains at the value
establ ished by the second effective doubleword. Bit position 9 of XPSD is effective only if the instruction is being
executed as the resul t of a nonall owed operati on trap or a
call instruction trap. Bit position 9 of XPSD must be coded
with a 0 in all other cases; otherwise, the resul ts of the
XPSD instruction are undefined.
Affected: (EDL), (PSD)

If (I) 10

= 1,

effect i ve address is vi rtua I

If (1)10 = 0, effective address is actual
PSD-EDL
ED2 0 _ 3 ED28 -

CC; ED25_7 MS; ED29 -

FS, FZ, FN
MM

WK
34 _35 ED2 37 _39 u CI, II, EI - C I , II, EI
If (1)8 = 1, ED255 _ RP
59
IA; ED2

If (1)8 = 0, RP not affected
If nonexistent instruction, 1 IA + 8 - I A
If nonexi stent memory address, 1 IA + 4 - I A

If (1)9
LRP

CC1 then, if (1)9

= 1,

CC2 then, if (1)9 = 1,

If privileged instruction violation, 1 - CC3 then,
if (1)9 = 1, IA + 2 IA
If memory protection violation, 1 - - CC4 then, if (1)9 = 1,
IA + 1 - - IA

= 0,

fA not affected

LOAD REGISTER POINTER
(Word index al ignment, privi leged)

LOAD REGISTER POINTER loads bits 23 through 27 of the
effective word into the register pointer (RP) portion of the
current program status doubleword. Bit positions 0 through
22 and 28 through 31 of the effective word are ignored, and
no other portion of the program status doubleword is affected.
If the register pointer is loaded with a value that points to a
nonexistent block of general reg isters, the computer subsequentl y generates either all 1's or all OIS as the contents of
the nonexistent block of general registers, whenever an instruction designates a general register by means of the R field
or the reference address field.
Affected: RP
EW23-27-RP

MMC

MOVE TO MEMORY CONTROL
0Nord index al ignment, privi leged, continue
. after interrupt)

MOVE TO MEMORY CONTROL loads a string of one or
more words into one of the three blocks of memory control
registers (memory control registers are described under
"Memory Address Control" in Chapter 2). Bitpositions 12-14
of MMC are not used as an index register address; instead,
they are used to specify which block of memory control registers is to be loaded, as follows:
Bit positi on
12 13 14

Function

100
1
0
001

Load memory map block addresses
Load access protection
Load memory write protection locks

o

ED2 10 - - DM; ED211 - - AM
ED2 15 _31 -

If call instruction, CC u CALLS-11 - - CC then,
if (1)9 = 1, fA + C ALL 8- 11 - - fA

If bit positions 12-14 of MMC contain either a" OIS or more
than a single 1, the instruction produces an undefined result.
Also, if an attempt is made to load unimplemented memory
control storage, the contents of the general regi sters specified by the MMC instruction are undefined at the completion
of the instruction, and the implemented memory control storage (if any) is not affected.
Bit positions 15-31 (reference address field) of MMC are ignored insofar as the operation of the instruction is concerned,
and the results of the instruction are the same whether or not
MMC is indirectly addressed.
The R field of MMC designates an even-odd pair of general
registers (R and Ru 1) that are used to control the Ioadi ng of

Control Instructions

77

the specified bank of memory control registers. Registers R
and Ru 1 are assumed to contain the following information:

Each word of the memory map control image is assumed to
be in the following format:

Register R:

MEMORY MAP LOADING PROCESS
Reg; ster Ru 1 :

Bit positions 15 through 31 of register R contain the virtual
address of the first word of the control image to be loaded
into the specified block of memory control registers. Bit
positions 0 through 7 of register Ru 1 contain a count of the
number of words to be loaded. If bits 0-7 of register Ru 1
are initially all OIS, a word count of 256 is implied.)
Bit positions 15 through 22 of register Ru 1 point to the beginning of the memory region controlled by the registers to
be loaded. The significance of this field is different for the
3 modes of MMC.
The R field of the MMC instruction must be an even value
for proper operation of the instruction; if the R field of MMC
is an odd value, the operation of the instruction is undefined.

If MCC is ind irectly addressed and the indirect reference address is nonexistent, the nonallowed operation trap (location
X'401) is activated. The effective vi rtual address of the MMC
instruction however, is not used as a memory reference (thus
does not affect the normal operation of the instruction).

Bit positions 15-22 of register Ru 1 initially points to the first
512-word page of virtual addresses that is to be controlled
by the map image being loaded. MMC moves the map image
into the memory map control registers one word at a time, thus
loading the page address for four consecutive memory map
registers with each image wurd. As each word is loaded into
the memory map, the virtual address of the image area is incremented by 1, the word count is decremented by 1, and the
value in bit positions 15-22 of register Ru 1 is incremented by
4; th is process continues unti I the word count is reduced to O.
When the loading process is completed, bit positions 15-31 of
register R contain a value equal to the sum of the initial map
image address plus the initial word count. Also, bit positions
0-7 of register Ru1 contain all OIS, and bit positions 15-22 of
register Ru 1 contain a value equal to the sum of the initial
contents plus 4 times the initial word count.

LOADING THE ACCESS PROTECTION CONTROLS
The following diagrams represent the configurations of MMC,
register R, and register Ru 1 that are required to load the access protection controls:
The instruction format is:

Affected: (R), (Ru 1), memory control storage

LOADING THE MEMORY MAP

The contents of reg ister Rare:

The following diagrams represent the configuration of MMC,
register R, and register Ru 1 that are required to load the
memory map:
The instruction format is:

a

I

2

The contents of register Rare:

The contents of register Ru 1 are:

MEMORY MAP CONTROL IMAGE
The initial address value in bit positions 15-31 of register R
is the vi rtual address of the first word of the memory map
control image. The word length of the control image to be
loaded is specified by the initial count in bit posiTions 0-7
of reg i ster Ru 1. A word count of 64 is suffi c i ent to load the
entire block of memory map control registers. The memory map
control registers are treated as a circular set, with the first
register following the last; thus, a word count greater than
64 causes the first registers loaded to be overwritten.
78

The contents of reg ister Ru 1 are:

Control Instructions

ACCESS PROTECTION CONTROL IMAGE
The initial address value in register R is the virtual address
of the fi rst word of the access control image, and the word
length of the first control image is specified by the initial
count in register Ru 1. A word count of 16 is sufficient to
load the entire block of access protection control registers.
The access protection control registers are treated as a circular set, with the first register following the last; thus, a
word count greater than 16 causes the first registers loaded
to be overwritten. Each word of the access control image
is assumed to be in the following format:

ACCESS CONTROL LOADING PROCESS
Bit positions 15-20 of register Ru 1 initially point to the first
512-word page of virtual addresses that is to be controlled

by the access control image. MMC moves the access control image into the access control registers one word at a
ti me, thus loading th2 controls for 16 consecutive 512-word
pages with each image word. As each word is loaded, the
virtual address of the control image is incremented by 1,
the word count is decremented by 1, and the value in bit
positions 15-20 of register Ru1 is incremented by 4; this
process continues until the word count is reduced to O. When
the loading process is completed, register R contains a value
equal to the sum of the initial control image address plus the
in itial word count. Also, the final word count is 0, and bit positions 15-20 of register Ru 1 contain a value equal to the sum
of the initial contents plus 4 times the initial word count.

LOADING THE MEMORY WRITE PROTECTION LOCKS
The following diagrams represent the configuration of MMC,
register R, and register Ru 1 that are required to load the
memory write protection locks:

the sum of the initial lock image address plus the initial
word count. Also, the final word count is 0, and bit positions 15-20 of register Rul contain a value equal to the sum
of the initial contents plus 4 times the initial word count.

INTERRUPTION Of MMC
The execution of MMC can be interrupted after each word
of the control image has been moved into the specified control register. Immediatel y prior to the time that the instruction in the interrupt (or trap) location is executed, the
instruction address portion of the program status doubleword
contains the virtual address of the MMC instruction, register
R contains the virtual address of the next word of the control
image to be loaded, and register Ru1 contains a count of the
number of control image words remaining to be moved and a
value pointing to the next memory control register to be
loaded.

The instruction format is:
WAIT

WAIT
0/Vord index alignment, privileged)

The contents of register Rare:

The contents of register Ru 1 are:

MEMORY LOCK CONTROL IMAGE
The initial address value in register R is the virtual address
of the first word of the memory lock control image, and word
length of the image is specified by the initial count in register Ru1. A word count of 16 is sufficient to load the entire block of memory locks. The memory lock registers are
treated as a circular set, with the register for memory addresses 0 through X 11 FF' immediately following the register
for memory addresses X 11 FEOOI through X 11 FFFF I; thus, a
word count greater than 16 causes the first registers loaded
to be overwritten. Each word of the lock image is assumed
to be in the following format:

MEMORY LOCK LOADING PROCESS
Bit positions 15-20 of register Ru1 initially point to the first
512-word page of actual core memory addresses that is to
be controlled by the memory lock image. MMC moves the
lock image into the lock registers 1 word at a time, thus
loading the locks for 16 consecutive 512-word pages with
each image word. As each word is loaded, the virtual address of the lock image is incremented by 1, the word count
is decremented by 1, and the value in bit positions 15 -20
of register Ru1 is incremented by 4; this process continues
until the word count is "reduced to O. When the loading
process is completed, register R contains a va lue equal to

WAIT causes the CPU to cease all operations until an interrupt activation occurs, or unti I the computer operator manuall y moves the COMPUTE switch {on the processor control
panel or on the free-standing console} from the RUN position to IDLE and then back to RUN. The instruction address porti on of the PSD is updated before the computer
begins waiting; therefore, while the CPU is waiting, the
INSTRUCTION ADDRESS indicators contain the virtual address of the next location in ascending sequenceafterWAIT
and the contents of the next location are displayed in the
DISPLAY indicators {on the processor control panel and on
the free-standing console}. If any input/output operations
are bei ng performed when WAIT is executed, the operations
proceed to their normal termination.
When an interrupt activation occurs while the CPU is waiting, the computer processes the interrupt-servicing routine.
Normally, the interrupt-servicing routine begins with an
XPSD instruction in the interrupt location, and ends with
an LPSD instruction at the end of the routi nee After the
LPSD instruction is executed, the next instruction to be
executed in the interrupted program is the next i nstructi on
in sequence after the WAIT instruction. If the interrupt is
to a single-instruction interrupt location, the instruction
in the interrupt location is executed and then instruction
execution proceeds with the next instruction in sequence
after the WAIT instruction. When the COMPUTE switch
is moved from RUN to IDLE and back to RUN while the
CPU is waiting, instruction execution proceeds with the
next instruction in sequence after the WAIT instruction.

If WAIT is indirectly addressed and the indirect reference
address is nonexistent, the nonallowed operation trap {location X1401} is activated. The effective virtual address of
the WAIT instruction, however, is not used as a memory
reference (thus does not affect the normal operation of the
i nstructi on).

Control Instructions

79

READ DIRECT
(Word index alignment, privileged)

RD

The CPU is capable of directly communicating with other
elements of the SIGMA 6 system, as well as performing internal control operations, by means of the READ DIRECT/
WRITE DIRECT (RD/WD) lines. The RD/WD lines consist
of 16 address lines, 32 data lines, 2 condition code lines,
and various control lines, that are connected to various
CPU circuits and to special systems equipment.
READ DIRECT causes the CPU to present bits 16 through 31
of the effective virtual address to other elements of the
SIGMA 6 system on the RD/WD address lines. Bits 16-31
of the effective virtual address identify a specific element
of the SIGMA 6 system that is expected to return information (2 condition code bits plus a maximum of 32 data bits)
to the CPU. The significance and number of data bits returned to the CPU depend on the selected element. If the
R field of RD is nonzero, up to 32 bits of the returned data
are loaded into genera I register R; however, if the R field
of RD is 0, the returned data is ignored and genera I regis, . ter 0 is not changed. The condition code is set by the addressed element, regardless of the value of the R field.

READ AND RESET MEMORY FAULT INDICATORS
Each core memory module is associated with a MEMORY FAULT
indicator that is turned on whenever a memory parity or over-I
temperature condition occurs. The following configuration
of RD is used to record and reset the MEMORY FAULT indicators.

If the R field of RD is nonzero, bit positions 0-23 of register
R are reset to all O·s, bit positions 24-31 are set according
to the current states of the MEMORY FAULT indicators, and
all MEMORY FAULT indicators are reset. If a bit position
in register R is set to 1, a memory fault has been detected
in the corresponding core memory module. If the R field of
RD is 0, the MEMORY FAULT indicators and the contents
of register 0 remain unchanged (although the condition code
is still set to the value of the SENSE switches). The MEMORY FAULT indicators are also reset by means of the SYS
RESET/CLEAR switch on the processor control panel.
Affected: (R),CC,MEMORY FAULT Indicators

WD

WRITE DIRECT
(Word index 01 ignment, privileged)

Bits 16-19 of the effective virtual address of RD determine
the mode of the RD instruction, as follows:
Bit Position
16 17 18

19

Mode

000

o

o
o
o

1

Internal computer control
Unassigned
XDS testers

0

0

0
0

1
1

o

1 } Assigned to various groups of standard
XDS products

o
1

Spec ial systems control (for customer use
with specially designed equipment)

If bits 16-19 of the effecti ve vi rtua I address are nonzero
(mode 1 through mode F), CC 1 and CC2 are set to zero and
CC3 and CC4 are set according to the state of the two condition code I ines from the external device.

READ DIRECT INTERNAL COMPUTER CONTROL (MODE 0)
In this mode, the condition code is unconditionally set according to the states of the four SENSE switches on the processor control panel. If a particular SENSE switch is set,
the corresponding bit of the condition code is set to 1; if a
SENSE switch is reset, the corresponding bit of the condition code is set to 0 (see "SENSE" in chapter 5).
READ SENSE SWITCHES
The following configuration of RD can be used to read the
control panel SENSE switches:

In th is case, only the condition code is affected.

80

Control Instructions

WRITE DIRECT causes the CPU to present bits 16 through 31
of the effective virtual address to other elements of the SIGMA 6 system on the RD/WDaddress lines(see READ DIRECT).
Bits 16-31 of the effective virtua I address identify a specific
element of the SIGMA 6 system that is to receive control information from the CPU. If the R fie Id of WD is nonzero,
the 32-bit contents of register R are transmitted to the specified element on the RD;WD data lines. If the R field of
WD is 0, 32 O·s are transmitted to the specified element (instead of the contents of register 0). The condition code is
set by the addressed element, regardless of the value of the
R field.
Bits 16-19 of the effective virtual address determine the
mode of the WD instruction, as follows:
Bit Position
16 17 18
000
000
o 0 1
001

19

Mode

o

Internal computer control
Interrupt control
XDS testers

1

o
1

o
1

}

ASSigned to various groups of standard
XDS products
Special systems control (for customer use
with specially designed equipment)

If bits 16-19 of the effective virtual address are nonzero
(mode 1 through mode F), CC 1 and CC2 are set to zero and
CC3 and CC4 are set according to the state of the two condition code lines from the external device.

I

WRITE DIRECT INTERNAL COMPUTER CONTROL (MODE 0)
In this mode, the condition code is unconditionally set
accordi ng to the states of the four SE NSE switches on the
processor control panel. If a particular SENSE switch is
set, the corresponding bit of the condition code is set to 1;
if a SENSE switch is reset, the corresponding bit of the
condition code is reset to 0 (see "SENSE" in Chapter 5).
SET INTERRUPT INHIBITS
The following configuration of WD can be used to set the
interrupt inhibits (bit positions 37-39 of the PSD).

A logical inclusive OR is performed between bits 29-31 of
the effective virtual address and bits 37-39 of the PSD. If
any (or all) of bits 29-31 of the effective virtual address are
l's, the corresponding inhibit bits in the PSD are set to l's;
the current state of an inhibit bit is not affected if the corresponding bit position of the effective virtual address contains a O.

TOGGLE PROGRAM-CONTROLLED-FREQUE NCY
FLIP-FLOP
The following configuration of WD is used to "toggle" the
CPU program-controlled-frequency (PCF) flip-flop:

The output of the PCF flip-flop is transmitted to the computer
speaker through the AUDIO switch on the maintenance secti on
of the processor control pane I. If the PCF fI i p-fl op is reset whe n
the above configuration of WD is executed, the WD instruction
sets the PCF fI ip-floPi if the PCF fI ip-flop was previ ously set,
the WD instruction resets it. A program can thus generate a
desired frequency by toggling (setting and resetting) the PCF
fl ip-flop at the appropriate rate. Execution of the above
configuration of WD also resets the ALARM indicator.

WRITE DIRECT, INTERRUPT CONTROL (MODE 1)
The following configuration of WD is used to set and reset
the various states of the individual interrupt levels within
the CPU interrupt system:

RESET INTERRUPT INHIBITS
The following configuration .)f WD can be used to reset the
interrupt inhibits:

If any (or all) of bits 29-31 of the effective virtual address
are l's the corresponding inhibit bits in the PSD are reset to
O's; the current state of an inhibit bit is not affected if a
corresponding bit position of the effective virtual address
contains a O.
SET ALARM INDICATOR
The following configuration of WD is used to set the ALARM
indicator on the maintenance section of the processor control panel:

Bits 28 through 31 of the effective address specify the identification number (see Table 2) of the group of interrupt
levels to .be controlled by the WD instruction.
The R field of the WD instruction specifies ageneral register
that contains the selection bits for the individual interrupt
levels, excluding Power on/Power off, within the specified
group (see Table2). Bit position 160f register R contains the
selection bit for the highest-priority (lowest-numbered) interrupt level within the group, and bit position 31 of register R
contains the selection bit for the lowest-priority (h ighestnumbered) interrupt level within the group. Each interrupt
level in the designated group is operated on according to the
function code specifiedbybits21 through 23 of the effective
address of WD. The codes and their associated functions are as
follows:
Code

Function

If the COMPUTE switchontheprocessorcontrol panel isinthe

000

Undefi ned

RUN position and the AUDIO switch on the maintenance section of the processor control panel is in the ON position, a
WOO-Hz signal is transmi tted to the computer speaker. The
signal may be interrupted by moving the COMPUTE switch
to the IDLE position, by moving the AUDIO switch to the
OFF position, or by resetting the ALARM indicator.

OOlt

Disarm all levels selected by a 1; all levels selected
by a 0 are not affected.

OlOt

Arm and enable all levels selected by a 1; all level s
selected by a 0 are not affected.

Ollt

Arm and disable al/ levels selected by a 1; all levels
selected by a 0 are not affected.

100

Enable all levels selected by a 1; all levels selected
by a 0 are not affected.

101

Disable all levels selected by a 1; all levels selected
by a 0 are not affected.

RESET ALARM INDICATOR
The following configuration of WD is used to reset the
ALARM indicator:

The ALARM indicator is.also reset by means of either the CPU
RESET/CLEAR switch or the SYS RESET/CLEAR switch on the
processor control panel.

t These codes c Iear the current interrupt, i. e. remove from
the active or waiting state all levels selected by a 1 (see
Figure 7).
I

Control Instructions

81

Code

Function

110

Enable ali levels selected by a 1 and disable all
levels selected by a O.

111

Trigger all levels selected by a 1. All such levels
that are currently armed advance to the waiting state.

Bit positions 25 through 31 of the I/O address contain a
3-bit device controller code (DC) in bit positions 25-27
and a 4-bit device code (Device) in bit positions 28-31.
This form of I/O address is used for device controllers (such
as magnetic tape and rapid access data file controllers) that
control information exchange with only one device at a time
(out of a set of as many as 16 devices).

INPUTjOUTPUT INSTRUCTIONS
Standard" SIGMA 6 I/O refers to the normal I/O system
consisting of input/output processors, device controllers,
and devices. This system handles normal communications
with standard peripherals such as printers, disks, tapes,
and so forth. When dealing with standard I/O operations,
the CPU uses the following five instructions:

110 UNIT ADDRESS ASSIGNMENT

II

Instruction Name

Mnemonic

Start Input/Output
Halt Input/Output
Test Input/Output
Test Device
Acknowledge Input/Output Interrupt

SIO
HIO
TIO
TOY
AIO

If execution of any input/output instruction is attempted while
the computer is in the slave mode (i. e. , whi Ie bit a of the
current program status doubleword is a 1), the computer uncondi tiona II y aborts execution of the instruction (at the time
of operation code decoding) and traps to location X '40'.

Device controller numbers are normally assigned to a multiplexor lOP in numerical sequence, beginning with zero and
continuing through the highest number recognized by the lOP
(i. e., X,]', X'fi, X'17', or X'lF'). In the case of multiunit
device controllers, the device controller number must be in the
range X '0' through X '7' because the I/O address field structure
allows fora 3-bit multiunitdevice controller number. In the
case of si ngle-unit device controllers, any of the avai lable
numbers in the range X'O' through X'lF' may be assigned to
the device controller, providi ng that the Same number has not
already been assigned to a multiunit device controller. For
example, if device controller number X '0' is assigned to a
magnetic tape unit controller, the number X'O' cannot also
be used for a card reader (although the coding of the I/O
address field would be different in bit position 24). The I/O
address codes used by standard XDS software are
I/O address

Peripheral device designation

x'oao'

. lOP 0, devi ce controller 0, magnetic tape
unit 0

The device to be operated on by an I/O instruction is selected
by the effective virtual address of the I/O instruction itself.
Indirect addressing and/or indexing are performed, as for
other word-addressing instructions, to compute the effective
virtual address of the I/O instruction. However, the effecti ve address is not used as a memory reference (i. e., not
subject to memory mapping). For the SIO, HIO, TIO, and
TDY instructions, the 11 low-order bits of the effective virtualaddress constitute an I/O address. FortheAIOinstruction, the device causing the interrupt returns its 11-bit I/O
address as part of the response to the AIO instruction.

X'Oal'

lOP 0, device controller 0, magnetic tape
unit 1

X'Oa7'

lOP 0, device controller 0, magnetic tape
unit 7

X'OOl'

lOP 0, device controll er 1, keyboard/printer

X'002'

lOP 0, device controller 2, line pri nter

X'003'

lOP 0, device controller 3, card reader

An I/O address occupies bit positions 21 through 31 of the
effective virtual address, with bits 21, 22, and230ftheI/0
address specifying one of eight possible lOPs that can be controlled by a CPU. The remainder of the I/O address is factored
into one of two forms, depending on bit 24, as follows:

X'004'

lOP 0, device controll er 4, card punch

X'005'

lOP 0, device controller 5, paper tape
reader/punch

110 ADDRESSES

Case I: Single-unit device controllers (bit 24 is 0)

Bits 25 through 31 of the I/O address (DC/Device) constitute a single code specifying a particular combination of
devi ce controller and device. Normally these codes refer
to devi ce controllers that drive only a single device, such
as card readers, card punches, line pri nters, etc.
Case II: Multiunit device controllers (bit 24 is 1)

82

Input/Output Instructi ons

110 STATUS RESPONSE
All I/O instructions result in the setting of condition code
CC1 and CC2 to denote the nature of the I/o response.
The R field of the I/O instruction specifies one of the general registers that is to accept additional I/O response information during the execution of an I/O instruction. In
some situations, the programmer may want two sets of response information loaded into the general registers, while
in other situations he may want only one set, or even no
information loaded into a general register. This control is
achieved by coding the R field of the I/O instruction. One
set of response information is loaded into register R and another set may be loaded into register Rul. If the R field is
an even, nonzero number, registers Rand R + 1 are each
loaded with response information. If the R field specifies

an odd-numbered general register, then only register R is
loaded with response information. However, if the R field
is 0, Rand Rul are not loaded with response information.
Also, if RI- 0 and CCl is set to 1 as a result of the operation, no status information is returned to Rand Rul. The
I/O response information loaded into the general register
for 510, HIO, TIO, and TDV instructions is in the following
format:
Word into register R

Word into regi ster Ru 1

and the device is started 0. e., advanced to the "busy"
condition). If the 510 is accepted, the first command
doubleword address is loaded into the IOPcommand address
counter associated with the device controller specified by
the I/O address of the 510 instruction. Then, if the device
is in the "automatic" mode, it requests an order from the
lOP. The lOP loads the first command doubleword of the
1/0 command list into its appropriate regi sters and transmits
the order to the device.
The CPU condition code provides an indication of whether
the I/O address specified by the 510 instruction was or was
nC;;t recognized by the I/O system and whether the 510 instruction was or was not accepted by the device (i. e., whether
the device did or did not advance to the "busy" condition).
The condition code settings for 510 are:

Current Command Doubleword Address. After the addressed
devi ce has received an order, this field contai ns the 16
high-order bits of the core memory address for the command
doubleword (see "IOP Command Doublewords ll ) currently
being processed for the addressed device.

1

234

Resul t

o
o

0

I/O address recognized and 510 accepted
I/O address recognized but 510 not
accepted

o

lOP address recognized but device controller either is attached to a "busy"
selector lOP that cannot return status at
this time or, for specific device controll ers, is currentl y "busy" wi th another
devi ceo No status informati on is returned
to general registers.

Status. The meaning of this field depends on the particular
I/O instruction being execu+-ed and upon the selected I/O
device (see Table 8).
Byte Count. After the addressed device has received an
order, this field contains a caunt of the number of bytes yet
to be transmitted to or from memory by the operation called
for by the order.

I/O address not recognized and 510 not
accepted; no status i nformati on is returned
to general registers.

See the AIO instruction description for the format of I/O
response i nformati on for AIO.
510

START INPUT/OUTPUT
\:'Nord index alignment, privileged)

START INPUT/OUTPUT is used to initiate an input or output operation with the device selected by the I/O address
(bits 21-31 of the effective vi rtua I address of the instruction).
510 utilizes data in general register 0, which is assumed
to have the following content when 510 is executed.

STATUS INFORMATION FOR SIO
In the event that the 510 instruction was not accepted
(i. e., CC 1 = 0 and CC2 = 1), the status information returned
as a part of the I/O response provides indications of Nhy
the 510 instruction was not accepted. If the 510 instruction
has been coded with an R field value of 0, or if CCI (as a
result of the execution of this instruction) is a I, only the
condition code settings are available. If the R field value
is odd, register R contains the fol lowing information:

Bit
Position Function

o

General register 0 is temporarily dedicated during the execution of an 510 instruction to specify the starting doubleword address for the lOP command list. The doubleword
address in register 0 is the 16 high-order bits of a memory
address; thus, the address in register 0 always specifies an
even-numbered word location. (The lOP command list is
described in "10P Command Doublewords", Chapter 4.)

If I/O address recogniti.on exists in the I/O system, and the
device controller and device are in the "ready" condition
and no interrupt condition is pending, the 510 is accepted

Interrupt pendingj if this bit is 1, the addressed
device has requested an interrupt and the interrupt has not been acknowledged by an AIO instruction. I/O interrupts can be achieved by coding
of the flag portion of the I/O command doubleword. I/O interrupts can also be achieved by using
M modifiers in the basic order to the device (M bits
in the Order portion of the command doubleword).
In either case, the device wil I not accept a new
SIO instruction until the interrupt-pending condition is cleared (i.e., the condition code settings
for the SIO instruction will indicate IISIO not
accepted ll if the interrupt-pending condition is
present in the addressed device.

Input/Output Instructions

83

Table 8.

Status Bits for I/O Instructions

Posi tion and State in Register Ru 1
Device Status Byte
2

3

- 0 0

-

0

-

0

1

1
1

0

4

Operational Status Byte

5

7

6

8

9

10 11

12 13 14 15

-

-

- -

1

-

0
1

-

00-

-

0

Significance for
SIO, HIO, and TIO
interrupt pendi ng
device ready
devi ce not operational
device unavailable
device busy
de vi ce manua I
device automatic
device unusual end
device controller ready
device controller not operational
device controller unavailable
device controller busy
unassigned

1

1 0
1 1
- 0

incorrect length
transmission data error
transmission memory error
memory address error

lOP memory error
lOP control error
lOP halt
Selector lOP busy
Position and State in Register R
Device Status Byte

o

2 3

4

Operational Status Byte
5

6

7

8

9

10 11

12 13 14 15

Significance for AIO

unique to the device and
the devi ce controller

incorrect length
transmission data error
zero byte count interrupt
channel end interrupt
unusual end interrupt

-

0

o : }

84

Input/Output Instructi ons

unassigned

Significance
for TOV

unique to the
device and the
device controller

1
same as for
SIO, HIO, and
TIO

j

Bit
Position Function

1, 2

3

Devi ce condition: if bits 1 and 2 are 00 (device
"ready II), all devi ce conditions required for proper
operation are satisfied. If bits 1 and 2 are 01
(devi ce "not operational II), the addressed device
has developed some condition that will not allow
it to proceed; in either case, operator intervention
is usually required. If bits 1 and 2 are 10 (device
IIUnavailable ll ), the device has more than one
channel of communication avai lable and it is engaged in an operation controlled by a controller
other than the one specified by the I/O address.
If bits 1 and 2 are 11 (device IIbusyll), the device
has accepted a previous SIO instruction and is already engaged in an I/O operation.
Device mode: if this bit is 1, the device is in the
lIautomatic ll mode; if this bit is 0, the device is
in the IImanual li mode and requires operator intervention. This bit can be used in conjunction with
bits 1 and 2 to determine the type of action requ ired. For exam pi e, assume that a card reader
is abl e to operate, but no cards are in the hopper.
The card reader wvuld be in state 000 (device
IIreadyll, but manual intervention required), where
the state is indicated by bits 1, 2, and 3 of the
I/o status response. If the operator subsequently
loads the card hopper and presses the card reader
START switch, the reader would advance to state
001 (device IIreadyll and in automatic operation).
If the card reader is instate 000 when an SIO i nstruction is executed, the SIO would be accepted
by the reader and the reader would advance to
state 110 (device IIbusyll, but operator intervention
required). Should the operator then place cards
in the hopper and press the START switch, the card
reader state would advance to 111 (device IIbusy"
and in automatic operation), and the input operation would proceed. Should the card reader subsequently become empty (or the operator press the
STOP switch) and command chaining is being used
to read a number of cards, the card reader would
return to state 110. If the card reader is instate
001 when an SIO instruction is executed, the
reader advances to state 111, and the input'operation continues as normal. Should the hopper subsequently become empty (or should the operator
press the card reader STOP switch) and command
chaining is being used to read a number of cards,
the reader would go to state 110 unti I the operator
corrected the situation.

4

Unusual end: if this bit is 1, the previous I/O operation terminated in an II unusual end ll condition.
These conditions vary from device to device (see
the applicable peripheral reference manual).

5,6

Device controller condition: if bits 5and 6 are 00
(device controller "readyll), all device controller
conditions required for its proper operation are
satisfied. If bits 5 and 6 are 01 (device controller

Bit
Position Function

5,6
(cont.)

II not operational"), some condition has developed
that does not allow it to operate properly. In
either case, operator i nterventi on is usually requi red. If bits 5 and 6 are 10 (device controller
"unavailable"), the device controller is currently
engaged in an operation controlled by an lOP
other than the one addressed by the I/O instruction.
If bits 5 and 6 are 11 (device controller "busy"),
the device controller has accepted a previ ous
SIO instruction and is currently engaged in performing an operati on for the addressed lOP.

7

Reserved

8

Incorrect length: if this bit is 1, an incorrect
length condition has been detected during the
previous operation. Incorrect length is caused
by a channel end (or end of record) condition
occurring before the device controller has received a IIcount done" signal from the lOP, or is
caused by the de vi ce controller recei vi ng a count
done signal before channel end (or end of record);
e. g., count done before 80 columns have been
read from a card. Normally, a count done signal
is sent to the device controller by the lOP to indicate that the byte count associated with the
current operati on has been reduced to zero. The
lOP is capable of suppressing an error condition on
incorrect length, since there are many situations
in which incorrect le.ngth is a legitimate situation
and not a true error condition. Incorrect length is
suppressed as an error by coding the SIL flag (a 1
in bit 38) of the lOP command doubleword (see
IIFlags ll , Chapter 4). At the end of the execution
of an I/O command list, this status bit is 1 if an
incorrect length condition occurred anywhere in
the command list, regardless of the coding of the
SIL flag.

9

Transmission data error: this bit is set to 1 if the
lOP or device controller has detected a parity
error or data overrun in the transmitted information. At the end of an execution of an I/O command list, this status bit is 1 if a transmission data
error occurred anywhere in the command list.

10

Transmission memory error: this bit is set to 1 if
a memory parity error has occurred during a data
input/output operation. A parity error is detected
on any output operation and on partial-word input
operations. At the end of an execution of an I/O
command list, this status bit is 1 if a transmission
memory error occurred anywhere in the command
list. A device halt occurs only if the HTE flag
in the lOP command doubleword is set to 1 (see
ll
II Flags , Chapter 4).

11

Memory address error: a nonexi stent memory address
has been encountered on ei ther data or commands.
Operation is terminated with an II unusual end".

Input/Output Instructions

85

The status information returned for HIO has the same interpretation as that returned for the instruction SIO and
shows the I/O status at the time cf the halt. The count
information shows the number of byies remaining to be
transmitted at the time of the halt. If the R field of HIO
is an even value and not 0, the condition code is set, register R+l is loaded as shown above, and register R contains
the following information:

Bi t
Posi tion Function
12

lOP memory error: if a memory parity error has
occurred while the lOP was fetching a command,
this bit is set to 1. Operation is terminated with
an "unusual end".

13

lOP control error: this bit is set to 1 if the lOP
has encountered two successive TRANSFER IN
CHANNEL commands.

14

lOP halt: this bit is set to 1 if the lOP has issued
a halt order to the addressed I/O device because
of an error condition.

15

Selector lOP busy: this bit is set to 1 if a selector
lOP is addressed by the I/O instruction and the
selector lOP is currently in use by some I/O device. The selector lOP is considered to be in use
from the time that a device accepts an S10 instruction until the operation is completed.

16-31

Byte count: a count of the number of bytes yet to
be transmitted to or from memory in the operation
called for by the current command doubleword.

The current command doubleword address has the same interpretation as that for the instruction SIO.
Affected: (R), (Rul), CC1,CC2
Condition code settings:

2

o

o

If the R field value of the SIO instruction is even and not
0, the condition code and register R+ 1 contain the informa-

0

3

4

Result of HIO

VA address recognized and device controll er is not "busy II •
VA

address recognized but device controllerwas "busy"at the time of the halt.

VA

address not recognized.

tion described above and register R contains the following
information:
TlO

TEST INPUT/OUTPUT
0/Vord index alignment, privileged)

Bit
Position Function
16-31

Current command doubl eword address: the 16
high-order bits of the core memory address from
which the command doubleword for the I/O operation currently being processed by the addressed
device controller was fetched.

HIO

HALT INPUT/OUTPUT
0/Vord index al ignment, privi leged)

HALT IN PUT/OUTPUT causes the addressed device to immediately halt its current operation (perhaps improperly, in
the case of magneti c tape un j ts, when the devi.ce is forced to
stop at other than interrecord gap). If the device is in an
interrupt-pending condition, the condition is cleared.

If the R field of the HIO instruction is a or if no I/O address recognition exists, no general registers are affected,
but the condition code is set. If the R field is an odd
value, the condition code is set and the following information is loaded into register R.

I
0',
86

,I."

St~tus

I

,",. '""I"""""" ....

Input/Output Instructions

~ount

I~"""""u"I~~~,,
Byte

I

TEST INPUT/OUTPUT is used to make an inquiry on the
status of data transmission. The operation of the selected
lOP, device controller, and device are not affected, and
no operations are initiated or terminated by this instruction.
The responses to TIO provide the program with the information necessary to determine the current status of the device,
device controller, and lOP, the number of bytes remaining
to be transmitted to or from memory in the operation, and
the present point at which the lOP is operating in the command list. If the R field of the TIO instruction is 0, or if
CC 1 (as a result of the execution of this instruction) is a 1,
no general registers are affected, but the condition code is
set. If the R field of TIO is an odd value, the condition
code is set and the I/O status and byte count are loaded
into register R as follows:

The status i nformati on has the same i nterpretati on as the
status information returned for the instruction SID and shows
the I/O status at the time of sampling.
The count information shows the number of bytes remaining
to be transmitted at the time of sampling. If the R field of
the TIO instruction is an even value and not 0, the

condition code is set, register R + 1 is loaded as shown
above, and register R is loaded as follows:

The current command doubleword address has the same interpretation as for the instruction 510.

The count information shows the number of bytes remaining
to be transmitted in the current operation at the time of the
TDV instruction. If the value of the R field of TDV is an
even value and not 0, the condition code is set, register
R + 1 is loaded as shown above, and register R is loaded as
follows:

Affected: (R), (Ru1), CC1,CC2
Condition code settings:
2

o

3

4

Result of TIO

The current command doubl eword address has the same interpretation as for the instruction 510.
Affected: (R), (Ru 1), CC 1
Condition code settings:

0

I/O address recognized and acceptable
SIO is currently possible.

o

I/O address recognized but acceptable
SIO is not currentl y possible.

o

2

3

4

a a

I/O address recognized.

o

I/O address recognized and devicedependent condi ti on is present.

lOP address recognized but device controller either is attached to a "busy"
sel ector lOP that cannot return status at
this time or, for specific device controllers, is currently "busy" with another
device. No status information is returned
to general registers.

a

lOP address recognized but device controller either is attached to a "busy"
selector lOP that cannot return status at
this time or, for specific device controllers, is currently "busy" with another
device. No status information is returned
to general registers.

1/0 address not recogn i zed; no status information is returned to general registers.

I/O address not recognized; no status information is returned togeneral registers.

TDV

TEST DEVICE
(Word index alignment, privileged)

TEST DEVICE is used to provide information about a device
other than that obtainable by means of the TIO instruction.
The operation of the selected lOP, device controller, and
device is not affected, and no operations are initiated or
terminated. The responses to TDV provide the program with
information giving details on the condition of the selected
device, the number of bytes remaining to be transmitted to
or from memory in the current operation, and the present
point at which the lOP is operating in the command list.
If the R field of the TDV instruction is 0, or if CC 1 (as a
result of the execution of this instruction) is a 1, the condition code is set, but no general registers are affected.
If the R field of TDV is an odd value, the condition code
is set and the device status and byte count are loaded into
register R as follows:

Bit
Position Function

0-7

Unique to the device and device controller.

8-15

Same as for bits 8-15 of the status information for
instruction 510.

Result of TDV

AIO

ACKNOWLEDGE INPUT/OUTPUT INTERRUPT
0/Vord index al ignment, privi leged)

AIO is used to acknowledge an input/output interrupt and to
identify what I/O unit is causing the interrupt and why. Bits
21,22, and 23 of the effective virtual address of the AIO instruction (the 10 P portion of the I/o sel ection code field)
specify the type of interrupt being acknowl edged. These bits
should be coded 000 to specify the standard I/O system interrupt
acknowl edgement (other codi ngs of these bits are reserved for
use with special I/o systems). The remainder ofthe I/o seIection code field (bit positions 24-31) has no other use in the
standard I/o interrupt acknowledgement because the identificationoftheinterruptsourceis one of the responses of the
standard I/o system to the AIO instruction.
Standard I/O system interrupts can be initiated for the following conditions:

Condition

Interrupt t
prerequi si te

Status
bit set

Zero byte count

IZC= 1

10

Channel end

ICE = 1

11

t rzc , ICE, IUE, HTE, and SIL refer to flag bits in the lOP
command doublewords (see Chapter 4).

Input/Output Instructions

87

Condition

Interrupt
.. t
prerequi Sl te

Status
bit set

Bit
Position Function

Transmission memory error

I UE = 1, HTE = 1

12

Incorrect length

I UE = 1, HTE = 1
and SIL=O

8, 12

8
(cont.)

Memory address error (lOP
memory error or lOP control error)

IUE= 1

12

Transmission data error

IUE = 1, HTE = 1

9, 12

Unusual end

IUE= 1

12

lOP halt

IUE= 1

12

When a device interrupt condition occurs, the lOP forwards
the request to the CPU interrupt system I/O interrupt level.
If this interrupt level is armed, enabled, and not inhibi ted
(see Chapter 2, II Control of the Interrupt System"), the CPU
eventually acknowledges the interrupt request and executes
the XPSD instruction in core memory location X'5C, which
leads to the execution of an AIO instruction.
For the purpose of acknowledging standard I/O interrupts,
the lOPs, device controllers, and devices are connected in
a preestablished priority sequence that is customer-assigned
and is independent of the physical locations of the portions
of the I/O system in a particular installation.

If the R field of the AIO instruction is 0 or if no device interrupt request is present, the condition code is set but the
general register is not affected. If the R field of AIO is
not 0, the condition code is set and register R is loaded
with the following information:

Bit
Position Function
0-7

Unique to the device and the device controller.

8

Incorrect length: if this bit is I, an incorrect
length condition has been signaled to the lOP
by the device controller during the previous
operation.

Incorrect I ength is suppressed as on error by
coding the SIL flag (0 1 in bit 38) of the command
doubleword. At the end of the execution of on
I/O command list, this status bit is 1 if on incorrect length condition occurred anywhere in the
command I ist, regardless of the coding of the SIL fI ago

9

Transmission data error: this bit is set to 1 if the
lOP or device controller has detected a parity error or data overrun in the transmitted information.

10

Zero byte count interrupt: if this bit is 1, the byte
count for the operation being performed by the interrupting device has been reduced to 0, and the
interrupt at zero byte count (IZC) flag in the command doubleword for the operation was coded with

a1.
11

Channel end interrupt: if this bit is 1, the device
controller has signaled channel end to the lOP,
and the interrupt at channel end (ICE) flag in the
command doubleword for the operation was coded
with a 1.

12

lOP unusual end interrupt: if this bit is 1, the lOP
has originated the interrupt as a result of a fault or
unusual condition reported by the device.

13-20

Reserved

21-31

I/O address: this field identifies the highestpriority devi ce requesting on interrupt. Bit positions 21-23 identify the lOP. If bit 24 is 0, bits
25-31 constitute a common device controller and
device code; if bit 24 is 1, bits 25-27 constitute
a device controller code and bits 28-31 identify a
device attached to that device controller.

The AIO instruction resets the interrupt request signal from
the highest priority I/O device requesting interrupt service
(i. e., the device identified above in bits 21-31).
Affected: (R), CC1, CC2
Condition code settings:
2

o
t IZC, ICE, IUE, HTE, and SIL refer to flag bits in the lOP
command doublewords (see Chapter 4).

88

Input/Output Instructions

o

0

3

4

Result of AIO
normal interrupt recognition.
unusual interrupt recognition.
no interrupt recognition.

4. INPUT jOUTPUT OPERATIONS
In a SIGMA 6 system, input/output operations are primari I y under control of one or more input/output processors
(lOPs). This allows the CPU to concentrate on program
execution, free from the time-consuming details of I/o operations. Any I/O events that require CPU intervention are
brought to its attenti on by means of the interrupt system.
In the following discussion, the terminology conventions
used are that the CPU executes instructions, the lOP executes commands, and the device controllers and/or I/O
devices execute orders. To illustrate, the CPU will execute the START INPUT/OUTPUT {SIO} instruction to initiate an I/O operation. During the course of an I/O operation, the lOP might issue a command called Control, to
transmi t a byte to a device controll er or I/O device that
interprets the byte as an order, such as Rewi nd.

The SIGMA 6 CPU plays a minor role in the execution
of an I/o operation. The CPU-executed program is responsible for creating and storing the command I ist (prepared
prior to the initiation of any I/O operation) and for supplying the lOP with a pointer to the first command in the I/O
command list. Most of the communication between the CPU
and the I/O system is carried out through memory.
The following is an example of the sequence of events that
occurs during an I/O operati on:

1.

A CPU-executed program writes a sequence of I/O
commands in core memory.

2.

TheCPU executes the instruction START INPUT/OUTPUT
and furnishes the lOP with an 11-bitl/Oaddress (dessignating the device to be started) and a 16-bit first
command address (designating the actual core memory
doubleword location where the first command for this
device is located). At this point, either the device is
started (if in the "ready" condition with no device interrupt pending) or an instruction rei ect occurs. The
CPU is informed by condition code settings as to which
of the two al ternatives has occurred. If the START I/O
instruction is accepted, the command counter portion
of the lOP register associated with the designated device.controller is loaded with the first command address.
Assuming that the SIO instruction is accepted, from this
time until the full sequence of I/o commands has been
executed, the moin program of the CPU need play no
role in the I/O operation-. At any time, however, it
mayobtain status information on the progress of the l/O
operation without interfering with the operation.

3.

The device is now in the "busy" condition. When the
device determines that it has the highest priority for
access to the lOP, it requests service from the lOP
with a service call. The lOP obtains the address of
the first command doubl eword of the I/O sequence
{from the command counter asssociated with this de-vice}. The lOP then fetches the I/O command
doubleword from core memory, loads the doubleword
into another register associated with the device, and
transmits the first order (extracted from the command
doubl eword) to the device.

4.

Each command counter contains the memory address of
the current I/O command in the sequence far its device. When the device requires further servicing, it
makes a request to the lOP, which then repeats a process similar to that of step 3.

5.

If a data transmi ssi on order has been sent to a device, control of the transmission residesin thedevice. Aseachcharacter is obtained by the I/Odevice, the lOP is signaled
that data is available. The lOP uses the information
stored in its own registers to control the information
interchange between the I/o device and the memory, on
either a word-by-word or character-by-character
basis, depending on the nature of the device.

SIGMA 6 lOPs operate independentl y after they have been
started by the central processor. They automatically pick
up a chain of one Of" more commands from core memory and
then execute these commands until the chain is completed.
The multiplexor input/output processor (MIOP), or MIOP
expansion option (wh ich includes confl iet-resolving circuitry
to permit it to share a memory bus), can simultaneously
operate up to 24 device controllers. Each device controller
is assigned its own channel and chain of I/o commands. The
seleetor input/output processor (SlOP) can handle any of up
to 32 high-speed device controllers at rates up to the full
speed of the core memory (one 32-bit word/cycle).
The flexible SIGMA 6 I/o structure permits both command
chaining (making possible multiple-record operations) and
data chaining (making possible scatter-read and gatherwrite operations) without intervening CPU control. Command chaining refers to the execution of a sequence of I/O
commands, under control of an lOP, on more than one
physical record. Thus, a new command must be issued for
each physical record even if the operation tobe performed
for a record is the same as that performed for the previous
record. Data chaining refers to the execution of a sequence
of I/O commands, under control of an lOP, that gather (or
scatter) information within one physical record from {or to}
more than one region of memory. Thus, a new command
must be issued for each portion of a physical record when
the data associated with that physical record appears {or is
to appear} in noncontiguous locations in memory. For
example, if information in specific columns of two cards in
a file are to be stored in specific regions of memory, the
I/o command I ist might appear as follows:

1.

Read card, store col umns 1-10, data cha in

2.

Store columns 11-60, data chain

3.

Store columns 61-80, command chain (end of data
chain)

4.

Read card, store col umns 1-40, data chain

5.

Store columns 41-80 {end of command chain, end of
data chain}

Input/Output Operations

89

I

6.

When all information exchanges called for by a single
I/o command doubl eword have been compl eted, the
lOP uses the command counter to obtain the next command doubl eword for execution. This process continues
until all such command doubl ewords associated with the
I/O sequence have been executed.

lOP COMMAND DOUBLEWORDS
All lOP command doublewords (except Transfer in Channel
and Stop) are assumed to be in the following format:

ORDER
Bit positions 0 through 7 of the command doubleword contain the I/O order for the device controller or device. The
I/o orders are shown below. t Bits represented by the letter',
"M" specify orders or special conditions to the device and
are unique for each type of device.
Bit positions

o 1 234 5 6 7

Order

MMMMM M 0
MMMMM Ml
MMMMM M 1
M M M M 0 1 0
MMMMl 1 0

Write
Read
Control
Sense
Read Backward

1

o
1

o
o

Write. The Write order causes the device controll er to initiate an output operation. Bytes are read in an ascending
sequence from the memory location specified by the memory
byte address field of the command doubl eword. The output
operation continues until thedevice signals "channel end",
or until the byte count is reduced to 0 and no further data
chaining is specified. Channel end occurs when the device
has received all information associated with the output operation, has completed all checks, and no longer requires
the use oflOPfacilities for the operation. Data chaining
is described on the following page.
Read. The Read order causes the device controller to initiate an input operation. Bytes are stored in core memory in
an ascending sequence, beginning at the location specified
by the memory byte address field of the command doubleword. The input operation continues until the device signals
channel end, or until the byte count is reduced to 0 and no
further data chaining is specified. Channel end occurs when
the device has transmitted all information associated with
the input operation and no longer requires the use of lOP
faci Ii ti es for the operati on.

tNot all I/o devices recbgnize all these orders. See the
particular XDS SIGMA peripheral reference manual for
orders appl icable to that device.

90

lOP Command Doublewords

Control. The Control order is used to initiatespecial operations by the device. For magnetic tape, it is used to issue
orders such as rewind, backspace record, backspace fi Ie,
etc. Most orders can be specified ':>y the M bits of the
Control order; however, if additional information is required for a particular operation (e.g., the starting address of a disk-seek), the memory byte address field of the
command doubleword specifies the starting address of the
bytes that are to be transmitted to the device controller for
the additional information. When all bytes necessary for
the operation have been transmitted, the device controller
signals channel end.
Sense. The Sense order causes the device to transmit one or
more bytes of information, describing its current state. The
bytes are stored in core memory in an ascending sequence,
beginning with the address specified by the memory byte address field ofthecommanddoubleword. The number of bytes
transmitted is a function of the device and the condition it
describes. The Sense order can be used to obtain the current sector address from a disk unit.
Read Backward. The Read Backward order (for devices that
can execute it) causes the device to be started in reverse,
and bytes to be transmitted to the lOP for storage into core
memory in a descending sequence, beginning at the location
specified by the memory byte address field of the command
doubleword. In all other respects, Read Backward is identical to Read, inc! uding reducing the byte count with each
byte transm itted.
The Transfer in Channel command doub leword is assumed to
be in the following format:

Transfer in Channel. The Transfer in Channel command is executedwithin the lOP, and it has no direct effect on any of
the I/o system el eme"ts externa I to the addressed lOP. The
primary purpose of Transfer in Channel is to perm it branching within the command list so that the lOP can, for example, repeatedly transmit the same set of information a number of times. When the lOP executes Transfer in Channel,
it loads the command counter for the device controller it is
currently servicing with the command doubleword address
field of the Transfer in Channel command, loads the new
command doubleword specified by this address into the lOP
registers associated with the device controller, and then
executes the new command. (Bit positions 0-3, and 32-63
of the command doubleword for Transfer in Channel are ignored.) Transfer in Channel thus allows a command list to
be broken into noncontiguous groups of commands. When
used in conjunction with command chaining, Transfer in
Channel facilitates the control of devices such as unbuffered
card punches or unbuffered line printers. The current flags
(see "Flags" below) are not al tered during th is command;
thus the type of chain ing called for in the previous command doubleword is retained until changed by a command
doubleword following Transfer in Channel.

For example, assume that it is desired to present the same
card image twelve times to an unbuffered card punch. The
punch counts the number of times that a record is presented
to it and, when twelve rows have been punched, it causes
the lOP to sk ip the command it would be executing next.
Thus, a command list for punching two cards might look
Iike the following example.
Location

A

Command

Punch row for card 1, command chain
Transfer in Channel to A

B

Punch row for card 2, command chain

primarily used to terminate a command chain for an
unbuffered device, as illustrated in the example given for
Transfer in Channel.

MEMORY

am

ADDRESS

For all I/O commands (except Transfer in Channel and
Stop), bit positions 13-31 of the command doubleword
provide for a 19-bit core memory byte address, designating the memory location for the next byte of data.
For the Write, Read, and Control orders, this field (as
stored in an lOP register) is incremented by 1 as each
byte is transmitted to the I/o operation; for the Read
Backward order, the field is decremented by 1 as each
byte is transmitted.

Transfer in Channel to B
Stop

The Transfer in Channel command a Iso can be used in conjunction with data chaining. As one example, consider a
si tuation often encountered in data acquisition appl ications,
where data is transmitted in extremely long, continuous
streams. In this case, the data can be stored alternately in
two or more buffer storage areas so that computer processing
can be carried out on the data in one buffer whileadditional
data is being input into the other buffer. The command list
for such an application might look like the following example.
Location

A

FlAGS
For all I/o commands (except Transfer in Channel and
Stop) bit positions 32-39 of the command doubleword
provide the lOP with eight flags that specify how to
handle chaining, error, and interrupt situations. The
functions of these flags are:
Bit
Position
32 (DC)

Data chain. If this flag is 1, data chaining is
called for when the current byte count is reduced
to o. The next command doub Ieword is fetched
and loaded into the lOP register associated with
the device controller, but the new order code is
not passed out to the device controller; thus, the
operation called for by the previous order is continued. (Except for Transfer in Channel, the
new command doubleword is used only to supply
a new memory address, a new count, and new
flags.) If the data chain flag is 0, no further
data chaining is called for. Channel end is initiated either by the device running out of information, or by the byte count being reduced to
O. At channel end, the device may accept a
new SIO instruction, providing that a device
interrupt is not pending as a result of coding the
IZC (bit 33), ICE (bit 35), or IUE (bit 37) flags,
and no fault condition exists.

33 (IZC)

Interrupt at zero byte count. If th is flag is 1,
the lOP requests an interrupt at location X'5C'
when the byte count of th is command doub leword (as stored in the lOP register) is reduced
to O. An Ala instruction executed after the
interrupt is acknowledged results in a 1 in bit
position 10 of register R, to indicate the reason
for the interrupt.

34(CC)

Command chain. If this flag is 1, command
chaining is called for when channel end occurs.
If the previous operation did not terminate with
an "unusual end" condition, the next command
doubleword is fetched and loaded into the lOP
register associated with the device controller,

Command

Read data, store in buffer 1, data chain
Store in buffer 2, data chain
Transfer in Channel to A

If the lOP encounters two successive Transfer in Channel
commands, this is considered an lOP control error, resulting in the lOP setting the lOP control error status bit and
issuing an "lOP halt" signal to the device controller. The
lOP then halts further servicing of this command list.
The Stop command doubleword is assumed to be in the following format:

Stop. The Stop command causes certain devices to stop,
generate a channel end condition, and also request an interrupt at location X'5C' if bit 0 in the Stop command is a
1. An Ala instruction executed after the interrupt is acknowledged results in a 1 in bit position 7 of register R, to
ind icate the reason for the interrupt. (Bit positions 32-39
of the command double~ord for Stop must be zero; bit positions 8-31 and 40-63 are ignored). The Stop command is

Function

lOP Command Doublewords

91

Bit
Position

Function

Bit
Position

and the new order code is passed out to the device controller. If the CC flag is 0, no further
command chaining is called for. If both data
chaining and command chaining are called for in
the same command doubleword, data chaining
occurs if the byte count is reduced to 0 before
channel end, and command chaining occurs if
the channel end occurs before the byte count is
reduced to O.
35 (ICE)

36 (HTE)

The HTE flag must be coded identically in every
command doubleword associated with the same·
physical record. Th is means that when data
chaining occurs, the HTE flag in the new lOP
command doubleword must be the same as the
HTE flag in the previous lOP command doubleword. This restriction applies to data chaining
only, and not to command chaining.

37 (IUE)

38 (SIL)

92

and the lOP performs as spucified by the HTE and
IUE flags. Incorrect length is caused by a channel
end condition occurring before the device controller has received a count-done signal from the lOP,
or is caused by the device controller rece ivi ng a
count-done signal before end of record; e. g. ,
count-done before 80 columns have been read
from a card. Normally, a count-done signal is
sent to the device controller by the 10 P to i ndi-I
cate that all data transfer associated with the current operation has been completed. The lOP is
capable of suppressing an error condition on incorrect length, since there are many situations in
which incorrect length is a legitimate condition
and not a true error.

Interrupt at channel end. If this flag is 1, the
lOP requests an interrupt at locationX'5C' when
channel end occurs for the operation being controlled by this command doubleword. An AIO
instruction executed after the interrupt is acknowledged results in a 1 in bit position 11 of the
status information, to indicate the reason for the
interrupt. If the ICE flag is 0, no interrupt is
requested.
Halt on transmission error. If this flag is 1, any
error condition (transmission data error, transmission memory error, incorrect length error)
detected in the device controller or lOP results
in halting the I/o operation being controlled by
this command doubleword. If the HTE flag is 0,
an error condi tion does not cause the I/o operation to halt, although the error conditions are
recorded in the lOP register and returned as
part of the status information for the instructions
510, HIO, and TIO.

Interrupt on unusua I end. If th is flag is 1, the
device controller requests an interrupt at location X'5C' to be triggered when an II un usuaI
end" condition is encountered. When an
"unusual end" condition is signaled to the lOP,
further servicing of the commands for that device
is suspended. An AIO instruct ion executed after
the interrupt is acknowledged results in a 1 in
bit position 12 of register R, (status information)
to indicate the reason for the interrupt. If the
IUE flag is 0, no interrupt is requested.
Suppress incorrect length. If th is flag is 1, an
incorrect length indication is not to be classified
as an errorby the lOP, although the lOP retains
the incorrect length indi cation and provides an
indicator (bit 8 of the status response for 510,
HIO, and TIO) t~ the program. If the SIL flag
is 0, an incorrect length is considered an error

lOP Command Doublewords

Function

The SIL flag must be coded identically in every
command doubleword associated with the same
physical record. This means that when data
chaining occurs, the 51L flag in -the new lOP
command doubleword must be the same as the SIL
flag in the previous lOP command doubleword.
This restriction applies to data chaining only,
and not to command chaining.
39 (S)

5kip. If this flag is 1, the input operation
(Read or Read Backward) controlled by this comm~nd doubleword continues normally, except
that no information is stored in memory. When
used in conjunction with data chaining, the skip
operation provides the capability for selective
reading of portions of a record.

If the 5 flag is 1 for an output (Write) operation,
the lOP does not access memory, but transmits
zeros as data instead (i. e., the 10 P transmits
the number of X'OO' bytes specified in the byte
count of the command doubleword). This allows
a program to punch a blank card (by usi ng the 5
bit and a Punch Binary order with a byte count
of 120) without requiring memory access for data.
If the 5 flag is 0, the I/O operation proceeds
normally.

am

COUNT

For all commands (except Transfer in Channel and Stop)
bit positions 48-63 of the command doubleword provide
for a 16-bi t count of the number of bytes to be transmitted in the I/O operation; thus, 1 to 65,536 bytes
(16,384 words) can be specified for transfer before command chaining or data chaining is required. This field
(as stored in an lOP register) is decremented for each
byte transmitted in the I/O operation; thus, it always
contains a count of the number of bytes to be transmitted
to and from memory, and this count is returned as part of
the response information for the instructions, 510, HIO,
TIO, and TDV. An initial byte count of 0 is interpreted
as 65,536 bytes.

5. OPERATOR CONTROLS
The standard SIGMA 6 system has a processor control panel
(PCP) mounted on one of the central processor cabinets.
This panel serves as an operator's control center.

CPU RESET/CLEAR
The CPU RESET/CLEAR switch is used to initialize the central processor. When this switch is pressed, the following
operations are performed:

PROCESSOR CONTROL PANEL
The processor control panel (see Figure 7) has two distinct
functional s'ections. The upper section (labeled MAINTENANCE SECTION) is reserved for maintenance controls and
indicators, and the lower section contains the controls and
indicators for the computer operator.

POWER
The POWER switch controls all AC p,ower to the central
processor and to all units under its direct control. The
POWER switch is unl ighted when the AC power is off, and
is lighted when AC power is on. The POWER switch is
always operative.

1.

All interrupt levels are reset to the disarmed and disabled state.

2.

The ALARM, WRITE KEY, INTRPT INHIBIT, POINTER,
CONDITION CODE, FLOAT MODE, MODE, and
TRAP indicators are all reset to O's (turned off).

3.

The INSTRUCTION ADDRESS indicators are set to
X'25'.

4.

The DISPLAY indicators are set to X '02000000', which
is a LOAD CONDITIONS AND FLOATING CONTROLS IMMEDIATE (LCFI) with an R field of 0 to produce a "no operation" instruction.

- - - - - - - - - - - - - - - - - - - - - MAn.. 1[~A.'i(~ "S".fCTlQN - - - - - - - - -_ _ _ _ _ _ _ _ _ __

--M£MO~YfA;;'i.f--

••••••••

CDl CDl [XXX) tll

v

!::.
, - ,-.........,

'it
______

~tl~'_f

AI.>;;"';'~,

.-.... - . - . - -.. -... - - - - - -

'.

( t i J " I I i 1( XI X)[ XI I It XII )(' X, )[ II ,,, XXI)

Figure 8,

Processor Control Panel

Operator Controls

93

The C PU RESET/CLEAR switch does not affect any operations
that may be in process in the standard input/output system.
The CPU RESET/CLEAR switch is also used in conjucntion
with theSYS RESET/CLEAR switch to clear core memory
(Le., reset memory to all OIS). The two switches are interlocked so that both must be pressed simultaneously for the
memory clear operation to occur. The memory clear operation does not affect any general register - core memory
locations 0 through 15 are cleared instead. Also the clear
operation does not affect the memory control storage (write
locks). Note that pressing the SYS RESET/CLEAR switch
affects the I/O system and the MEMORY FAULT indicators.

3.

The PARITY ERROR MODE switch is in the CONT
(continue) position

4.

The CLOCK MODE switch is in the CONT (continuouilii
position

5.

All logic power margins are "normal"

If any of the above conditions is not satisfied, the NORMAL
MODE indicator is unlighted.

RUN
The RUN indicator is lighted when the COMPUTE switch is
in the RUN position and no halt condition exists.

I/O RESET
The I/O RESET switch is used to initialize the input/
output system. When the switch is pressed, all peripheral devices under control of the central processor are
reset to the "ready" condition, and all status, interrupt, and
control indicators in the input/output system are reset. The
I/o RESET switch does not affect any operations that may
be processed in the central processor.

LOAD
The LOAD switch initializes memory for an input operation
that uses the peripheral unit selected by the UNIT ADDRESS
switches. The detailed operation of the loading process is
described in the section "Loading Operation".

UNIT ADDRESS
The three UNIT ADDRESS switches are used to select the
peripheral unit to be used in the loading process. The left
switch has eight positions, numbered 0 through 7, designating an input/output processor. The center and right
switches each have 16 positions, numbered 0 through F
(hexadecimal) that designate a device controller/device
under the control of the lOP.

SYSTEM RESET/CLEAR
The SYS RESET/CLEAR switch is used to reset all controls
and indicators in the SIGMA6 system. Pressing this switch
causes the computer to perform all operations described for
the CPU RESET/CLEAR switch, perform all operations described for the I/O RESET switch, initialize the memory
control logic, and reset the MEMORY FAULT indicator.
The SYS RESET/CLEAR switch is also used in conjunction
with the CPU RESET/CLEAR switch to reset core memory
to OIS.

NORMAL MODE
The NORMAL MODE indicator is lighted when all the following conditions are satisfied:
1.

The WATCHDOG TIMER switch is in the NORMAL
position

2.

The INTERLEAVE SELECl switch is in the NORMAL
position

94

Processor Control Panel

WAIT
The WAIT indicator is I ighted when any of the following
halt conditions exist:

1.

The computer is executing a WAIT instruction.

2.

The program is stopped because of the ADDRESS STOP
switch.

3.

The computer is halted because of the PARITY ERROR
MODE switch.

INTERRUPT
The INTERRUPT switch is used by the operator to activate
the control panel interrupt. If the control panel interrupt
(level X I5DI) is armed when the INTERRUPT switch is
pressed, a single pulse is transmitted to the interrupt level,
advancing it to the waiting state. The INTERRUPT switch is
lighted when the control pone" interrupt level is in the
waiting state, and remains lighted until the interrupt level
advances to the active state (at which time the INTERRUPT
switch is turned off). If the control panel interrupt level
is disarmed (or already in the active state) when the INTERRUPT switch is pressed, no computer or control panel action
occurs. If the control panel interrupt level advances to the
waiting state and the level is disabled, the INTERRUPT
switch remains lighted until the level is either enabled and
allowed to advance to the active state or is returned to the
armed or disarmed state. The INTERRUPT switch is always
operative on the processor control panel.

PROGRAM STATUS DOUBLEWORD
Two rows of binary indicators are used to display the current program status doubleword (PSD). For the convenience
of use and display, the second portion of the PSD, labeled
PSW2, is arranged above the first portion, labeled PSW1.
The PSD display consists of the indicators shown in Table 9.

INSERT
The INSERT switch is used to make changes in the program
status doubleword. The switch is inactive in the center
position and is momentary in the upper (PSW2) and lower
(PSW1) positions. When the INSERT switch is moved to the

Table 9.

PSW2

PSW1

Program Status Doubleword Display

PSD
Des ignat ion

Indicator

Function

PSD Bit
Posiiton

WRITE KEY

Write key

34-35

WK

INTRPT INHIBIT
CTR
I/O
EXT

Interrupt i nhi bits
Counter interrupt group inhibit
Input/output interrupt group inhibit
External interrupts inhibit

37-39
37
38
39

CI, II, EI
CI

POINTER

Register block pointer

55-59

RP

CONDITION CODE

Condition code

0-3

CC

FLOAT MODE
SIG
ZERO
NRMZ

Floating-point mode controls
Significance trap mask
Zero trap mask
Norma I i ze mask

5-7
5
6
7

FS, FZ, FN
FS
FZ
FN

MODE
SLAVE
MAP

Machine state/memory map controls
Master/slave mode control
Memory map control

8-9
8
9

MS,MM
MS
MM

TRAP
DEC
ARITH

Arithmetic trap masks
Decimal arithmetic fault trap mask
Fixed-point arithmetic overflow trap mask

10, 11
10
11

DM, AM
DM
AM

INSTRUCTION I.DDRESS

Address of next instruction to be executed

15-31

IA

PSWl or PSW2 position, the corresponding indicators in the
program status doubleword are altered (or unchanged, according to current state of the 32 DATA switches below the
DISPLAY indicators).

2.

II

EI

Using the new value of the INSTRUCTION ADDRESS
indicators, the contents of the location pointed to by
the INSTRUCTION ADDRESS is displayed in the DISPLAY i nd i cators.

INSTR ADDR

ADDR STOP

The INSTR ADDR (instruction address) switch is inactive in
the center position; the upper position (HOLD) is latching
and the lower position (INCREMENT) is momentary. When
the switch is placed in the HOLD position, the normal process of incrementing the instruction address portion of the
program status doubleword with each instruction execution
in inhibited. If the COMPUTE switch is placed in the RUN
position while the INSTRADDR switch is at HOLD, the instruction in the location pointed to by the value of the INSTRUCTION ADDRESS indicators is executed, repeatedly,
with the INSTRUCTION ADDRESS indicators remaining unchanged. If the COMPUTE switch is moved to the STEP
position while the INSTR ADDR switch is at HOLD, the instruction is executed once each time the COMPUTE switch
is moved to STEP; the INSTRUCTION ADDRESS indicators
remain unchanged unless the instruction is LPSD, XPSD, or
a branch instruction with the branch condition satisfied.

The ADDR STOP (address stop) switch is used (with the
COMPUTE switch in the RUN position) to cause the central
processor to establ ish a halt condition and turn on the WAIT
indicator whenever the CPU accesses the memory location
whose address is equal to the SELECT ADDRESS value.

The foil owing operations are performed each time the
INSTR ADDR switch is moved from the center position to
the INCREMENT position:
1.

The current value of the INSTRUCTION ADDRESS
indicators is incremented by 1.

When the halt condition occurs, the instruction in the location pointed to by the INSTRUCTION ADDRESS indicators
appears in the DISPLAY indicators. The displayed instruc- .
tion is the one that would have been executed next, had
the halt condition not occurred. If the halt condition is
caused by an instruction access, the value of the INSTRUCTION ADDRESS indicators (at the time of the halt)
is equal to the SELECT ADDRESS value. If the halt condition is caused by execution of an instruction with an indirect reference address equal to the SELECT ADDRESS
value (i .e., by a direct address fetch), is caused by an instruction operand fetch, or is caused by an unsatisfi ed
conditional branch instruction whose effective address is
equal to the SELECT ADDRESS value, the value of the
INSTRUCTION ADDRESS indicators (at the time of the
halt) is 1 greater than the address of the instruction that
referenced the SELECT ADDRESS value.

Processor Control Pane I

95

If an interrupt or tr'::lp condi ti on is detected after the ADDRESS STOP halt condition is detected and before the CPU
reaches the normal ADDRESS STOP halt phase, the CPU
executes the instruction in the appropriate interrupt or trap
location and then enters the ADDRESS STOP halt phase. In
this case; the value of the INSTRUCTION ADDRESS indicators (at the time of the halt) is equal to the address of the
next instruction in logical sequence after the instruction in
the rnterrupt or trap location.
The ADDRESS STOP halt condition is reset when the COMPUTE switch is moved from RUN to IDLE; if the COMPUTE
switch is then moved back to RUN (or to STEP), the instructi on shown in the DISPLAY indicators is the next instruction
executed.

is latching in both the upper (1) and lower (0) positions. In
the center position, aDATAswitchrepresentsnochange, in
the upper or lower position it represents a 1 orO, respectively.
The single DATA switch is used to d,l)nge the state of the
DISPLAY indicators. The switch is inactive in the center
position and is momentary in the CLEAR and ENTER positions. When the switch is moved to the CLEAR position, all
the DISPLAY indicators are reset (turned off). When the
switch is moved to the ENTER position, the display indi cators are not affected in those positions corresponding to
DATA switches that are in the center position, but if a
DATA switch is in the 1 or position, that value is inserted into the correspondi ng i ndic ator.

°

SELECT ADDRESS
The SE LECT ADDRESS switches select the address at which
a program is to be hal ted (when used in conjunction with
the ADDR STOP switch), select the address of a location
to be altered (when used in conjunction with the STORE
swi tch), and sel ect the address of a word to be displayed
(when used in conjunction with the DISPLAY switch). Each
SELECT ADDRESS switch represents a 1 when it is in the
upper position, a'1d represents a
in the lower position.

°

STORE
The STORE switch is used to alter the contents of a general
register or a memory location. The switch is inactive in the
center position and is momentary in the INSTR ADDR and
SELECT ADDR positions. When the switch is moved to the
INSTR AD DR position, the current value of the DISPLAY indicators is stored in the location pointed toby the INSTRUCTION ADDRESS indicators; when the switch is moved tothe
SELECT ADDR position, the current value of the DISPLAY
indicators is stored in the location pointed to by the SELECT ADDRESS switches.

COMPUTE
The COMPUTE switch is used to control the execution of
instructions. The center position (IDLE) and the upper position (RUN) are both latching, and the lower position
(STEP) is momentary. When the COMPUTE switch is in the
IDLE position, all other control panel switches are operative
and the ADDRESS STOP halt and the WAIT instruction halt
conditions are reset (cleared). If the computer is in a halt
condition as a result of a memory parity error, moving the
COMPUTE switch to IDLE does not clear the memory parity
halt condition. This condition can be cleared only by pressing the SYS RESET/CLEAR switch.
When the COMPUTE switch is moved from IDLE to RUN,
the RUN indicator is lighted and the computer begins to
execute instructions (at machine speed) as follows
1.

The current setting of the DISPLAY indicators is taken
as the next instruction to be executed, regardl ess of
the contents of the location pointed to by the current
value of the INSTRUCTION ADDRESS indicators.

2.

The value of the INSTRUCTION ADDRESS indicators
is incremented by 1 unless the instruction in the DISPLAY indicators was LPSD, XPSD, or a branch instruction and the branch should occur (in which case the
INSTRUCTION ADDRESS indicators are set to the value
established by the LPSD, XPSD, or branch instruction).

3.

Instruction execution continues with the instruction in
the location pointed to by the new value of the INSTRUCTION ADDRESS indi cators.

DISPlAY
The DISPLAY switch is used to display the contents of a
general register or memory location. The switch is inactive
in the center position and is momentary in the INSTR ADDR
and SELECT ADDR positions. When the switch is moved to
the INSTR ADDR or SELECT ADDR position, the word in the
location pointed to by the indicators or switches, respectively, is loaded into the instruction register and displayed
with the DISPLAY indicators.
The 32 DISPLAY indicators are used to display a computer
word, when used together with the INSTR ADDR, STORE,
DISPLAY, and DATA switches. The DISPLAY indicators
represent the current contents of the internal CPU instructi on reg i ster.

When the COMPUTE switch is in the RUN position, the
only switches that are operative are the POWER switch, the
INTERRUPT switch, the ADDR STOP switch, the INSTR
ADDR switch (in the HOLD position), and the switches in
the maintenance section.
Each time the COMPUTE switch is moved from the IDLE to
the STEP position, the following operations occur:
1.

The current setting of the DISPLAY indicators is taken
as an instruction, and thesingle instruction is executed.

2.

The current value of the INSTRUCTION ADDRESS indicators is incremented by 1 unless the "stepped" instruction was LPSD, XPSD, or branch instruction and the
branch should occur (in which case the INSTRUCTION
ADDRESS indicators are set to the value establ ished by
the LPSD, X PSD, or branch i nstructi on).

DATA
The 32 DATA switches beneath the DISPLAY indicators are
u sed to al ter the contents of the program status doubl eword
(when used in conjunction wIth the INSERT switch) and to
alter the value of the DI.SPLAY indicators (when used in
conjunction with the single DATA switch). Each of the
32 DATA switches is inactive in the center position arld

96

Processor Control Panel

3.

The instruction in the location pointed to by the new
value of the INSTRUCTION ADDRESS indicator is
displayed in the DISPLAY indicators.

If an instruction is being stepped (executed by moving the
COMPUTE switch from IDLE to STEP), all interrupt levels
are temporarily inhibited while the instruction is being
executed; however, a trap condition can occur whi Ie the
instruction is being executed. In this case, the XPSD instruction in the appropriate trap location is executed as if
the COMPUTE switch were in the RUN position. Thus, if
a trap condition  ( ) + I $ *

%

XDS Standard 8-Bit Computer Codes (EBCDIC)
XDS Standard 7-Bit Communication Codes (ANSCII)

#

@

63-character set: same as above plus

I

?

--,
XDS Standard Symbol-Code Correspondences
89-character set: same as 63-character set plus
lowercase letters

Hexadecimal Arithmetic
Addition Table
Multiplication Table
Tab Ie of Powers of Si xteen 10
Table of Powers of Ten 16

2.

ANSCII
64-character set: uppercase letters, numerals, space,
and !
$ % &
()
* + ,
/ \
< >? @
[]

Hexadecimal-Decimal Integer Conversion Table

/'\.

#

Hexadec ima I-Dec ima I Fraction Conversion Table
95-character set: same as above plus lowercase letters
and { }

Table of Powers of Two
Mathematical Constants

CONTROL CODES
XDSSTANDARDSYMBOLSANDCODES
The symbol and code standards described in this publication
are opplicable to all XDS products, both hardware and software. They may be expanded or altered from time to time
to meet changing reqcirements.
The symbols Iisted here incl ude two types: graphic symbols
and control characters. Graphic symbols are displayable
and printable; control characters are not. Hybrids are SP,
the symbol for a blank space; and DEL, the delete code,
which is not considered a control command.
Three types of code are shown: (1) the 8-bit XDS Standard
Computer Code, i.e., the XDS Extended Binary-CodedDecima I Interchange Code (EBCDIC); (2) the 7-bit American
National Standard Code for Information Interchange (ANSCIl);
and (3) the XDS standard card code.

100

Appendix A

In addition to the standard character sets listed above, the
XDS symbol repertoire includes 37 control codes and the
hybrid code DEL (hybrid code SP is considered part of all
character sets). These are I isted in the table titled XDS
Standard Symbol-Code Correspondences.

SPECIAL CODE PROPERTIES
The following two properties of all XD S standard codes wi /I
be retained for future standard code extensions:
1.

All control codes, and only the control codes, have
their two high-order bits equal to "00". DEL is not
considered a control code.

2.

No two graphic EBCDIC codes have their seven loworder bi ts equa I.

XDS STANDARD 8-BIT CIIt1PUTER CODES (EBCDIC)
Most :;'1:1'" ,.. uno Digits
Hexadec imal

.~

1£5
I~

3

0

1

2

Binary

0000 0001

0

0000

NUL OLE

ds

I

0001

SOH DCl

ss

2

0010

STX

DC2

fs

3

0011

ETX

DC3

4

0100

EOT

DC4

5

0101

6

OliO

HT

4

3

SP

BEL

si

1000

IE~ ~AN

9

1001

ENQ EM

A

1010

INAK SUB

B

lOll

~ ~~ ~
~
~Z ~ ~
_1
S

C

1100

FF

FS

<

0

1101

CR

GS

(

)

E

1110

SO

RS

+

;

US

I2

F

1111

.

SI

ESC

,
%

.Z

B

C

lOll

D

1100 1101

E

F

1110 1111

~

~~~~

.

VT

NOTES:
A

1000 1001 1010

.:~ ;~;;'

I

9

8

~~~~

Iv>

]

-

/l,

r" .",

ETB

~ 8

7

~~ / ~
~~ ~~
~~ ~ ~
~~ ~~

NL

0111

6

0010 0011 0100 0101 OliO 0111

ACK SYN

7

5

0

j
k

b

s

\1

A

J

{ 1

B

K

S

2

C

l

T

3

1

I

t

d

m

u

[ 1

0

M

U

4

] 1

E

N

V

5

t

F

0

W

6

I

e

n

v

f

0

w

g

p

x

G

P

X

7

h

q

y

H

Q

Y

8

i

r

z

I

R

Z

9

~
~~~~

@

'{'" r", "" "'.'1.
1;,,, ,,,,,.....~:iiJ~e,d,~

Wi ~ ~ ~

,

?

"

I --.

I

,
=

The characters i 1 - . appear in the XDS
63- and 59-character EBCDIC sets but not
in either of the xes ANSCII-based sets.
However, XDS software translates the characters t
into ANSCII characters
as follows:

c

:

>

l []

The characters - \ {
are ANSCII
characters that do not appear in any of the
XDS EBCDIC-based character sets, though
they are shown in the EBCDIC table.

~~~~
~~~~
~~~

,

ANSCII

EBCDIC

\ (6-0)
: (7-12)
-

(7-14)

The EBCDIC control codes in columns 0
and I and their binary representation are
exactly the some os those in the ANSCII
table, except for two interchanges: LF/NL
with NAK, and HT with ENQ.
Characters enclosed in heavy lines are
included only in the XDS standard 63and 59-character EBCDIC sets.
These characters are included only in the
XDS standard 89-chorocter EBCDIC set.

XDS STANDARD 7-81T COMMUNICATION CODES (ANSCII) 1
Most Significant Digits
Decimal
rows)
(col's.)-

I

2

1

Binary

0

0000

NUL DLE

SP

I

0001

SOH DCI

!

2

0010

STX

DC2

II

3

0011

ETX

4

3

4

7

6

5

1 Most significant bit, added for 8-bit format, is either 0 or even parity.

xOOO xOOI xOIO xOll xlOO xlOI xll0 xiii

5

0

@

P

,

I

A

Q

a

q

Columns 0-1 are control codes.

P

Columns 2-5 correspond to the XDS 64-character ANSCII set.
Columns 2-7 correspond to the XDS 95-character ANSCII set.

2

B

R

b

r

DC3

,

3

C

S

c

s

0100

EOT DC4

S

4

0

T

d

t

is

5

0101

ENQ NAK

%

5

E

U

e

u

is

6

0110

ACK SYN

/l,

6

F

V

f

v

7

G

W

g

w

'0.

0
C
0
~

1

0

4

On many current teletypes, the symbol
is

(5-14)
(5-15)
ESC or ALTMODE control (7-14)

and none of the symbols appearing in columns 6-7 are provided. Except for the three
symbol differences noted above, therefore, such teletypes provide all the characters in
the XDS 64-character ANSCII set. (The XDS 7015 Remote Keyboard Printe( provides the
64-character ANSCII set also, but prints ..... as /I .)

7

0111

BEL

ETB

.

'c01 8

1000

BS

CAN

(

8

H

X

h

X

S

9

1001

HT

EM

)

I

Y

i

Y

(2-1)

1010

LF
NL

is

10

SUB

.

9
:

J

Z

j

z

is

(5-11)

11

1011

VT

ESC

+

;

K

[ 5

k

{

is

(5-13)

is

(5-14)

v;

~

12

1100

FF

FS

,

13

1101

CR

GS

-

14

1110

SO

RS

15

1111

SI

US

'---"

/

On the XDS 7670 Remote Batch Terminal, the symbol

<

L

\

I

I
I

=

M

] 5

m

l

>

N

n

-

?

0

0

DEL

4 ..... 5

-

4

4

and none of the symbols appearing in columns 6-7 are provided. Except for the four symbol
differences noted above, therefore, this terminal provides all the characters in the XDS 64character ANSCII set.

,

~ndix

A

101

XDS STANDARD SYMBOL -CODE CORRESPONDENCES
EBCDICt
Hex. Dec.
00
01
02
03
04
05
06
07
08
09
OA
OB
OC
00
OE
OF

0
1
2
3
4
5
6

Symbol

Card Code

Meaning

Remarks
00 through 23 and 2F are control codes.

8
9
10
11
12
13
14
15

NUL
SOH
STX
ETX
EOT
HT
ACK
BEL
B50rEOM
ENQ
NAK
VT
FF
CR
50
51

12-0-9-8-1
12-9-1
12-9-2
12-9-3
12-9-4
12-9-5
12-9-6
12-9-7
12-9-8
12-9-8-1
12-9-8-2
12-9-8-3
12-9-8-4
12-9-8-5
12-9-8-6
12-9-8-7

0-0
0-1
0-2
0-3
0-4
0-9
0-6
0-7
0-8
0-5
1-5
O-Ii
0-12
0-13
0-14
0-15

null
start of header
start of te~d
end of t~t
end of transmission
hori zontGJ tab
acknowledge (positive)
bell
backspace or end of message
enquiry
negative acknowledge
vertical tab
form feed
carriage return
shift out
shift in

10
11
12
13
14
15
16
17
18
19
lA
1B
1C
10
1E
IF

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

DlE
DCl
DC2
DC3
DC4
IF or Nl
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US

12-11-9-8-1
11-9-1
11-9-2
11-9-3
11-9-4
11-9-5
11-9-6
11-9-7
11-9-8
11-9-8-1
11-9-8-2
11-9-8-3
11-9-8-4
11-9-8-5
11-9-8-6
11-9-8-7

1-0
1-1
1-2
1-3
1-4
0-10
1-6
1-7
1-8
1-9
1-10
1-11
1-12
1-13
1-14
1-15

data link escape
device control 1
devi ce control 2
device control 3
device control 4
line feed or new line
sync
end of transmission block
cancel
end of medium
substitute
escape
fi Ie separator
group separator
record separator
unit separator

20
21
22
23
24
25
26
27
28
29
2A
2B
2C
20
2E
2F

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

7

ds
ss
fs
si

11-0-9-8-1
0-9-1
0-9-2
0-9-3
0-9-4
0-9-5
0-9-6
0-9-7
0-9-8
0-9-8-1
0-9-8-2
0-9-8-3
0-9-8-4
0-9-8-5
0-9-8-6
0-9-8-7
12-11-0-9-8-1
9-1
9-2
9-3
9-4
9-5
9-6
9-7
9-8
9-8-1
9-8-2
9-8-3
9-8-4
9-8-5
9-8-6
9-8-7

tHexadecimal and dec"imal notation.
tt Decimal

102

AN scutt

notation (column-row).

Appendix A

digit selector
significance start
field separation
immediate significance start

EOM is used only onXD5 Keyboord/
Printers Models 7012, 7020, 8091,
and 8092.

Replaces characters with parity error.

20 through 23 are used with
Sigma EDIT BYTE STRING (EBS)
instruction - not input/output control codes.
24 through 2E are unassigned.

30 through 3F are unassigned.

XDS STANDARD SYMBOL-CODE CORRESPONDENCES (cont.)
E8CDICt
Hex. Dec.
40
41
42
43
44
45
46
47
48
49
4A
48
4C
4D
4E
4F

64
65
66
67
68
69
70
71
72
73
74
75
76

50
51
52
53
54
55
56
57
58
59
SA
58
5C
5D
5E
5F

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

60
61
62
63
64
65
66
67
68
69
6A
68

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
III

6C
6D
6E
6F
70
71
72
73
74
75
76
77

78
79
7A
78
7C
7D
7E
7F

77

78
79

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

Symbol

Card Code

ANSClI

SP

blank
12-0-9-1
12-0-9-2
12-0-9-3
12-0-9-4
12-0-9-5
12-0-9-6
12-0-9-7
12-0-9-8
12-8-1
12-8-2
12-8-3
12-8-4
12-8-5
12-8-6
12-8-7

2-0

i

or '

<
(
+

I or

I
I

8.

!
$

*
)
;

- or -,

/

......

,
%

-

>
?

II
@
I

=

"

Meaning

Remarks

blank
41 through 49 wi II not be assigned.

12
12-11-9-1
12-11-9-2
12-11-9-3
12-11-9-4
12-11-9-5
12-11-9-6
12-11-9-7
12-11-9-8
11-8-1
".1-8-2
11-8-3
11-8-4
11-8-5
11-8-6
11-8-7

6-0
2-14
3-12
2-8
2-11
7-12

cent or accent grave
period
less than
left parenthesis
plus
vertical bar or broken bar

2-6

ampersand

Accent grove used for left single
quote. On model 7670, \ not
available, and i:: ANSCII 5-11.

On Model 7670, : not available,
and I :: ANSCII 2-1.
51 through 59 will not be assigned.

11
0-1
11-0-9-2
11-0-9-3
11-0-9-4
11-0-9-5
11-0-9-6
11-0-9-7
11-0-9-8
0-8-1
12-11
0-8-3
0-8-4
0-8-5
0-8-6
0-8-7
12-11-0
12-11-0-9-1
12-11-0-9-2
12-11-0-9-3
12-11-0-9-4
12-11-0-9-5
12-11-0-9-6
12-11-0-9-7
12-11-0-9-8
8-1
8-2
8-3
8-4
8-5
8-6
8-7

tt

2-1
2-4
2-10
2-9
3-11
7-14

exclamation point
dollars
asterisk
right parenthesis
semicolon
tilde or logical not

2-13
2-15

minus, dash, hyphen
slosh

On Model 7670, ! is I.

On Model 7670, - is not available,
and -. :: ANSCII 5-14.

62 through 69 wi II not be assigned.

5-14
2-12
2-5
5-15
3-14
3-15

circumflex
comma
percent
underline
greater than
question mark

On Model 7670 ~ is""'.
7015 ...... is " (caret).

On Model

Underline is sometimes called "break
character"; may be printed along
bottom of character line.
70 through 79 wi II not be assigned.

I

3-10
2-3
4-0
2-7
3-13
2-2

colon
number
at
apostrophe (right single quote)
equals
quotation mark

tHexadecimal and decimal notation.
ttDecimal notation (c.,fumn-row).

Appendix A

103

XDS STANDARD SYMBOL-CODE CORRESPONDENCES (cont.)
EBCDIC t
Hex. Dec.
80
81
82
83
84
85
86
87
88
89
8A
88
8C
80
8E
8F

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143

90
91
92
93
94
95
96
97
98
99
9A
98
90
9E
9F

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

AO
Al
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

BO
Bl
B2
B3
B4
B5
B6
B7
B8
89
BA
BB
BC
BD
8E
BF

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191

9C

Symbol

a
b
c
d
e
f
g
h
i

j

k
I
~

n
0

p
q

r

s
t
u
v
w
x

y
z

\

t

J

[
]

Card Code
12-0-8-1
12-0-1
12-0-2
12-0-3
12-0-4
12-0-5
12-0-6
12-0-7
12-0-8
12-0-9
12-0-8-2
12-0-8-3
12-0-8-4
12-0-8-5
12-0-8-6
12-0-8-7
12-11-8-1
12-11-1
12-11-2
12-11-3
12-11-4
12-11-5
12-11-6
12-11-7
12-11-8
12-11-9
12-11-8-2
12-11-8-3
12-11-8-4
12-11-8-5
12-11-8-6
12-11-8-7
11-0-8-1
11-0-1
11-0-2
11-0-3
11-0-4
11-0-5
11-0-6
11-0-7
11-0-8
11-0-9
11-0-8-2
11-0-8-3
11-0-8-4
11-0-8-5
11-0-8-6
11-0-8-7
12-11-0-8-1
12-11-0-1
12-11-0-2
12-11-0-3
12-11-0-4
12-11-0-5
12-11-0-6
12-11-0-7
12-11-0-8
12-11-0-9
12-11-0-8-2
12-11 -0-8-3
12-11-0-8-4
12-11-0-8-5
12-11-0-8-6
12-11-0-8-7

tHexadecimal and deci.mal notation.
ttDecimal notation (column-row).

104

Appendi X A

ANSCU

tt

Meaning

Remarks
80 is unassigned.
81-89, 91-99, A2-A9 comprise the
lowercase alphabet. Available
only in XDS standard 89- and 95character sets.

6-1
6-2
6-3
6-4
6-5
6-6
6-7
6-8
6-9

8A through 90 are unassigned.

6-10
6-11
6-12
6-13
6-14
6-15
7-0
7-1
7-2
9A through AI are unassigned.

7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
AA through

5-12
7-11
7-13
5-11
5-13

backslash
left brace
right brace
left bracket
right bracket

eo are

unassigned.

On Model 7670, ~ is i.
On Model 7670, is!.
B6 through SF are unassigned.

XDS STANDARD SYMBOL-CODE CORRESPONDENCES (cont.)
EBCDICt
Hex. Dec.
192
CO
193
Cl
194
C2
195
C3
196
C4
197
C5
198
C6
199
C7
200
C8
201
C9
CA 202
203
CB
204
CC
CD 205
206
CE
207
CF
DO
Dl
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

EO
El
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF

224
225
226
227

FO
Fl
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD

240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

FE

FF

2L8

229
230
231
232
233
234
235
236
237
238
239

Symbol

A
B
C
D
E
F
G

H
I

J

K
L

M
N
0
P
Q

R

S

T
U

V
W

X
Y

Z

0
1
2
3
4
5
6
7
8
9

DEL

Card Code
12-0
12-1
12-2
12-3
12-4
12-5
12-6
12-7
12-8
12-9
12-0-9-8-2
12-0-9-8-3
12-0-9-8-4
12-0-9-8-5
12-0-9-8-6
12-0-9-8-7
11-0
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
12-11-9-8-2
12-11-9-8-3
12-11-9-8-4
12-11-9-8-5
12-11-9-8-6
12-11-9-8-7
0-8-2
11-0-9-1
0-2
0-3
0-4
0-5
0-6
0-7
0-8
0-9
11-0-9-8-2
11-0-9-8-3
11-0-9-8-4
11-0-9-8-5
11-0-9-8-6
11-0-9-8-7
0
1
2
3
4
5
6
7
8
9
12-11-0-9-8-2
12-11-0-9-8-3
12-11-0-9-8-4
12-11-0-9-8-5
12-11-0-9-8-6
12-11-0-9-8-7

ANScn tt

Meaning

Remarks
CO is unassigned.
Cl-C9, DI -D9, E2-E9 comprise the
uppercase alphabet.

4-1
4-2
4-3
4-4
4-5
4-6
4-7
4-8
4-9

CA through CF will not be assigned.

DO is unassigned.
4-10
4-11
4-12
4-13
4-14
4-15
5-0
5-1
5-2
DA through DF will not be assigned.

EO, E1 are unassigned.
5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
EA through EF will not be assigned.

3-0
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9

FA through FE will not be assigned.

delete

Special - neither graphic nor control symbol.

tHexadecimal and decimal notation.
ttDecimal notation (c~lumn-row).

Appendi X A

105

HEXADECIMAL ARITHMETIC
ADDITION TABLE

0

1

2

3

4

5

6

7

8

9

A

B

C

0

E

F

1

02

03

04

05

06

07

08

09

OA

OS

DC

00

OE

OF

10

2

03

04

05

06

07

08

09

OA

OB

DC

00

OE

OF

10

11

3

04

05

06

07

08

09

OA

OB

DC

00

OE

OF

10

11

12

4

05

06

07

08

09

OA

OB

DC

00

OE

OF

10

11

12

13

5

06

07

08

09

OA

OB

DC

00

OE

OF

10

11

12

13

14

6

07

08

09

OA

OB

DC

00

OE

OF

10

11

12

13

14

15

7

08

09

OA

OB

DC

00

OE

OF

10

11

12

13

14

15

16

8

09

OA

OB

OC

00

OE

OF

10

11

12

13

14

15

16

17

9

OA

OB

DC

OD

OE

OF

10

11

12

13

14

15

16

17

18

A

OB

DC

00

OE

OF

10

11

12

13

14

15

16

17

18

19

B

OC

00

OE

OF

10

11

12

13

14

15

16

17

18

19

1A

C

00

OE

OF

10

11

12

13

14

15

16

17

18

19

1A

1B

0

OE

OF

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

E

OF

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

10

F

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

10

1E

MULTIPLICATION TABLE

106

1

2

3

4

5

6

7

8

9

A

B

C

0

E

F

2

04

06

08

OA

DC

OE

10

12

14

16

18

1A

1C

1E

3

06

09

DC

OF

12

15

18

1B

1E

21

24

27

2A

2D

4

08

OC

10

14

18

1C

20

24

28

2C

30

34

38

3C

5

OA

OF

14

19

1E

23

28

20

32

37

3C

41

46

4B

6

OC

12

18

1E

24

2A

30

36

3C

42

48

4E

54

5A

7

OE

15

1C

23

2A

31

38

3F

46

4D

54

5B

62

69

8

10

18

20

28

30

38

40

48

50

58

60

68

70

78

9

12

1B

24

20

36

3F

48

51

5A

63

6C

75

7E

87

A

14

1E

28

32

3C

46

50

5A

64

6E

78

82

8C

96

B

16

21

2C

37

42

4D

58

63

6E

79

84

8F

9A

A5

C

18

24

30

3C

48

54

60

6C

78

84

90

9C

A8

B4

D

1A

27

34

41

4E

5B

68

75

82

8F

9C

A9

B6

C3

E

1C

38

46

54

62

70

7E

8C

9A

A8

B6

C4

02

F

1E

2A
20 .

3C

4B

5A

69

78

87

96

A5

B4

C3

D2

E1

Appendix A

TABLE OF POWERS OF SIXTEEN II
n

o
16

0.10000 00000 00000 00000 x

10

0.62500 00000 00000 00000 x

10-

10- 2
10- 3

256

2

0.39062 50000 00000 00000

x

4 096

3

0.24414 06250 00000 00000

x

65 536

4

0.15258 78906 25000 00000

x

1 048 576

5

0.95367 43164 06250 00000

x

16 777 216

6

0.59604 64477 53906 25000 x

10-

268 435 456

7

0.37252 90298 46191

40625

x

4 294 967 296

8

0.23283 06436 53869 62891

x

68 719 476 736

9

0.14551

91522 83668 51807

x
x

10- 8
9
1010
1012
1013
1014
1015
1016
1018
10-

1 099 511

627 776

10

0.90949 47017 72928 23792

186 044 416

11

0.56843 41886 08080

474 976 710 656

12

0.35527

4 503 599 627 370 496

13

0.22204 46049 25031

72 057 594 037 927 936

14

0.13877 78780 78144 56755 x

15

0.86736

17 592
281

1 152 921

1

504 606 846 976

14870 x

13678 80050 09294 x
30808

17379 88403 54721

x

x

10- 4
10- 6
7

TABLE OF POWERS OF TEN 16

o
A

1.0000

0000

0000

0000

0.1999

9999

9999

999A

64

2

0.28F5

C28F

5C28

F5C3

x

3E8

3

0.4189

374B

C6A7

EF9E

x

16- 1
16- 2

2710

4

0.680B

8BAC

710C

B296

x

16- 3

86AO

5

0.A7C5

AC47

1B47

8423

x

16- 4

F

4240

6

0.10C6

F7 AO

B5E 0

8037

x

16- 4

98

9680

7

0.1 A07

F 29 A

BCAF

4858

x

5F5

E100

8

0.2AF3

1 DC4

61 1 8

73BF

x

3B9A

CAOO

9

0.44B8

2FAO

9B5A

52CC

x

2

540B

E400

10

0.6 OF 3

7F67

5EF6

EAOF

x

16- 7
16- 8

17

4876

E800

11

O.AFE B

F FOB

CB24

AAFF

x

16- 9

E8

D4A5

1000

12

0.1197

9981

2DEA

1 119

x

918

4E72

AOOO

13

0.lC25

C268

4976

81C2

x

5AF3

107A

4000

14

0.2009

370 D

4257

3604

x

3

807E

A4C6

8000

15

0.480E

BE7B

9D58

566D

x

23

86F2

6FC1

0000

16

0.734A

CA5 F

6226

FOAE

x

163

4578

5 D8A

0000

17

0.B877

AA32

36A4

B449

x

DEO

B6B3

A764

0000

18

0.1272

5 DD1

D243

ABA1

x

8AC7

2304

89E8

0000

19

0.1083

C94F

B6D2

AC35

x

16- 5
16-6

16- 9
16- 10
16 -11
16- 12
16- 13
16- 14
16- 14
16- 15

Appendix A

107

HEXADECIMAL-DECIMAL INTEGER CONVERSION TABLE
The table below provides for direct conversions between hexadecimal integers in the range O-FFF and decimal integers in
the range 0-4095. For conversion of larger integers, the
table values may be added to the following figures:
Hexadecimal

Decimal

Hexadecima I

Decimal

01000
02 000
03 000
04 000
05 000
06 000
07 000
08 000
09 000
OA 000
OB 000
OC 000
00000
OE 000
OF 000
10 000
11000
12000
13000
14000
15 000
16000
17 000
18000
19000
lA 000
lB 000
lC 000
10000
IE 000
IF 000

4 096
8 192
12 288
16 384
20480
24576
28672
32768
36864
40960
45056
49 152
53 248
57344
61440
65536
69632
73728
77 824
81 920
86 016
90 112
94208
98304
102400
106496
110 592
114688
118784
122 880
126 976

20000
30000
40000
50000
60000
70000
80000
90000
AO 000
BO 000
CO 000
DO 000
EO 000
FO 000
100000
200000
300000
400000
500000
600 000
700000
800 000
900 000
AOO 000
BOO 000
COO 000
000 000
EOO 000
FOO 000
1 000 000
2000 000

131072
196608
262 144
327680
393 216
458752
524 288
589824
655 360
720896
786 432
851 968
917 504
983040
1 048576
2 097 152
3 145 728
4 194304
5 242 880
6 291 456
7 340 032
8388608
9437 184
10485 760
11 534 336
12582912
13631 488
14680064
15728640
16777 216
33554432

Hexadecimal fractions may be converted to decimal fractions
as follows:

1.

Express the hexadecimal fraction as an integer times
16-n, where n is the number of significant hexadecimal
places to the right of the hexadecimal point.
O. CA9BF3 16 = CA9 BF3 16 x 16-6

2.

Find the decimal equivalent of the hexadecimal integer
CA9 BF3

3.

16

= 13 278 195

10

Multiply the decimal equivalent by 16-n
13 278 195
x 596 046 448 x 10- 16
0.791 442096
10

Decimal fractions may be converted to hexadecimal fractions
by successively multiplying the dec imal fraction by 16 ,
10
After each multiplication, the integer portion is removea to
form a hexadecimal fraction by bui Iding to the right of the
hexadecimal point. However, since decimal arithmetic is
used in this conversion, the integer portion of each product
must be converted to hexadecimal numbers.
Example: Convert 0.895lD to its hexadecimal equivalent
0.895
16
------@.320
~

,.-----@.120

~

Z

0.E51 E ..
·----@.720
16

0

1

2

3

4

5

6

7

8

9

A

B

C

0

E

F

000
010
020
030

0000
0016
0032
0048

0001
0017
0033
0049

0002
0018
0034
0050

0003
0019
0035
0051

0004
0020
0036
0052

0005
0021
0037
0053

0006
0022
0038
0054

0007
0023
0039
0055

0008
0024
0040
0056

0009
0025
0041
0057

0010
0026
0042
0058

0011
0027
0043
0059

0012
0028
0044
0060

0013
0029
0045
0061

0014
0030
0046
0062

0015
0031
0047
0063

040
050
060
070

0064
0080
0096
0112

0065
0081
0097
0113

0066
0082
0098
0114

0067
0083
0099
0115

0068
0084
0100
0116

0069
0085
OlDl
0117

0070
0086
0102
0118

0071
0087
0103
0119

0072
0088
0104
0120

0073
0089
0105
0121

0074
0090
0106
0122

0075
0091
OlD7
0123

0076
0092
0108
0124

0077
0093
0109
0125

0078
0094
0110
0126

0079
0095
0111
0127

080
090
OAO
OBO

0128
0144
0160
0176

0129
0145
0161
0177

0130
0146
0162
0178

0131
0147
0163
0179

0132
0148
0164
0180

0133
0149
0165
0181

0134
0150
0166
0182

0135
0151
0167
0183

0136
0152
0168
0184

0137
0153
0169
0185

0138
0154
0170
0186

0139
0155
0171
0187

0140
0156
0172
0188

0141
0157
0173
0189

0142
0158
0174
0190

0143
0159
0175
0191

OCO
000
OEO
OFO

0192
0208
0224
0240

0193
0209
0225
0241

0194
0210
0226,
0242

0195
0211
0227
0243

0196
0212
0228
0244

0197
0213
0229
0245

0198
0214
0230
0246

0199
0215
0231
0247

0200
0216
0232
0248

0201
0217
0233
0249

0202
0218
0234
0250

0203
0219
0235
0251

0204
0220
0236
0252

0205
0221
0237
0253

0206
0222
0238
0254

0207
0223
0239
0255

108

Appendi x A

HEXADECIMAL-DECIMAL INTEGER CONVERSION TABLE (cont.)

0

1

2

A

D

F

3

4

5

6

7

8

9

0259
0275
0291
0307

0260
0276
0292
0308

0261
0277
0293
0309

0262
0278
0294
0310

0263
0279
0295
0311

0264
0280
0296
0312

0265
0281
0297
0313

0266 0267
0282 0283
0298 0299
0314 0315

0268
0284
0300
0316

0269 0270
0285 0286
0301 0302
0317 0318

0324 0325
0340 0341
0356 0357
0372 0373

0326
0342
0358
0374

0327
0343
0359
0375

0328
0344
0360
0376

0329
0345
0361
0377

0330 0331
0346 0347
0362 0363
0378 0379

0332
0348
0364
0380

0333 0334 0335
0349 0350 0351
0365 0366 0367
0381 0382 0383

B

C

E

100
110
120
130

0256 0257 0258
0272 0273 0274
0288 0289 0290
0304 0305 0306

140
150
160
170

0320
0336
0352
0368

0321
0337
0353
0369

0322 0323
0338 0339
0354 0355
0370 0371

180
190
lAO
lBO

0384
0400
0416
0432

0385
0401
0417
0433

0386
0402
0418
0434

0387
0403
0419
0435

0388
0404
0420
0436

0389
0405
0421
0437

0390
0406
0422
0438

0391
0407
0423
0439

0392
0408
0424
0440

0393
0409
0425
0441

0394
0410
0426
0442

0395
0411
0427
0443

0396 0397
0412 0413
0428 0429
0444 0445

0398
0414
0430
0446

0399
0415
0431
0447

lCO
lDO
lEO
lFO

0448
0464
0480
0496

0449
0465
0481
0497

0450
0466
0482
0498

0451
0467
0483
0499

0452
0468
0484
0500

0453
0469
0485
0501

0454
0470
0486
0502

0455
0471
0487
0503

0456
0472
0488
0504

0457
0473
0489
0505

0458
0474
0490
0506

0459
0475
0491
0507

0460
0476
0492
0508

0461
0477
0493
0509

0462
0478
0494
0510

0463
0479
0495
0511

200
210
220
230

0512
0528
0544
0560

0513
0529
0545
0561

0514 0515
0530 J531
0546 0547
0562 0563

0516 0517 0518
0532 0533 0534
0548 0549 0550
0564 0565 0566

0519
0535
0551
0567

0520
0536
0552
0568

0521
0537
0553
0569

0522
0538
0554
0570

0523
0539
0555
0571

0524
0540
0556
0572

0525 0526
0541 0542
0557 0558
0573 0574

0527
0543
0559
0575

240
250
260
270

0576
0592
0608
0624

0577
0593
0609
0625

0578
0594
0610
0626

0580 0581 0582 0583
0596 0597 0598 0599
0612 0613 0614 0615
0628 0629 0630 0631

0584
0600
0616
0632

0585
0601
0617
0633

0586 0587
0602 0603
0618 0619
0634 0635

0588
0604
0620
06,36

0589
0605
0621
0637

0590
0606
0622
0638

0591
0607
0623
0639

280
290
2AO
2BO

0640
0656
0672
0688

0641
0657
0673
0689

0642 0643
0658 0659
0674 0675
0690 0691

0655
0671
0687
0703

2CO
2DO
2EO
2FO

0704
0720
0736
0752

300
310
320
330

0579
0595
0611
0627

0271
0287
0303
0319

0645
0661
0677
0693

0646
0662
0678
0694

0647
0663
0679
0695

0648
0664
0680
0696

0649
0665
0681
0697

0650 0651
0666 0667
0682 0683
0698 0699

0652
0668
0684
0700

0653
0669
0685
0701

0654
0670
0686
0702

0705 0706 0707
0721 0722 0723
0737 0738 0739
0753 0754 0755

0708 0709
0724 0725
0740 0741
0756 0757

0710
0726
0742
0758

0711
0727
0743
0759

0712
0728
0744
0760

0713
0729
0745
0761

0714
0730
0746
0762

0715
0731
0747
0763

0716
0732
0748
0764

0717
0733
0749
0765

0718 0719
0734 0735
0750 0751
0766 0767

0768
0784
0800
0816

0769
0785
0801
0817

0770
0786
0802
0818

0771
0787
0803
0819

0772 0773 0774
0788 0789 0790
0804 0805 0806
0820 0821 0822

0775
0791
0807
0823

0776
0792
0808
0824

0777
0793
0809
0825

0778
0794
0810
0826

0779
0795
0811
0827

0780
0796
0812
0828

0781
0797
0813
0829

0782
0798
0814
0830

0783
0799
0815
0831

340
350
360
370

0832
0848
0864
0880

0833
0849
0865
0881

0834
0850
0866
0882

0835
0851
0867
0883

0836 0837 0838 0839
0852 0853 0854 0855
0868 0869 0870 0871
0884 0885 0886 0887

0840
0856
0872
0888

0841
0857
0873
0889

0842
0858
0874
0890

0843
0859
0875
0891

0844
0860
0876
0892

0845
0861
0877
0893

0846
0862
0878
0894

0847
0863
0879
0895

380
390
3AO
3BO

0896
0912
0928
0944

0897
0913
0929
0945

0898
0914
0930
0946

0899
0915
0931
0947

0900
0916
0932
0948

0904
0920
0936
0952

0905
0921
0937
0953

0906 0907
0922 0923
0938 0939
0954 0955

0908
0924
0940
0956

0909
0925
0941
0957

0910
0926
0942
0958

0911
0927
0943
0959

3CO
3DO
3EO
3FO

0960 0961 0962 0963
0976 0977 0978 0979
0992 0993 0994 0995
1008 1009 IJIO 1011

0644
0660
0676
0692

0901
0917
0933
0949

0902
0918
0934
0950

0903
0919
0935
0951

0964 0965 0966 0967
0980 0981 0982 0983
0996 0997 0998 0999
1012 1013 1014 1015

0968 0969 0970 0971
0984 0985 0986 0987
1000 .1001 1002 1003
1016 1017 1018 1019

0972 0973 0974 0975
0988 0989 0990 0991
1004 1005 1006 1007
1020 1021 1022 1023

Appendi x A

109

HEXADECIMAL-DECIMAL INTEGER CONVERSION TABLE (cont.)

110

0

1

2

3

4

400
410
420
430

1024
1040
1056
1072

1025
1041
1057
1073

1026
1042
1058
1074

1027
1043
1059
1075

1028
1044
1060
1076

440
450
460
470

1088
1104
1120
1136

1089
1105
1121
1137

1090
1106
1122
1138

1091
1107
1123
1139

480
490
4AO
480

1152
1168
1184
1200

1153
1169
1185
1201

1154
1170
1186
1202

4(0
400
4EO
4FO

1216
1232
1248
1264

1217
1233
1249
1265

500
510
520
530

1280
1296
1312
1328

540
550
560
570

7

8

9

A

B

C

0

E

F

1029 1030
1045 1046
1061 1062
1077 1078

1031
1047
1063
1079

1032
1048
1064
lOBO

1033
1049
1065
1081

1034
1050
1066
1082

1035
1051
1067
1083

1036
1052
1068
1084

1037
1053
1069
1085

1038
1054
1070
1086

1039
1055
1071
1087

1092
1108
1124
1140

1093
1109
1125
1141

1094
1110
1126
1142

1095
1111
1127
1143

1096
1112
1128
1144

1097
1113
1129
1145

1098
1114
1130
1146

1099
1115
1131
1147

1100
1116
1132
1148

1101
1117
1133
1149

1102
1118
1134
1150

1103
1119
1135
1151

1155
1171
1187
1203

1156
1172
1188
1204

1157
1173
1189
1205

1158
1174
1190
1206

1159
1175
1191
1207

1160
1176
1192
1208

1161 1162
1177 1178
1193 1194
1209 1210

1163
1179
1195
1211

1164
1180
1196
1212

1165
1181
1197
1213

1166
1182
1198
1214

1167
1183
1199
1215

1218
1234
1250
1266

1219
1235
1251
1267

1220
1236
1252
1268

1221
1237
1253
1269

1222
1238
1254
1270

1223
1239
1255
1271

1224
1240
1256
1272

1225
1241
1257
1273

1226
1242
1258
1274

1227
1243
1259
1275

1228
1244
1260
1276

1229
1245
1261
1277

1230
1246
1262
1278

1231
1247
1263
1279

1281
1297
1313
1329

1282
1298
1314
1330

1283
1299
1315
1331

1284
1300
1316
1332

1285
1301
1317
1333

1286
1302
1318
1334

1287
1303
1319
1335

1288
1304
1320
1336

1289 1290
1305 1306
1321 1322
1337 1338

1291
1307
1323
1339

1292
1308
1324
1340

1293
1309
1325
1341

1294
1310
1326
1342

1295
1311
1327
1343

1344
1360
1376
1392

1345
1361
1377
1393

1346
1362
1378
1394

1347
1363
1379
1395

1348
1364
1380
1396

1349
1365
1381
1397

1350
1366
1382
1398

1351
1367
1383
1399

1352
1368
1384
1400

1353 1354
1369 1370
1385 1386
1401 1402

1355
1371
1387
1403

1356
1372
1388
1404

1357
1373
1389
1405

1358
1374
1390
1406

1359
1375
1391
1407

580
590
SAO
5BO

1408
1424
1440
1456

1409
1425
1441
1457

1410
1426
1442
1458

1411
1427
1443
1459

1412
1428
1444
1460

1413
1429
1445
1461

1414
1430
1446
1462

1415
1431
1447
1463

1416
1432
1448
1464

1417 1418
1433 1434
1449 1450
1465 1466

1419
1435
1451
1467

1420
1436
1452
1468

1421
1437
1453
1469

1422
1438
1454
1470

1423
1439
1455
1471

5(0
5DO
5EO
5FO

1472
1488
1504
1520

1473
1489
1505
1521

1474
1490
1506
1522

1475
1491
1507
1523

1476
1492
1508
1524

1477
1493
1509
1525

1478
1494
1510
1526

1479
1495
1511
1527

1480
1496
1512
1528

1481
1497
1513
1529

1482
1498
1514
1530

1483
1499
1515
1531

1484
1500
1516
1532

1485
1501
1517
1533

1486
1502
1518
1534

1487
1503
1519
1535

600
610
620
630

1536
1552
1568
1584

1537
1553
1569
1585

1538
1554
1570
1586

1539
1555
1571
1587

1540
1556
1572
1588

1541
1557
1573
1589

1542
1558
1574
1590

1543
1559
1575
1591

1544
1560
1576
1592

1545
1561
1577
1593

1546
1562
1578
1594

1547
1563
1579
1595

1548
1564
1580
1596

1549
1565
1581
1597

1550
1566
1582
1598

1551
1567
1583
1599

640
650
660
670

1600
1616
1632
1648

1601
1617
1633
1649

1602
1618
1634
1650

1603
1619
1635
1651

1604
1620
1636
1652

1605
1621
1637
1653

1606
1622
1638
1654

1607
1623
1639
1655

1608
1624
1640
1656

1609 1610
1625 1626
1641 1642
1657 1658

1611
1627
1643
1659

1612
1628
1644
1660

1613
1629
1645
1661

1614
1630
1646
1662

1615
1631
1647
1663

680
690
6AO
6BO

1664
1680
1696
1712

1665
1681
1697
1713

1666
1682
1698
1714

1667
1683
1699
1715

1668
1684
1700
1716

1669
1685
1701
1717

1670
1686
1702
1718

1671
1687
1703
1719

1672
1688
1704
1720

1673 1674
1689 1690
1705 1706
1721 1722

1675
1691
1707
1723

1676
1692
1708
1724

/677 1678
1693 1694
1709 1710
1725 1726

1679
1695
1711
1727

6(0
600
6EO
6FO

1728
1744
1760
1776

1729
1745
1761
1777

1730
1746
1762
1778

1731
1747
1763
1779

1732
1748
1764
1780

1733
1749
1765
1781

1734
1750
1766
1782

1735
1751
1767
1783

1736
1752
1768
1784

1737
1753
1769
1785

1739
1755
1771
1787

1740
1756
1772
1788

1741
1757
1773
1789

1743
1759
1775
1791

Appendix A

5

6

1738
1754
1770
1786

1742
1758
1774
1790

HEXADECIMAL-DECIMAL INTEGER CONYERSION TABLE (cant.)

0

1

2

3

4

5

8

9

A

B

C

D

E

F

700
710
720
730

1792
1808
1824
1840

1793
1809
1825
1841

1794
1810
1826
1842

1795
1811
1827
1843

1796
1812
1828
1844

1797
1813
1829
1845

1800
1816
1832
1848

1801
1817
1833
1849

1802
1818
1834
1850

1803
1819
1835
1851

1804
1820
1836
1852

1805
1821
1837
1853

1806
1822
1838
1854

1807
1823
1839
1855

740
750
760
770

1856
1872
1888
1904

1857 1858
1873 1874
1889 1890
1905 1906

1859
1875
1891
1907

1860
1876
1892
1908

1861 1862 1863
1877 1878 1879
1893 1894 1895
1909 1910 1911

1864 1865 1866 1867
1880 1881 1882 1883
1896 1897 1898 1899
1912 1913 1914 1915

1868
1884
1900
1916

1869
1885
1901
1917

1870
1886
1902
1918

1871
1887
1903
1919

780
790
7AO
7BO

1920
1936
1952
1968

1921 1922
1937 1938
1953 1954
1969 1970

1923
1939
1955
1971

1924
1940
1956
1972

1925
1941
1957
1973

1926 1927
1942 1943
1958 1959
1974 1975

1928 1929 1930 1931
1944 1945 1946 1947
1960 1961 1962 1963
1976 1977 1978 1979

1932 1933
1948 1949
1964 1965
1980 1981

1934
1950
1966
1982

1935
1951
1967
1983

7CO
7DO
7EO
7FO

1984 1985 1986 1987
2000 2001 2002 2003
2016 2017 2018 2019
2032 2033 2034 2035

1988 1989 1990 1991
2004 2005 2006 2007
2020 2021 2022 2023
2036 2037 2038 2039

1992
2008
2024
2040

1993 1994 1995
2009 2010 2011
2025 2026 2027
2041 2042 2043

1996 1997
2012 2013
2028 2029
2044 2045

1998 1999
2014 2015
2030 2031
2046 2047

800
810
820
830

2048 2049
2064 2065
2080 2081
2096 2097

2050 2051
2066 2067
2082 2083
2098 2099

2052
2068
2084
2100

2053
2069
2085
2101

2054
2070
2086
2102

2055
2071
2087
2103

2056 2057
2072 2073
2088 2089
2104 2105

2058
2074
2090
2106

2059
2075
2091
2107

2060 2061
2076 2077
2092 2093
2108 2109

2062
2078
2094
2110

840
850
860
870

2112
2128
2144
2160

2114 2115
2130 2131
2146 2147
2162 2163

2116
2132
2148
2164

2117
2133
2149
2165

2118
2134
2150
2166

2119
2135
2151
2167

2120 2121 2122
2136 2137 2138
2152 2153 2154
2168 2169 2170

2123
2139
2155
2171

2124
2140
2156
2.172

880
890
8AO
8BO

2176 2177 2178
2192 2193 2194
2208 2209 2210
2224 2225 2226

2179
2195
2211
2227

2180
2196
2212
2228

2181
2197
2213
2229

2182
2198
2214
2230

2183
2199
2215
2231

2184
2200
2216
2232

2187
2203
2219
2235

2188 2189
2204 2205
2220 2221
2236 2237

8CO
8DO
8EO
8FO

2240
2256
2272
2288

2241
2257
2273
2289

2242
2258
2274
2290

2243
2259
2275
2291

2244
2260
2276
2292

2245
2261
2277
2293

2246
2262
2278
2294

2247
2263
2279
2295

2248 2249
2264 2265
2280 2281
2296 2297

2250 2251
2266 2267
2282 2283
2298 2299

2252
2268
2284
2300

2253 2254 2255
2269 2270 2271
2285 2286 2287
2301 2302 2303

900
910
920
930

2304 2305
2320 2321
2336 2337
2352 2353

2306
2322
2338
2354

2307
2323
2339
2355

2308
2324
2340
2356

2309
2325
2341
2357

2310
2326
2342
2358

2311
2327
2343
2359

2312
2328
2344
2360

2314
2330
2346
2362

2316
2332
2348
2364

2317 2318
2333 2334
2349 2350
2365 2366

940
950
960
970

2368
2384
2400
2416

2369
2385
2401
2417

2370 2371
2386 2387
2402 2403
2418 2419

2372
2388
2404
2420

2373
2389
2405
2421

2374
2390
2406
2422

2375
2391
2407
2423

2376 2377 2378 2379
2392 2393 2394 2395
2408 2409 2410 2411
2424 2425 2426 2427

980
990
9AO
9BO

2432 2433
2448 2449
2464 2465
2480 2481

2434 2435
2450 2451
2466 2467
2482 2483

2436
2452
2468
2484

2437
2453
2469
2485

2438
2454
2470
2486

2439
2455
2471
2487

2440
2456
2472
2488

2441
2457
2473
2489

2442
2458
2474
2490

9CO
9DO
9EO
9FO

2496 2497 2498 2499
2512 2513 2514 2515
2528 2529 2530 2531
2544 2545 L546 2547

2500
2516
2532
2548

2501
2517
2533
2549

2502
2518
2534
2550

2503
2519
2535
2551

2504
2520
2536·
2j52

2505
2521
2537
2553

2506
2522
2538
2554

2113
2129
2145
2161

6

7

1798 1799
1814 1815
1830 1831
1846 1847

2185
2201
2217
2233

2313
2329
2345
2361

2186
2202
2218
2234

2315
2331
2347
2363

2125
2141
2157
2173

2063
2079
2095
2111

2126 2127
2142 2143
2158 2159
2174 2175
2190
2206
2222
2238

2191
2207
2223
2239

2319
2335
2351
2367

2380 2381
2396 2397
2412 2413
2428 2429

2382 2383
2398 2399
2414 2415
2430 2431

2443
2459
2475
2491

2444 2445
2460 2461
2476 2477
2492 2493

2446
2462
2478
2494

2447
2463
2479
2495

2507
2523
2539
2555

2508
2524
2540
2556

2509
2525
2541
2557

2510
2526
2542
2558

2511
2527
2543
2559

Appendix A

111

HEXADECIMAL-DECIMAL INTEGER CONVERSiON TABLE (cant.)

1

0

112

2

3

4

5

6

7

8

9
2569
2585
2601
2617

A

B

C

D

E

F

2572
2588
2604
2620

2573
2589
2605
2621

2574
2590
2606
2622

2575
2591
2607
2623

2636 2637 2638
2652 2653 2654
2668 2669 2670
2684 2685 2686

2639
2655
2671
2687

AOO
Al0
A20
A30

2560 2561
2576 2577
2592 2593
2608 2609

2562
2578
2594
2610

2563
2579
2595
2611

2564
2580
2596
2612

2565
2581
2597
2613

2566 2567
2582 2583
2598 2599
2614 2615

2568
2584
2600
2616

A40
A50
A60
A70

2624 2625
2640 2641
2656 2657
2672 2673

2626 2627
2642 2643
2658 2659
2674 2675

2628
2644
2660
2676

2629
2645
2661
2677

2630 2631
2646 2647
2662 2663
2678 2679

2632 2633 2634
2648 2649 2650
2664 2665 2666
2680 2681 2682

A80
A90
AAO
ABO

2688
2704
2720
2736

2689
2705
2721
2737

2690
2706
2722
2738

2691
2707
2723
2739

2692
2708
2724
2740

2693
2709
2725
2741

2694 2695
2710 2711
2726 2727
2742 2743

2696 2697
2712 2713
2728 2729
2744 2745

2698 2699
2714 2715
2730 2731
2746 2747

2700
2716
2732
2748

2701
2717
2733
2749

2702 2703
2718 2719
2734 2735
2750 2751

ACO
ADO
AEO
AFO

2752
2768
2784
2800

2753 2754
2769 2770
2785 2786
2801 2802

2755
2771
2787
2803

2756
2772
2788
2804

2757
2773
2789
2805

2758 2759
2774 2775
2790 2791
2806 2807

2760 2761 2762 2763
2776 2777 2778 2779
2792 2793 2794 2795
2808 2809 2810 2811

2764
2780
2796
2812

2765
2781
2797
2813

2766
2782
2798
2814

BOO
BlO
B20
B30

2816
2832
2848
2864

2817 2818
2833 2834
2849 2850
2865 2866

2819
2835
2851
2867

2820
2836
2852
2868

2821
2837
2853
2869

2822
2838
2854
2870

2823
2839
2855
2871

2824
2840
2856
2872

B40
B50
B60
B70

2880
2896
2912
2928

2881 2882
2897 2898
2913 2914
2929 2930

2883
2899
2915
2931

2884
2900
2916
2932

2885
2901
2917
2933

2886
2902
2918
2934

2887
2903
2919
2935

2888 2889 2890 2891
2904 2905 2906 2907
2920 2921 2922 2923
2936 2937 2938 2939

2892
2908
2924
2940

B80
B90
BAO
BBO

2944
2960
2976
2992

2945
2961
2977
2993

2946
2962
2978
2994

2947
2963
2979
2995

2948
2964
2980
2996

2949
2965
2981
2997

2950
2966
2982
2998

2951
2967
2983
2999

2952
2968
2984
3000

2953 2954 2955
2969 2970 2971
2985 2986 2987
3001 3002 3003

2956 2957 2958 2959
2972 2973 2974 2975
2988 2989 2990 2991
3004 3005 3006 3007

BCO
BOO
BEO
BFO

3008
3024
3040
3056

3009
3025
3041
3057

3010 3011
3026 3027
3042 3043
3058 3059

3012 3013 3014
3028 3029 3030
3044 3045 3046
3060 3061 3062

3015
3031
3047
3063

3016
3032
3048
3064

3017
3033
3049
3065

3018
3034
3050
3066

3019
3035
3051
3067

3020
3036
3052
3068

3021
3037
3053
3069

COO
Cl0
C20
C30

3072
3088
3104
3120

3073
3089
3105
3121

3074 3075
3090 3091
3106 3107
3122 3123

3076 3077
3092 3093
3108 3109
3124 3125

3078
3094
3110
3126

3079
3095
3111
3127

3080
3096
3112
3128

3081
3097
3113
3129

3082
3098
3114
3130

3083
3099
3115
3131

3084
3100
3116
3132

3085 3086
3101 3102
3117 3118
3133 3134

C40
C50
C60
C70

3136
3152
3168
3184

3137
3153
3169
3185

3138
3154
3170
3186

3140
3156
3172
3188

3142
3158
3174
3190

3143
3159
3175
3191

3144
3160
3176
3192

3145
3161
3177
3193

3146
3162
3178
3194

3147
3163
3179
3195

3148
3164
3180
3196

3149
3165
3181
3197

3150 3151
3166 3167
3182 3i83
3198 3199

C80
C90
CAO
CBO

3200 3201
3216 3217
3232 3233
3248 3249

3204 3205 3206 3207
3220 3221 3222 3223
3236 3237 3238 3239
3252 3253 3254 3255

3208
3224
3240
3256

3209
3225
3241
3257

3210
3226
3242
3258

3211
3227
3243
3259

3212
3228
3244
3260

3213
3229
3245
3261

3214
3230
3246
3262

3215
3231
3247
3263

CCO
COO
CEO
CFO

3264 3265 3266
3280 3281 3282
3296 3297 3298
3312 3313 3314

3272
3288
3304
3320

3273
3289
3305
3321

3274 3275
3290 3291
3306 3307
3322 3323

3276
3292
3308
3324

3277
3293
3309
3325

3278
3294
3310
3326

3279
3295
3311
3327

Appendix A

3139
3155
3171
3187

3202 3203
3218 3219
3234 3235
3250 3251
3267
3283
3299
3315

3268
3284
3300
3316

3141
3157
3173
3189

3269
3285
3301
3317

3270
3286
3302
3318

3271
3287
3303
3319

2570 2571
2586 2587
2602 2603
2618 2619
2635
2651
2667
2683

2825 2826 2827
2841 2842 2843
2857 2858 2859
2873 2874 2875

2767
2783
2799
2815

2828 2829 2830 2831
2844 2845 2846 2847
2860 2861 2862 2863
2876 2877 2878 2879
2893
2909
2925
2941

2894
2910
2926
2942

2895
2911
2927
2943

3022 3023
3038 3039
3054 3055
3070 3071
3087
3103
3119
3135

HEXADECIMAL-DECIMAL INTEGER CONVERSION TABLE (cant.)

0

2

3

4

D

3:~~

6

7

8

9

A

B

C

3334
3350
3366
3382

3335
3351
3367
3383

3336
3352
3368
3384

3337
3353
3369
3385

3338
3354
3370
3386

3339
3355
3371
3387

3340
3356
3372
3388

3341 3342
3357 3358
3373 3374
3389 3390

3359 ,
3375 I
3391

3402
3418
3434
3450

3403
3419
3435
3451

3404
3420
3436
3452

3405 3406
3421 3422
3437 3438
3453 3454

3407
3423
3439
3455

3465 3466 3467
3480 3481 3482 3483
3496 3497 3498 3499
3512 3513 3514 3515

3468
3484
3500
3516

3469
3485
3501
3517

3470
3486
3502
3518

3471
3487
3503
3519

3532 3533 3534
3548 3549 3550
3564 3565 3566
3580 3581 3582

3535

5

E

000
D10
D20
D30

3328
3344
3360
3376

3329
3345
3361
3377

3330
3346
3362
3378

3331
3347
3363
3379

3332 3333
3348 3349
3364 3365
3380 3381

D40

3392
3408
3424
3440

3393
3409
3425
3441

3394
3410
3426
3442

3395
3411
3427
3443

3396
3412
3428
3444

3397
3413
3429
3445

3398 3399
3414 3415
3430 3431
3446 3447

3400 3401
3416 3417
3432 3433
3448 3449

3456 3457
3472 3473
3488 3489
3504 3505

3458
3474
3490
3506

3459
3475
3491
3507

3460 3461
3476 3477
3492 3493
3508 3509

3462 3463
3478 3479
3494 3495
3510 3511

3464

3520 3521
3536 3537
3552 3553
3568 3569

3522
3538
3554
3570

3523
3539
3555
3571

3524 3525
3540 3541
3556 3557
3572 3573

3526 3527
3542 3543
3558 3559
3574 3575

3529
3545
3561
3577

3584
3600
3616
3632

3586
3602
3618
3634

3587
3603
3619

3528
3544
3560
3576
......... -..
3592
3608
3624
3640

3594
3610
3626
3642

3595
3611
3627
3643

3596 3597
3612 3613
3628 3629
3644 3645

3648 3649 3650
3664 3665 3666
3680 3681 3682
3696 3697 3698

3659
3675
3691
3707

3660
3676
3692
3708

3661 3662 ..5663
3677 3678 3679
3693 3694 3695
3709 3710 3?1 i

DSO

D60
D70
080
D90

DAO
DBO
DCO
ODO

nEO
DFO

-

....... ......~-~.-.~~-"'-.-.-----

EGO
1:10

EiO
E30

tAO
E.50

[60
E70

I
E80
I E90

I EAO
ESO

3530
3546
3562
3578

3531
3547
3563
3579

~-.--.,.~-------.

I

3551
3567
3583

r'=i~90
3598 J_"
, i
3614 3615 i
3630 3631 I
3646

:3635

3588
3604
3620
3636

3589
3605
3621
3637

3606
3,,22
3638

3591
3607
3623
3639

3651
3667
3683
3699

3652 3653
3668 3669
3684 3685
3700 3701

3654
3670
3686
3702

3655
3671
3687
3703

3656
3672
3688
3704

3657 3658
3673 3674
3689 3690
3705 3706

37i3 3714 3715
3728 3729 3730 3731
3744 3745 3746 3747
3760 3761 3762 3763

3716 3717
3732 3733
3748 3749
3764 3765

3718
3734
3750
3766

3719
3735
3751
3767

3720
3736
37.52
3768

3721
3737
3753
3769

3722 3723
3738 3739
3754 3755
3770 3771

3724
3740
3756
3772

3725
3741
3757
3773

3726
3742
3758
3774

3727
3743
3759
3775

3585
3601
3617
3633

I 3712

3590

3593
3609
3625
3641

~c471

EEO
EFO

3776
3792
3808
3824

3777
3793
3809
3825

3778
3794
3810
3826

3779
3795
3811
3827

3780
3796
3812
3828

3781
3797
3813
3829

3782
3798
3814
3830

3783
3799
3815
3831

3784
3800
3816
3832

3785
3801
3817
3833

3786
3802
3818
3834

3787
3803
3819
3835

3788
3804
3820
3836

3789
3805
3821
3837

3790
3806
3822
3838

3791
3807
3823
3839

FOO
FlO
F20
F30

3840
3856
3872
3888

3841
3857
3873
3889

3842
3858
3874
3890

3843
3859
3875
3891

3844
3860
3876
3892

3845 3846
3861 3862
3877 3878
3893 3894

3847
3863
3879
3895

.3848
3864
3880
3896

3849
3865
3881
3897

3850
3866
3882
3898

3851
3867
3883
3899

3852 3853
3868 3869
3884 3885
3900 3901

3854
3870
3886
3902

3855
3871
3887
3903

F40
F50
F60
F70

3904
3920
3936
3952

3905
3921
3937
3953

3906
3922
3938
3954

3907
3923
3939
3955

3908 3909 3910
3924 3925 3926
3940 3941 3942
3956 3957 3958

3911
3927
3943
3959

3912
3928
3944
3960

3913
3929
3945
3961

3914
3930
3946
3962

3915
3931
3947
3963

3916
3932
3948
3964

3917
3933
3949
3965

3918
3934
3950
3966

3919
3935
3951
3967

F80
F90
FAO
FBO

3968
3984
4000
4016

3969
3985
4001
4017

3970
3986
4002
4018

3971
3987
4003
4019

3972
3988
4004
4020

3973
3989
4005
4021

3974 3975
3990 3991
4006 4007
4022 4023

3976
3992
4008
4024

3977
3993
4009
4025

3978
3994
4010
4026

3979
3995
4011
4027

3980
3996
4012
4028

3981 3982 3983
3997 3998 3999
4013 4014 4015
4029 4030 4031

I FCO
FDO
FEO
FFO

4032
4048
4064
4080

4033
4049
4065
4081

4034
4050
4066
4082

4035
4051
4067
4083

4036
4052
4068
4084

4037
4053
4069
4085

4038 4039
4054 4055
4070 4071
4086 4087

4040
4056
4072
4088

4041
4057
4073
4089

4042
4058
4074
4090

4043
4059
4075
4091

4044
4060
4076
4092

4045 4046 4047
4061 4062 4063
4077 4078 4079
4093 4094 4095

I ECO
EDO

I

I

Appendix A

"

I
1

113

HEXADECIMAl~DECIMAl FRACTION

CONVERSION TABLE

i~nc. i
DeC;'Tl0i
~exadec;mc!
DecimG!
uec;ma!
~'-It?''.-odec
____________________
~______________________
~~______________________
Hexodec imo I
~____________
,DeClflloi
_________ J
Hexadecimal

.ooaoo 00000

.OD 0000 00
.Of 0000 00
.or 00 00 0G

.0156250000
.01953 i 2500
.02343 75000
.02734 37500
.03125 00000
.035! 5 62500
.03°06 25000
.04296 87500
.04687 50000
.05078 12500
.05468 75000
.05859 37500

.40 000000
.41 000000
,42 000000
.43 0000 JO
.4~ 0000 00
.45 CO 00 OC
.46 000000
.4::' 00 00 00
.48 000000
.49 00 00 00
AA OC 00 00
.4B 000000
.4C 000000
.4D 00 00 00
AE 00 OC 00
AF 0000 00

.29296
.29687
.30078
.30468
.30859

.10 0000 00
11 000000
1'1 000000
.: :3 00 00 00
. '" C:O 00 00
· 15 000000
.!t. 00 OC 00
17 00 00 00
.18 00 00 00
.19 00 00 00
.iA 000000
· ; b 000000
.J( 0000 00
.lD 000000
.1 E 000000
· iF 0000 00

.06250 00000
.0664062500
.07031 25000
,0 7 42 1 87500
.07812 50000
.082C3 12500
.08593 75000
.08984 37500
.09375 00000
.09765 62500
· iOl5c) 25000
.10546 87500
.10937 50000
.11328 J2500
.1171875000
• J 21 09 37500

.20 CO 00 00
.21 00 00 00
Ii
.~2 GC 00 00
I
!j .LJ 00 00 00
24 00 00 OC
I
.25 00 00 00
.26 000000
27 000000
.28 00 00 00
29 00 00 00
.2t.. 0000 00
.n 000000
II .2C 0000 00
I .20 0000 00
.2E 000000
.2F 000000

· 12500 00000
.12890 62500
.13281 25000
.13671 87500
.14062 50000
· 14453 I 2500
.14843 75000
· i5234 37500
· 15625 00000
.160156250n
.16406 25000
.16n687500
· 17 j 87 50000
.17578 12500
.17968 75000
.18359 37500

.30 0000 00
.31 00 00 00
.32 00 00 00
~"
• .j.)
0000 00
.34 00 00 00
.35 000000
.36 000000
.37 000000
.38 000000
.39 000000
.3A 000000
.36 000000
.3C 00 00 00
.30 000000
.3E 000000
.3F 00 00 00

.18750 00000
· i9140 62500
· I 953 1 25000
.1992 i 87500
.20312 50000
.20703 12500
.21093 75000
.21484 37500
.21875 00000
.22265 62500
.22656 25000
.23046 87500
.23437 50000
.23828 12500
.24218 75000
.24609 37500

.0(; 0000 OJ

.0 : 000000
..,
..... ' ... 000008
.02 eye 00 00
,l)4 ')00000
.0'; 000000
.06 0000 00
.07 00 OC 00
.08 0000 (Ii)
.09 00 00 00
.0/\ ')0 00 00
(~

J)a 00 00 OC

.oc

"

0000 OC

.

~..,

I
I

I

114

.003QO 6:::500
.00781 25000
01 1 7187500

Appendix A

!

I

II
I

I
I
Ii
!

I
!
II

I
j

1

I
I

75000
37500
00000
62500
25000
87500
50000
12500
75000
37500

.80 000000
.8! 000000
. 8~'
£
000000
.83 000000
,84 000000
.85 00 00 00
.86 0000 00
.87 00 00 00
.88 000000
.89 00 00 00
.8A 00 00 00
.8B OC 00 00
.8C 00 00 00
.80 00 00 00
.8E 00 OC 00
.8F 000000

.53515 62500
.53906 25000
.54296 87500
.54687 50000
.55078 12500
.55468 75000
.55859 37500

00 00 00
0000 00
0000 00
000000
000000
000000
00 00 00
0000 00
0000 00
00 00 00
0000 00
0000 00
00 00 00
.Ct 000000
.CF 00 00 00

.50 000000
.5l 00 CO 00
.52 000000
.53 00 00 00
.54 000000
.55 000000
.56 0000 ('0
.57 000000
.58 0000 CO
.59 00 00 00
.5A 0000 00
.58 00 00 00
.5C 00 00 00
.50 0000 00
.5E 000000
.5F 00 00 00

.31250 00000
.31040 62500
.32031 25000
.32421 87500
.3281250000
.33203 12500
.33593 75000
.33984 37500
.34375 00000
.34765 62500
.35156 25000
.35546 87500
.35937 50000
.36328 12500
.36718 75000
.3710937500

.90 0000 00
.9 1 0000 00
.92 00 00 00
.93 00 00 00
.94 0000 00
.95 00 00 00
.96 00 00 00
.97 0000 00
.98 0000 00
.99 0000 00
.9A 000000
.9B 00 00 00
.9C 000000
.90 00 00 dO
.9E 0000 00
.9F 0000 00

.56250 00000
.56640 62500
.5703! 25000
.57421 87500
.57812 50000
.58203 12500
.5859375000
.58984 37500
.59375 00000
.59765 62500
,60156 25000
.60546 87500
.60937 50000
.6 j 328 12500
.6171875000
.62109 37500

.00 000000
.D1 00 0000
.D2 000000
.03 0000 00
.D4 0000 00
.D5 0000 00
.D6 00 00 00
.D7 00 00 00
.08 0000 oe
.D9 00 00 00
.DA 00 00 00
.06 0000 00
.DC 00 00 00
.DD 000000
.DE 00 00 00
.DF 00 00 OC

.60 000000
.61 000000
.62 000000
.63 000000
.64 000000
.65 000000
.66 00 00 00
.67 0000 GO
.68 000000
.69 000000
.6A 0000 00
.6S 000000
.6C 00 00 00
.60 000000
.6E 000000
.6F 00 00 OC-

.37500
.37890
.38281
.38671
.39062
.39453
.39843
.40234
.40625
.401015
.41406
.401796
.42187
.402578
.42968
.403359

.AO
,AI
.A2
.A3
.A4
.A5
.A6
.A7
.A8
.A9
.AA
.AB
.AC
.AD
.AE
.AF

0000
0000
0000
00 00
00 00
00 00
00 00
00 00
0000
00 00
00 00
00 00
0000
00 00
00 00
00 00

00
00
00
00
00
00
00
00
00
00
00
00
00
00

.62500 00000
.6 289062500
.63281 25000
.63671 87500
.64062 50000
.64453 12500
.64843 75000
.65234 37500
.65625 00000
.66015 62500
.66406 25000
.66796 87500
.67187 50000
.67578 12500
.67968 75000
.68359 37500

.. EO 000000
EI 00 00 00
i .E2 00 0000
.E3 0000 00
.E4 000000
.E5 00 00 00
.E6 00 00 00
.E7 000000
.E8 00 00 00
.E9 00 00 00
.EA 00 00 00
.EB 00 00 00
.EC 00 00 00
.ED 000000
.EE 00 00 00
.EF 00 00 00

.70 00 00 00
.71 000000
.72 0000 00
.73 00 00 00
.74 0000 00
.75 00 00 00
.76 00 00 00
.77 00 00 00
.78 000000
.79 00 00 00
.7A 00 00 00
.7S 0000 00
.7C 00 00 00
.70 00 00 00
.7E 00 00 00
.7F 00 00 00

.43750 00000
.44140 62500
.404531 25000
.44921 87500
.40531 2 50000
.405703 12500
.46093 75000
.46484 37500
.46875 00000
.407265 62500
.47656 25000
.408046 87500
.48437 50000
.408828 12500
.409218 75000
.409609 37500

.BO
.Bl
.B2
.B3

000000
00 00 00
00 00 00
00 00 00
00 00 00
0000 00
00 00 00
00 00 00
00 00 00
000000
00 00 00
00 00 00
00 00 00
00 00 00
00 00 00
000000

.68750 00000
.6914062500
.69531 25000
.69921 87500
.7031 2 50000
.70703 12500
.7109375000
.71484 37500
.71875 00000
.7226562500
.72656 25000
.73046 87500
.73437 50000
.73828 12500
.7421875000
.74609 37500

.25000 00000

.25390
.25781
.26171
.26562

62500
25000
87500
50000

.26'i'53 12500

.27343
.27734
.281 25
.28515
.28906

00000
62500
25000
87500
50000
12500
75000
37500
00000
62500
25000
87500
50000
i 2500
75000
37500

I

I

.B4
.B5
.86
.B7
.B8
.B9
.BA
.BB
.BC
.BD
.BE
.BF

00
00

.50000 00000
.50390 62500
.5078] 25000
.51171 87500
.5156250000
.51953 : 2500
.52343 75000
.52734 37500

.CO
.Cl
.(2
.C3
.C4
.C5
.C6
.C7
.(8
.C9
.CA
.CB
.CC
.CD

.5312.5 00000

0000 00

I

I
!
I

II

.FO
.F I
.F2
.F3
.F4
.F5
.F6
.F7
.F8
.F9
.FA
.fB
.Fe
.FD
.FE
.FF

000000
00 00 00
00 00 00
000000
000000
00 00 00
000000
00 00 00
0000 OG
000000
000000
000000
00 00 00
0000 00
0000 00
0000 00

.75000 OOO{)(j

.75390

i!
I

62S~(;

.75i81 25C0:::
.76',71 87500

./6562 SOOtY':,
.76953 i 2)0']
.77343 75000
.7T' 34 3750(;
.781 25 00000
.78515 62500
.78906 2500C
.79296 87500
.79687 50000
.80078 12500
.80468 75C.(;0
.8085937500

.8 J 250 00000
.8164062500
.82031 25000
.82421 8750G
. g231 2 50000 I
.83203 12500
.83593 75000
.83984 37500 l
.84375 00000
.84765 62500
.85 i 56 25000
.85546 87500 .
.85937 50000
.86328 12500

I

I

II

.8671875000

.871 09 37500
.87500 00000
.8 7890 62500
.88281 25000
.88671 87500
.89062 50000
.89453 12500
.89843 75000
.90234 37500
.906 25 00000
.91015 62500
.9 ! 406 25000
.9179687500
.92 i 87 50000
.92578 12500
.92968 75000
.93359 37500
.93750
.94140
.94531
.94921
.95312
.95703
.96093
.96484
.96875
.97265
.97656
.98046
.98437
.98828
.99218
.99609

00000
62500
25000
87500
50000
12500
75000
37500
00000
62500
25000
87500
50000
12500
75000
37500

I

HEXADECIMAL-DECIMAL FRACTION CONVERSION TABLE (cant.)

Hexadecimal

Decimal

Hexadecimal

Decimal

Hexadecimal

Decimal

Hexadecimal

Decimal

.0000
.0001
.0002
.0003
.0004
.0005
.0006
.0007
.00 08
.0009
.OOOA
.OOOB
.OOOC
.OOOD
.OOOE
.00 OF

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
00 00
00 00
0000

.00000 00000
.00001 52587
.00003 05175
.0000457763
.00006 10351
.00007 62939
.00009 15527
.0001068115
.00012 20703
.00013 73291
.00015 25878
.00016 78466
.00018 31054
.0001983642
.00021 36230
.00022 88818

.0040
.0041
.0042
.0043
.0044
.0045
.0046
.0047
.0048
.0049
.004A
.004B
.004C
.004D
.004E
.004F

0000
0001)
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.0009765625
.00099 18212
.00100 70800
.00102 23388
.00103 75976
.001 05 28564
.00106 81152
.00108 33740
.0010986328
.00111 38916
.00112 91503
.0011444091
.00115 96679
.00117 49267
.0011901855
.0012054443

.0080
.0081
.0082
.0083
.0084
.0085
.0086
.0087
.0088
.0089
.008A
.008B
.008C
.0080
.008E
.008F

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
00 00
0000
00 00
0000
0000

.00195 31250

.00196 83837
.00198 36425
.0019989013
.00201 41601
.00202 94189
.00204 46 777
.00205 99365
.00207 51953
.00209 04541
.00210 57128
.0021209716
.00213 62304
.00215 14892
.0021667480
.00218 20068

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

CO 0000
ClOD 00
C2 0000
C3 0000
C4 00 00
C5 0000
C6 0000
C7 00 00
C8 0000
C9 0000
CA 00 00
CB 0000
CC 00 00
CD 00 00
CE 0000
CF 00 00

.00292 96875
.00294 49462
.00296 02050
.00297 54638
.00299 07225
.0030059814
.00302 12402
.00303 64990
.00305 17578
.00306 70166
.00308 22753
.00309 75341
.00311 27929
.0031 2 8051 7
.00314 33105
.00315 85693

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

10
11
12
13
14
15
16
17
18
19
lA
1B
lC
1D
lE
1F

0000
0000
0000
0000
0000
0000
00 00
00 00
00 00
0000
0000
0000
0000
0000
00 00
0000

.00024
.00025
.00027
.00028
.00030
.00032
.00033
.00035
.00036
.00038
.00039
.00041
.00042
.00044
.00045
.00047

41406
93994
46582
99169
51757
04345
56933
09521
62109
14697
6728.)
19873
72460
25048
77636
30224

.0050
.0051
.0052
.0053
.0054
.0055
.0056
.0057
.0058
.00 S9
.005A
.005B
.005C
.005D
.005E
.005F

0000
0000
0000
0000
0000
0000
0000
00 00
0000
0000
0000
0000
0000
0000
0000
0000

.0012207031
.0012359619
.00125 12207
.00126 64794
.00128 17382
.0012969970
.00131 22558
.0013275146
.0013427734
.00135 80322
.00137 32910
.0013885498
.00140 38085
.00141 90673
.00143 43261
.00144 95849

.0090
.0091
.0092
.0093
.0094
.0095
.0096
.0097
.0098
.0099
.009A
.009B
.009C
.00 90
.009E
.009F

0000
0000
0000
0000
0000
0000
00 00
0000
0000
0000
00 00
00 00
00 00
00 pO
0000
00 00

.00219 72656
.00221 25244
.00222 77832
.00224 30419
.00225 83007
.00227 35595
.00228 88183
.00230 40771
.00231 93359
.00233 45947
.00234 98535
.00236 51123
.00238 03710
.0023956298
.00241 08886
.00242 61474

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

DO
Dl
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF

0000
0000
00 DC
00 00
0000
0000
0000
00 00
0000
00 00
00 00
0000
00 00
0000
0000
0000

.00317 38281
.00318 90869
.00320 43457
.00321 96044
.00323 48632
.00325 01220
.00326 53808
.00328 06396
.0032958984
.00331 11572
.00332 64160
.00334 16748
.00335 69335
.00337 21923
.00338 74511
.00340 27099

.00 20
.00 21
.0022
.0023
.00 24
.0025
.0026
.0027
.0028
.00 29
.002A
.002B
.002C
.00 2D
.00 2E
.002F

0000
0000
0000
0000
0000
0000
0000
0000
00 00
0000
0000
0000
0000
0000
0000
0000

.0004d 82812
.00050 35400
.00051 87988
.00053 40576
.000S493164
.00056 45751
.00057 98339
.00059 50927
.00061 03515
.00062 56103
.00064 08691
.00065 61279
.00067 13867
.00068 66455
.00070 19042
.00071 71630

.0060
.0061
.0062
.0063
.0064
.0065
.0066
.0067
.0068
.0069
.006A
.006B
.006C
.006D
.006E
.006F

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.00146 48437
.00148 01025
.0014953613
.00151 06201
.0015258789
.00154 11376
.0015563964
.00157 16552
.0015869140
.00160 21728
.00161 74316
.00163 26904
.0016479492
.00166 32080
.00167 84667
.0016937255

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

AD
Al
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF

0000
0000
0000
00 00
0000
0000
00 00
0000
0000
0000
00 00
0000
0000
00 00
0000
0000

.00244
.00245
.00247
.00248
.00250
.00251
.00253
.00254
.00256
.00257
.00259
.00260
.00262
.00263
.00265
.00267

14062
66650
19238
71826
24414
77001
29589
82177
34765
87353
39941
92529
45117
97705
50292
02880

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

EO
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
00 00
0000
0000
00 00
0000

.00341
.00343
.00344
.00346
.00347
.00349
.00350
.00352
.00354
.00355
.00357
.00358
.00360
.00361
.00363
.00364

.0030
.0031
.0032
.0033
.0034
.0035
.0036
.0037
.0038
.0039
.003A
.003B
.003C
.00 3D
.00 3E
.003F

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.00073 24218
.00074 76806
.00076 29394
.00077 81982
.00079 34570
.00080 87158
.00082 39746
.00083 92333
.00085 44921
.00086 97509
.00088 50097
.00090 02685
.00091 55273
.00093 07861
.00094 60449
.00096 13037

.0070
.0071
.0072
.0073
.0074
.0075
.0076
.0077

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.00170 89843
.00172 42431
.0017395019
.00175 47607
.00177 00195
.00178 52783
.00180 05371
.00181 57958
.00183 10546
.0018463134
.00186 15722
.0018768310
.00189 20898
.00190 73486
.00192 26074
.00193 78662

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

BO
Bl
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.0026855468
.00270 08056
.00271 60644
.00273 13232
.0027465820
.00276 18408
.00277 70996
.00279 23583
.0028076171
.00282 28759
.0028381347
.00285 33935
.00286 86523
.00288 39111
.00289 91699
.00291 44287

.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00
.00

FO
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

.00366 21093
.00367 73681
.00369 26269
.00370 78857
.00372 31445
.00373 84033
.00375 36621
.00376 89208
.00378 41796
.00379 94384
.00381 46972
.00382 99560
.0038452148
.00386 04736
.00387 57324
.0038909912

.001'8

.0079
.007A
.007B
.007C
.0070
.007E
.007F

Appendix A

79687
32275
84863
37451
90039
42626
95214
47802
00390
52978
05566
58154
10742
63330
15917
68505

115

HEXADECIMAL-DECIMAL FRACTION CONVERSION TABLE (cant.)

Hexadecimal

Decimal

Hexadecimal

Decimal

Hexadecimal

Decimal

Hexadecimal

Decimal

,00 00 00
.0000 01
.00 00 02
.00 00 03
.00 00 04
.00 00 05
.00 00 06
.000007
.00 00 08
.00 00 09
.00 00 OA
.00 00 OB
.00 00 OC
.00 00 aD
.00 00 OE
.0000 OF

00
00
00
00
00
00
00
00
00
00
00
00
OC
00
00
00

· 00000 00000
.00000 00596
.00000 01 J 92
.00000 01788
.00000 02384
.00000 02980
.00000 03576
.00000 04 J 72
.00000 04768
,00000 05364
.00000 as 960
.0000006556
.00000 07152
.00000 07748
.00000 08344
.00000 08940

.0000 40
.00 00 41
.00 00 42
.00 00 43
.00 00 44
.00 00 45
.00 00 46
.00 00 47
.00 0048
.0000 49
.00004A
.0000 4B
.00004C
.00004D
.00004E
.00004F

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000 38146
.00000 38743
.00000 39339
.00000 39935
.00000 40531
.00000 41127
.00000 41723
.00000 4231 9
.00000 42915
· 00000 43511
· 00000 44107
.00000 44703
.00000 45299
.00000 45895
.00000 46491
.00000 47087

.00 00 80
.00 00 81
.00 00 82
.0000 83
.00 00 84
.00 00 85
.00 00 86
.00 00 87
.00 00 88
.00 00 89
.00 00 8A
.00 00 8B
.00 00 8C
.00 00 8D
.00 00 8E
.00 00 8F

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000 76293
.00000 76889
· 00000 77486
.00000 78082
.00000 78678
.00000 79274
.00000 79870
.00000 80466
.0000081062
.00000 81658
.00000 82254
.00000 82850
· 00000 83446
.00000 84042
.00000 84638
.00000 85234

.0000 co
.00 00 Cl
.00 00 C2
.0000 C3
.00 00 (4
.0000 C5
.0000 C6
.00 00 C7
.0000 C8
.0000 C9
.00 00 CA
.00 00 CB
.00 00 CC
.00 00 CD
.00 00 CE
.00 00 CF

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

· 0000 1 14440
.00001 15036
.00001 15633
.00001 16229
.00001 16825
.00001 17421
.00001 18017
.00001 18613
.00001 19209
.0000 I 19805
.00001 20401
.00001 20997
,0000 1 21 593
.00001 22189
.0000 1 22785
.00001 23381

.000010
.00 00 11
.00 00 12
.00 00 13
.0000 14
,00 00 15
.00 00 16
.00 00 17
.0000 18
.0000 19
.0000 1A.
.00 00 1B
.00 00 1C
.0000 1 D
.00 00 1E
.00 00 IF

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000
.00000
00000
.00000
·00000
.00000
.00000
,00000
.00000
.00000
.00000
.00000
.00000
·00000
.00000
.00000

09536
10 132
10728
11324
1 1920
12516
13113
13709
14305
14901
15497
16093
16689
I 7285
17881
18477

.00 00 50
.00 00 51
.00 0052
.00 00 53
.00 00 54
.00 00 55
.00 00 56
.000057
.000058
.0000 59
.00005A
.00 00 5B
.00 00 5C
.00 0050
.00 00 5E
.00 00 5F

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000
.00000
.00000
.00000
.00000
·00000
.00000
· 00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000

47683
48279
48875
49471
50067
50663
51259
51856
52452
53048
53644
54240
54836
55432
56028
56624

.00 0090
.00 0091
.00 00 92
.00 00 93
.00 00 94
.00 0095
.00 0096
.00 00 97
.00 0098
.00 00 99
.00 00 9A
.00 00 9B
.00 00 9C
.0000 9D
.00 00 9E
.00 00 9F

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000
.00000
.00000
.00000
.00000
· 00000
.00000
·00000
.00000
.00000
.00000
.09000
.00000
.00000
.00000
· 00000

85830
86426
87022
87618
88214
8881 0
89406
90003
90599
91195
91791
92387
92983
93579
94175
94771

.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00

DO 00
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF

00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00001 23977
.00001 24573
.0000 1 25169
.00001 25765
·0000 1 2636 1
.00001 26957
.0000 1 27553
.00001 28149
·00001 28746
.00001 29342
.00001 29938
.00001 30534
.0000 1 311 30
.00001 31726

.00 00 20
.00 00 21
.00 00 22
.0000 23
.0000 24
.0000 25
.00 00 26
.0(1 00 27
.00 00 28
.00 00 29
00002A
.00002B
.00 00 2C
.0000 2D
.00 00 2E
.00002F

00
00

.00000
.00000
· 00000
.00000
·00000
.00000
.00000
.00000
.00000
.00000
,00000
.00000
.00000
.00000
.00000
.00000

19073
19669
20265
20861
21 457
22053
22649
23 245
23841
24437
25033
25629
26226
20822
27418
28014

.00 00 60
.00 00 61
.00 00 62
.00 0063
.00 00 64
.00 00 65
.00 00 66
.0000 67
.000068
.00 00 69
.00006A
.00006B
.00 00 6C
.00 00 6D
.00006E
.00 00 6F

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000 57220
.0000057816
.00000 58412
· 00000 59008
· 00000 59604
.00000 60200
.00000 60796
.00000 61392
· 00000 61 988
.00000 62584
.00000 631 80
.00000 63776
.00000 64373
.00000 64969
.00000 65565
.00000 66161

.00 00
.0000
.0000
.00 00
.00 00
.00 00
.0000
.0000
.00 00
.0000
.00 00
,0000
.00 00
.00 00
.00 00
.00 00

AO
Al
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00001
.00001
.00001
.00001
.00001
.00001
.00001
.00001

95367
95963
96559
97155
97751
98347
98943
99539
00135
00731
01327
01923
02519
03116
03712
04308

.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.0000
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00

EO
El
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

· 00000
.00000
.00000
.00000
.00000
.00000
.OCOOO
.00000
.00000
.00000
.00000
.0000(';
.()OOOO
.00000
.COOOO

286 10
29206
29802
30398
30994
31590
32186
32782
33378
33974
34570
35 166
35762
36358
369)4

.00 0070
.0000 71
.00 00 72
.00 00 73
.00 00 74
.00 00 75
.0000 76
.00 00 77
.00 00 78
.00 00 7'1
.00 00 7,6..
.00 00 73
.00 00 i'C
,'X) 00 7D
.00 00 7E

00
00
00
00
00
00
00
00
00
00
GO

00
00
00
00
00
00
00
00
00
00
00
00
00

ce,

.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.00 00
.0000
.00 00
.0000

BO
Bl
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC

•• _._~l_;J_f=_,)~_._..c_:o._o.c_,·_;._3:'_'~_:::1:_)_.LGCJ 00 IF

.00000 66757
.00000 67353
.00000 67949
.00000 68545
.00000 69141
.00000 69737
.00000 70333
.00000 70929
.00000 71525
. 00000 72121
.00000 7271 7
.00000 73313
.00000 73909
· 00000 74505
.00000 75101
.00000 75697

.0000 1 43051
.00 00 FO 00
· 0000 1 04904
00001 43647
.00 00 Fl 00
.00001 05500
.00001 44243
.00 00 F2 00
.0000 1 06096
.00001 44839
.0000 F3 00
.00001 06692
.0000 F4 00
· 0000 I 45435
· 00001 07288
.00001 46031
.00 00 F5 00
.00001 07884
.0000 I 46627
.00 00 F6 00
.00001 08480
.00001 47223
.00 GO F7 00
.00001 09076
.00001 47819
j .00 00 F8 00
.00001 09672
.00001 48415
.00001 10268
. .0000 F9 00
/)0001 490 11
.00 00 FA 00
.00001 !O864
.00001 49607
.00001 11460
.00 00 FB 00
.00001 50203
.00001 12056
.0000 FC 00
.0000 I :::0799
.00001 12652
.0000 FD 00
.0000 1 5135
.0000 1 13248
I'
.00 00 FE 00
.OOOOFF
00
,OGCI()l ~1)91
.:)000113844
---L ___
.-____
,__.___

.000030
.00 00 31
.00 00 32
,00 00 33
.000034
.00 00 35
.000036
.00 00 37
.00 00 38
.0(\ 00 39

,co

00

00
00

00
00
00
00
00
00
00
00
00
00

00
OC
00
00
00
00
00
00
00
00
00

:")0 3.4. 1)0

JJ 00 3C 00
,~~ GO :: D GO
.,,:0 CO 2E 00

116

Appendix A

I

I
II
I
.1

,'jC
I)oJ

~,',vo"

.

SD 00

BE 00
BF 00

Dl 00

.00001 32322

.0000 1 32918
.00001 33514
.0000 1 341 1a
.00001 34706
.00001 35302
.00001 35898
.00001 36494
.00001 37090
.00001 37686
.00001 38282
.00001 38878
.00001 39474
,00001 40070
· JOOO 1 40666
.00001 41263
.00001 41 859
.00001 42455

I
I
I
1

r_

HEXADECIMAL-DECIMAL FRACTION CONVERSION TABLE (cont.)

Hexadec ima I

Decimal

Hexadecimal

Decimal

Hexadecimal

Decimal

Hexadec'mal

Decimal

.00000000
.00000001
.00000002
.00000003
.00000004
.00000005
.00000006
.00000007
.00000008
.00000009
.00 0000 OA
.000000 DB
.000000 DC
.OOOOOOOD
.000000 DE
.000000 OF

.00000 00000
.00000 00002
.00000 00004
.00000 00006
.00000 00009
.00000 0001 I
.00000 000 I 3
.00000 00016
.00000 00018
.00000 00020
.0000000023
.00000 00025
.0000000027
.0000000030
.0000000032
.00000 00034

.00000040
.00000041
.00000042
.00000043
.00000044
.00000045
.00000046
.00000047
.00000048
.00000049
.0000 00 4A
.0000004B
.00 00 00 4C
.0000004D
.0000004E
.0000004F

.00000 00149
.00000 00151
.00000 00 153
.00000 00155
.00000 00158
.00000 00 160
.0000000162
.00000 00 165
.0000000167
.0000000169
.00000 00172
.0000000174
.00000 00176
.00000 00179
.0000000181
.00000 00183

.00000080
.00000081
.00000082
.00000083
.00000084
.00000085
.00 00 00 86
.00 000087
.00000088
.00000089
.0000008A
.00 00 008B
.0000008C
.0000008D
.000000 8E
.0000008F

.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000

00298
00300
00302
00305
00307
00309
00311
00314
00316
00318
00321
00323
00325
00328
00330
00332

.00 00 00
.000000
.000000
.0000 00
.0000 00
.000000
.00 00 00
.000000
.000000
.000000
.0000 00
.0000 00
.000000
.0000 00
.000000
.0000 00

CO
Cl
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF

.00000 0044 7
.00000 0044 9
.00000 00451
.00000 00454
.00000 00456
.00000 00458
.00000 0046 1
.00000 0046 3
.00000 00465
.00000 0046 7
.00000 00470
.0000000472
.00000 00474
.00000 00477
.00000 00479
.00000 0048 I

.00000010
.OC 00 00 II
.000000 12
.000000 13
.000000 14
.000000 15
.00000016
.000000 17
.000000 18
.000000 19
.OOOOOOIA
.000000 1B
.OOOOOOIC
.000000 1D
.000000 1E
.000000 1F

.0000000037
.00000 00039
.00000 00041
.00000 00044
.00000 00046
.00000 00048
.00000 0005 I
.00000 00053
.00000 00055
.0000000058
.00000 00060
.00000 0006 2
.00000 00065
.00000 00067
.00000 0006 9
.0000000072

.00000050
.00000051
.00000052
.00000053
.00000054
.00000055
.00000056
.00000057
.00000058
.00000059
.00 00 00 5A
.00 00 00 5B
.00 0000 5C
.00 00 00 5D
.00 00 00 5E
.0000005F

.00000 00 186
.00000 00 188
.00000 00 190
.00000 00193
.00000 00195
.00000 001 97
.00000 00200
.00000 00202
.00000 00204
.00000 00207
.00000 00209
.00000 00211
.00000 00214
.00000 00216
.00000 00218
.0000000221

.00000090
.00000091
.00000092
.00000093
.00000094
.00000095
.00000096
.00000097
.00000098
.00000099
.00 00 00 9A
.00 0000 9B
.000000 ric
.0000009D
.0000009E
.0000 00 9F

.00000 00335
.00000 00337
.00000 00339
.00000 00342
.00000 00344
.00000 00346
.0000000349
.00000 0035 I
.00000 00353
.00000 00356
.0000000358
.00000 00360
.00000 00363
.00000 00365
.00000 00367
.00000 00370

.000000
.000000
.000000
.000000
.00 00 00
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000

00
DI
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF

.00000 00484
.00000 00486
.0000000488
.00000 00491
.00000 00493
.00000 00495
.00000 004 98
.00000 00500
.0000000502
.00000 00505
.00000 00507
.00000 00509
.00000 0051 2
.00000 00514
.00000 0051 6
.00000 0051 9

.00000020
.000000 21
.000000 22
.00000023
.00000024
.000000 25
.00000026
.000000 27
.00000028
.00000029
.000000 2A
.0000002B
.0000002C
.0000002D
.0000002E
.0000002F

.00000 00074
.00000 00076
.00000 00079
.00000 00081
.00000 00083
.00000 00086
.00000 00088
.00000 00090
.00000 00093
.00000 00095
.00000 00097
.00000 00 100
.0000000102
.00000 001 04
.00000 001 07
.00000 00109

.00000060
.00000061
.00000062
.00000063
.00000064
.00000065
.00000066
.00000067
.00000068
.00000069
.00 00 00 6A
.0000006B
.00 00 00 6C
.0000006D
.0000006E
.0000006F

.00000 00223
.00000 00225
.00000 00228
.00000 00230
.00000 00232
.00000 00235
.00000 00237
.00000 00239
.00000 00242
.00000 00244
.00000 00246
.00000 00249
.00000 00251
.0000000253
.00000 00256
.00000 00258

.000000 AD
.000000 AI
.000000 A2
.000000 A3
.000000 A4
.000000 A5
.000000 A6
.000000 A7
.000000 A8
.000000 A9
.000000 AA
.000000 AB
.000000 AC
.000000 AD
.000000 AE
.000000 AF

.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000

00372
00374
00377
00379
00381
00384
00386
00388
00391
00393
00395
00398
00400
00402
00405
00407

.000000
.000000
.000000
.0000 00
.000000
.000000
.0000 00
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000

EO
EI
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF

.00000 00521
.00000 00523
.00000 00526
.00000 00528
.00000 00530
.00000 00533
.0000000535
.00000 00537
.00000 00540
.00000 00542
.00000 00544
.00000 00547
.00000 00549
.00000 0055 I
.00000 00554
.00000 00556

.00000030
.00000031
.00000032
.00000033
.00000034
.00000035
.00000036
.00000037
.00000038
.00000039
.0000003A
.0000003B
.0000003C
.0000003D
.000000.3E
.00 00 00 3F

.00000 00111
.0000000114
.0000000116
.00000 00118
.00000 00121
.00000 00123
.00000 001 25
.00000 00 128
.00000 001 30
.0000000132
.00000 001 35
.0000000137
.00000 00139
.0000000142
.00000 00144
.00000 00 I 46

.00000070
.00000071
.00000072
.00000073
.00000074
.00 00 00 75
.00000076
.000000 77
.00000078
.00000079
.0000 00 7A
.0000007B
.00 00 00 7C
.0000007D
.0000007E
.0000007F

.0000000260
.00000 00263
.00000 00265
.00000 00267
.00000 00270
.00000 00272
.0000000274
.00000 00277
.00000 00279
.00000 00281
.00000 00284
.00000 00286
.00000 00288
.00000 00291
.00000 00293
.00000 00295

.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000

.00000 00409
.00000 0041 2
.00000 004 14
.00000 00416
.00000 0041 9
.00000 00421
.00000 00423
.00000 00426
.00000 00428
.00000 00430
.00000 00433
.0000000435
.00000 00437
.00000 00440
.00000 0044 2
.00000 00444

.000000
.000000
.000000
.000000
.000000
.OC 00 00
.000000
.000000
.000000
.000000
.000000
.000000
.000000
.00 0000
.000000
.000000

FO
Fl
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF

.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000
.00000

BO
Bl
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF

Appendix A

00558
0056 I
00563
00565
00568
00570
00572
00575
00577
00579
00582
00584
00586
00589
00591
00593

117

TABLE OF POWERS OF TWO

n

MATHEMATICAL CONSTANTS

n

2
n 2I
2
4
8
16
32
64
128
256
512
I 024
2 048
"
8
16
32

1
2
4
9

096
192
384
768

0 1.0
1 0.5
2 0.25
3 0.125
4 0.062 5
5 0.031 25
6 0.015 625
7 0.007 812 5
906
953
976
488

25
125
562 5
281 25

0.000
0.000
0.000
0.000

244
122
061
030

140
070
035
517

12
13
14
15

Decimal Value
3.1" 159 26535 89793

3.243F

IT-I

0.31830 98861 83790

0.517C

C1B7

.JW

1.772"5 38509 05516

I.C5BF

891C

625
312 5
156 25
578 125

65
131
262
524

536
072
144
288

16 0.000 015 258 789
17 0.000 007 629 394
18 0.000 003 814 697
19 0.000 001 907 348

062
531
265
632

5
25
625
812 5

I
2
4
8

048
097
194
388

576
152
304
608

20
21
22
23

0.000
0.000
0.000
0.000

000
000
000
000

953
476
238
119

674
837
418
209

316
158
579
289

406
203
101
550

25
125
562 5
781 25

16
33
67
134

777
554
108
217

216
432
864
728

24
25
26
27

0.000
0.000
0.000
0.000

000
000
000
000

059
029
014
007

604
802
901
450

644
322
161
580

775
387
193
596

390
695
847
923

625
312 5
656 25
828 125

268
536
I 073
2 147

435
870
741
483

456
912
824
648

28
29
30
31

0.000
0.000
0.000
0.000

000
000
000
000

003
001
000
000

725
862
931
465

290
645
322
661

298
149
574
287

461
230
615
307

914
957
478
739

062
031
515
257

5
25
625
812 5

4
8
17
34

294
589
179
359

967
934
869
738

296
592
184
368

32
33
34
35

0.000
0.000
0.000
0.000

000
000
000
000

000
000
000
000

232
116
058
029

830
415
207
103

643
321
660
830

653
826
913
456

869
934
467
733

628
814
407
703

906
453
226
613

25
125
562 5
281 25

68
137
274
549

719
438
877
755

476
953
906
813

736
472
944
888

36
37
38
39

0.000
0.000
0.000
0.000

000
000
000
000

000
000
000
000

014
007
003
001

551
275
637
818

915
957
978
989

228
614
807
403

366
183
091
545

851
425
712
856

806
903
951
475

640
320
660
830

625
312 5
156 25
078 125

I
2
4
8

099
199
398
796

511
023
046
093

627
255
511
022

776
552
104
208

40
41
42
43

0.000
0.000
0.000
0.000

000
000
000
000

000
000
000
000

000
000
000
000

909
454
227
113

494
747
373
686

701
350
675
837

772
886
443
721

928
464
232
616

237
118
059
029

915
957
478
739

039
519
759
379

062
531
765
882

5
25
625
812 5

17
35
70
140

592
184
368
737

186
372
744
488

044
088
177
355

416
832
664
328

44
45
46
47

0.000
0.000
0.000
0.000

000
000
000
000

000
000
000
000

000
000
000
000

056
028
014
007

843
421
210
105

418
709
854
427

860
430
715
357

808
404
202
601

014
007
003
001

869
434
717
858

689
844
422
711

941
970
485
242

406
703
351
675

281
562
1 125
2 251

474
949
899
799

976
953
906
813

710
421
842
685

656
312
624
248

48 0.000 000 000 000
49 0.000 000 000 000
50 0.000 000 000 000
51 0.000 000 000 000

003
001
000
000

552
776
888
444

713
356
178
089

678 800
839 400
419 700
209850

500
250
125
062

929
464
232
616

355
677
338
169

621
810
905
452

337 890
668 945
334 472
667236

625
312 5
656 25
328 125

InIT

1.1«72 98858 "9400

1.2500

CMBF

2.71828 18284 590t45

2.B7El

5163

0.36787 9«11 71«2

0.5E20

5809

..Je

1.64872 12707 00128

I.A612

98E2

loglOe

0.43429 44819 03252

0.6F20

EC55

log2 e

1.«269

1]15"

7653

-1

0.57721 56649 01533

0.93C"

67E4

-0.54953 93129 81645

-0.8CAE

9BCl

.J2

1.41421 35623 73095

1.6A09

E668

In 2

0.69314 71805 59945

O.BI72

17F8

logl02

0.30102 99956 63981

0.4010

40"2

..JlO

3.16227 76601 68379

3.298B

075C

In 10

2.30258 "0929 94Q.46

2. "D76

3777

25
125
562 5
781 25

599
199
398
797

627
254
509
018

370
740
481
963

496
992
984
968

52 0.000 000 000
53 0.000 000 000
54 0.000 000 000
55 0.000 000 000

000
000
000
000

000
000
000
000

222
II I
055
027

044
022
511
755

604 925
302 462
151 231
575615

031 308
515 654
257827
628 913

084
042
021
510

726
363
181
590

333 618
166 809
583404
791 702

164
082
541
270

062
031
015
507

5
25
625
812 5

72
144
288
576

057
115
230
460

594
188
376
752

037
075
151
303

927
855
711
423

936
872
744
488

56 0.000 000 000
57 0.000 000 000
58 0.000 000 000
59 0.000 000 000

000
000
000
000

000
000
000
000

013
006
003
001

877
938
469
734

787 807
893 903
446951
723 475

814 456
907 228
953614
976 807

755
377
188
094

295
647
823
411

395
697
848
924

851
925
962
481

135
567
783
391

253
626
813
906

906
953
476
738

25
125
562 5
281 25

152
305
611
223

921
843
686
372

504
009
018
036

606
213
427
854

846
693
387
775

976 60 0.000
952 61 0.000
904 62 0.000
808 63 '0.000

000
000
000
000

000
000
000
000

000
000
000
000

867
433
216
108

361 737 988 403
680 868 994201
840 434 497 100
420217248 550

547
773
886
443

205
602
801
400

962 240
981 120
490 560
745280

695
347
173
086

953
976
988
994

369
684
342
171

140
570
285
142

118

Appendix A

88963

Y

503
007
014
028

000
000
000
000

~

InY

4
9
18
36

000
000
000
000

6A89

e
e

8 0.003
9 0.00 I
10 0.000
11 0.000

Hexadecimal Value

Constant

625
312 5
156 25
578 125

APPENDIX B. REFERENCE DIAGRAMS
This appendix contains flow diagrams that are intended to
illustrate the major operations involved during the execution of instructions by the SIGMA 6 computer. The flow
diagrams are not intended to depict actual computer operati ons and sequences, but the operations and sequences
shown are valid representations of the internal computer
operations. The symbolic notation used in the flow diagrams is consistent with that used in other portions of this
reference manual. The symbolic terms used are:
Term

Meaning

A

An internal CPU register used to hold an operand
obtained from the general register that is specified by the R field value in the instruction word.

AC

Access control code - the code used to determine
whether or not a slave program operating with
the memory map may read from, access instruction from, or write into a specific page of virtual
addresses.

ADDR

Address - any virtua I address.

B

An internal CPU register used to hold an operand
obtained from the ~eneral register that is specified by the value produced by performing a logicalOR between the R field of the instruction and
the va lue 1.

C

An interna I CPU register used to hold an immediate
operand obtained from the instruction, or a byte,
halfword, or word operand obtained from the memory (or general register) location specified by
the effective address of the instruction. For
doubleword operations, this register holds the 32
high-order bits of the effective doubleword.

D

An internal CPU register used to hold the32 loworder bits of the effective doubleword in a doubleword operation.

EB

Effective byte.

EBL

Effective byte location.

ED

Effective doubleword

EDL

Effective doubl eword location.

EH

Effective halfword.

EHL

Effective ha Ifword location.

EW

Effective word.

EWL

Effective word location.

Instruction register.
IA

Instruction address.

IRA

Indi rec t reference address.

MA

Memory Address - an actua I core memory address.

OP

Operation code - bits 1-7 of an instruction word.

R

General register address value.

TCC

Trap condition code - the code that is used during
the EXCHANGE PROGRAM STATUS DOUBLEWORD (XPSD) instruction.

TYPE

Memory access type - the following values are
used to indicate the reason for accessing memory:

o=

write
1 = instruction read
2 = operand read

WK

Write key

WL

Write lock

X

Index register designator.

NOTES ON BASIC SIGMA 6 INSTRUCTION
EXECUTION CYCLE
The hexagonal elements in the flow diagram labeled
"Memory Contro I" refer to th~ memory request process
shown at the right of the basic flow diagram. The memory
request process is represented as a subrouti ne with two inputs:
an address value (ADDR) and a memory access TYPE, separated by a slash, that correspond to the values shown in the
"Memory Control II elements of the basic flow diagram.
The circular entry point labeled "TRAP" is a continuation
of the circular exit points labeled "Trap X'n''', where n is
the appropriate trap location.
The triangular entry point labeled "EXU" indicates the
point in the basic flow diagram at which an instruction
(being executed as an operand of the EXECUTE instruction)
is started.
The triangular entry point labeled "ANLZ" indicates the
point in the basic flow diagram at which the effective address computation for the instruction being analyzed is
started; the triangular exit points indicate the completion
of the effective address calculation.

Appendix B

119

BASIC SIGMA 6 INSTRUCTION EXECUTION CYCLE

(1)15-33' (X)13-31- '15-331------,

EB -

C 2 4-31

0 - C0-23
0- 0

EW-C

0-0

120

Appendix B

BASIC SIGMA 6 INSTRUCTION EXECUTION CYCLE (cont.)

o

yes

Appendix B

121

FLOATlNG- POINT INSTRUCTION EXECUTION
FLOAnNG-POINT MULnpUCAnON AND DIVISION

yes

no

no

122

Appendix B

FLOATING-POINT ADDITION AND SUBTRACTION

Right shift number with
smaller characteristic and
increment its characteristic by 1 far each hex
place shifted until the
characteristics of the numben are equal

X'5'- CC
yes

yes

<

pastnarmalization ~_ _.....;..:......_ _....
required mare than
2 hex shifts?

no

Appendix B

123

FLOATING-POINT SHIFT

yes

yes

RIGHT SHIFT

lEFT SHIFT
no

yes

Shift fraction risht 1 hex place,
fill vacated bit pcIIitions on the
left with O's, increment characteristic field by I, and increment shift caunt by one.

Shift fraction left 1 hex place,
fill vacated bit position on the
right with O's, decrement characteristic field by I, and decrement shift count by I.

Form the 2's complement of the final
floating-point number

0-Ce3
I-CC4

124

Appendix B

EDIT BYTE STRING INSTRUCTION EXECUTION

Fill - (R)O_7
SA

= (R)I3-31

0=(1)12_31

C
DA

= (Ru 1)0-7
= (Ru 1)13-31

= byte buffer
= byte buffer
II = digit buffer
d. = X'2O'
•• ~ X'21'
h = X'22'
.i = X'23'
a

IJ

Appendix B

125

APPENDIX C. SIGMA 6 INSTRUCTIONS (MNEMONICS)

126

Mnemonic

Code

Instruction Name

Addressing Type

Page

AD
AH
AI
AIO
AND
ANLZ
AW
AWM
BAL
BCR
BCS
BDR
BIR
CALl
CAL2
CAL3
CAL4
CB
CBS
CD
CH
CI
CLM
CLR
CS
CVA
CVS
CW
DA
DC
DD
DH
DL
DM
OS
OSA
DST
DW
EBS
EOR
EXU
FAL
FAS
FDL
FDS
FML
FMS
FSL
FSS
HIO
INT
LAD
LAH
LAW
LB
LCD
LCF

10
50
20
6E
4B
44
30
66
6A
68
69
64
65
04
05
06
07
71
60
11
51
21
19
39
45
29
28
31
79
70
7A
56
7E
7B
78
7C
7F
36
63
48
67
10
3D
lE
3E
IF
3F
1C
3C
4F
6B
1B
5B
3B
72
1A
70

Add Ooubleword
Add Halfword
Add Immediate
Acknowl edge I/O Interrupt (pri vi I eged)
AND Word
Analyze
Add Word
Add Word to Memory
Branch and Link
Branch on Conditions Reset
Branch on Conditions Set
Branch on Decrementing Register
Branch on Incrementing Register
Call 1
Call 2
Call 3
Cal14
Compare Byte
Compare Byte String
Compare Doubleword
Compare Halfword
Compare Immediate
Compare with Limits in Memory
Compare with Limits in Register
Compare Selective
Convert by Addition
Convert by Subtraction
Compare Word
Decimal Add
Decimal Compare
Decimal Divide
Divide Halfword
Decimal Load
Decimal Multiply
Decima I Subtract
Decimal Shift Arithmetic
Decimal Store
Divide Word
Edit Byte String
Exclusive OR Word
Execute
Floating Add Long
Floating Add Short
Floating Divide Long
Floating Divide Short
optional
Floating Multiply Long
Floating Multiply Short
Floating Subtract Long
Floating Subtract Short
Halt Input/Output (privileged)
Interpret
Load Absolute Doubleword
Load Absolute Halfword
Load Absolute Word
Load Byte
Load Complement Doubleword
Load Conditions and Floating Control

Daub Ieword
Halfword
Immediate, word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Word
Byte
Immediate, byte
Doubleword
Halfword
Immediate, word
Doubleword
Word
Word
Word
Word
Word
Byte
Byte
Byte
Halfword
Byte
Byte
Byte
Byte
Byte
Word
Immediate, byte
Word
Word
Doubleword
Word
Doubleword
Word
Doubleword
Word
Doubleword
Word
Word
Word
Doubleword
Halfword
Word
Byte
Doubleword
Byte

40
39
39
87

Appendix C

46
37
40
43
74
73
73
74
73
74
74
74
74

44
62
45
45

44
46
46
45
49
50
45
57
58
58
42
56
57
57
58
56
42
64

46
73
53
53
54
54
54
54
54
53
86
38
34
33
33
32
33
35

SIGMA 6 INSTRUCTIONS (MNEMONICS) (cont.)

Mnemonic

Code

Instruction Name

Addressing Type

Page

lCFI

02

lCH
lCW
lD
lH
LI
lM
lPSD
lRP
lS
lW
MBS
MH
MI
MMC
MSP
MTB
MTH
MTW
MW
OR
PACK
PlM
PlW
PSM
PSW
RD
S
SD
SF
SH
SIO
STB
STCF
STD
STH
STM.
STS
STW
SW
TBS
TDV
TIO
TTBS
UNPK
WAIT
WD
XPSD
XW

5A
3A
12
52
22
2A
OE
2F
4A
32
61
57
23
6F
13
73
53
33
37
49
76
OA
08
OB
09
6C
25
18
24
58
4C
75
74
15
55
28
47
35
38
41
4E
40
40
77
2E
60
OF
46

load Conditions and Floating
Control Immediate
load Complement Halfword
load Complement Word
load Doubleword
load Halfword
load Immediate
load Multiple
load Program ~tatus Doubleword }
privileged
load Register Pointer
load Selective
load Word
Move Byte String
Multiply Halfword
Multiply Immediate
Move to Memory Control (pri v iI eged)
Modify Stack Pointer
Mod ify and Test Byte
Modify and Test Halfword
Modify and Test Word
Multiply Word
OR Word
Pack Decimal Dig its
Pull Multiple
Pull Word
Push Multiple
Push Word
Read Direct (privileged)
Shift
Subtract Doubleword
Shift Floating
Subtract Halfword
Start Input/Output (privileged)
Store Byte
Store Conditions and Floating Control
Store Doubleword
Store Halfword
Store Multiple
Store Selective
Store Word
Subtract Word
Translate Byte Stri ng
Test Device
} privileged
Test Input/Output
Translate and Test Byte String
Unpack Decimal Digits
Wait
- }
Write Direct
privileged
Exchange Program Status Doubleword
Exchange Word

Immediate, word
Halfword
Word
Ooubleword
Halfword
Immediate, word
Word
Ooubleword
Word
Word
Word
Immediate, byte
Halfword
Immediate, word
Word
Ooubleword
Byte
Halfword
Word
Word
Word
Byte
Word
Word
Word
Word
Word
Word
Ooubleword
Word
Halfword
Word
Byte
Byte
Doubleword
Halfword
Word
Word
Word
Word
Immediate, byte
Word
Word
Immediate, byte
Byte
Word
Word
Doubleword
Word

35
33
33
32
32
32
35
75
77
34
32
61
41
41
77
71
43
43

44
42

46
59
70
69
70
69
80
47
41
48
40
83
36
37
36
36
37
36
36
40
63
87

86
63
59
79
80
75
36

Appendix C

127

APPENDIX D. INSTRUCTION TIMING
This appendix shows the timing (in microseconds) for
executing individual SIGMA 6 computer instructions under
a variety of circumstances. All of the times are based on
the assumption that whenever the CPU requests a service
cycle from a parti cular memory bank, it never has to wait
for such service due to other devices (such as lOPs) that
are connected to that memory bank.

execution times for some of the possible combinations of
memory bank configuration, data placement, and instruction type, where
MAX = Time with no memory overlap (i. e., all sequential memory accesses come from the same
bank)
MIN = Time with complete memory overlap (i. e. I all
sequential memory accesses come from a bank
not currently busy, that is, the bank being
accessed is not being used by the CPU or any
external lOP)

Execution times depend not only on the nature of the specific
instructions, but also on the configuration of memory banks
in the system, and the placement of instructions and operands.
The following table provides a means of estimating instruction

Average Instruction Execution Time
Memory Bank Configuration

Instructions that utilize
byte., ha Ifword,
and word addressing

Instructions that uti Iize
doubleword
addressing

A II instructions and operands are in the same
memory bank

MAX

MAX

All instructions are in one memory bank and all
operands are in a different memory bank

MIN

A II instructions and operands are in two interleaved memory banks

1/2 MAX + 1/2 MIN

1/4 MAX + 3/4 MIN

A II instructions and operands are in four interleaved memory banks

1/4 MAX + 3/4 MIN

1/8 MAX + 7/8 MIN

All instructions are in one memory bonk and all
operands are in two interleaved memory banks.
(Both operand memory banks are different from
instruction memory bank.)
Basic timing information is summarized in the following two
tables. A dash entry for any item indicates a non-applicable
or impossible condition for the instruction. Special notes
(identified by numbers in the II Notes" column are given at
the end of the table to which they apply. Table D-1 shows
the execution times for instructions under the most common
conditions that the user can expect to encounter in his program. Table D-2 shows the additional times that must be
added to the basic times if (1) the instruction performs a
register-to-register operation (i. e., accesses one or more
of the genera I registers for an operand(s) or a direct address}
or (2) the register pointer in the current program status
doubleword selects one of the register blocks in the range
from X I 4 1 through X l l P (4 through 31 decimal).
The times given in Table D-2, where the instruction performs a register-to-register operation, assume the following
conditions.
1.

The CPU is operating in the mapping mode with one
memory bank so that no memory overlap occurs.

2.

All instructions are in core memory.

128

1,12 MAX + 1/2 MIN

Appendix D

MIN

MIN

3.

In the case of an instruction with a direct address, its
operand is in one or more of the general registers. For
a push-down instruction with a direct address, however,
its stack pointer doubleword is in the general registers
and the stack is in core memory.

4.

In the case of an instruction with an indirect address,
the indirect reference is to one of the general registers,
which contains the direct address of the operand. The
resultant virtual address is assumed to be a core memory
address. For a push-down instruction with an indirect
address, therefore, both the stack pointer doubleword
and the stack are assumed to be in core memory.

The timing data given below are for a typical system. A
specific CPU may vary by up to ±1O% of the times shown.
For Jarge core memory configurations, an additional. 1 I-Isec
per memory access may be encountered due to added cable
lengths.

Table D-1.

Basic Instruction Timing

No Memory Overlap

Maximum Memory Overla)

Notes

Mnemonics

Indirect

Direct
No
Index

No
Index

+,----t---- -

I"dex

Index

Indirect

Direct
No
Index

Index

No
Index

-

R~ 0

AID

--------.------ -

6. 1

AND
-.32 .

~_ _ _ _ .,-___
AW

6. 1

..
_2_.6____2_9

No
Index

2
:.-6

6. I

~~-~~-~:

2.0

6. I
2.7

6.7
2.9__

6.7

U

..,

~.! __

I

f_-2.O

2.7

2.9

3.3

3. :

3.8
2.4

4.0
3.0

4.4
3.0

2

..

-------. r--------~ ..----i---------..--- - r - - - . - - - - l - - - - - _ + - - - - - - - . - f - - 2.0

2.3

1.0

1.7

2.0

2.4

Indirect

Direct

Index

No
Index

Index

No
Index

3.6

2.5

3.2

3.4

I

Index
3.8

_:::-~~ ~:~(~~-;;-~-+

::

,

6. I

6. 1

6.7

-'~2i3:.

'.1

,

6.7

2.6

•.•

i

6. I

6. 1

t

:~

/3.6
2.3

3.8
2.9

4.2_
2.9

1.6

1.8

2.3

3.3

0.9

1.5

1.8

2.9
2.3

____ __
~

2.6

3.9
2.8

2.9

<.S_

_~ _ _:~_r-_2.~___ ~_-+~~~
3.6

6.7

'.1

1.4

2.2
I 2.2
2.8
----+-------

6.7

2
--31..5 ---+-3 . : _ . _ 2.4
2

i

1------- f__-

2.2

.-

BCR

branch

1.0

Ii

BCR

no branch

2.0

~._6____
3._0_ _+-3-.-3-+--2-.-1--+--2-.8----3.-1-~-3-.-5--~_1_._9_~-2-.5----2.-8-_+-3-.-1--~-2-.-0-_+-2-.-7----2-.9-_+-3._3_~

BCS

branch

1.0

!I

-------T------------- ;

1.6

4_~-3.-0-.--3. 3

~~ __ -~~~--~~--~--

.._____~3-.-3-+_ •. 1

------r-32·.-03---L=-2·.~3---=--2·.99---~2·.-92

Index

No
Index

__1>---2-.

._---_.-+------1,--

6.7

03-13~.69 ---~ . 93 I

2.0

---BAA"!l~-

6. 7

Indirect

Direct

Index

~-~- ~~--- ~~--+--4.-2--+--2-.-9--+- 3_._7____3_._9_+-_4_.3_

.~----_+-------r----:-:-o-------4·-R--iO=::-~~9
.
7.' ::::

Map

No Map

Map

No Map

0.9

--------+---~------.~----~--_+------+_--_+---+_------~--~

no branch·

BCS

2.0

2.0

o. 9

1. 5

3.0

3.3

2.1

2.8

3.1

3.5

1. 9

i 2.5

2. 8

3. 1

2.0

2. 7

2.9

3.3

1. 7

2.4

2.4

1. 4

1. 8

2.4

2.5

1. 4

1. 7

2.3

2.3

1.4

1.8

2.3

2."

2.3

1.0

1.7

2.0

2.4

1. 8

2. 2

o. 9

i
J

1. 4

BDR
branch
----- BDR
no branch

J

1.6

2.6

~---~.------I__--+_------------~--_4---+_------__I-----~--~----------------1----

1. 6

2.3

1.8

----------+----~

---+---------+-----4---+_-------If_---~---f_------_+----I__---_+-------+---~

2.4

2.-

3.4

3.4

2.5

2.9

3.5

3.6

2.3

12.6

3.2

3.2

2.4

2.8

3.4

i'

3.4

~-----~------~---~-------------+----+-------

!~ ____ b_ro_nc_~____ ~~~~-~.!-------~~~---2-.4---_+-1.-4-_+--1.-8----2-._4_+-_2_.5_---t_1_.4_--+!_1._7_.__2_._3_+_2_.3__---t_1_.4_-+_1._8___
BIR

2.3

i

2.4

~ ---3.-4-l~.4

2.5

2.9

3.5

3.6

2.3

2.6

3.2

3.2

2.4

2.8

3.4

I

3.4

__ ~ _--+-=:-~_~_3___ 3.3

3.3

3.3

3.3

3.3

3. 2

3.2

3. 2

3.2

3.2

3.2

3.2

I

3.2

3.3

1.4

2.0

2.3

2.6

1.5

2.2

2.4

no branch

CAL 1-4

2. 4

r--~~--f-------r-~.-~CBS

2

-t' ~~-- -~-- -~~-f_~-

.j:~N

--

2.9

3.6

~___
2._9_

+::~N

+;:~N

2.9

+::~N

r-------f-------I-----+----------f_--I----i----------------if_----+------ii-------~---_t---_+_------i__-__I

CD

3.4
3.8
3.6
2.5
3.2
3.9
4.2
2.9
3.7
2.4
3.0
3.3
3.9
4.3
- - - - - f - - - - - - - - + - - - - - f - - - - - - - - f - - - _ + - - - t - - - - - - _ + - - ----+-----+-------I--------t
2.4
2.9
1.5
2.2
2.9
3.2
2.0
2.7
2.9
3.3
1.4
12.0
2.3
2.6

t---.---r-------~--

CH

2.0

2.6

r-------I-----

CI

:--__

1. 9

~;:;,--- ~--,~--

~--=
~ ___~__

_

~L~:~

3.0
17.1
tD.6N

117.1
! .Q.6N

DA
DC

-~~.----_+_----!__-------_+---~

--

1.9

>-;:;-- -;;--;:;- .;-- -, . 7,- - 3:3- 3.'

17.6
~0.6N

17.6
+0.6N
f_----- .-35. 2

17.1
+0.7N

17.1
+O.7N

~0.7N

17.8

38.4

38.5

f---~--f__---~- - -.. - ---

17.8
+0.7N
f-------

17.1
+O.5N

17.1
+O.5N

17.3
to.6N

- - - - - - - - - - - - - ..

17.3
17.3
17.2
17.2
.0.7N
+O.7N
+O.6N
+O.6N
- - - f-----"1i-----------+-----I
36.7
36.6
33. 7
36. 8
36.7

33.2

1.4

2.0

2.3

2.6

1.5

2.2

2.4

2.9

20.6

20.6

19.2

19.2

20.0

20.0

19.4

19.4

::.:O--r~:~--;~:-:-~--- ~::~~ _:_:~ -~~:-7- ~::D ~::o ~::D ~::o ~::D

20.6
+0.30

20.6
+0.30

::::0

+0.30

+0.30

~::o I ~::~D 12.8 , 12.8
-'0.30
+0.30
+0.30 I+0.30
-----+-----1
30.8
+O.8K

31.4
+O.8K

31.4
+0.8K

11:S---

12.5

19.2

I .0.30

20.0

.0.30

20.0

+0.30

19.4

+0.30

---~---.----------

.!:!..__
19.4

+0.30

+0.30

+0.30

33. 7

-----------

+0.30

+0.3D

+0.30

12.4

113.0

13.4

~113.7

12.4

30.8
31.4
31.4
+0. 8K ____ ~~__ +0.8K
13.2

13.4

13.8

29.7
+0.8K

j29.7
+O.8K

30.3
+O.8K

.

30.3
+O.8K

30.8
+O.8K

::A
-- - -

oST

6

~.:3~Nti+~._~__~.30_+~~~~ ,~._3~_ +O.~__ +~~~__

612
__ ~_4~N

61.2

61.8

\' 61.8

62.3

~._4~~ _~_~~~_ ~~~4D~ ~~4~

62.3

62.9

62.9

61.2

12.0
to. 70

11.3
+0.7D

61.2

61.8

61.8

.~~~_ ~_~_~~o~ _+O.4~~ ~~~~~:~~ __ ~4DN

-t

12.0
+O.7D

11.3
+0.70

12.1
.0. 70

12.5

+0.3~___ ~~-~--tO.3~-~~-~~---~~--~0.30-- ~0.3~ __

~------+-------------._i---- ---- -------- -.--- .. - - - - - - - , - - - - -

/".3
i .0.70

13.7

+0.30

-- ~:o ~-:O~§.!O-~!O- _~~c:~o_~:o_ ~:o
11.3
+0. 70

I

~U- Q-0---~3 ~---~~-1--13.3

~--- - 4 - - ~~~~--_r~~;----1-2~~--11~4--~- -~;~~--tl~·~--~-;~-- 12.5~;~;--~~~~--~~~--- ~2~;-- --;-~
OM
___

3.8

33. 2

38.4
~-------

~:~_~~ __ f_--2..:~

+0:

______________

3.4

3.3

------.------ -.---.

29.7
l29.7
30.3
30.3
30.8
___ .. _________ ~. 8K _ ~~.~~ __
8K .. ~ I~:~~__ +0.8K

DH

3.2

17.3
.0.6N

-------+-----------'--------- ------- - - - - - - - . - - - - - - - ----.- - . - - - - -

----------

2.5

3-.-1--_+--1-.8---+-2.-6-----2-.-8--+-3-.-2--1

2.9

----f~

19.2

---_._--

I --

. 4~~ ~·-=-_~_+2~ ____ ~~__ ~~_f_~-~-~~8---- ~~_~--~--.-7----3-.-9---+--4.-3---I

___2.0_!_~~ ___

-

1. 8

38.5

--- -- -

CW

- -

_~__~___ ~ ____~. ~ _ _2~_ ~.~3____ ~~_____ ~~_

------ --------+-----------34. 7
i 34. 7
35. 2

CVS
---_.-

DO

'l' ,-

~=;. 0 _t6_~~2. 9_

CVA

- - - - - -----

r3.'3

i

2.0

12.1
+0.70

62.3
+0.4oN

62.3
+O.4DN

62.9
+O.4oN

62.9
+O.4DN

:·:0 ::0 ::0 ::0 ::0 ::0 ::0 ::0
-------< - - - - - - - - - - - - - - - - I

----------------~-

11.3
+0. 70

11.3
+0.70

11.3
+0.70

12.0
+0.70

12.0
to. 70

11.3
+0. 7D

12.1
+0.70

I 12.1

I +0.7D

Appendix D

129

Table D-1.

Basic Instruction Timing (cont. )

No Memory Overlap

Maximum Memory Ovedop

No Map
- - - --Direct
Indirect
Direct
f---- - r - - - -- - - r'
No
No
No

Mop

No Mop
Mop
-- - - - - - - - - - r-----------,.--------i
Indirect
Direct
Indirect
Direct
Indirect
---- - - - - - - ----_t----.----\
No
No
No
No
No
Index
Index
--."'--

i

DW

13.8

:;5 _-_ ~j" '-__
EOR

_

EXU

19

-

1.8

2.~ _ _ 2.~+

1.

1.6

3.0

I.B .__ 2.5

2.~

31

14

2.2,2.2

18

22

2.4

I

t

-

1

20

23

126

15

2 2

2 4

2.9

1.6

2.1

2.2

1.3

1.8

2 2

2.4

r

~---~~---+----+----.~--~

I:: -- ,:; ,:; ,::' ,:: ,:: ,:: ,:; !,:L ,:; ,:: ,:: ,::

j~:-:~:

_!~LtYPir.alj'12

FASmin
------

r
I

FAS max

5.0

5.5 ___ ~___ ~ ___ ~~r-~.7

6.0

10

3.3

3.9

4.2

4.2

11

B.2

8.9

9.1

4.6

3.3

4.0

B.2

9.0

--- - - "

--.--.- ·----1

_~~ty~~co~J~2

9.5

-. ---.---- -----.-----.

__ ~O__

4.6

4.9

5.3

FDLmin

113,14

254

261

26.4

126.7

FDL

r1I-

34 7

r- 35 ..

12 4

r;3 ;---

6.4

5.0

4.7
3.3
------1---9. I
9.6
B.2

~---r--"

4._0__ ~_4.7

5.5

5.9

3.9
4.2
----- .---8.9
9. I

,::--'~~-+-I-:-.--:--t-I-:-'~---I

6.1

5.1

5.7

6.0

6.4

4.6

3.3

4.0

4.2

4.7

9.5

8.2

9.0

9. I

9.6

-----.-.-----t----.,.---f----+---_+_--~

4.9

5.4

4.0

4.6

4.9

5.3

4.0

4.7

4.9

27.0

26.B

25.4

26.1

26.-4

26.7

25.5

261

270

- -35.4

36.3

36.1

34.7

35.4

35.7

36.0

- -13.4

:-;;...--

5.4
-.-f---

ma~-

FDS min

f-- -

13,14

I

-

35 7

13~

~I 36.0

255
34 B

-~3- 7 -- -~2

4

26.1

r-~~:~"-- t~=~-~-!~~6- ~~;---~~-- _17-;~= ~~.-;FMlmin

13,14

9.1

f - - .--- --.- - - - -

.

9.8

10.0

10.4

9.2

13. B -.. 12.4

-;7.6

17.6

IB.-;;-

10.0

10.2

10.6

13.3 - -

~3~~T

16.61-;.~-- -;~~--9.1

9.8

10.0

34.8-- 35:4

36:3t36~I--

~2.-i-- ;3~.4--- 13:~-

13.7

26B

-tru--

-1-7-.9--+--16-.·-6-+-17-.-6-+-1-7-.6--t-I-B-.O- - I
10.4

9.2

10.0

10.2110.6

----t--__j----t----+--__jc----+_---~r_---_+_--_t---+----

- - - ----- -----

14.7
15.4
15.6
16.0
14.8
15.6
IS.8
16.2
14.7
15.4
15.6
16.0
14.8
15.6
15.8
16.2
- - - -..-- .... - - . - - - - - - + - - - + _ - - - + - - - - I , - - - + _ - - - - t - - - f - - - - + - - - + - - - f - - - - + - - - - f - - - + - - - - + - -....-+----1
2

FMLmox"
f----.--

::~ ~;;j ~,,,-::. ..~_:_.-_.
~~~__

I 10

F5lmax

fil

__

:_~

_+-.:__:

+-_:_:_:_+-.1_:_::--+-::-:-+-:-:-:-_+-:-:-:-_+_1-:-::_ _ +_:._.:_.+_:_:_:_+ __:_:_:_+-1_:
__: 0_

:_+_::_:_+_:_:_:_+1_:_:

~-4-.-1-+_-4-.-7-~-5-.0-_+_-5.-3-~-4-.-2-~-4-.-9-4--S-.-1._t--_5._5_-+_4_._I_+_-4-.-7-t---5-.0-~-S-.3--+-4-.--2 ~_4_._9_+_-5-.I-_t-S-.-5--I
13.7

14.2

14.6

14.8

13.8

14.4

14.7

15.1

13.7

14.2

14.6

14.8

13.8

14.4

14.7

IS.I

~;yp.;~'t_'2~=-_. ~.-.~--5-.5--+-5-.-9-+-6.-.-1-4_-5-.-1-_+_-5-.7-_+-6.-0-+-6_._4_~-5-.-0-+_-5-.5-+-5.-9-+_-6-.-1-~-5-.-1-_+_-5-.7-_t-6._0 _+-6-.-4-~
-

~min

_

~ _ _ .. _~~--+_-4.-2-~-4-.-6-;--3-.-3-+_-4-.0-_+-4.-2-_r-4-.-7_-r. _3_._3_ _+_-3-.9-~-4.-2-+-4-.-6-+-3-.-3. --+_-4-.0-_t-4-.2_-+_4_._7_-1

__

F5S mox
I 11
8.2
8.9
9. I
9.5
8.2
9.0
9. I
9.6
8.2
8.9
9. I
9. 5
8.2
9.0
9. I
9.6
f__---_+-------- - - - - -..----~--~----_+---+---_+---;---1_--_+_--_+---+_--_;---t__--+_--_+-----1
FSS typical 12
4.0
4.6
4.7
4.9
4.9
5.3
4.0
4.0
4.6
4.9
5.3
4.0
4.7
4.9
5.4
5.4
- -- ~----4------+_----_+----~f------_r----_+----~r-----~------~----+_----_+------~----~
r--'HIO
R = even,/O 9.7
9.7
10.3
10.3
9.7
9.7
9.4
9.5
10.. 3
10.3
9.4
10.0
10.0
9.5
10. I
10. I
~-.-

.. -

--

-+-----1--.--

------.-.-

HIO
R = odd
- - - - r'--'--'-HIO
R= 0

8.3
f-----

7. I

8.3
- - - . --

7. I

8.9
8.9
8.3
8.3
8. 9
8.9
8.3
8.3
8.9
8.9
8.3
8.9
8.3
8.9
-f-.---+_---_t---f---_t----f----;----+---_+----+_------if__---+---_+-----f__---I
7.7
7.7
7. I
7. I
7.7
7. I
7.7
7.7
7. I
7.7
7.7
7.7
7. I
7. I

-----------+--------+-----r-----~----_r----_t------f__----1_----1_----~------i-----,f__----+_----_t----_+------+-----1------1

INT

2.4

3.0

3.4

3.6

2.5

3.2

3.4

3.8

2.3

2.9

3.2

3.5

2.4

3. I

3.3

LAD

3.4

4.0

4.3

4.6

3.4

4.2

4.4

4.8

3. I

3.7

4.0

4.3

3.2

3.9

4.2

4.6

2.0

2.6

2.9

3.2

2.0

2.7

2.9

3.3

1.8

2.4

2.7

3.0

1.8

2.5

2.7

3. I

2.0

2.6

2.9

3.2

2.0

2..7

2.9

3.3

1.8

2.4

2.7

3.0

1.8

2.5

2.7

3. I

2.0

2.6

2.9

3.2

2.0

2.7

2.9

3.3

1.8

2.4

2. 7

3.0

1.8

2.5

2.7

i

LAH
LAW
LB

l

1

~------

LCD

3..7

3. I

--------T-----+_----_1----~f__----_r----_1------~----_+------~----+_----4-----_+------~----+------t__----~----~

LCF

2.9

3.6

3.9

4.2

2.9

3.7

3.9

4.3

2.4

3.0

3.3

3.6

2.S

3.2

3.4

3.8

2.0

2.6

2.9

3.2

2.0

2.7

2.9

3.3

1.8

2.4

2.7

3.0

1.8

2.5

2.7

3.1

LCFI

1.3

LCH

2.0

2.6

2.9

3.2

2.0

2.7

2.9

3.3

1.8

2.4

2.7

3.0

1.8

2.5

2.7

3.1

LCW

2.0

2.6

2.9

3.2

2.0

2.7

2.9

3. 3

1.8

2.4

2.7

3.0

1.8

2.5

2.7

3.1

LD

2.9

3.6

3.9

4.2

2.9

3.7

3.9

4.3

2.4

3.0

3.3

3.6

2.5

3.2

3.4

3.8

1.4

1.3

1.4

f----------4--------i-----1------~----_+------r-----1_----__jf__----r_----~----_+------r_----_r------r_----~---_+------+_----1

LH

2.0

Ll

1.3

LM

15

2.3
+1.0N

2.6

2.9

3.2

2.0

2.7

2.9

3.3

1.4
2.3
+LON

3.0
+1. ON

3.0
+1.0N

2.4
+1. IN

1.8

2.4

2.7

3.0

2.4
+1. IN

3.0
+1.IN

3.0
+1. IN

2.2
+1.0N

1.8

2.5

2.7

3.1

2.3
+I.IN

2.8
+LIN

2.8
+LIN

1.4

1.3
2. 2
+1. ON

2.8
+1. ON

2.8
+1. ON

2.3
+1. IN

f-----.----.---------r-----r-----+----_+------+------+------f-----+_----_t------f------+_-----+------+----_r----__if__----~----~

lPSD

4.4

4.4

5.0

5.0

4.7

4.7

5.2

5.2

5.0

5.0

4.7

4.7

5.2

5.2

3.4

2.3

3.0

3.2

3.6

~------------1-----1-----__ir_----+_-----~----__i~----_r----_+------r_----4_----_+--

LRP

130

2. 2

Appendix D

2.8

3. I

3.4

2. 3

3.0

3. 2

3.6

2. 2

2.8

3. I

Table D-l.

Basic Instruction Timing (cont. )

No Memory Overlap

Maximum Memory Over;"p

No Map
Notes

Mnemonics

Direct

Indirect
No - - , -

No
Index

3.4

;~: ~N

MBS byte

4.2
+3,4N

Index

Index

Index

Index

--:;;---

Index

Index

--

--- --- ---

I - -

4.4
to.8N

- -

,

- -

Index

- -

4.3
t3.4N

4. 2
to. aN

3,4
-;.-; --

3.8

MH

4.8

4.4

4.7

~M-M_:-:--+R-I-O--~~

5.3

3.1
+3. IN

4.8

3.8

5.1

---

ii

- -

I

------+
3.9
4.7

4.9

5.3

!

-------+---------+----

I

3.1
+3. ON

t
~;gl~-~~-----;r---:-:-~---'~--:-:-~--~---~-~----~-:-:-~-:-:-:-~-:-:-:-~-:-::---+:-:-::--+il--:-:-~! !

--c---

~:_:_- :~-(::-=tIl~:--tit:___~c~~_ :: :: :: :~t::

. _M_:__:_: __

I'

5.1

3.0
+2.9N

----+--

r-

---t--

4.4
to.8N

-------

3.~-

2.4'

-------

5.0

- - - - - - . - - - c-------- - - - - -

i

-;-;

4.3
+3.4N

-----------c--.-.---

5.1

-===±::::===--==+=====1

-;~- ~~-

------

4.9

- - - - - - - - - - f - - - --

MI
5.0
I - - - - - - - + - - - - + - - -~~- --3.0
MMC
15
+3.0N

Index

3.3~±tt±i5
39

4.2
+3.4N

3.9

5. I

I Index : Index

Index
2.6

- -

--1------ ---~'----+-----~I-

Indirect
-N~-T--

Index

--- - - - -

- -

t

3.7

- - --

-- - - - - -- - -

Direct

,-------N--;;-- ----f---N;;--i--- ---

No

--f---

Indirect

3.7
2.6
3.3
3.5
3.9
2.5
3.1
3. 0-- -~;_r__;-;_ ~- ~ r-~7- ~-

-----r----+-----

MBS word

Direct

No

--- - -

2.5
3.1
---------;r--1.-8-- "2.~-

LW

Indirect

No

Map

No Map

Direct

IndeXr~ndex

Index

- - c-- - -

lS

Map

:_:__-+_:_:_--.i_:_:__

_:___-+

4.1

~-:_'~:~ -i

+

I; _ : _ :
____-_:',

MTW

RIO

3.8

,4.2

MTW

R~ 0

3.4

3.8

6.0

6.5

MW
2.2

2.4

2_ 8

12 . 0
itO.6N

; 12.8
+0.6N

12.8
+0 6N

OR
PACK
16
1--_ _ _ _+--____ +-tO_._6_~_ .._

PLM

+~.~N_l~.:.6-~_+ ':?..:.6f\J._~~~~_+ to.6N

,.. -1-1------,;:-t'::15

10.0
10.0110.8110.8
+1 ON l1.0N I t1.0N ! 'LON

,

10.5110.5
+1 IN
t1.1N

to.6N

to.6N

12.0
+O.6N

+0.6N

to.6N

i +0.6N

11.!
+1. IN

11.1
+1 IN

9.5
+ION

9.5
+10N

10.0
+10N

I

'~----1--

i10.0
+1 ON

i'

12.0
to.6N

1

10.2
+1.0N

i 10.2
: +1.0N

+---~
, 10.7
-1. IN

~:--+5 -_'::_-'~~-

~-11~~--~;;- ~~:---~~-+I~:-+~::: -f~~-~~~ :1:.: I~::

I------Jt---------

T1.0N

PSW!

+I~_ r~:-~~ ~~_~~~I ON
9.8
i 9.8
110.5
i 10.5

I

...r--------RO- ---.-+j-nt-e-rn-a-,- - t 2:'
external

RO

17
S left

18

2.8

2.5

_+

1}8

I

Srih,
9

50

118

2.1

L--- _~._:N__
i

.. G

SF If

ISingle

9.3

9.3

3. 1

2.5

3 ,4

2.8

3. 1

3.4

I

2.83,4

2.8!

1

+1.0N

9,8

9.8

9.8

; 9.9

: 10.5

[10.5

2.5

3. 1

3. 1

2.5: 2 5

: 3. 1

I

3 I

2.8

1 3.4

3. 4

2.8

I

3.4

1

i

2.8

: 3_4

~:~~--I +_0~4~_c--::<>,4~_11:0,4~_ _tO'4N _~4~_+~:_~_1 to.~~ ~~:~~--+_'~~~~_~_:I'J
2.2

i

2.2

2.8

2.8

2. I

2.8

1

2. 8

2.2

1 2. 2

2.9

2.9

2.1

1

2. I

I 2.7

2. 1

1

'"

to_'.~~__ ~~2~_li.02N"'. 2N . r : ' N . - c:C·.2N- ."'~_ ~"'-t
3.6

2.6
,0.2N

10.9

10.9

II:::

+1.0~~:

+0.8N

I

i .1.0N

10.7
+1. 1 N

I

2.7

2.1

2.8

2.2

i

2.1

!

2.2

: 2.7

+1.0N

: +O,4N
!

2.7

-~~~-J:-~:-~r:..- -~~~--t.~~~~r:.- _~~~ _~~~_(~.~~_++O:-~r:.--, ~~ _I~_ ~~_+_~~-~O~~-j~

+2.1

2.9

to.8N

10.~~
2.5

_

I to.8N

+1. ON

1- 3~ ~-, I
3.4

+O.9N

+1.0N

3. 1

+0.41''---t-0~~I'~__L~.4N__ L- ~:4N
2. I
I 2. I
I 2.7 I 2.7

r---------L---- .0. I~__ ~ +O~~N__

j +1.0N

I

3.9

4.2

2.6
3.2
" ' . " ' , 0 . 2N

3.2
I'0.2N

I

2.9

3.7

2.7
2.7
'0. 2'#tO.2N

2"

3.9

4.3

2.4

3.0

3.3
+0.2N

3.3
+0.2N

2.6
-+{).2N

2.6
+0.2N

4.7

4.7

4.0

4.0

4.6
to.6N

4.6
to.6N

3.8
+O.6N

3.8
to.6N

,

2. 8

~. 2N

I 3.3

"'. " ' _ : 0 '"
3.6

2.5

3.2
+0.2N

2.7
to.2N

4.6
4.6
~~_:~ ____~~+ +{).2N_ TO.2N

4.
+0.2N

I 3.2

J +0. 2N

i ,0. 2N
3.2

'I

l

2.7
+0. 2N

12.9
,"'. 2N

12.9

~

i

3.4

!

!

3.3

I

iTO. 2N

3.8
3.3
+O.2N

~~--i;j;~~
+~:_:N ~-~~_l_:-,~-._-.-r_~. ;~=l:N_£:;~J:cl~J:-c:rrN-c-~:N
+_~:~N_·t~;N- ~:NI i'~~N1
I
I
4. I ~.~_~- ~:~N
_

SF left

double

SF . h
rig t

Idouble

r---~--

::
510

STB

119

3.8
+0.6N

3.8
to.6N

4.6

~~~

u.6
_ +O.2N __

4.4
to.6N

4.4
+O.6N

I

4. I

4.

+~~:~---t' +~3_~. __ ~!~_ ~O..:~

3.9
to.6N

I

3.9
to.6N

4.4
to.6N

4.4
+{).6N

3.9
to.6N

::::",~':: 1: :~jl_~=_;:~l'~ :~ ~~[:T~;f; J;~;_ci~ ~~±--i;-;,:- ':

'R~O

_ _ 7.1
3.0

'sTcF'-- ------ -3.-0
5TD

'.,

II

4.0
4.0
to.2N ___to.2~_

7.1

~~

3.0;

3.6

3.0

3:6---1-3.'6--

3.-6----;.6

____ 7.7 ___
13.6

7.1
3.1

r-~:-~---l~:~ I~__ ~~__+~~
3.1

3.7

3.7

2.9

2.9

i .0.2N

I

3.9
i to.6N

4. I
,4. 7
+0.2N! +O.2N

4 . 6 , 4.6
,to.6N I TO.6N

::-1 : : : :

_7.7

7.7

7.1

7.1-+-;~~~

3.5

13.5

3.0

3.1

3.0

3. I

i

-3.I--~-- '---3.7-- -3. i- c--- 2. 9 --~+i5I3. 5

3.I,! 3.7

3.6!-~

-~~~---t 4.-;-·3.-;----;~;---~~_;_--___z;-- 3.2-;;-1-~;-l--;-·7-- -;.-5----r--;-~- r---;~;-j--;:-;-

Appendix D

131

Table D-l.

~ I
I ''',,~..,onics'

Basic Instruction Timing (cont.)

~------------~--------~~~--M-a-x-im-u_m_M_e~m-or-y-O-v-e-rla-p----------------~
D-;"~;_~C~_op Ind;~-'----Di-re-c-t--M-,a,p--In-di-re-c-t----+--D-j-re-c-t--N-O~--dj-r-e-C-'----t----D;-re-c-'--M-rap---In-di-re--c-,- - _N_o_M_e_m,o_'y_o_v_e_rl_ap____

Noles

I

- -

-- N-;;-- ------f--~,-

No

No

No

No

No

No

Index

Index

Index

Index

Index

Index

Index

Index

Index

Index

Index

Index

Index

Inde"

Index

Index

3.0

3.0

3.6

3.6

3.1

3.1

3.7

3.7

2.8

2.8

3.5

3_9

3.0

3.0

3.6

4.0

2.2
,1.0N

2.2
+1.0N

2.-S
+1. ON

2.8
tl.ON

2. 1
+

1.3

1.3

0.9

0.7

1.6

1.3

FSL

2.3

1.6

1.5

1.5

0.4

0.3

O.B

0.6

1.5

0.8

1.5

1.5

0.4

0.3

0.8

0.6

1.5

1.5

0.6

0.6

0.9

0.9

r--------1---+--_1--+_-~~-;_---_+---;---~----_+--_;

AW

1.2

0.5

1.2

1.3

0.4

0.3

0.8

0.6

FSS

A'V/M

2.2

1.6 ' 1.3

1.3

0.4

0.3

0.8

0.6

HIO

t---.--I------+---+----+--+---+------jf----+---t---~I-__I

BAl

OJ

0.7

1.4

1.4

0.4

0.4

0.7

0.7

INT

1.4

0.7

1.4

1.4

0.4

0.3

0.8

0.6

1.3

0.7

1.3

1.4

0.3

0.3

0.7

0.6

LAD

2.3

1.5

1.3

1.3

0.4

D.3

0.8

0.6

LAH

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

0.3

0.3

0.7

0.6

LAW

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

LB

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

0.3

0.3

0.7

0.6

LCD

2.2

1.4

1.2

1.2

0.4

0.3

O.B

0.6

LCF

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

BCR

branch

BCR

no blanch

2.1

1.9

1.3

1.3

BCS

branch

1.3

0.7

1.3

1.4

BCS

no branch

2.5

1.9

1.3

1.3

BDR

blanch

1.4

0.9

1.4

1.4

BDR

nob,allch

BIR

branch

.'-'--- - - -- -

I

- - ----- ----..--+----_+--+_--+----1

2.4

2.1

1.2

1.3

1.4

0.9

1.4

1.4

0.3

0.3

0.7

0.6

LCFI

0.1

--------+------4----~--_+-----~--_1~----~--~----~----+_--~

BIR

no branch

2.4

2.1

CAL

1,2,3,4

1.3
1.4

0.4

0.4

0.7

0.7

1.3

1.3

0.4

0.3

0.8

0.6

LCH

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

LCW

1.2

0.5

1.3

1.4

0.4

0.3

O.B

0.6

-----.-i----+_-_1--~--_+--;_---.~I--_+_---+_--+_--~

CB
CBS

1.2
1.4

1.3
24

0.6

0.6

0.7/'J

LO

2.2

1.4

1.2

1.2

0.4

0.3

0.8

0.6

LH

1.2

0.5

1.3

1.4

0.4

0.3

0.8

0.6

1------

CD

, 22

1.4

1.2!'2

0.4

0.3

0.8

0.6

r-C-H----+-·-----t--l:-3-4--0.-6-+--1.-3-4--'-.2-+------+--0-.4-+--0.-3-+--0-.8--r-O-.6~

LI

0.1

~-----+----~---+---~---~--.----+-----+---+---------

LM

0.8N

r--.--- -----+----t--f---+---- -.--~--.+----+----~--~

0.8N

1.3

1.3

0.4

0.4

0.7

0.7

LPSO

I.B

1.8

1.5

1.5

0.4

0.3

0.8

0.6

~-C-LM-----+_---_~-I-.-5_+-1-.-2~_I-.-2-_i-1.--2-+__----+--0-.4-+--0._3_+__0-.8--r-0-.6~

LRP

1.5

0.7

1.5

1.5

0.4

0.4

0.7

0.7

~-C-LR-__+_-----t--l-._3__+-0-._7-+-_i-.4-- i 1.4

1.5

0.8

1.5

1.5

0.5

0.4

1.0

0.7

1.4

0.7

1.5

'.5

0.4

0.3

O.B

0.7

0.3

0.8

0.6

0.6

0.9

0.9

0.4

CI

0.4

0.3

O.B

0.6

LS

0.4

0.3

0.8

0.6

LW

0.4

0.4

0.7

0.7

MBS

27

0.2N

28

0.3N

CVA

30

1.4

I 1.3
I 1.4

CVS

30

1.4

1.4

0.4

0.4

0.7

1.4

CS

0.7

1.3

0.7

MBS

CW

1.3

0.6

1.3

1.3

0.4

0.3

0.8

0.6

MH

OA

0.10

0.10

1.5

1.5

0.4

0.4

0.7

0.7

MI

DC

0.10

0.10

1.5

1.5

0.4

0.4

0.7

0.7

MMC

1.5

0.6

0.8

1.5

1.5

0.4
0.4

0.8N

0.6

~---+_--~--+_-~-·--+_--+---·~-~---+_--~c---

~-D-D--~~----+_-3.-5-+-3-.-5+-1-.5-.t-l-.)---~-----1-0-.-4-+-_0_.4~f--O.-7_+-0.-7~
DH

1.5

0.7

1.4

1.4

0.4

0.3

0.8

0.6

MSP

MTB

RIO

3.5

3.5

1.5

1.5

0.4

0.4

0.7

0.7

2.1

1.4

1.5

1.5

0.4

0.3

0.8

0.6

0.4

0.3

0.8

0.6

0.4

0.3

0.8

0.6

DL

0.10

0.10

1.5

1.5

0.4

0.4

0.7

0.7

MTB

R=O

1.5

0.8

i.5

1.5

OM

3.5

3.5

1.5

j

.5

0.4

0.4

0.7

0.7

MTH

RIO

2.1

1.4

1.5

1.5

OS

O.lD

0.10

1.5

1.5

0.4

0.4

0.7

OJ

MTH

R=O

1.5

0.8

1.5

1.5

MTW

RIO

2.4

1.7

'.5

1.5

R=O

1.5

0.8

1.5

1.5

1.5

0.8

1.5

1.5

0.4

0.3

0.8

0.6

1.5

1.5

0.4

0.3

0.8

0.0

I------~----+--+--_+_--+_--t-----~--+---+--~-~

o
1.4
L4
OSA
-------+----+---+----+--- ---0.30 0.30
1.5
1 .5
DST
ow
EBS

1.5
25

0.8

1.4

1.4

0.7

1.4

1.5

0.4

0.4

0.7

0.7

---I-----+-------1~-_+-__I

OAN

0.4

0.4

0.7

0.7

MTW

0.4

0.3

0.8

0.6

MW

0.3

0.8

0.6

OR

0.3

1.4

0.7

~------+_----_r----+_--_+----t---_+------+---_+----+_----~---

EOR

1.4

0.4

PACK

O.2N

0.2N

1.5

3.2

3.2

1.1

~.-~r_.--~--_+----+_-_+--~f--_+_---+--_1--__i

EXU

26

1.5

0.7

1.5

1.5

26

0.4

0.3

0.8

0.6

PLM

'.5

0.4

0.4

0 .1-,

0.7

1.1

0.4

0.4

0.7

0.7

Appendi X D

133

Table D-2.

!
I
II:'

!

r

Register pointer selects
register block X'4' _ X'IF'

"t"Si,tt"l·tc-reg ster Operotions
,\,kerno',"c

.

"Jt~s I

Additional Instruction Timing (cant.)
(Add to times in Table D-O

-Dj·;~;-;-l-nd-il-·c-cl-+-----r--D-i-re-c-t-~-'n-d-ir-e-ct-'"

'j-;; l~n-:-ex

No

Index

Notes

No

Index

No

Index

~I-::;'.' -~t~1 :;_0_+_-In-:d-:-X.r_-:-:_t_- _+-In-:d-~,-t- :-: - -;rl-~-i-x-t- :.-:;-t
-l:t:
:
:~ -+----+--:-::--+-O-O:-:_+-::-:_+-:-::.~
--~--- --~---+- -t----+----t---I----+--__if-----f
,-- c SF

SH

2,2

1.4

1.2

1.2

1.5

0

Notes:

0.5

1.4

1.4

0.4

1.0

0.7

0.6

0.6

0.8

0.6

1.5

L3

1.2

SlW

O.B

0.9

1.4

1.5

0.3

0.3

SW

1.2

0.5

1.3

1.4

0.4

0.3

TSS

l.8N

-

--

--

--

--

--

--

0.6

TOV

0

0

1.5

1.5

0.6

0.6

0.9

0.9

0.4

0.4

07

0.7

TIO

0

0

1.5

1.5

0.6

0.6

0.9

0.9

0.6
+

u

I
I
I
I
I
I ~
I
I ~
I 4

PLEASE FOLD AND TAPENOTE: U. S. Postal Service will not deliver stapled forms

1C~

<

c

111111

C

NO POSTAGE
NECESSARY
IF MAILED
IN THE
UNITED STATES

u

BUSINESS REPLY MAIL
FIRST CLASS PERMIT NO. 59153 LOS ANGELES,CA 90045
POSTAGE WILL BE PAID BY ADDRESSEE

HONEYWELL INFORMATION SYSTEMS
5250 W. CENTURY BOULEVARD
LOS ANGELES, CA 90045

ATTN: PROGRAMMING PUBLICATIONS

u.

~

c:
2

~S
c(

Q
-l

o

...

Honeywell

XEROX SIGMA 6 INSTRUCtiONS (OPERATION CODES)
Code

Mnemonic

Instruction Nome

~

Code

Mnemonic

Instruc tion Nane

02
04
05

LCFI
CALI
CAL2
CAL3
CAL4
PLW
PSW
PLM
PSM
LPSD
XPSD

load Conditions ond Flooting Control Immediate
Call I
Call 2
Call 3
Call 4
Pull Word
Push Word
Pull Multiple
Push Multiple
load Program Status Doubleword
} privileged
Exchange Program Status Doubteword

35
74
74
74
74
69
69
71
71
75
75

44
45
46
47
48
49
4A
48

Analyze
Compore Selective
Exchange Word
Store Selective

40
4E
4F

ANLZ
CS
XW
STS
EOR
OR
LS
AND
S10
TlO
TDV
HIO

Stort Input/ output}
Test Input/ Output
Test Device
Halt Input/ Output

AD
CD

Add Dou b leword
Compore Doubleword
Lood Doubleword
Modify Stock Pointer

40
50
51
52
53
55
56
57
58
SA
5B

AH
CH
LH
MTH
STH
DH
MH
SH
LCH
LAH

Add Ha If word
Compore Ho I Fword
Lood Halfword
Modify ond Test Holfward
Store Hoi fword
Divide Halfword
Multiply Holfword
Subtract Halfword
Load Complement Halfword
Lood Absolute Halfword

39

60
61
63

Compare Byte String
Move Byte 5tri"9
Edit Byte String

32
41

65

CBS
MBS
EBS
BDR
BIR
AWM
EXU
BCR
BCS
8AL
INT
RD
WD
AIO
MMC

06
07

08
09
OA
OB
OE
OF
10
II
12
13
15
18
19
IA
IB
lC
10
IE
IF

20
21
22
23
24
25
28
29
2A
2B
2E
2F
30
31
32
33

35
36
37
38
39
3A
3B
3C
3D
3E
3F

40
41

LD
MSP
STD
SO
CLM
LCD
LAD
FSL
FAL
FDL
FML

45
32

71

Store Doubleword
Subtract Doubleword
Compore with limits in Memory
Lood Complement DO
Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Producer                        : Adobe Acrobat 9.13 Paper Capture Plug-in
Modify Date                     : 2009:09:19 18:04:20-07:00
Create Date                     : 2009:09:19 18:04:20-07:00
Metadata Date                   : 2009:09:19 18:04:20-07:00
Format                          : application/pdf
Document ID                     : uuid:b4b402bb-ba68-42ca-be95-120ca1607c7b
Instance ID                     : uuid:ab0e68ca-1129-4417-b23f-0ee798c84701
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 149
EXIF Metadata provided by EXIF.tools

Navigation menu