Professional Documents
Culture Documents
Karg 74
Karg 74
II
'
June r974
'
LEGAL NOTICE
When U.S. Government drawings, specifications or other data are used for any
purpose other than a definitely related government procurement operation, the
government thereby incurs no responsibility nor any obligation whatsoever; and
the fact that the government may have formulated, furnished, or in any way sup
plied the said drawings, specifications, or' other data is not to be regarded by
implication or otherwise as in any manner licensing th~ holder or any other person
or conveying any rights or permission to manufacture, use, or sell any patented
invention that may in any way ~e related thereto.
OTHER NOTICES
Retain or destroy.
REVIEW AND APPROVAL
~~~AF
Colonel, USAF
Engineering Division
UNCLASSIFIED
READ INSTRUCTIONS
BEFORE COMPLETING FORM .
I. REPORT NUMBER
ESD-TR-74-!93, Vor. II
4. TITLE (and Subtitle)
5.
Fino[ Report
March !972 - June !973
AUTHOR(s)
8.
IN-HOUSE
10. PROGRAM El-EMENT, PROJECT, TASK
AREA Be WORK UNIT NUMBER$
REPORT DATE
June !974
13. NUMBER OF PAGES
156
15. SECURITY Cl-ASS. (of this report)
UNCLASSIFIED
15a.
16.
DECLASSIFICATION/ DOWNGRADING
SCHEDULE
1'-JLA
17.
DISTRIBUTION STATEMENT (of the abstract entered In Block 20, If different from Report)
This is Vofume II of a 4 Volume report: Mu!tics Security Evaluation. The other volumes
are entitled: Vof o 1: Results and Recommendations
Vor. Ill: Password and Fife Encryption Techniques
Vor. IV: Exempfary Performance under Demanding Workload
19. KEY WORDS (Continue on reverse side If necessary and Identify by block number)
Access Contra[
Computer Security
Descriptor Based Processors
Hardware Access Contra[
Mu!tics
20.
Mufti-fever Systems
Operating System Vu!nerabirities
Privacy
Protection
(Con' ton reverse)
R~=>fPrPnrP Monitor
DD
FORM
I JAN 73
1473
UNCLASSIFIED
SECURITY CLASSIFICATION OF THIS PAGE (When Data Entered)
UNCLASSIFIED
SECURITY CLASSIFICATION OF THIS PAGE(When Data Entered)
f9.
KEY WORDS
Segmentation
Time-sharing
Virtuaf Memory
20. ABSTRACT
certifiabfy secure and cannot be used in an open use mufti-fever system. However, fhe
Muftics security design principfes are significantly better than other contemporary
systems. Thus, Muftics as implemented today, can be used in a benign Secret/Top Secret
environment. In addition, Muftics forms a base from which a certifiabfy secure open
use mufti-fever system can be devefoped.
UNCLASSIFIED
SECURITY CLASSIFICATION OF THIS PAGE(When Data Entered)
PRFF/\C'F
TABLE OF CONTFNTS
Section
Page
INTRODUCTION
1.1 Status of Multi-level Security
1.2 Requirement for Multics Security Evaluation
1.3 Technical Requirements for Multi-level
Security
1.3.1 Insecurity of Current Systems
1.3.2 Reference Mont tor Concept
1.3.3 Hypothesis: Multics is "Secureahle 11
1.4 Sites Used
II MULTICS SECURITY CONTROLS
10
12
12
13
15
15
15
15
16
16
I I I VULNERABILITY ANALYSIS
3.1
Approach Plan
17
17
17
17
20
22
22
22
25
30
36
37
37
38
Section
Page
Validation
3.4.1.2 Use of Unlocked Stack Base
3.4.1.3 Generation of New SDW's
3.4.2 Forging the Non-Forgeahle
User Identification
3.4.3 Accessing the Password File
3.4.3.1 Minimal Value of the Password File
3.4.3.2 The Multics Password File
3.4.4 Modifying Audit Traits
3.4.5 Trap Door Insertion
3.4.5.1 Classes of Trap Doors
3.4.5.2 Example of a Trap Door in Muttics
3.4.6 Preview of 6180 Procedural
Vulnerabiti ties
38
38
3.5
55
IV CONCLUSIONS
39
42
42
44
47
47
47
48
50
50
53
55
58
58
59
59
60
61
Appendix
A
Subverter Listing
64
99
Trap Door in
check~ciev
nu mp u t i 1 i t y
Lt s t i n g
138
144
Glossary
i ce_name Listing
115
131
149
LIST OF FIGURFS
Page
Figure
1
2
3
4
5
6
7
8
9
10
11
12
13
Segmentation Hardware
SOW Format
Directory Hierarchy
Execute Instruction Bypass
Insufficient ArRument Validation
Master Morle Source rode
Master Mode Interpreted Object rorle
Store With Master Mode Transfer
Unlocked Stack Base (Step 1)
Unlocked Stack Base (Step 2)
Dump/Patch Utility Using Insufficient
Argument Val !dation
Dump/Patch Uti 1 i ty Usi np.; Unlockec1 Stack Base
Trap Door in check$device_name
11
12
14
21
24
28
28
29
34
35
41
43
54
LIST OF TABLES
Pa.r.:e
Table
1
2
3
19
31
57
NOTATION
SECTION I
INTRODUCTION
1.1
AFDSC's
multi-level security requirements and highly
responsive advanced interactive time-sharing requirements.
1.3
enough
~y:er~
to
reference
be
proven
Hypothesis:
Multics is "Secureable"
The
computer
securi ty
techno logy
pane I
identtfted
the
general
class of descriptor driven
processors (1) as extremely useful to the implementation
of a
reference
monitor.
Multics,
as
the
most
sophisticated of the descriptor-driven systems currently
available, was hypothesized to be a potentially secureable
system; that is,
the ~'lultics design was sufficiently
well-organized and oriented towards security that the
concept of a reference monitor could be implemented for
Multics without fundamental changes to the facilities seen
by
~1ultics
users.
In particular,
the tll.ultics rin?:
mechanism could protect the monitor from malicious or
inadvertent tampering, and the Multics segmentation could
(1) Descriptor driven processors use some form of arlrlress
translation through hardware interpretation of descriptor
words or registers. Such systems include the Rurroughs
6700, the Digital f:quipment rorp. Pf'P-11/45, the flata
General Nova 840, the DEr Kl-10, tbe HIS 6180,
thP 18r'
370/158 and 168, and several others not lis.ted here.
7
b. Identify
whether
practical for Multics.
reference
mon i tor
was
c. Identify potential
interim
enhancer1ents
to
Multics to provide security In a benign (restricted
access) environment.
d. Determine the
scope
certification effort.
1.4
and
dimension
of
SitesUsed
SECTION II
MULTICS SECURITY CONTRntS
This section provides a hrlef overview of the haslc
Multics seturity controls to provide necessary hack~round
for
the
discussion
of the vulnerahi li ty analysis.
However, a rather thorough knowledg~ of the ~1ultics
Implementation Is assumed throuP.hout the rest of this
document. More complete back~round material may be found
In Lipner <LIP74>, Saltzer <SAL73>, Organick <ORG72>, and
the Myl tics Programmers' Manual <MPM73>.
The basic security controls of Multics fall
into
three major areas: hardware controls, software controls,
and procedural controls. This overview wil 1 touch briefly
on each of these areas.
2.1
2.1.1
Segmentation Hardware
= 1024
units.
for
Master Mode
may
be
(7) The counterpart of master mode on the HIS 6180 cal led
privileged mode does .!J.Q...t. inhibit access control checking.
10
I
SEGMENT 0
....,
DSEG
....
SEGMENT 1
....
~
..
.
N
N+1
..
.
..
.
SEGMENT N
~
....
..'
Figure 1.
Segmentation Hardware
11
I DBR
17 18
0
ADDRESS
29
30
31
32
33
OTHER
35
CLASS
"
,..)
0 =FAULT
1 =DATA
2 =SLAVE PROCEDURE
3 =EXECUTE ONLY
4 =MASTER PROCEDURE
5
=} ILLEGAL
~ : DESCRIPTOR
Figure 2.
2.2
SDW Format
Protection Rings
was
Dl RECTORY EPSILON
FROM PARENT
OFEPSILON
~----------------------~~
GAMMA
DELTA
s Jones. Druid
Dl RECTORY GAMMA
DIRECTORY
ALPHA
D~
BETA
. r Jones. Druid
rew Smith. SysAdmin
SEGMENT
ALPHA
SEGMENT
BETA
Figure 3.
Directory Hierarchy
14
2.2.3
By
convention,
to
protect
master mode
software, the original design specified that master mode
procedures were not to be used outside ring 0.
If the
master mode procedure ran in the user ring, the mastP.r
mode procedure itself would be forced to play the endless
game of wits of the classical supervisor cal 1. The master
mode procedure would have to include code to check for al 1
possible combinations of input arp;uments, rather than
relying on a fundamental set of argument independent
security controls. As an aid (or perhaps hlndrancP.) to
playing the game of wits, each master mode procedure must
have a master mode pseudo-operation code assembled into
location 0.
The master mode pseudo-operation p;enerates
code to test an index register for a value correspondinp;
to an entry point in the segment.
If thP. index re~ister
is invalid, the master mode pseudo-operation code saves
the registers for debugging and brings the system down.
2.3
2.3.1
Enciphered Passwords
15
16
SECTION I I I
Approach Plan
exploitations
were
successfully
These included changing access fields in
protected identities in the PDS, inserting
the system libraries, and accessing the
fi 1e.
Hardware Vulnerabilities
3.2.1
Random Failures
17
18
TABLE 1
Subverter Test Attempts
1100 Operating Hours
Test Name
Attempts
3526
3466
3444
34 22
3403
3378
3359
3344
3328
3309
32 89
3259
32 36
3219
3148
3131
3113
3098
3083
2398
2368
2108
19
3.2.2
~~llile
experimenting
with
the
hardware
subverter, a sequence of code (10) was observed which
would cause the hardware of the 645 to bypass access
checking.
Specifically, the execute
instruction
in
certain cases described below would permit the executed
instruction to access a segment for reading or writing
without the corresponding permissions in the SOW.
re
Access
)--__. 0
l
-------3
~ccess
4
bp
-+ 0
-=
xec bp) 0
null Access
lll!i..
sta;q 6, ~ __..
'
ITS
Figure 4.
21
Insufficient
Ar~ument
Validation
22
23
AP REGISTER
O ARGUMENT L1 ST
HEADER
HEADER
ITS
2
IDC
3
'
4
5
,.... . . I
[TALLY T*l
Fl RST REFERENCE
*
.~
*
SECOND REFERENCI
....
ARGUMENT
WRITABLE IN
RING 0 ONLY
ARGUMENT
,..__
WRITABLE IN ..__(
USER RING
Figure 5.
ITS
ITS .......
24
.....
....
of references made,
the malicious user need only vary the number of indirect
words pointing to legal and illegal arguments.
We have
assumed for simplicity here that the validator and the
ring 0 program make only one reference each.
(14) The 645 also has an absolute mode in which all
addresses are absolute core addresses r~ther than heinr:
translated by the segmentation hardwarP.
This mode is
used only to initialize the system.
25
a:
name
master_test
mastermode
entry
a
entry
b
code
b:
code
. ..
end
Figure 6.
a:
cmpxO
tnc
stb
sreg
eapap
stcd
tra
code
b:
code
2,du
"ca 11 in bounds?
transfer_vector,O
"Yes, go to entry
"Illegal ca 11 here
spiO
spllO
"save registers
arglist
"set up ca 11
sp 124
"1pl12 points to mxerror
lpl12,*
...
transfer_vector:
tra
tra
end
Figure 7.
a
b
28
~Signaller
POINTER
('signaller}
offset
DSEG
offset:
SDW
Setup Conditions
A reg
Index 0
lp
PO INTER
bp
:
:
:
:
:
= new SDW
- l
= address (SDW)
29
ITS
30
T/\BLF. 2
Pairing
ap
argument pointer
paired wi th ab
ab
argument base
unpaired
bp
unassigned
paired wi th bh
bb
unassigned
unpaired
lp
1inkage pointer
paired with lh
1b
1 i nkage base
unpairerl
sp
stack pointer
pc:~
sb
stack hase
unpaired
Number
llame.
i r erl wi th sh
This, in fact
proverl
32
<.
(18) Listings of
the corle
used
to
vuln erability are fo und in Appe ndix B.
exploit
this
(19)
This transfer uses the
t.1aster
/',ode
Transfer
vulnerability to return.
This is done primarily for
convenience. The fundamental vulnerability is the storing
through the sp register.
~'li thout
the
t:laster
riode
Transfer, exploitation 'of the Unlocked Stack Base would
have been more difficult, although far from impossible.
Signaller
stb
sreg
spjO
spt10
lp 12, *
tra
-~.
sp I 0 Base Registers
sp 110 Index Re iste rs
sp f14 xed
bp 0
tra
bp 12
Setup Conditions
AQ register
Index 0
sp
lp 112
34
Calling program
Signaller
emergency_shutdown. link
tra
xed
bpI 0
tra
bp
lp 112, *
(2
word
Figure 10.
35
Descriptor segment
The
"trap
door 11
inserted
in
emergency_shut<iown. 1ink remained in the systef11 unti 1 the
s ys tern was reIn t t Ta 1Tzed. ( 21) At i n i t i a 1 i z at ion t i Ple, a
fresh copy of all ring zero segments is read in from the
sys tern tape erasing the "trap cloor".
S i nee
sys tern
inftializations
occur
at
least once per day,
the
penetrator must execute step one before each of his
working sessions. Step two is then executed each time he
wishes to access or modify some vmrrl in the system.
The unlocked stack base vulnerability was
identified in June 1972 with the Master Mocle Transfer
Vulnerability. It was developed and used at the RAD\ site
in September 1972 without a single system crash.
In
October 1972, the code was transferred to the MIT site.
Due to lack of good telecommunications between the two
sItes, the code was manual 1 y retyped into the MIT system.
A typing mistake was made that caused the word to be
stored into the SDH to always be zero (See Figure 10).
When an attempt was made to set slave access-data in the
SOW of the descriptor segment itself, (22) the SDVJ of the
descriptor segment was set to zero causing the system to
crash at the next LDBR instruction or segment initiation.
The bug was recognized and corrected immediately, but
later in the day, a second crash occurred when the SDW for
the ring zero segment fim (the fault lntercept module) was
patched to slave access-write permit-data rather than
stave access-write permit-slave procedure.
In
more
straightforward terms,
the SD\tJ was set to read-vlrite
rather than read-write-execute.
Therefore, when
the
system next attempted to execute the firn it took a
no-execute permission fault and tried to execute the flt11,
thus entering an infinite loop crashing the system.
3.3.4
Procedural Vulnerabilities
3.4.1
3.4.1.1
Use of Insufficient
Ar~ument
Validation
segments
which
are
not
accessible
from rinR 4.
Conceptually, one could copy an SDW for some segment from
the ring 0 descriptor segment to the ring 4 descriptor
segment and be guaranteed at least as much access as
available in ring 0.
Since the segment number of a
segment is the same in all rings, this approach is very
easy to implement.
The exact algorithm is shown in flow
chart form in Figure 11. In block 2 of the flow chart,
the ring 4 SDW is read from the ring 4 descriptor segment
(wdseg) using the
Insufficient
Ar.p;ument
Validation
vulnerability.
Next the ring 0 SDW is rearl fro~ the rin~
0 descriptor segment (dseg).
The rin.r: 0 snv must now be
checked for vat fdity, since the segment nay not ~e
a c c e s s i b 1e e v e n i n r i n g 0 ( 2 4 )
f\. n
i n va t i rl Sr~t i s
represented by all 36 bits being zero. One danger present
here is that if the segment in question is deactiv(lted,
(25)
the SOW being checked may be invalidated while it is
being manipulated.
This event could conceivably have
disastrous results, but as we shall see in Section 3.4.2,
the patch routine need 'only be used on sep::ments which are
never deactivated. The dump routine can do no harm if it
accidentally uses an invalid SDW, as it always only reads
using the SDW, conceivably reading garbage but nothing
else. Further, deactivation of the segment is highly
unlikely since the segment is in "use" by the dump/patch
routine.
If the ring 0 SN! is invat id, an error
code is returned in block 5 of t~e flow chart and the
routine terminates. Otherwise, the ring 0 SDlJ is stored
into
the
ring
4
descriptor segment (wdseg) with
read-execute-write access by turning on the SOW bits for
slave access, write permission, slave procedure. (See
Figure 2). Now the dump or patch can be performed without
using the vulnerability to load or store each 36 bit word
(24) As an additional precaution, ring 0 slave node
programs run under the same access rules as all other
programs. A valid SOW entry is made for a segment in any
ring only if the user is on the ArL for the segment. We
shall see in Section 3.4.2 how to ~et r>rounrl this
"security feature".
(25) A segment is deactivated ~"hen its P<lP:e t0hle is
removed from core. Segment deactivation is performed on a
least recently used basis, since not all page tables may
be kept in core at one time.
40
GET SEG 4f
FROM
ARG LIST
1
GET RING 4
SDW FROM
wdseg
GET RING 0
SDW FROM
dseg
3
RETURN
ERROR
IS SEGMENT ACCESSIBLE
IN RING 0?
NO
PATCH SDW
IN wdseg
PERFORM
DUMP/PATCH
RESTORE OLD
RING 4 SDW
8
Figure 11.
41
(27)
42
FROM
ARG LIST
GET RING 4
SDW FROM
wdseg
2
RETURN
ERROR
IS SEGMENT ACCESSIBLE
IN RING 4 MASTER MODE?
NO
PATCH SDW
IN wdseg
PERFORM
DUMP/PATCH
RESTORE OLD
RING 4 SDW
7
Figure 12.
43
Identification
i dent If I cation.
This capability provides the penetrator with
an "u1tlmace weapon".
The agent can now undetectahly
masquerade as any user of the system including the system
administrator or security officer, immediately assuming
that user's access privile~es. The agent has bypassed and
rendered ineffective the entire login
authentication
mechanism withal 1 its attendant auditing machinery. The
user whom the agent is impersonating can login and operate
without interference. Even the "who table" that lists all
users currently logged into the system records the agent
with his correct identification rather than the for~ery.
Thus to access .a.,ny segment in the sys tern, the agent need
only
determine who has access and chan~e his user
identification as easily as a legitimate user can chan?e
his working directory.
It was not obvious at the ti~e of the an?lysis
that changing the user identification woulrl work. Several
potential problems were forseen that could lead to system
crashes or could reveal
the
penetrator's
presence.
However, none of these proved to be a serious harrier to
Masquerading.
First, a user process occasionally sends a
message to the operator's console from ring 0 to report
some type of unusual fault such as a disk parity error.
These messages are prefaced by the user's name and project
taken from the PDS.
It was feared 'that a random parity
error could "blow the cover" of the penetrator by printing
his modified identification on the operator's console.
(29)
However, the PDS in fact contains two copies of the
user identification - one formatted for printing and one
formatted for comparison with access control list entries.
Ring 0 software keeps these strictly separated, so the
penetrator
need
only
change
the
access
control
identification.
Second, when the penetrator changes his user
identificatlon, he may lose access to his own programs,
data and directories. The solution here is to assure that
the access control
lists of the needed segments and
directories grant appropriate access to the user as whom
the penetrator is masqueradinp..
(29) This danger exists only if the operator or system
security officer is carefully correlating parity error
messages with the names of currently logged in users.
45
Finally,
one
finds
that
nlthoup.;h
the
penetrator can set the access control lists of his rlnr; 4
segments appropriately, he cannot In any easy way modify
the access control lists of certain per process supervisor
segments Including the process data ser;rnent (PDS),
the
process tnt tlal tzatton table (PIT),
the knovm segment
table (KST), an~ the stack and combined linkar;e segments
for rlnp.; 1, 2, and 3. The stack and combined 1 inkage
segments for ring 1, 2, and 3 can be avoided by not
calling any ring 1, 2, or 3 programs while masquerading.
However, the PDS, PIT, and KST are all rinP: 0 data bases
that must be accessible at all times with read and VJrite
permission. This requirement could pose the penetrator a
very serious problem; but, because of the very fact that
these segments rnust always be accesslble in rlnp 0, the
system has already solved this problem. While the PIT,
PDS, and KST are paged ser:ments, (30) thPy are all used
during segment fault handling.
In or~er
to
avoid
recursive segment faults, thP PIT, POS, anrl KST are never
deactivated. (31)
Deactivation, as mPntionPrl above, is
the process by which a segment's pa~e table is rPmoverl
from core and a segment fault Is placed in its SDW. ThP
access control bits are set in an SO~! .Q.!1..Ly at segment
fault time.
(32) Since the system never deactivates the
PIT, PDS, and KST, under normal condl tions, the SD\-IJ's are
not modified for the life of the process. Since the
process of changing user identification does not change
the ring 0 SOW's of the PIT, PDS, and KST either, the
penetrator retains access to these critical segments
without any special action whatsoever.
r~ultlcs
hold
switches"
are
( 32 ) I n fa c t, a s e p;m en t fa u I t i s a 1 s o s e t i n an S f)\J wh en
the access control
list of the correspondinp.; se.gment is
changed. This is done to ensure that access changes are
reflected. immediately, and is effected by setting faults
in all descriptor sep.;ments that have active SOW's for the
segment.
This additional case is not a problem, bpcausP
the access control lists of the PIT, PDS, and KST arE'
never changed.
46
3.4.3
One
of
the
classic penetrations of an
operating system has been unauthorized access to the
password file. This type of attack on a system has become
so embedded in the folklore of computer security that it
even appears in the definition of a security "breach" in
UOD 5200.2!>-1~ <DOD73>.
In fact, however, accessing the
password file internal to the system proves to be of
minimal value to a pe netrator as shown below.
For
complete ness, the Multics password file was accessed as
part of this analysis.
3.4.3.1
47
chosen
passwords
for
allegedly
non-invertible
enciphering
routine
protection in case the PNT appears in a system dump. Only
The
enciphered passwords are stored in the system.
password check at login time is accomplished by the
equivalent of the following PL/1 code:
If scramble_(typed_password)
then call ok_to_login;
else cal 1 reject_login;
= pnt.user.password
ring
se~ment
with the
.Sys~dmin.*
***
~1odifying
Audit Trails
2.
3.
4.
5.
6.
bypass
DTU
and
49
3.4.5
3.4.5.1
51
52
To
demonstrate
the
feasibility
of
inserting and rlistrlbuting , trap rloors,
the following
object code change was made to check~rlevice_n0rne to
provide a generalized dump or patch faclli ty. Fi~ure 13
shows a PL/1 program that pe~forms essentially the same
function as the trap rloor actually inserte~ in the object
code. The listing of the actual trap door anrl its callintt
program is in Appendix c. Che~k$device_name is nor~ally
called ~tJith
three arguments,
the third beinr: a fixed
binary error code. The trap door is inserted at the point
at which check$devlce_name would have returned. The trap
door looks at the 72 bits Immediately following the error
code that was passed by the caller.
If those 72 bits
match a predefined 72 bit password, then the fixed hinary
word to which ptr1 points is copied into the fixed binary
word to which ptr2 points. Since checkSdevice name is a
ring 0 procedure, this copy is carried out using-the ring
0 descriptor segment and allows the caller to read or
wrl te any word In ring 0. Dump and patch utilities can
use this trap door exactly like the Insufficient Argument
Validation vulnerabill ty. The 72 bit key Is used to
ensure that the vulnerability is not invoked by accident
by some unsuspecting user.
The actual ir1sertion of the trap door was
done by the following steps:
1.
Change
user
irlentification
S ys Lib.
to
2. Make
patch
In object archive
check$device_narne in >ldrl)harrl>object.
3.
project
copy
of
6.
1 code
2
2
2
2
parameter,
err_code fixed binary (35),
key bit (72) aligned,
ptrl pointer aligned,
ptr2 pointer aligned;
I*
*I
...,.
I*
*I
If key= bit_string_constant_password
then ptr2 -> overlay = ptrl -> overlay;
return;
end check$device_name;
Figure 13.
Trapdoor in check$device_name
54
Tab 1e
I I I out I i nes the approximate costs in
man-hours and computer charges for each vu 1nerab i I i ty
analysis task.
The skill level required to perform the
penetrations was that of a recent computer
science
graduate of any major university with a moderate knowledge
of
the
~~u 1tics
desIgn
docurnen ted in the ~1u 1tics
Programmers' Manual <t1PM73> and Organick <ORG72>, plus
nine months experience as a Multics prop:rarnmer.
In
addition, the penetrator was aided by access to the system
listings (which are in the public domain) and access to an
operational Multics system on which to debu~ penetrations.
In this examp 1e,
the RADr sys tern \1\fas used to test
penetrations prior to their use at MIT, since a system
crash at MIT would reveal
the
intentions
of
the
penetrations. (39)
Costs are broken r.lown into identification,
confirmation, and exploitation.
Identification is that
(39) It should be noted that while the t~IT system v1as
crashed twice due to typographical errors during the
penetration, the RADC system was never crashed.
55
56
TABLE 3
Cost Estimates
Ill!s.
Execute Instruction
Access Check Bypass
U1
"'-.1
lden:tjfi,Sl:tion
Mgnhrs cpu s
60
QQnfirma:tion
Manhrs CPU $
Ex~loi
Manhrs
:ta:tion
CPU$
To :tSl 1
Manhrs .c.f!Li
$150
$ 30
$100
73
$280
30
$330
Insufficient Argument
Validation
$ 30
24
$30 0
0.5
$ 20
--
---
2.5
$ 20
0.5
$ 50
80
$500
88.5
$550
For g i ng Use r I D
$ 30
$ 90
15
$ i20
check$device_name
Trap door
$ 50
$ 30
18
$ 80
$ 30
24
$150
30
$180
38
$240
146
$1170
257
$15 60
Total
73
$150
SECT I M! IV
CONCLUSIONS
The initial Implementation of t:1ul tics is an Instance
of an uncertified system. For any uncertified system:
a.
The system cannot
protect against deliberate attack.
be
depended
upon
to
(40)
In all fairness,
the HIS
6180
does
provide
significant improvements by the addition of ring hardware.
However, ring hardware by itself does not makf~ the system
secure.
Only certification as a well-defined closed
process can do that.
~
58
60
REFERENCES
SecuritY
l~CI-74-1,
<GRA63>
Graham, R.
t4.,
"Protection
in an
Information
Pro c e s s I n g U t I 1 I t y" , Co mm, AQ.1, 5 ( 14 a y 19 6 8 ) , p p 3 6 5- 3 G9
<HI$73> Honeywell
Information Systems,
Inc.,
t1ultjcs
Users' Guide, Order No. AL40, Rev. O, November 1973.
<IBtHO> JJil1 Systemll..Q Qpera.t...i.o..& System Service Aids,
System Reference Library, GC28-6719-0, June 1970.
1131-1
<ING73>
Inglis, H. M., SecuritY Problems
in _the \J\Jf.1CCS
System,
Joint Technical Support Activity Operating
System Technical Bulletin 730S-12, Defense Communications
Agency, 2 August 1973, as cited in <ABB74>.
<I PCB>
Information
Processing
Center,
Summaa of ~
HG180 Processor, 11assachusetts Institute of Technology, 22
i1ay 1973.
<JTSA73>
Joint
$~curity
System~
Technical
Support
Activity,
.fl.gn, Defense Communications
23 May 1972, as cited in <ABB74>.
IJW4CCS
A~ency,
<LIP73>
Lipner, Steven B., ComPuter .;.iecurjty Rese.su:.cll..ao.Q
Development Hegulrements, MTP-142, The MITUE
Corporation,
Bedford, MA, February 1973.
<LIP74>
Hesul ts
Lipner,
Steven
2lli! Recommendations,
~reparation)
<ORG72> Organick,
Elliot
1., The Multics
.E.xaminatlon Q.f. ~ .s...t.r.ucture, The MIT Press,
11A, 1972.
Svstem:
AD..
Cambridge,
<MPi-173>
The
Multiplexed
Information
.2lli!
Computing
Service:
Programmers' Manual, t1assachusetts Institute of
Technology
and Honeywell Information Systems, Inc., 1973.
<PRI73>
Price, Hilliam R.,
Implications Qf ..2 Virtual
fvlemory t'1echani3lD .fQr. Implementing Protection lD. ..2 Fami Jy
of .Q.perating
~~,
PhD
Thesis,
Carnegie-~lellon
University, June 1973.
<HIC73>
Richardson, M.
H.,
J.
V.
Potter, ~&D. of .2.
l'lagoetic .C.2..C.Q Modifiable Credential System Demonstration,
11CI-73-3,
Directorate of Information Systems Technology,
Electronic Systems Division, December 1973.
<SAL73> Sal tzer, Jerome H., "Protection and
Control
of
Information Sharing
in Hultics," A.C.M Fourth SymQosium on
62
New
York,
<SCH73>
Schell,
Roger R.,
Peter J.
Downey, Gerald J.
Popek, Ere i j m i nary Notes .Qil ~ Design Qf. ~ecure /~ i 1 i tary
Computer SYstems,
MCI-73-1,
Directorate of Information
Systems Technology, Electronic Systems Division,
January
19 73.
<SCHH72> Schroeder,
M.
D.,
J.
H. Saltzer, 11 A Hardware
Architecture for
Implementing Protection Rings",
Comm.
A.Q.M, 3 (March 1972), pp. 157-170.
<SCHI73>
Schiller,
~L
L., Desi&n .Q.f Security Kernel
eoP-11/45, ESD-TR-73-294, June 1973.
for
..ru::.
.Secure
Corporation,
G3
APPDIDJX A
Subverter listing
This appendix contains listings of the three program
modules which make up the hardware subverter described in
Section 3.2.1. The three procedure segments which follow
are called subverter, coded in Pl/1; access_violations_,
coded in Pl/1; and subv, coded in assembler. Subverter
is the driving routine which sets up timers, manages free
storage, and calls individual tests. Access_violations_
contains several entry points to implement specific tests.
Subv contains entry points to implement those tests which
must be done in assembler.
The internal procedure check_zero within subverter is
used to watch word zero of the procedure segment for
unexpected modification. This procedure was userl in part
to detect the Execute Instruction Access Check Bypass
vulnerabi 1 i ty.
The errors flagged in the listing of suhv are
warnings
of
obsolete 645 instructions, because
attached listing was produced on the 6180.
64
all
the
3
4
s.1bver-ter1
pr-ocedure;
6
7
8
9
10
11
en
U1
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
declare
hcs_Slnltlate entry Cchar cJ, char cl, char ct, fixed bln cu, flxed bin C2), ptr, flxed bin),
tlMr_ ..nagar_sa I ara_caJ l_lnh lb.i. t entry CUxed D ln C71), blt l2), entry),
hcs_saake_seg entry (char c), char CJ, char cJ, fixed bin CS), ptr, fixed blnJ,
1 create a segaent 1
cv_dec_chec:k_ entry (ehar C), fixed bin) raturAs Cflxd bln (35)),
c
subvtca
1 does e c:a lnstruc:Uon 1
subvlldt,
subvtldbr,
subvlsdbr,
subvtc:! oc:,
subvldls,
subvlrac:
subvlsaca,
subvts lc,
subvl.lacl,
subvll
subvSu,
subvlrcu,
subvSscu,
acc:ess_vlolations_Slllegal_opcodes,
ac:c:ess_vlolatlons_Sfetc:h,
access_vlolatlons_sstere,
access_vlolatlons_sxed_fetc:h,
access_vlotations_sxeq_store,
access_vlolatlons_tld,
acc:es-.vlolatlons_slegal_bounds_fault,
ac:ces~_vlolatlons_Slllagal_bounda_1avlt:
entry Cptr),
declare
1 fixed bin,
fp pointer,
sp pointer lnt static,
code fixed Din,
1
1
1
1
1
1
Cl'l
Cl'l
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
5&
ar~ char Cargl) based cargp),
57
argl f lxed bin,
argp pol nter,
58
error_table_ibadopt fixed bin C35) ext static,
59
&0
sag_ version f lxed bin int static lni t (U,
&1
~aax_test fixed bin int static i.nlt (22),
test_nas (22) lnt static char (32) inlt ("caa'",."scu", tdt.. , '"ldbr, sabr, cloc", 00 dis'",
&2
&3
"rmca", "smca, 00 SIIlc, "lace, "laa", saa .., rcU'", '"fetch_access_vlolatlon,
&4
"store_access_vlo,lat ion", "xed_f etch_access_vh I at ion, "xed_store_ac:cess_v iolat ion,
&5
"lt_access_v iol a.t ion", '"legal_bounds_faut t, "11 Jegal_bounds_fau-' t, utegal_opcode .. ),
&&
ret_label label lnt static,
&7
Interval fixed bin (35) lnt static,
tlae flxed bin ( 71);
&8
&9
1 1 start of inc: 1ude file subvert _stat istlc:s .inc I. Pl1
2
3
InJ.tlally coded by 2 L.t. Paul Karger 19 .luly 1972 0900 1
4
5
6
declare
7
1 subvert_statlst lcs based(sp) a1 1gnect,
8
9
2 cur_test fixed bin(17) unalt
1 nuaber or current test in PrOgress 1
2 next_code flxed bin(17) una I,
1 next opcode nuaber 1
10
2 end_of_segaant fixed blnC17) unal,
1 re.l pointer to end of sag. .nt 1
11
12
2 last_fallure_block. fixed b1nC17) unal,
1 rei pointer to l t faUure block used 1
2 test_ln_Jrogress f lxed bin,
13
1 test nuabar of test in proerass
14
o it no te.st ln progress
15
ldent 1 fles. t . .t ln progress 1 t Nchlne crashes 1
16
2 tlae_of_last_test fixed blnC7U,
17
2 cull_total_tlae fixed b~nC71),
18
2 nuaber_of_tests fixed bin,
19
2 testsCl referCnuabar_of_tests)) aUgned,
20
3 nuaber_or_attaapts thad bin,
1 nur of ettalll)ts of this test 1
21
3 nuaber_ot_fal lur,s fixed bin,
1 nuabar of aa!lhlna or sofh1are faliUI"es found 1
22
3 faltura_bloc~ptr fixed bln(17) una,!, 1 ret pointer to start of threaded llt of failure a.loc
23
3 last_tast_tl fixed blnC71),
24
3 cu_test_t I fixed blnC7U;
25
26 1 End of subvert_stat1stics.lncl.p11 1
70
1 1 St er t of 1 nc I u(je f lie fa 11 ure_bt ocl(..lncl. p 11
2
3
Initially coded by 2 Lt. Paul Karger
19 July 1972
0900 1
4
Hodlf led 21 July 72 0820 by P. Karger to usa flxeci bl n una I
5
&
I
,.
1
8
9
10
11
12
13
14
15
1&
11
18
declare
1 fallure_block based(fpJ aligned,
2 version fixed bin,
2 type fixed bin,
2 u _of_failure fixed bln(71),
2 next_block fixed blnUn unal,
2 scu_data(5) fixed bin;
1 version nuber
1 1
1 index of test in test array 1
bloc~(,
of this type 1
1t
0'1
.....
-=
112
113
and;
and;
11ft
115
116
117
118
119
120
121
122
123
12ft
125
12&
127
tlnlsn_setuoa
tlae_ot_last_test =clock_ CJ;
do 1
1 to nuablr_ot_tests;
last_tast_tlae ClJ = tlae_ot_last_tlst;
end;
t~en
"lext_code = next_code-
t;
129
go to flnlsh_setup;
130
131
132
SJ
133
134
135
13&
137
138
139
140
141
142
143
144
145
146
11t7
11tl
149
150
151
152
153
bver- t erStl11er 1
entry Cl;
call check_zero ();
r-et_label = next_setup;
call defau,lt_handler_sset (fault_handler-);
call get_tallure_block (cur_testlt
nullber_ot_attepts (cur_testl
nubar_of_attepts (cur_tastJ + 1;
t111e =clock_ ();
cu._totat_tle
cu._total_tlllle + tla- t1-of_last.-test;
tl-of_tast_tast = tlJ
cUIII_test_U lcur_tast) = cu_tast_t.llle (cur_testl + t111a - last_test_t1ae Ccur.tesU;
last_test_tlae (cur_test) = tlilte;
go to c (cur_ test I ;
(1)1
(2) I
15ft
en
co
155
156
157
151
159
160
161
162
(3)1
go to scr"eall_blooav_urder;
(It )I
($)I
163
164
165
166
167
168
169
170
(6 )I
111
172
173
174
115
176
177
178
(7 )I
179
110
111
c (8 )I
182
183
184
185
186
(9}1
call
111
m
U)
189
190
191
192
193
19ft
195
196
197
191
199
200
201
202
203
20ft
285
286
207
208
289
210
211
212
213
21ft
215
216
217
2U
219
220
221
222
223
22ft
225
226
227
221
229
230
2n
232
233
23ft
235
236
237
231
239
21t0
21t1
21t2
21t3
21tlt
21t5
c (1 0)
go to scr-bloodv_urdar;
c (11).
c (1 Z)
go to scraa-_bloodv_urder;
cat I subv Sl Up J ;
go to scr-bloodv_urdar;
(13)
go to scra~-bJoodv_urdar;
c (11tH
c (15)
(16)
go to screa-_bloodv_.urderl
go to scr-bloodv_urd&rl
c (17).1
call accss_vlolatlons_axad_tetch Cfp)J
go to screa._bloody_.urderl
c (11)
(19)
(2 0)
go to scream_bloi>dy_llurder;
21t7
21t&
21t9
250
251
c (2 2) I
go to screa~bloody_aurder;
252
253
2Sit
255 screu_bloody_aurder 1
256
2f7
251
259
260
test_ln_progress
-t..
);
261
2&2
263
~61t
265
266
267
261
269
n1
l~ur-test)
= o;
xt _setUP I
t
interval;
1 =
su~erterstlr~erJ;
270
271
272
.....
0
273
271t
275
di SJ) Ia y I
entry 0;
.... '
o,
276
277
278
279
210
281
282
283
281t
2&5
216
217
281
289
290
291
292
293
:U =
en~;
end;
return;
291t
295
get_fallure_bloc~l
296
proc ( iJ;
297
2CJa
299
300
301
302
303
301t
~or;
c:Hicl are
block_liiZe (22) fixed bin 1nlt. ( (22) 32) 1nt static,
l fixed bin (17) una I,
p ptr,
tp ptr;
do p = pointer Csp, failure_bloclk.,ptr un repeat Cpolnter (sp, fp -> next_blocl$<)) whUe lrel (p)
-= "O"b);
fn = n2
306
307
end;
do;
308
389
310
311
312
313
31ft
end;
else
do;
315
316
317
318
319
320
321
322
323
U) -= 0 then
end;
fp -> taJ.I~re_block.verslon = seg_verslon;
fp - > type = H
return;
321t
325
326
327
328
329
no
331
U2
333
.....
.....
331t
end;
-=
335
336
337
338
339
31tl
31t1
31t2 flul t_handlerl
procedure Cac_ptr, cond_naae, wc:_ptr, lnfo_ptr, continue);
31t3
31tlt
1 proced~ra to catch interrupts 1
ns
31t6
31t7
348
31t9
350
351
352
353
3Sit
355
356
357
35&
359
360
3&1
362
363
dect are
ptr,
ac_ptr,
c_pt,.,
lnfo_ptrJ
.,
365
366
367
368
369
370
371
end;
c-.ec!Jl.zeroa
proc;
......
1 This is
1
clobberln~
declare
word_zero bit (36) aligned based (pointer (laQUre_ptr, OJ),
iapure_ptr pointer based Caddr ( labe,l_v.,.H,
label_var label,
exec_coa entry options Cvarlable),
setacl ,entry options (varlab le);
label_var
duaay_labell
1t I oc!Jl.word -= o"b then
do;
call setacl (.. >udd>d>pak>subverter, '"r" '"KargereDrula.JJ
coapare_word = wora_zero;
lock_word = "O"bl
call setae I C">udd>d>pek>subverter, re, "Karter.Druldll
end;
ease
.
1 f coapare..ord -= word_zero then call exoc_coe (">udd>Druld>Kar.tor>subverter...erf'!or"!!;
test_naaes (cur_test));
return;
Ult
385
declare
372
373
37ft
375
376
377
378
379
380
381
312
383
386
387
388
389
-3tD
391
392
393
391t
395
396
397
398
399
end;
end;
cont lnue = .. 1"b;
return;
d.laay_labeta
end;
end;
11+1;
1 = 1 +
of bound_.ubvert
~ ',
70
71
.....,
\II
NU'tBER
1
NAHE
PATHNAHE
OfFSET
DATA TYPE
entry
entry
entry
entry
entry
entry
entrv
entry
enar
fixed binU7,0)
pointer
flxed blnU7eOJ
entrv
flxed bln(17,0)
entry
blt (36)
cnar
cnarU2)
b.Lt (1)
entry
fixed b!nC71,0)
Uxed b!nC71,0J
fixed blnU7,0)
access_vlolat lons_Uetch
000374 constant
access_vlolat lons_Sld
D00401t constant
D001t10 constant
acc:ess_vlolat !ons_Slllagal_opcodes
000372 constant
00040& constant
access_vlolat!ons_sstore
00037& constant
aceess_vloJatlons_Sxed_fetch
000400 constant
aeeess_v!olatlons_sxed_store
0001t02 constant
erg
based
000165 autot lc
81"81
arsap
0001&& auto.atlc
bloc~_s!ae
00012& c:onstent
000~12 const111nt
CtiOC"000101t autoeatic
code
c:oa_err_
000321t constant
coepere_word
1
based
paraeeter
cond_naee
00002& constant
conds
continue
peraeeter
cu..~arg_pt,.
000322 constant
cua.test_tl ..
20
based
cua..,t~tal_t lae
&
based
cur_test
based
cv_(iec_chec: k_
dah_tlH_
afaul t_handl er _sset
dt_str1ng
end_o f .,.seS~Jae!'l t
error_table _I badopt
exec:_coa
fall ure_bl oc.c _ptr
000332
00030&
000310
000157
constant
constant
constant
autoaatlc
besed
entry
entry
entry
cnar CZ4)
fixed bln(17,0)
fixed blnCJ5,0)
entry
fixed binU7,0)
fp
000102 autoaatic
pointer
hcs_Clnitlatl
000304 constant
00031& constant
00010 0 autoe~t ic
entry
entry
find b !n (17, 0)
hcs_sa...-_se~
1
i
-- ......
iepure..J)tr
1
14
pereeter
000100 autoatlc
be sea
fixed b!n(17,U
fixed binU7,0)
pointer
oo!nter
2~5
interval
loa_
loa_Sl oa_s t rt a a
label_var
last_tall ure_bl oc ~
lut_test_t lae
lock_ord
x_test
ec_ptr
n_conds
next_b.l oclft
next_code
fixed bln(35t0)
entry
entry
label variable
fixed blnU7,0)
ba$ed
based
003055 constant
parauter
003054 constant
based
fixed bin(71t0)
blt (36)
fixed blnU7,Q)
pointer
flxed blnC17,0)
fixeo blnU7,0)
1&
based
0(18)
eures
nuliltlcr_of_testl5
12
13
10
rot_lsbeS
seg_vershn
Htacl
sp
based
basod
basod
00010 o autotlc
001272 internal static
083056 constant
000~0 constant
000010 lnt,rna,J stl)tlc
fixed binU7,0)
Uxed bioU7,0)
flxod binU7,0)
flxed blnU7,0)
pointer
label v.,-iabJe
flaced blnU7,0)
entry
polnte.r
1c.o
ua
t~to ~~
tlt1
us
"*''
zn
...,
t~z
subvSeaa.
subytdoe
SubVSdls
subvSiael
subvtl
subvtldbr
SubYII dt
subVtrcu
subvtre
subvSae
subvtseu
subvSsdbr
subvSsec:
SubVISlc
subverterat le et' .
test_ln_progress
000336
00031t6
000350
0003&0
0003&2
U1
test_naus
constant
constant
constant
const_ant
constant
based
conshnt
entry
constant
autoaatlc
based
constant
entry
polnhr
fixed binC17,0)
entry
c:onst.aM
constant
constant
c:onstent
constant
constant
constant
constant
based
00011 o
u
Ue..of_tal hare
2
tlae_of_tast_ test
It
tlaer_aanage _salera_ca ll_lnh iblt
000312
t laer-nagar _sraset_atra_ca 1.1
000314
tp
000102
type
1
user_lnto_Shladl r
000320
fixed bln(71,0)
flxed blnf11,0)
Uxed bin(71,0)
0~!)31t2 c:on~tent
3U U9 sn SSJ 115 n6
e_.,,..
..,., Clc:l
del
r.at 11t6
.xt,......
7 .... 170
o0\lllt o constant
OOIJ3&&
000352
00036ft
000370
OOOJitlt
00035ft
00035&
000334
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
flxed blnU7,0)
auto.. u c
bas~d
us
para.. ter
000105 autoaaUc
based
~~e_ptr
wcur
word_zaro
de I 31t6 ra f 31t2
Ltnaillind del 50 sat ra f 88 89 273 27ft
del 377 ret 316 391
pointer
charU68
bit (36)
label
chacl(..zero
display
duaay.,.label
taut tj\andlar
t 1n1s.h_satup
fraa_taJ.Iure_bl oc"
gat_t,,U Ul"!t.,.l) l.oCk
'*'t_satup
no_sa.e
scraaa_bl ooctv _a ~.order
002677
00163ft
0030ft6
002611
001017
0021tlt6
002237
001,.5
080672
001515
constant
constant
const1nt
constant
constant
constant
const..ant
constJnt
constpnt
const11nt
entry
entry
label
entry
label
antry
entry
latta I
label
taltal
s~varta,.
OOOit32 constant
001076 constant
001121 consta.nt
an trY
entry
entry
;;: subvertartrasat
subvrtarat 1 ar
Javel
laval
array
laval
array
..
2-10
373
2 del 2-10
1-7
2 del 17
builtln function
builtin tunc:t.lon
bullt'n function
,.
1 del
1 del
laval
1 del
laval
builtin function
internal
internal
internal
316 ~91
internal
178 Ut 118
210 ds ztto
0
It 5ft0
Text
0
3057
Llnk
3542
ftZ2
Syabol
ftih
342
Dafs
3057
1163
StaUc:
3552
lt12
ca 1 l_.int_thls
lnt_antry
caU.,.lnt_other
lnt_entry_desc:
-A
.&_
._
return
rpd_l oop_1_1 p_bp
defeutt_handler_sset
loa_
subvlc !oc
subvStdbr
subvssaa
subvlsaic
Bcs_llnltlate
hcs_s. .k._seg
subv$ce.
subvl'iaa
subvS,Jacl
subvSrcu
subvlrc
subvSsdbr
subvlsaca
t 1aar_aanagat- .:..Ia! era_carl l_!nhlb! t
llsar_lnfo_SMaadlr
exec_co
loa_Sloa_str
subv.$dl s
subvSidt
subvSscu
subverterStlaer
sat~l
tlaar_aanege~~sreset_alara_call
error_tabta_s badopt
UNE
1.()
3 1!11043 i
IU !H'IOSU
~g ~1!067 it
tn
1!1.101~W
LOC
1'2 1!00437
~~
g~
00051t3
0110731
01!0750
001051
jll11.26
101176
001254
. .. 25 OIU.515i
!06
iZC
134
14!
i52
11'0 001305
U1 001341t
zos 0013 75
222 0011tllt
2411 001465
257 001524
.. 261 OUM.t
. !19 U171tti
zn oou~ts
305 00227 ..
318 00241 s
3U 002S11t
358 1102611
368 002676
3&8 11027U
2&1
290
306
321
332
359
370
389
u. 9 01.11 lilt 1
U2 O@UZ@
1 ~ o lUI11111
ua
~bu~ts
U1 OOU&'t
!&~ OOU3~
.....
......
LINE
2!2 @0137/o
~211 lllltlt! 5
. ' 217 0011t"
z&a
oq~uz
11~1775
002212
11112276
002411
002515
01126411
002677
003011
LINE
73
81t
96
10&
122
us
LOC
00041t2
000545
000732
111111753
001071t
801127
tttz oouoo
155
172
190
2117
225
ZltZ
260
211
282
291
307
322
333
361
382
391
001255
QOU11t
001.Jit5
OOHOit
001435
0011t71t
OOU62
oiun
0021121&
otz:zn
002387
00~435
o.o~52'
011~654
00~700
003012
LINE
74
85
98
111
125
U6
LOC
0110460
000605
OOIJ.TJ't
0011116
0111075
001133
~Mj OU2Z2
i$7.118Ui't
175 00131!i
192 GGIU!J't
2U
227
ZitS
262
273
2U
292
:S09
3U
335
362
383
393
001405
1111141tlt
110 tit75
0111565
OU61t1
OIIUitZ
08:2231
0112326
00241M
011~556
ODU57
0112703
011301t5
LINE
LOC
76 0001e62
81 D0060i
1111 ~071t1
us op1011
127 O!U11Ul
U7 OtU.~~
1ttl& IIU231
160 UUiJ
171 O.OU21t
us QUU!J
212 1101414
no ou,.s
21t7
Ult
274
284
291
311
326
U6
36ft
3&5
395
ou
OIUHit
001652
OUQ$7
IIU235
1102353
O.U441
11112571
082666
1102705
003111t6
LINE
LOC
1& IHH!It7i
89 088617
U! I!HHIJ1lv:S
U? U:Ut7.
U~ U.UU6
U@ OQU52&
!~i 8U21fll
162 U~!f..,
~i@ I.\.IIU25
U'f Utl64
u~ ~aus
232 ftUit54
250
"'"'
265 U$;618
Zf!J Ut721t
285 002110
29
3U
121
ne
366
116
397
012216
082168
D.IJ21t60
UZ6t7
002671
00211t4
0031Jit7
LOC
LIII
79 081l!iU
911 . OIU86fl5
U2 881l11t5
ueouu.o
ut oo1u1
Uli IH'i11Flll
1" '.OOU~I&
. . . 18!1275
uz .utn~e
200:00J;J65
llf;tU424
21!5'001'*55
252 U1511t
za 111687
271 IOUU
ZlfotZUO
381102251
316 812161
319~002,...
~~
o.u61o .
367 182673
317;002751
3H '1103050
- - '-..'2' ''-..
ac cass_vlolat ions_ a
2
1
1
1
1
1
1
1
1
1
1.
1
1
1
1
1
1
1
1
1
1
~ 1
1
1
1.
1
1
2.
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
pro oced\.l'e;
3
( It
return;
1 1 st .. t of inclucie file subvert_statlstlcs.lncJ.pl1
3
It
Initially
6
7
11
12
13
11t
15
16
17
11
19
ZD
21
22
End of subvert_statlst1cs.lnc:l.pl1 1
faUure_bloct~.incl.pU
.,
6
7
g
10
11
0 1 t no test in .,.._..
3
It , .
declare
2
2
2
2
23
Zit
25
shout~
10
26
co~ed
declare
12
2 version fixed bin,
1 version nuaber
1 1
13
2 type fixed bin,
1 inatx of test J.n test array 1
14
2 tiae_of_failure Uxed bln(71),
15
Z next_bloc~ fixed binU7i unat,
/4 rei pointer to nexT failure bloc~ of this type 1
16
2 s;c u_data (5) f1 xed bin;
1 to be defined 1
17
18
a
g
dec4are
11
12
13
14
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
U
33
34
35
36
37
....
IQ
38
39
..o
1t1
42
ft3
....
codes (01104) Uxed bin .Lnt static lnU CO, 3t &, It 10, 11, 12t 14t 1St Zltt 25, Zftt 28, 47, 56, 61,
72, 74, 75, 7&, 88, 89, 90, 91t 92t 12ft, 136, 138, 139, 140t 1S2t 188, 201tt 220;: 252, ~59, . .
260 1 2&2 1 263t 2&4, 2&6t 267t 268, 270, 271t 212t 274t 27&t 278, 282, 28.1t, 216, :298, Jlltt 116t
308, 309, 310, 311, 314, 315, 316, 318, 321, 322, 323, 324, 328, U9, 332, 3Jitt 13.7t J38, 319,
3fto, 31t2, 344, 31ta, 350, 3&o, 3&5, 36&, 3&9, 37o, 371 37Z, 374, 376, 37a, 3ao, nz, 390, 393,
394, 409, 410t lt28t ltltltt 457, 458, 459, 4&0, 472t 476, 504),
bounds_fault_ok condition,
get_pdir_ entry returns (chllr U&8H,
clock_ entry returns (fixed bin (71J t,
subvSiegal_bf entry (ptr),
subv Stry_op entry (fixed bin, ptr h
subvSillegal_bf entry (ptr, fixed bin l:JS)),
subvSxed_fetcher entry Cptr, fixed oln (35Jt,
subv Ud_inst entry (ptr),
subvSxed_storer entry (ptr),
hcs_sake_seg entry (char th char ct. char CJ, flxed bln (5), ptr, flxed bin),
co-rr_ entry options Cvariable),
hcs_sacl_add1 entry (char cJ, char cJ, char C), fixed bin (5), cU COI2l fixed bin (6), fixed
bin),
cu_tlevel~t entry Cflxed bin),
no_acc_p ptr int static lnlt (null CJ),
re..,_p ptr int static inlt Cnull Oh
re~-P ptr lnt static inlt Cnult OJ,
co f lxed bin,
fp ptr,
sp polnt~r lnlt (pointer Cfp, OJ),
array (0&262143) fixed bin C35J ba$ad,
bits.tring bit C235929!H aUgned based,
1 fixed bln C35J,
uxed
bln.
P pt r based,
ItS
....,
46
49
50 ge t_scratch_sega
51
procl
52
1f scratch..J) = null U then call hcs_s...ke_seg c, '"sUbverter_teMp_s..., , D1111bt scratch.,Pt
53
code)l
54
call hcs_struncate_seg Cscratch_p, o, code);
55
end;
56 get_rea_sega
57
procedural
58
.
59
caU hc:s_SIle_seg , ... , suttverter_tep_lt_, ..., 01111bt .re-P codeJ I
&0
end;
61
62
63
61t sa-t_no_acc_sega
65
procedure;
&&
if no_acc_p = null ( t then call hc:5_SIIa~a_seg ,.... , subverter_tep_1_, .... , 0010Db, no_ecc_pe code) I
67
end;
I:.R
70
71
72
procedure;
if read_p = null () than
do;
call hcs_Sraake_seg , .... , "subverter_teap_2_'", "" 01111b, read_p, coda);
reaa_p -> p =pointer Cread_p, 7l; 1 create pointer to ord 7 1
substr (unspec (read_p -> p), 67, 6) a "101110"bl
1 put In id aodlfler to its pointer
read_p > array (7) = iOOOOOOOOb; 1 fill in the tally in the indirect 10rd 1
cal.l cu_Sieval_get (J)I
1 get validation level 1
rings ()
H
call h~s_sacl_addi (gat_pdir_ u, subverter-taap_2_",
' 01000b, rings, coda);
1 reset the acl 1
end;
end;
73
7ft
.,
75
76
71
78
79
80
81
82
83
....
84
as
86
fl tchl
entry Cf p) ;
catl get_no_ac:c_:ug;
i = no_acc_p > array (0)1
tlae_of_fallure =clock_ ()I
scu_data (1)
i;
return;
17
aa
89
90
91
92
93
""
0
94
95
96
97
91
99
110
101
102
103
104
105
106
107
108
109
st oral
entry Up);
call gat_no_ac:c~eg;
no_acc_p -> array (0)
17;
tlaa_of_faiIUra = CIOCIIit.. 01
return;
xa d_ fetch I
entry Cfp);
call get_no_acc~ag;
call subvsxed_fetchar (no_acc_p, i);
tiae_of_fallure
clock_();
scu_data (1) = il
return;
1 try to store 1
1 faUad 1
110
111
112
113
114
us
116
117
118
xa d_storea
entry Up);
ca.Jt get_no_acc_sag;
call subvSxed_storer (no_acc_p);
tlae_of_fallure = clock_();
return;
119
120
121
122
123
124
125
126
127
l:fl
entry (fp);
cal I get_read_seg;
cat I subvSlCI_lnst (read_p);
t1Me_ot_fa11ure a clock_();
return;
1 go into coda 1
1 should navar return 1
129
1311
131
U:2
133
134
135
13&
137
138
139
11t0
11t1
14t2
11t3
1'tlt
14t!i
14t&
1\7
11tl
11t9
150
151
152
153
entry Cfp);
call get_rewa_seg;
call subvSiegal_.bf Crewa_p);
1 f rewa_p -> bitstring = .. O..b then signal condition ( bo\1\ds_fa~;~at_ok);
do 1 = 0 to 65535;
lf rewa_p -> array Ci)
0 then
do;
u .._of_fatture cloc~ ();
sc u_dat a CU
1;
scu_data (2) = rua_p -> array (1);
return;
end;
end;
1 lndlcate found non-zero first t1ae 1
scu_data ( U
-1 ;
1 but aero the second 1
scu_data (2)
o;
return;
-=
=
=
U lagel_bounds_tau Ita
entry (fp);
call get_re-es~;
call subvUIIegal_bt cre-1> 1U
tlae_of_f aUure
clocllt_ 0;
scu_data (1)
1;
return;
1Sit
155
15&
....co
157
158
159
160
161
162
163
161t
11 legel_opcodesa
entry (fp);
cau get_scratch_segl
1 f next_code
hi gh_code then next _code = 0;
else next_code
next_code + 11
caU subvStry_op ccodes Cnext_code) scratch_p);
t1ae_of_fa11ure = clock_ C)l
scu_data (1)
codes cnext_codeH
return;
end;
IN~LUOE
LINE
5
6
....
00
NUMBER
1
PATHNAHE
IDENTIFIER
OFFSET
DATA TYPE
fixed bln(35,0)
blt (2359295)
c:ondlHon
entry
fixed b1nU7,0)
flxed blnU7,0)
entry
pointer
de 1 a ref 132
array
bltstr!ng
bounds_faul t_ok
000100
000210
000106
000012
000232
c>ioc~
code
c:odelli
cu_$~evei,..Sictt
fp
based
based
stack reference
constant
autoatlc
internal static
constant
paraeter
got_pdir_
hcS_Sac:l.,.addl
hcs_iarua_seg
hcs_struncata_seg
high_code
i
constent
constant
constant
const'11nt
conshnt
000112 autoMUc
entry
an try
entry
entry
fixed binU7,0)
Uxad b1nC35,0)
ooou 3
Uxed binU7,0)
fixed blnU7,0)
next_code
00020 6
00023 0
000226
00020 4
ouaJ
no_acc_p
152
autoMt 1 c:
basad
pol n~r
pointer
pointer
polnta.r
fixed !JinC6,Q)
polnttr'
fixed.. binU7,0)
sp
000110 autoatlc
pointer
subvli d_lnst
subvlllleeal_bt
subvltlegel..,bf
subvttry,.op
000222
000216
000212
000214
000220
000224
entry
entry
entry
entry
entry
entry
flxed binl71,0)
N8dJ
re-P
~ rings
scratch_p
scu_data
subvlx.d_tet~h8r
constant
constant
constant
constant
constant
constant
based
161
z-u
coa_e,.r_
cu._test _t 1
'cua;..total.t he
cer_test
end_ot_sege." t
fall ure_bl oc~
falture_bl oc~tr
last_fa11ur'e_bl ock
last_test_t he
next_block,
nuber_of_att ept s
nuber_ot_fa11ures
nueber_of_tests
subllert_statl st lc s
000000 constant
based
6
based
based
based
1
based
based
14
1(18)
based
basad
16
based
~
based
12
based
13
based
10
basod
20
entry
flxed binC71,0)
flxed blnl71,0)
fixed binf17,0)
fixed b1nC17,0)
st,.ucture
fixed blnf17,0)
flxed blnU7,0)
fixed bln(71,0)
flxed b1nC17,0)
flxed blnC17,0)
fixed binC17,0)
fixed blnC17,0)
structure
external del 8
I eve! 2 de: I 17
level 1 del 17
tuts
tlae_of_last_test
type
version
12
4
1
based
bUed
basad
based
stru.ctur
f!xad b!nC71,0)
thad binU7,0)
flxad blnU7,0)
array
t aval
laval
laval
laval
2 del
2 del
2 del
constant
constant
constant
con~tant
constant
constant
constant
constant
constant
constant
constant
constant
constant
entry
entry
entrY
entr:-y
entry
entry
entry
ent,.y
entry
entry
entry
entry
entry
e~eternal
2 del 1-7
1-1
2-10
210
del 2 ,.., 2
ex tarnal de 1 16.raf 16
lnt,rnat del 61t ref 81 97 .1115, Ult &It
lnt4t-nal del 69 ,.. f 122 69
inttrnal de 1 56 rat ao tltt 56
axtarnat clct
axtarnal del u~ .ret
us
1n
nuu
bul I t1 n
builtin
bulttl.n
bui I t1 n
POintar
substr
unspae
r''
ua
uz
sz
funct 1 on
function
function
funct 1 on
l.nt,rnal f.at
66 71
in-tarna.l rat 75
internal rat 75
""" Start
Length
ObJ act
0
210&
Text
0
1122
Llnl(;
1356
231t
S.yabol
1612
2&1
stauc
Oats
11Z2
233
1366
22ft
Inter-nal Procedure get_scratch_sag Shares stack fra of exta,.nal proca:caura ac;c.. s~vlola1lons_
Int.rnal procedure get_raa~seg shares stac~ fraae. ot axttrnat llt"ocedwa ac:cass:.,vi.Qittlons_
cp_bs3a
call_ext_out_dasc
cat l_ext_out
return
.rpd_l oop_t_l :~ ,.b p
clock_
cu_saaval_get
hcs_str uncate_seg
hcs_sua.e_saa
subvatry_op
subvS,Iag~l-bf
s lgnal
ext _antrv
hcs_:Sac:l _:acld1
subviU legal_bt
subvlxad_storar
get~dir_
subvSld_lnst
subvSxad_ fate her
LINE
8
91
103
lilt
121t
.
LilC
000 041
00011 J
000 1'+7
000217
0002& 1
-------
LINE
2
92
105
115
125
-----
LOC
0000 56
000120
000156
000220
000273
------
LINE
,.
95
10&
11&
128
~--
LOC
0000&5
000121
000157
000227
000274
------
LINE
86
97
107
117
130
LOC
000066
00 0130
000170
00 0 21t1
000303
-- --- ---
LINE
88
98
101
120
131
.........
LOC
00 0075
000131
000202
00 0242
000301t
""' ""~"
LOC
LINE
19 000076
99 008131t
109 008207
122 000251
132000313
90
100
11Z
123
133
LOC
000101
00011t6
8U210
1110252
000323
......
.. ' "
ftftft "2.1:..
LINE
ft'ftft..,l/!.4
11t3 000373
153 0001tl7
162 000516
59 001616
73 00071t3
13 00112 0
11tlt
155
163
60
71t
000376
OOOitftO
000527
000663
001010
11t7
157
50
&It
75
000377
0001tlt7
000530
000&61t
001014
11t9
158
52
66
OOOitQ6
OOOitSO
000531
000&&5
11 001017
1511
159
51t
67
78
OD Olt07
oou.ft61
00 0600
0001;11t
001021
.;
.;-
co
\11
160 808470
55 000&14
112 . OIJIIt 32
161.UJS0ft
5& ot061S
69
79 001027
71 ,QOIJ73&
88 00101t2
151 OOOft28
ouns
~--
ASSEMBLY LISTING OF
4SSEHBLED ONI
OPTIONS USEOa
ASSEMBLED 8 Yl
ASSEMBLER CRE AT EO a
SEGHENT >user_dlr_dlr>Oruld>Kargar>coapller_pool>subv.aiM
Olt/11/74 1826.1 edt Thu
Ust old_obJect o!d_catl svabol s
ALH Version lt.lt, Septeaber 1973
OZ/13/74 1728.8 edt Wed
000000
000000
000000
000000
OOOOIJO
OOOOIJO
000000
000800
IJOIODO
000100
8111100
010800
OIIIOUO
010000
000000
000000
0810011
000000
010000
000331
000267
000310
000212
00022 It
OOIJllt IJ
000~0 0
000010
000020
000030
000040
000050
000060
000078
00010 0
008110
ooo12 a
000130
000140
000150
00000 2
000003
000005
010000
011800
800008
880800
DO DODD
co
m
naae
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
entry
equ
eq.,
equ
tup8
tupd
1
2
3
It
5
6
1
8
g
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2&
008000
080001
000102
080803
010801t
ooaoos
UOD006
1100007
3521 20
62 00022
ooozo 6521 aa
2 00100 3521 DO
2 77722 2521 08
2 77700 3331 00
6 00032 2501 00
000000 5320 00
000010
oociou
000012
080013
080014
000015
000016
000017
00022 3521
62 80020
6521
2 00100 3521
2 77722 2521
2 77700 3331
6 00032 2501
000000 6570
000141 7100
000020
000021
000022
000023
000024
OOD025
'~~
000026-c
000027
000151 7100 04
118.
20
00
00
00
00
DO
00
Dlt
2
2
2
2
6
--
00020
00100
77722
77700
00832
000000
000131
6521
3521
2521
3331
25-01
&370
7100
00
00
00
00
00
DO
04
27
28
29
30
31
32
caaa
3lt
35
36
37
38
1 dt a
ldt
lalbr
sdbr
CiOC
:Us
rae: a
c:
sale:
lac: I
rc:u
t lae_~ t_ failure ,2
I o w_order_t 1 e, 3
save_area,s
tases,reglshrs
c:ontroJI
0
aaster_aocle_suc:ceadecl,ic Should never get here
save
scu
tra
33
sc:u
save
cu
tra
SCUI
$Ubll
try_op
hga,_bt
lllegal_bf
Kecl_tetcher
ua_storer
id_inst
caa
0
aster_oae_succaadacl-,1c Should never gat here either
save
ldt
tra
astor_aocle_succaadeci-, lc
000030
008031
aoon2
001033
01013
000035
001036
010037
..
OOOOitD
0810ft1
OD08ft2
111013
0800ft.
0880ft5
1e
08001t7.
aa
u
1e
ae
6 00022 3521 20
2
2
2
2
6
00020 6521
oouo 3521
77722 2521
77700 3331
00032 2~01
000000 2320
000121 7100
.
00
ItO
DO
00
00
DO
Oft
8100~
ae
ae
ouui
2501 00
151t0 80
7100 Oft
811168
11. .61
011062
llit63
8811~
l.a
1111065
ae
i
t.
le
sdbra
sav.
2521 DO
3331 DO
a a 6 01022 3521 20
2
2
2
2
6
ItS
aster_aoae_succeeded,lc
6521 oo
3521 DO
118051
....151
01.152
111853
8010Sft
000055
010156
001857
lclr
tra
41
1t2
lt3
.....
ooota
00100
77722
77701
00832
010000
save
oo
2
2
2
2
6
I dbrl
01020
11108
77722
77780
01832
DOOUI
800101
08
00
DO
00
2581 DO
11151 DO
7100 Olt
08122
00820
80181
77722
77700
oon2
oaooao
oooa7i
3521
6521
3521
zS21
,331
zsot
6160
7100
sdbr
tra
46
ft7
lt8
ster_IIOde_succ.. ded-,.1c
lt9
50
cl oca
save
6521
3521
2521
3331
c.1oc
t.ra
51
52
53
ster_IIOde_succ.. dect-,ic
Sit
ae
Dllli6
.11111&7
881170
811171
881.172
Dli071t
081075
008176
001877
6
2
2
2
2
6
20
55
dlsl
save
DO
10
DO
DO
oa
ao
8ft
56
57
dls
tra
58
astar_aoae_succeaded,lc:
59
oaion
6
2
2
2
2
6
08822
00020
08100
11122
77700
3521
&521
3521
2121
3331
8803~ 2501
000000 2330
000861 7100
20
00
80
60
raca1
save
oo
00
00
00
Oft
61
r'IICII
62
tra
astar_aode_succeadad,.lc
63
6lt
800100
080101
000102
000103
000101t
000105
000106
000107
18
!Ia
6
2
2
2
2
00022
00020
00100
77722
77700
& 00032
000000
000051
3521
6521
3521
2521
3331
2501
5530
7100
20
00
00
00
00
00
00
Olt
65
66
67
sc:
save
SIICII
tra
ster_aode_suc:ceedad-,lc
000110
000111
000112
000113
000111t
000115
000116
000117
a a
000120
000121
000122
000123
000124
000125
080126
000127
DIIUI
111131
880132
1110133
800134
800135
000136
000137
co
co
000140
ool1u
Olii11t2
080llt3
D8011tlt
080145
0110146
00011t7
010158
810151
ooh52
080153
000151t
000159
00815&
000157
c,.
"'~
.
~
,.
~
& 00022
2 00020
2 00100
2 77722
2 77700
& 00032
000000
000041
3521
6521
3521
2521
3331
2S01
4510
7100
&
2
2
2
2
3521 20
6521 00
3521 00
2~21 00
3331 00
2501 00
lt530 00
7100 0 It
00022
00020
00100
77722
77700
& 00032
000000
0 000 31
20
00
00
00
00
00
00
Oft
slcl
save
stc
tra
I acll
save
jacl
76
77
aster-ode_succaade~- ,ic
tra
78
6
2
2
2
2
6
08822
00828
08108
77722
77708
00032
000000
~521
6521
3521
2521
3331
2501
2570
0-0802~ 7100
20
00
oo
00
DO
00
08
Olt
80
save
...
81
tra
12
0.
83
lit
00022
00828
00180.
77722
&
2
2
2
2
77718
& oon.~
00800.
ooo8U
3521
6521
3521
2521
3331
2501
5570
1100
20
00
00
00
00
oo
00
as
o~t
86
87
89
911
2
2
2
2
00028
00100
77722
77700
& 00032
000000
000001
6521
3521
2521
3331
2501
6130
7100
OJI
00
00
00
00
00
04
ftftft4.C..f.
71
72
73
74
75
79
0001&0
000160
& 00050 2541 00
000161
& 00060 7531 00
000162 . . }6' .00070 3571 00
000163
&9
70
-- o oooo2
11'
nnnnn
3521 20
~c:::.,4
""
...
tra
aa
91
92
93
94
95
9&
97
save
rcua
aast.tr_aode_s uccaaded ,1 c
save
rcu
tra
~aaster_aooa_succeaded&
stb
bases
98
sre~
roe~lsters
~$9
stcd
contro I
eapbp
___ ....__
II)
uo
101
n.,
12t
"'-- 1
n_
Itt:
1:111
ftAIR.+al'll
000165
000166
0110167
000170
000.171
088111
...
,..
11m
000172
000173
088171t
. OO,P175
ao
Oc
001176
000177
011177
oaazoa
880201
000202
080203
000201t
000205
. 019206
880207
008210
010211
~~
!1,
o.a
1Dit
2 00002 7551 00
2 00003 7561 00
105
106
107
108
109
110
1U
000000 6220 00
6 oooso 2361
2 00005 7561
0 DOD 01 6220
000010 1020
000171 6040
12
12
12
03
00
000000 6220 00
6 00060 2361
2 08015 7561
& 00820 1731
& 00010 0731
& oooi1t 61Dt
ooooh 6220
ooooio 1020
000177 601t0
12
12
20
00
oo
12
o3
00
2 00025 7551 00
2 00026 7561 00
()0.
<Q
018212
080212
011213
Ut211t
000215
111216
DD8217
c
c
010220
. 010221
0011222
080223
c
c
OD0221t
000221t
000225
000226
000221
OOOZ30
000231
000232
000233
000231.
oa
oa
..
o.
103
It 00202 6331 20
6
2
2
2
2
6
00022
00020
00100
77722
77700.
00032
3521
6521
3521
2521
20
00
00
00
3331 DO
2501 00
0 00882 3521 20
2 00000 3521 20
000261 7160 00
000251t 7100 00
6 00022
z 00020
2 08100
z 77722
2 77700
& oou2
0 00002
2 00000
3521
6521
3521
2521
3331
2501
3521
3521
20
00
00
00
DO
oo
20
20
112
113
lilt
115
116
117
118
119
120
121
122
123
121t
125
126
127
128
129
uo
131
132
133
134
135
13&
137
138
139
litO
11tl
11t2
143
1ltlt
11t5
reel
sta
stQ
eaxz
bases_ I oopl
ldQ
stq
eaxz
CIIIPX2
tl
<svs_info>l[clo~J,
Zero x2
oass,z
op I sa ve_area, 2
1,2
8tdU
bases_ loop
eax2
JdQ
r-eg1sters,2
bP 1save_araa+ a, 2
regs_loopl
stq
return
eax2
CIIPX2
hl
1,2
8tdU
r-egs_loop
ldaQ
sta
stq
controJ
bp 1save_area+16
bpI save_area+ 17
11t7
xed_fetchera
save
eiiPbP
eapbp
apl2,
DP I Ot
xec:
tra
xad_fetch
fetc:n_succeeded
xed_storera
save
eapbp
eapbp
II)
xec
xed_store
12,
GP I O,
1ft&
0 00266 7160 0 0
lnc:reaent by 1
< 8 .,
....
000237
c
c
0110240
000241
0110242
000243
000244
000245
000246
0002it7
000250
0011251
000252
000253
000254
080254
000255
000256
000257
000260
0102&1
000261
080262
000262
0002&3
ID
0
088264
080264
000265
010266
00Q2&6
080267
ooii2n
c
c
000271
D00272
000273
000271t
000275
000276
ODD277
DOD300
DD0301
000302
000303
000304
000305
000.366
000306
18
2
2
2
2
&
0
2
00020
00100
77722
77700
0003?.
00002
00000
6521
3521
2521
3331
2501
3521
3521
00
00
00
00
00
20
20
2
&
&
&
00000
00020
00010
00024
2361
1731
0731
&101
20
20
00
00
~
aa
Ja
0 00004 3521 20
2 00000 75&1 DO
6 00020 1131 20
& oouo o'n1 oo
& 00024 6101 00
oa
000262 7170 DO
2 00000 2361 CD
000000 0110 03
D00021 2360 07
2 .QOOOO 7561 DO
000264 7170 DO
IJII
oa
Ia
&
2
2
2
2
&
0
2
00022
OD020
00100
77722
77700
00032
00002
DDDOD
OODDDO
177777
000306
& 0002D
& 00010
& 00024
3521
6521
3521
2521
3331
2501
3521
3521
&210
622ii
7170
1731
0731
&101
20
00
CD
00
00
OD
20
20
00
Oli
00
20
DO
00
OOODOO DUO 03
2 00000 2361 11
.,
.,.,.c..-
149
150
151
! ct_!nst 1
eapbp
152
153
154
155
15&
157
158
159
1&0
1&1
162
163
1&4
1&5
166
167
168
169
170
17.1
172
173
174
175
176
177
178
179
180
181
182
i~
184
185
18&
187
188
189
... ......
save
tal)bl)
lctq
return
fetch_succeecte eta
eapbp
stq
return
II) 12,
bpI O,
bpiO,
14,
bpiO
II)
xed_fetchl
Xed
lCtd_tetch_pair
even
xed_fetch_palr 1
ldQ
nop
xect_store_palr 1
ldQ
stq
bpiO
o,ctu
17,dl'
bpiO
xect_stor
xed
11 e
ct_st ore_pal r
legal_b fl save
eapbp
eapbp
eax1
...,
xed
return
11)12,
bP 1o,
0
&55:55
o ounds_palr
even
bouncts_palrl
lctQ
, ..._
op 1o.1
- - . n.
--------
~--
191
192
c
c
000310
008310
000311
010,11.2
010313
000314
0011315
oooi1&
008317
000321
Olil21
008322
088323
000321t
D0032!!J
DGG326
000327
000330
ODUU
....
U)
c
c
000332
0011333
000331t
018335
000336
OOOU7
OODIItO
000341
010342
OD031t3
00031tlt
000345
00Uit6
.. D0031t7
008350
000351
NO LITERALS
,.
,.
,.
!Ia
oa
193
00022
2 00020
2 00100
2 77722
2 77700
& ooui
0 00002
2 00000
ooootiij
30321tll
000306
&
' 0
2
&
6
6
"'
!I
oa
3521 20
6521 DO
~-521 00
2521 00
3331 00
2501 oo
3521 20
3521 20
6210 oo
6220 00
7170 00
.00084
00000
00020
00010
00021t
3521
7561
1131
0731
6101
20
DO
20
00
00
088000
6 80022
2 00020
2 00100
2 77722
2 777011
6 oon2
0 00002
2 00000
008011
000330
0 000 Olt
2 00000
2 00000
2 00000
0000
3521
6521
3521
2521
3331
uo1
3521
2361
7360
0760
3521
3521
7561
7161
00
20
00
00
00
00
oo
20
00
00
00
20
20
00
00
6 08020 1731 20
6 00010 0731 00
& 00024 6101 DO
1t legal_b fl
194
save
195
19&
197
198
199
200
201
202
203
eapbp
eapbp
eax1
eax2
xed
IP 12t
op 1 o,
D
10 ODOO
bounds_pair
eapbp
stq
return
IP I Itt
bpiO
arg
201t
205
206
207
208
209
210
2U
212
213
211t
215
21&
217
218
219
arg_oa
tr-y_opa
~K
$iiiVI
eapbp
ldq
qls
a del
eapbp
eapbp
stq
xee
return
and
IP 12,
bpiO
9
arg_o
IP lit,
DP I
o,
bpiO
bpiO
-----~--~
000352
00035;J
080354
000355
00035&
000357
0003&0
000361
0003&2
000363
000364
000365
080366
080367
000370
088371
010372
000113
Ui3n
118375
Sa
Za
aa
ia
Za
ia
Za
ia
za
sa
2a
sa
Ui
aa
818376
001377 ;a
000401 t.a
lltftU
8Uit82
081411 sa
180484 2a
008ftOS
DI01t86 sa
Dlllt07 u
UlftU ta
.....11
8i01t12
OOOitU
Da0411t
OOOUI
8881t16
000417
8001t21
000ft21
008ft22
0801t23
OI0421t
oooitzs
oaolt26
000427
080ft30
0001t31
000432
000433
000434
000ft3S
000436
000437
008440
000441
000442
?a
:ta
"
Sa
za
sa
,.2!
sa
2a
a
sa
2a
.a
sa
za
sa
!a
a
Ia
000003
000174
003 162
0 000 0&
0001&6
0 0 3 1&3
000011
000160
003 154
000015
000152
0 84 154
154 008
000021
000144
a 04 163
11t3 ooo
100025
o oou6
DOlt 163
155 000
000031
000130
oo1t 162
155 000
00003rt
000122
on 144
OOODftD
oaou.~t
00.
0 .,. 11t3
143
ooo&44
000106
a D4 163
162 DOD
000850
00010..
0 Oft 1~1t
162 IDO
oooo53
000072
0 03 151t
080056
000064
003 163
000061
000056
003 143
0 00065
000050
0 D7 151
151 156
000072
088042
01Z 170
137 163
00000 0
000001
143 165
00000 0
000001
141 155
000000
000001
141 155
00000 0
000001
141 143
800 0 DO
00000 0
000001
155 151
o oo o o a
OOoOO 0
u'cioot
1SS 143
080 OliO
000000
000101
us 11t3
000 0 00
000000
000001
151 163
0001100
ooooili
151 157
!I DO. 0 80
ooooo a
000001
144 142
ODD 0 DO
00000 0
ooooh
144 11t2
ODD 0 DO
oooooo
0001101
144 164
00000 0
000001
143 165
000000
000001
141 155
0 0000 0
000001
144 137
163 161t
00000 0
000001
145 144
164 157
rcu
sa a
lac I
slc
sc
rc
dls
cloc
sdbr
ldbr
ldt
scu
ca
ld_lnst
xed_storer
<D
"'
0 0 0444
800445
OIOitlt6
000447
000450
000451
0001t52
08illt53
. 0804!Sit
oooit5s
0804t56
0801t57
080468
8001t61
ODOit62
000463
000464
0001t65
000466
000it61
0101t71
OID1t71
0001t72
000473
081471t
0001t7S
010476
01Dit17
018580
000581
' 000582
58
28
;,
28
;,
h
18
18
2.
,.
;,
58
h
i!
;,
.,r.a
;,
000077
000034
o u 110
137 146
143 150
000104
000026
012 151
11t5 147
137 11t2
0 00111
0 00020
010 151t
141 154
11t6 000
.000115
000012
0 06 16~
137 157
OD0123
000000
0 1lt 163
11t2 157
161t 141
11t5 000
00013&
000037
010 1&2
137 164
164 800
ooou5
000000
000001
tits 144
145 1&4
145 1&2
00000 0
000001
154 154
11t1 151t
146 0 0 0
0 0000 0
0 0000 1
145 11t7
137 11t2
000 0 00
000000
000001
1&2 171
160 000
000000
000002
171 155
151t 137
11t2. 154
toO 800
00008 0
000&02
11t5 151t
11t5 170
000 000
oooao o
11t5 151t
151 156
ODD ODD
0 DOOD 0
rel_llnk
xed_fetcher
i llegal_b f
legal_bt
try_op
sybo l ....tab le
rel_text
... DIOSOit
ooii5ot
81i5D6
D80507
;,
018 162
1 37 154
153 DOD
0 00142
OD0511
000512
080513
.. . 000514
012 1&2
137 163
11t2 157
000000
11t5 151t
171 155
154 0 00
000000
rel_sybol
0 06
11t3
010
137
157
151t
137
171
156
000
clociL
DTERNAL '(AMES
000515
000516
OOD517
080520
OOD521
!II
143
153
163
151
000
157
000
163
146
000
000522
000523
080521t
;s
18
OOOOOit 000000
00011t5 00011t3
000001 00000 0
svs_lnfo
~-
----------
--
'-
LINKAGE INF 0~ MA TI ON
co
000000
000001
000002
000003
OOOOOit
000005
000006
000007
000010
000011
000012
000013
00001lt
000015
000016
000017
000020
000021
000022
000023
001021t
000025
011026
000027
000030
000031
000132
000033
OOOUit
000035
000036
080037
OODOltO
OOJOit1
000042
00001t3
OIODitlt
018045
DOOOit6
00001t7
000050
800051
000052
000053
000054
000055
000056
000057
0000&0
0000&1
000062
0000&3
000061t
000065
0000&6
000067
000070
-
.,
Oa
18
22
12
98
5a
3a
1.8
oa
I. a
3a
L.a
08
1.8
118
38
.. 8
oa
1.8
18
38
:.a
08
1.8
38
-8
oa
La
...
3a
oa
La
--
3a
oa
3a
I. I
08
1.8
8
000000 00000 0
000352 00000 0
000000 QOOOOO
000000 00000 0
oaoooq oooooo
000000 00000 0
000010.000204
oooooo !100204
777770 0000 46
000155 0000 17
77776~.~700 04
000003 0540 04
000331 6270 00
11711, 7100 24
OOOOIJO 000000
000000 00000 0
777760 3700 04
000003 OSitO Olt
000267 6270 00
777765 7100 Zit
oooooo ooooo a
000000 00000 0
777752 uao Olt
000003 051t0 04
080310 6270 00
777757 7100 24
000000 00000 0
0000110 000000
1111ltlt 3700 Oft
000003 051tO Olt
000212 &270 00
777751 7100 21t
oooooa ooaao o
000000 000000
777736 3700 Olt
000003 0540 Olt
000224 &270 00
777743 7100 24
000000 00000 0
000000 00000 0
777730 3700 Oft
000003 051t0 04
000240. &270 DO
777735 7100 24
000000 000000
000000 000000
777722 3700 04
000003 0540 04
000000 &270 00
777727 7100 24
000000 00000 0
000000 00000 0
777714 3700 Olt
000003 0540 04
000010 6270 00
777721 7100 24
000000 00000 0
text 1
(entry_sequenc:e)
(entry_sequenc:e)
(entry_sequenc:e)
(entry_sequenc:e)
(entry_sequanc:e)
( entrv_se quenc:e)
(entrv_sequence)
_____.. _,.
_,.~~
008072
080013
000074
000075
000076
000071
000180
000101
0110102
DI0103
--
OOotOit
000105
01010.
000107
000110
000111
3a
I. a
Oa
I.. II
u
3a
~...
oa
~...
3a
La
Oa
L
lltiOUZ
0110113
OOOUit
,.
000115
0011*16
o..,
180121
3a
~..
111117. ~...
. . .120
10
\11
080122
000123
000124
0001Z5
000126
000127
000130
000131
000132
ooou:s
oooi31t
ooof3s
Ololl6
000137
oooilto
01811t1
OOUitZ
00011t3
00011tlt
00011t5
0001'+6
00011t7
000150
oooi51
800152
080153
000151t
OD0155
D0015i
000157
0001&0
0001&1
000162
OD01i3
La
oa
1..8
aa
3a
~-~
08
.LI.
.tl
h
1.8
0~
:.~
18
3a
La
Da
La
a
3a
1.8
ila
La
Ia
3e
L.a
oa
L.e
Centry_sequence)
( entrv_sequencel
Centry_sequencel
Centry_sequencel
Centry_sequencel
.. _ ...
""
0001&5
0001&6
000167
000170
000171
000172
000173
000171t
000175
000176
000177
000200
000201
000202
000203
U)
"'
it
38
i.e
08
I. a
I.e
De
1.8
g.
sa
000000 000000
777612 3700 Olt
ooooo3 os~to Oft
0 0011tll 6.271l DO
777617 7100 24
000000 OOOODD
000000 000000
777&04 3700 Oft
000003 0540 04
000150 &270 00
777611 7100 2ft
000000 000000
000000 00000 0
777576 0000 Ct6
000154 0000 20
l entry_se quenc )
lentry_sequence)
---~----
000000
000001
000002
000003
OOOOOit
000005
000006
000007
000010
000011
000012
080013
000014
000015
000016
008817
080020
OOOD21
880022
000823
IIDI21t
018025
000826
080027
008850
oooou
...,
ID
888832
008833
000031t
000035
000036
,.
000000
21t00 00
000000
240000
000000
141711
000000
720122
000000
000000
000000
000530
000000
240000
803141
0 37101
Olt0126
163151
81t8061t
0540411
160161t
142145
861071
163165
04001tll
04001t0
OltOOitO
OltOOitO
0400"-D.
040040
040040
001001
0 0003 3
001045
0001t2 7
101452
067&71
101561
210541
000000
000002
000000
000201t
001474
000440
154155
111t115
145162
157156
056064
1i311tS
1,5155
1~2040
0671163
142166
OltOOit 0
OltOOitO
OltOOit 0
040~1t0
04004 0
04001t0
040040
....
~-
-------
""
330
50
171
306
0
50
70
60
251t
240
310
120
130
30
20
267
3
160
<.()
co
150
60
177
70
140
5
10
ItO
100
110
2
331
261
212
262
266
22ft
26ft
Svbol
Source f lie
L!n~
nu11ber
text
subvl
2,
14,
205,
25,
109,
18ft,
a,
3,
15,
21Q.
97,
114.
18a,
za.
50.
arg_o
bases
bases_l oop
bounds_palr
ca
cloc
c I ocifl_
control
dis
t etch_succeedea
1 d_inst
111egal_bf
I act
Ia
1 dbr
tat
legal_bt
1oa._order_t lae
aster_aode-succeeded
r-cu
resusters
regs_ loop
rc
seve_area
scu
sdbr
sc
slc.
svs_lnfo
t 1-of_fallure
trv_op
xed_fetch
xed_fetcher
xed_htch_palr
xed_store
xed_storer
xed_store_paJ.r
subvl
subvl
subvl
subvl
subvl
SUbVI
SUbVI
subv 1
subvt
subvt
subvl
subvt
subv 1
subvl
subv a
SUbVI
subva
subvl
SUbVI
subv 1
SUbVI
SUbVI
subvl
subvl
subvl
SUbVI
s.ubva
subv 1
subvl
subvl
subvl
subv a
subva
subvl
subvl
subva
subvl
subvl
u,
10ft.
Z6t
11tt
139,
7,
4,
u,
19,
11t
u,
3,
23,
30,
87,
21,
zs,
117,
15,
zo,
,,
Zit,
99,
126o
55.
158.
151.
193.
75.
ao.
40o
3&.
179.
106.
3lh
38,
92,
96.
91).
ga,
111.
123.
60.
85.
111, 119,
32.
12,
45.
1&,
65.
70.
17,
10fto
zz,
2,
ua,
;,
16ft,
11t7,
6,
170,
4,
16,
110.
199.
105.
ZO&.
1&3.
132.
166.
174.
142.
175.
,,
5,
17,
u,
1,
19,
a,
20,
21.
ltZt
lt7,
sz,
57,
62,
127,
128.
lh
10,
11,
u,
u .
67,
72,
77,
12,:
APPENniX B
Unlocked Stack Base
Listin~
99
1 c:Ua
2
3
proc;
It 1
5
&
7
8
g
10
11
12
13
11t
15
1&
17
18
19
20
21
22
.,
0
0
21t
25
2&
27
28
29
fixed b1nU7,0)
entry
entry
entry
fi.xed binU7t0)
flxad blnU7e0)
Pointer
entry
po!nhr
entry
label
bulltln function
internal ref 25 25 27 27
IDENTIFIER
OFFSET
autoaatic
constant
constant
constant
autoaatic
constant
ai.ltoaatlc
constant
autoaatic:
Start
Length
External
....
....
0
ObJ act
0
454
p~o::adur-a
Text
0
220
dl
us~s
S.,abol
Link
270
22
oats
220
50
312
127.
118 Mords of
a~atoaat
ic
static
. 388
12
storaS~e
axt_antry
f1
rpd_l oop_1.,.Jp_bp
rlngO_get_asagptr
LINE
Ll C
1 000017
25 000134
LOC
LINE
15 00.025
26 000150
LINE
LOC
16 000057
27 0001&1
LINE
LOC
11 0000&1
28 000200
LINE
LOC
20 000100
29 000217
LINE
LOC
22 000101
LINE
LOC
23 000132
,.,
:t ---
OPTIONS USEDI
ASSEMBLED BYI
ASSEMBLER CRE AT EO I
OZ/13/74
list
000000
000000
000000
000001
000002
000003
800004
OOOODS
c
c
c
c
c
c
c
c
c
.....
000006
000007
000010
000011
080012
080013
000014
000015
000016
000017
000020
000021
100022
080023
000023
DD0021t
000025
000026
000027
000830
000030
000031
000032
old_ob)ect
old_caiJ
Ia
Oa
oa
Ia
18
& 00022
2 00020
2 000&0
2 77742
2 77720
& 00032
000030
000023
& 00050
& 0003&
0 00004
2 00000
& 00052
0 00002
2 00000
& 00000
6 00052
777777
0 00000
3521
&521
3521
2521
3331
2501
2370
3520
2521
3701
3521
3521
2521
3521
3501
3521
3721
6200
7101
20
DO
DO
00
00
DO
00
00
00
00
20
20
00
20
20
00
20
00
DO
2
6
&
6
3721
1731
0731
6101
00
20
00
00
00000
00020
00010
00024
Ia
000000 0110 03
2 00000 7173 00
2 00002 7103 00
2
3
4
5
&
7
8
9
10
11
12
13
14
15
1&
17
18
19
20
21
22
23
24
25
26
Z7
28
NO LITERALS
symbols
0 0000 0
Ia
dial
na11e
entry
tempd
push
dla
dla
ldaQ
eapbp
stpbp
eapl p
eapbp
eapop
stpbp
eapbp
eapap
eapbp
"instructions in AQ
~eed_inst
"pointer to return point
return_inst
l"aturn_polnhr
l"eturn_polntar-10 "sl;naller does tra I pliO ,
e8PSP
euo
tra
return_lnsta
eapsp
return
even
lnhJ.blt
xed_1nstl xed
tra
'""'bit
end
~e
u~n_po inh
r, do _i t_D tr
1!~14,
op ao,
do_lt_ptr
aplz,
bpI Ot
SpiO
do_ it _ptr,
-1
apiO
"pointer to
esd.11n~
"ptr to signaller
"save stack ptr
"ptr to esdo lin~ into SP
"transfer to signaller
bpiO
on
bpiO
bpl2
off
P'
LINKAGE INF OR HA TI ON
000000
000001
000002
000003
OOOOOit
000005
000006
000007
000010
000011
080012
000013
000011t
000015
000016
010017
....
0
18
Oa
aa
18
zz
12
~58
3a
1..8
Oa
:.a
000000
000032
000000
000000
000000
000000
000010
000000
777770
000033
777766
000003
000000
777773
000000
000000
000000
000000
000000
000000
000000
000000
oooozo
oooozo
0000 It&
0000 17
3700 Olt
051t0 Olt
6270 00
7100 Zit
000000
00000 0
t ext I
(entry_sa ~uanca)
...
'0
V1
000000
000001
000002
000003
OOOOOit
080005
000006
000007
008010
000011
000012
000013
000011t
000015
000016
080011
000020
000021
000022
000021
OI0021t
010125
000026
080021
000030
000831
000032
000033
000034
010035
088036
000000
240000
000000
240000
000000
141711
000000
717411t
000000
000000
000000
0000&&
000000
240000
003141
037101
04012&
1&3151
040064
054040
160161t
14211t5
061071
144151
040040
OltOOitO
040040
040040
Olt0040
040040
04001t0
001001
000033
001045
000427
101452
0&7&71
1015&1
0 0335 7
00000 0
00000 2.
000000
000020
001474
000440
154155
114115
145162
157156
056064
123145
11t515 5
16201t0
067063
14101t0
OltOOit 0
040040
04001t 0
04004 0
OltOOitO
OltOOit 8
04001t0
,.,
0
52
23
50
30
NO FATAl ERRJRS
....
0
0\
Symbol
Source f .lie
text
dial
dial
dial
alai
dial
dial
dla
cto_lt_ptr
return_lnst
return_polnter
lCed_lnst
Une number
z.
z,
3,
&,
3,
5,
lt.
11t
18.
7,
Zit.
15.
8.
1 fU
2
proc ( 1l xp,
~ordH
24
25
1 Entry to read out 36 blts 1
26
fix
'"O.. b1
27
28 coaona
29
call rlngO_get_SSegptr ,.... , "Si!J'Ia liar .. , sp, coda); 1 get segaent nuaber of slgnaUer 1
30
1 f code -. 0 then
do;
31
32 er'"O,.I
call coa_e,.,._ (coda, "fl");
33
34
return;
35
end;
36
cal 1 rlng o_get_Ssegptr ,.... , "eae,.gency_shutdown.llnk'", IWP, coc:tel 1 1 get segaent nullOet." of e aergency_shutdo
.....
0
......
.,
37
38
39
40
end;
<P
worcn I
, . c. . . . at progn to flnlsh . ,
-~
OFFSET
DATA TYPE
constant
autoaatlc
constant
auto11at1c
fixed binU7,0)
entr-y
entry
entry
bit (1)
pointer
find bln(17,Q)
pointer
entry
pointer
para~aeter
b.lt(3&)
constant
constant
constant
constant
Iabat
label
entry
entry
del 28 ref 28 21
del 32 ref 32 37
external dc.l 1 ref 1
extarna.l del 23 rat 23
internal ref 38 38 39 39
autoaatJ.c
constant
constant
constant
autoaetic
para~aeter
<
Strt
Length
External
ObJ act
0
470
pr-o:ed~e
Text
0
224
Llnl(;
304
2'2
Symbo<l
326
130
Oafs
224
60
Static
314
12
cau_axt_out_ctesc
ctt_axt_out
return
ext_entry
co._arr_
fia
fiaJgia
LINE
LlC
1 01002 0
32 000076
LINE
LOC
19 000026
34 000115
L.INE
LOC
20 000030
36 000116
LINE
LOC
23 000 031
37 000152
LINE
LOC
26 000037
38 000154
LINE
LOC
28 008040
39 00.0201
LINE
LOC
30 081J07'
ItO 00.8223
ASSEMBLY LISTING OF
ASSlttBLED ONI
OPTIONS USEDI
ASSEMBLED BYI
ASSEMBLER CREATED I
SEGMENT >user_dir_dlr>Druld>Karger>compiler_pool>fla.ala
04/11174 1826.0 edt Thu
list old_ob)ect old_call svabols
ALH Version 4.4, Septeaber 197~
02/13/74 1728.8 edt Wed
000000
000000
000000
00000 0
DOD031
naae
entry
entry
1
2
3
fla
fla
gla
It
...
c
c
c
c
c
c
c
c
c
<0
OOOID8
000001
000002
080003
000004
oaooo5
1180006
000087
810010
000011
000012
000013
000014
000115
000016
000017
000820
000121
000022
OD0023
000024
0110024
000025
ood26
800026
000027
000030
000031
0000~2
c
c
c
c
c
c
c
c
c
c
000033
000034
000035
000036
000037
000040
000041
000042
00004~
00001t4
00001t5
000046
000047
00000
18
Da
1,8
18
Ia
Ia
18
Ia
na
6
2
2
2
2
6
0
2
&
0
2
6
0
2
6
00022
00020
00060
77742
77720
00032
00010
00000
D0056
OODO&
00000
DD052
00004
00000
00050
& ooo36
000"024
0 00002
777777
0 00000
~521
6521
3521
2521
3331
2501
3521
2361
7561
3521
3521
2521
352J.
3701
6501
~101
352D
35D1
6200
7101
20
00
DO
00
OD
00
20
OD
00
20
20
DO
20
20
DO
oo
DO
20
00
20
6
7
flat
8
g
10
Jdq_stqa
6
2
2
2
2
6
0
&
0
2
6
0
2
6
6
00022
00020
00060
77742
77720
3521
&521
3521
2521
3331
000~2 2501
00010 3S21
0005/t 2521
00006 ~521
00000 3521
00052 2521
00004 3521
00000 3701
ooo5il &501
00036 3701
20
DO
00
00
00
00
20
ou
20
20
00
20
20
oo
00
00001& 31i:JD
00
ap
ldQ
bpiO
lfOrd
ap 16,
op I o,
fhp
aplite
ldQ
s'tCI
inhibit
return
28
29
30
31
eapbp
even
inhibit
27
6 00020 1731 20
6 00010 0731 00
6 00024 6101 00
tra_,, Uxp,wordp
lfOI"d
stq
eapbp
eapbp
stpbp
eapbp
e.-pip
stplp
eaptp
eapbp
eapap
euo
tra
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
teapd
teap
push
gial
u,
on
lfOrd
fi JCPt
push
1&1
AAfihn
11 tC
37
"transfer to signaller
off
op 1o,
tra_p
tra_p-10
35
36
traJ
traJ-10
I d<~_StQ
ap 12,
1
ap 1 o,
38
39
40
34
op ao,
eapbp
STPDP
eapbp
eapbp
stpbp
eapbp
eapl p
stpl p
eapl p
32
33
IP 18,
lfOI"dP
liP 16e
DP I O,
flxp
IPIItt
t"'
+n
In afll> o
ptr to trapdoor ln
liiSd.lin~
lp!10,
'tn
\fAd
,...
-------
000052
000053
000054
000051t
000051t
000055
00005&
00005&
000057
0000&0
140 LITRALS
...
...
777777 &ZOO 00
0 00000 1101 20
lt3
lt4
45
It&
47
&
&
00052 23&3 20
00051t 75&3 20
00020 1731 20
00010 0731 00
& 00024 &101 00
&
&
48
euo
tr~
even
Inhibit
I dQ_StQ_ln_.,.~ I
ldQ
49
50
51
stq
lnhlblt
return
52
end
1
11)10,
on
Uxp,
wordp,
off
t~ansfer
to
s!~naler
--
~-
t:: NO EXTERNAL
....
;a
Za
18
;a
Za
;.
&a
aa
:;e
r;e
Sa
Sa
000003
000020
0 03 147
000006
000012
003 14&
000014
000000
014 163
142 157
164 141
145 000
000021
000037
010 162
137 164
164 000
00002&
00000 0
000001
151 141
000000
000001
151 141
00000 0
0000.02
171 155
154 137
142 154
000 000
00000 0
000002
145 154
145 170
000 0 DO
00000 0
010 162
137 154
153 000
000033
145 154
151 156
ODD 0 00
000000
re l_llnk
012 162
137 163
142 157
000000
145 154
171 155
154 000
000000
rel_sybo I
AHES
INTERNAL
000001 00000 0
000000 00000 0
EXP~ESSION
000120
000121
,.
WORDS
000031t 000000
000000 00000 0
gla
fia
svbol_tabte
re l_text
~~~~=~
~~=~
OOOOOO~~~~OOONOOOOONOO
~~~~g~~~oooooo~~oooo~~
oooooooooo~~N~OO~~N~OO
===========~~====~~===
==========~=~~==~=~~==
ONOOOOOOO~~~O~OOO~~~OO
=~====~=~~~==~==~=~~==
========~=~==~==~==~==
========~=~==~==~==~==
========~=~==~==~==~==
oooooooo~o~o=~==~==~==
~
~
eNN
~=~~~~N~~~~~e~~l=~
O~N~~~~~o~N~~~~~-~N~~~
oooooooo~~~~~~~~NNNNNN
oooooooaooooooooo~ooaa
ooooooooooooooooa~ooao
ooaooaooaoooooaaoaoaao
oaaoooooaoooooaaaoaaaa
112
---~"
000000 ta
000001
000002
000003
OOOOOit
000005
000006
000007 1a
000010
000011
000012
000013
000011t
0011815
000816
000011
000020
0011021
011111122
000023
01111124
0001125
111111026
000121
0011030
01101131
01111032
01101133
000034 . ~000035
000036
........
""
000000
240000
000000
21t00 00
000000
11t1711
000000
7200&1
000000
000000
000000
000122
000000
240000
003141
037101
040126
163151
0400&1t
054040
1611164
142145
061071
146151
840040
04111140
04001t0
040040
040040
040040
040040
001001
000033
00101t5
0 1101t2 7
1011t52
067&71
101561
&37&1t7
000000
000002
00000 0
00002&
0011t71t
OOOitltO
151t155
114115
145162
157156
056064
12314 5
11t515S
16204 0
067063
141040
04004 0
04004 0
OltDOitO
OltODit o
04001t0
04001t 0
04001t 0
..
PUL TICS ASSEHB L Y CROSS REFERENCE I. ISTING
Symbo I
Vatu
0
52
31
Zit
54
50
56
54
NO FATAL ERRJRS
........
.r="
text
f 1a
f llcp
g.le
taQ_stq
I dq_stq_ln_ar g
tra_p
If ora
lforap
Source f 1J e
fial
Hal
fiaa
' f lal
Hal
fJ.al
flal
flal
fJ.al
LJ.ne nu 11ber
z,
z,
5,
3,
18,
41'
5,
&,
5,
3.
7.
13,
31.
26,
36,
48.
17,
39,
40.
25.
47.
1&,
1Q,
33,
25.
49.
APPENDIX C
Trap door in check$device_name Listing
This appendix contains listings of the trap door
inserted in check$device_name in Section 3.4.5.2 and the
two
modules
needed
to
ca 11
the
trap
door.
Check$device_name is actually one entry point in the
procedure check$device_index.
The patches are shown in
the assembly language listing of the code produced by the
PL/1 compilation of check$device_index.
Most of the
patches
were
placed
in
the
entry
sequence
to
check$device_index, taking advantage of the fact that PL/1
entry sequences contain, the ASCII representation of the
entry name for debugging purposes.
Since the debugger
cannot run in ring 0, this is essentially free patching
space. Additional patches were placed at each return
point from check$device_name, so that the trap door ~vould
be executed whenever check$device_name returned to its
caller.
Zg
is
Z~
115
cor.1pletion
lie;~
1~
H
~~
,.
I* dp Ptt, 1
c.:np n~t,
!'
1~
4c~
4c1
toam~c~eck
error~te&~-;Lm~b'~''
11
18
20 It IIGXJ IJCLWDI
21
2$
......
"'
;,
3~
... -,,.
4C:t """~I
I* DdaraUQrt for tl\e n.evic:e eonUnrUoll Tbh *I
4d 1
2
2
21
2i
30
31
,a
ext entrYI
to~
11
aa
23
28
1972,
I* nGmber of 4evtQ *I
1 '''~c na~ *I
,
It I\I!.Jie Qf PhYhd flbalnt' 11\4 G%0C:: *I
1 t;%QC:: number ct t._b hv'-C,! 1
1 ,,. channe~ nu~-r of th&l tevice *I
1 Olf ~f 4~rect c~aant1 *I
1, , ,
*I
3~
3~
n
31
3i
4Q
It
JEG~If
,.,
114
~~~
""
11S
II
117
Ill
IIC~~DI
~ Ch,nne~
tel
cat_te;S ext
een~
f!Je4 b1a,
51
sa
2 JJafeP p!r,
52
5~
5~
56
3 4evtab {200),
(3
ce~no
xa,erface
fto4g~e
*I
al~;ne4,
~~~
SQ
~~~ GXO~
bit (18),
(2~),
4ct_n3..,.aU bU ( 11ll
6Q
4cV-~1t.4en ~tt
64
stat~l ~it
57
5.
51
61
6~
6q
(1~),
(10),
6~
611
3 pa4
67
bit (1),
l.iQ
70
71
~ 4lt~cHan
69
73
,'15..
1J
bit
(1)
f1xe4
~in
(10),
H
.,.
'7(1
80
11
u
........
......
86
81
99
91
:J
:a
,.
90
4d
ao~
tp
Pttl
1 4t.,atrr b C4P)
ca
a ta4-a
(111
~&t c1o1~
,,,,
0 )) uaUtntU.
I liP ;,CIVO ~ ~ ~t I
2 Ur.,.tlllll bU
100
l~;ne4,
aa ,.,_u'tl.n
ut t 1a >,
~~t.s 1 t c1o>,
aa ''"
us ,,,;
l~ltt.lot b~t
I*
1
I*
I*
I*
I*
I*
I*
I*
I*
I*
I*
I*
I*
1
free~
~-:.~
. -~
yet aJloqate4 *I
offe~
*I
~tem
in
stat~ q~eue
'I
ina,x pointinG to en4 of tatua queue *I
'I
*I
*I
OJ if status lost *I
'I
on
tf
d~rect c~anne~
*I
I* *I
I* vuess again *1
I* inaex pointinv tt ~~a of fret statu q;eue I
I* lt,tUI queue OYirlloV couat I
/I*
'''''' tueut *I
1 rr to ohante "''~tth of oat. oa
I* ha~t~or bea4er:f rot ablnt th1a
1 po,atr to '''' tatrJ *I
1 ~,tab" ~trr ~irat,oi 1
I
*I
.....
*I
~0)
10i
10i
(4evx));
ta~l ioa~.check(tevx,code)J
/* see
1f aew~ce aau1gned to th1a progess *I
1*
La not, so report error */
roo4e ~ error~t~b~e~$4ev_nt.na;
10$
,0
107
,o,
10!1
,,,,,,
111
,,
,,~
tnU
11i
121
........
00
4evnaM oaar
aoti lla'
1l!t
13~
13
t~h
*I
tc:o&e "' o;
fl\4)
I no
matc~el
'cole
1et
lllftdl
oomp~a~at
*I
~ error.t~b'~t9l111~14r91
tetUrnl
131
'"0
c,,,,
137,
13!1
I* Oevio na111t *I
1 4tvia 1na fro DCt */
C*)~
bln
121
;;,
';n
uHa
reun;
11
12,
13
't
tn4J
11a
~u
a44~(cat_aet$,4evtab
rtt11rn1
HO
11l
1:!0
121
12a
1U
o;
rc~ae
4p
~0
VA~4AB~!$
LOC
lD:UTIFl;U
. . .,.
VUUDLIS DICLAIIP
o.U.;;Iln
;c::tu
exUil~
(!QtQO
~cano
bUU
pi.~amttu
OQ61ij~ aUtQIIIt~O
ec::tt
coae
OQ0036
ac;t.,.sen
extern~
txUJ'nd
4Q.V.,.Ust~1ea
aev..,,~lllt.,l.ll
ltlt1e
q::v,..ul.,.aU
~.~,
-ntu
at'l.,.naa~
ann
.,...a
onoH
....
iaramur
b.....
extend staUe
4i.rtl~..lhU
4P
'
parit~~etil!r
.u.,.x
ext111rna; UaUe
..... lft4J
errer.tab1e_S4eY.ftt.taana
0000~2 externa~
error.ta~t1e_,illll.,ba41n
otoo~a txterna~
trror.ttb1-tlm.,O-te
ltltio
'''tlc
exttrnat
~~~110
~rna~
loli.Pht~k
ltft~G
ltatlQ
ft4tl
oTetf~ov
'''
rna~
ttati;
ttitie
extern~ lt,t1o
batl
Pl4
; ,
ezterna~ stat1~
~rna~ 1tat~o
externa~ atatlo
PhfG~I
PhJI.Aal
rCQie
para111eter
extern~
,,,,p
t.b
ltt.q
extern~
ltatio
ltatio
externa~ tat1~
t.x
ltat.x
extern static
base4
extern ltatic
baae4
,,,,,._6oat
tt"'-lost
D!CLli.D If
chts~tatv1ce.1n4ex
---- ----
b~tO~l
PQ.. ftttr
fhU Un(l'7,0).
stnoture
bUt 1& I
hne;
l~r~z~t~
000022
nAAn~a
COITIT,
~ink
ta~
re(ernee
~.~-~~
tn4 he ,a,ol.
~~
ten
tn,
.,~,c;,
POll\tfr
b~t(101
b~t
4cl
&~i;nea
4cl 78
1 ~nd 4~' 78
8 rtf 111 112 117
~eve~
arrar
~1 ~ Ql\l~li~ ~c1
"t;"''
8 ret 108
lve~ 2
del
del 10
11~
~c
10' 106
love~ 1 al~ini4 4c1 J1
del 125 ref 130 1~1 1~2
arr~Y
11
arr&Y
1ev~1 ~
1tt~l
~1
2
2
$-~nal~enea
~~~~~vno4
Ul$~1ine4
'78
del 93
del
9~
~nllitnMI
arr~r
c::tlar
11
~eve~
AJP lll!IJJCB$
del '78
4c1 78
atnihn'
lltriJctllfG~
4h..,.thn
tr,,_.
a~s.ncac.,ol
atnotQre
U.~t4 11lnCl8,0J
bh c '~)
JUlllltUr
eterna~ stt1e
a~r.aha
eVeDt
Uxt4
l!t&'VQtiiU
cJ>nUi.l)
'
lCtJtBU~ES
DUA 'UU
oooo'o
4tvUb
411
li!tt!. tie
bUU
ac;v..,nl..,...44
VAI~AILIS
sta Ue
Pnameu~
4CtlC
Q~ASS
~T tlc~AJI ITAflftiJT,
~una~ lltatlc;
~.t
..
S~OIAGI
oo,
f~Jt4 llbO'Ol
l',
tel 16 rei
,o.,
rt
tl~
UnC3'7,01
tat 16
JJl"ncc ,,otU
entrr
U.xtl Un0'7 ,o
bU(U
t~xtt
Uut
bt &I
fbtl
~tbc o,o~
,o~
~'
unc a.u
btl
J:lt.nc
b~tc;;
btt',
f xt4 bhOZ,o~
c)lar C:ta)
t~:ictl ~b07,o~
polntu
bU(;J)
c;o;
t~h
~un)
blt ( ,
entn
allt.rv
~ittl
a lltnee 4ol 18
~1
a ~ivata
~vel
1rl
a uaa~liaea
4c1 $1
'e
acl 93
extern~ 1rfe4uct~'e
external lrre4uc
~l
ref 2
rti 122
10~
.........
......
.........
......
......
.......
4111111
aar::
aaa
""'""""
aaa
...........
.......
000
uuu
,,,
..........
~ac:
c:a.a
............
t I'
.........
...........
"04..t..t
:I':IJ::S
AA.Q
...
......
0
&4
"''
lit
H
&4
K
lil
&4
..
.....
0
.a
A
..
-...
lit
A
...
..
.C
..
N ......
. , .
-~.c~
>
AA
120
..
....
..
..
'ISGIIPIOI %ftAGII
OOOQOO
0000180000, ..
OQ0001
COJf'rU'I
oooo uooeoa 1
oooooa aa
OOOOOfOOflOOO
!'l;X!D
OQOQO~
OOOOOt000001
OOOOOtOOOO;U
ruED
00000?0001,0
run
00000f000002
.,.,,7717Uno
!'IUD
OOOOOil
000005
oooooo
000007
UXZ:D
UXJD
H'l77!09oou !'XXID
000010
OQ000,00$000
090011
IIGIJ JIOCIDVII G~eC,f4tY~ee_in4ex
lltlt tO ohtt~tttY1cfi~aax
000013 1-J 1JO - I 11l3 e~c
oooo~ ii 041l ,._ 11l&
-4
OOOQ,~ a~ ~-- 1$1 !ll~ ~-~ viet
oooos ~,, ,., 45' 11lll _in4
oooo1t ai ~~$ ,,o ioo ooo
oooo1' ai - ooooooooooaa
OOOQ20 aa
oOtOOQOO~OOO
....,.,
.....
....
:i:iU ..
.......
....
.... ooou~
.... oooo~
.... 00002~
oooua
oooou
O~OQ~a
6 OQ11f6 1501 20
--
oooooot~ooo
0000~,
OQO $0
L~ll
I"'
ooua
000001
oooooo
0 0 u
OOOQU ti toool"
,. 000 0
oooon
OOOQ~O
a oooh
0009~,
oo1u
OOOQitZ
i oo;$
OOOOIIS
oo;H
6 00111l
00001ll4
000011~
6 00102
00001l6 a a 6 00,113
6 OO,Oil
000011'7
777no
OQOO~O
6 00106
00005,
0000!!.2
aa
77772;
n11
JUO
no
1101
1511
"~'
au'
Ut1
'571
IU1
15~1
IU1
!152,
suo
2521
!s:ao
ao
oo
oa
ao
72
oo
oo
oo
ao
20
00
oo
00
oc.
00
Oil
tis6
.,,
Ub~J
1it~4,
Uq
tPIU
IIIC7
tq
.,
000913
0000
oooo i
0009-.
ooot 6
000917
oootao
0001
1411
cl
nxa
b
'-~Ph
UPbt
_.,,,
Uaq
.,.q
112
"''o~
a,u
"' ,o~
PI10a,
,,,,,,.
lll,lftiJr ' OJ
~ZJI
10$
lt.llftJit 1 OJ
~ZII
'Oil
, OJ
~;IE
10~
o,,~
IPIS6t*
U1Ut*2
liP I~
PI po
UJ110
,pJ78,*
ltA~Bft5Jt
eapl)p
atPtiP
niH*
IPI~6
appn
atPtiJ
eant
.. ~o,s.c;:
ooevoo w oooo,aoooo,,.
ll1,1C
ooovo1 - oooo,aooooa,
eut~P
atP~J
eaDbD
I!IPI~B
apJ'10
IUIHU
ooo1o nn oo
ooo;,,. ueo oo
.. ooou n21 ao
7t000.090012
6 ootu 1311 oo
6 00,~6 f$71 00
oooooa
o'
00,50 561 00
ooo:u
ooo a;
IIAtlftiJf 1 01
......
uu
i:1111tc
hi
'"
oct
Ct(lt
II'! 102*
liP J1
,.,.,,
uuoe
))p!J
niiJOt
ooooao
rttan
ntna
7UU1a'71tltl7
ta15U1?1tat7
,
oooou
ooor~n
000054
000!17
000 ~0
0000t1
""'
.....
...
II&
oooro
000 .,,
oooo1a
oqovn
000071J
000015
000016
00007'7
~00,00
to')
00201
000102
000103
000101+
OOOJO$
OOOJOO
000,01
OOOJ'O
..
..
....
..
..
..
..
Ill
at+
oo6~~'
000,~6
,.,
..p:J.p
'"'''
..
.,,~
1PI~6,
ll5,1c
0 OOU1 t10 00
tra
apiiiO?
f 001111 IU1 20
taPliP
1ft
a ooooo
,,.,
n ao ,,.
tu' oo .,.
t oo~u
ooou no1 ao
II 000,0 Ut, 20
oo~u 7561 ao
11111 o ano 011
6 oo~2o "'' ao
0 OOU1
7~0~
6 00112
00
1130 06
00
~~~1
oooooo
a, 00000
ooooo uu 00
oo
t 00151J 3U1 oo
6 OO,Sil Ut! 00
t oo;:eo
ao
ss'
'n'
,.$
lla
II. OOQ,iUl
uu
Ua~ ao
001~6
75?1 00
a 6 oo,so
oo
76tootoooo1o
ooao ,,,, 6o
aa
t;u
"" ;o~,
..
OOOJ~'7 ~. u
~to~"o
ooo,~1
1tf1c
.,,
(lllpq
l.hq
'$ ,..
ooo
""'
tU
000 "
000113 0 00631 1101 00
lltlf TO 4ev~~e.fta .
000~,~ '!!
166 151
OOOJ'II aa '!J 1'5 ''' 1$6
000
1 155 , .. s 000
000,16 aa
00fQ0000001~
OQ0,11 ta
60000900tOOO
ooooo,ooeooo
0.00130
ooo1a1
000160 8210 00
OOOU2
00011!1
00
ooola~
UblP
u1a2,
40ifr11
UIIJ02
ubP
000001 Uf;O 01
156~
00,~4 ~~6~ a~
''"
ltiP"P
IP lfOi
IPI'PI,
lipJO,t
.,,,.
n
OOIV70
ltltllll! 1 OJ L%11 107
~%11
109
ltl,lftll! ' OJ
~Ill
11'
retun
,,~.c;
'"'"'
.,lh
1PI34,t
Uaq
..ot,t.c
ooe:oJ
Ita lftllt
1 OJ
~lll
11S
ltAIIlllt 1 OJ
~XII
111
,,,,o~,
IPtfO,
""
'~~'~
u.
Oid
'''"
,.,,.,
.,.,,
u11. ut ou
apt~JO?
ooe,,o
71777'7000011~-
. .tlb)
~PIO
ltPIIP
blt!O
IPI101
""
'"'
apl40?
Utq
, ,
,,,:o
apt_ o,
Cllo.J'
..
112
76
tstlbp
1PI~6,
Uaq
tt;aq
., 1,o~
Ut
fl.J
2,4q
spJ80
1,U,
!~H~! -
StlflftiJt 1 OJ
r:eun
nanaJJt
~Ill
111
o un 1a2
----+..
OOOU3
0001311
0005.35
000136
ooo;n
00011i0
0001111
ooo1112
ooo;cu
00011111
ooo;"s
000llll5
0003117
000150
ooo;,,
000,52
000,53
000,~~
000155
OOOJ$15
000l57
0003110
OOOJ6'
0001f2
000,.3
..,.OOOj~CI
N0Q0tf5
"'OOOU6
OOOJ67
ooo
70
OOOJ'71
ooona
0001'7~
OQ0,'71f
000!15
....
..
11a
lie
..
..
....
,..
..
6 001114 'J5151 00
~q
liP l 100
6 001116 uo,
~0
IIill
11PI102,*
6 000111+
li oooU
6 00~52
000001
6 00,16
6 00,.'16
6 00,5~
000002
0000211
20
20
00
0'7
20
20
00
Oil
eap).p
Pt36,*
Ut3o,
liP I ,o~
1,u
spt78,*
sp pa,
sp 1,o~
2,1c;
20,1c
1'70'
U61
'7561
,300
'1561
2361
!161
11000
11050
Oli
6 001114
000011
000777
oooooo
6 00,16
000023
000000
oooo11o
6 OOOIUI
II 000315
2 777511
o oo~u
U11 00
7320 00
5760 07
e:no 06
~361 20
90.0 0'7
3220 06
:aao o7
5'101 20
5521 '13
S$21 00
17~1 oo
6. OO,Illi U61 oo
6. 00,11 $521 20
0 00~,0 67Q1 00
000002 11010 011
0 00~~1 '1101 oo
lh
llioq
3,4q
stq
14q
CIIIPq
tze
tpl,
lhq
qrs
uq
eax7
;J,4q
II!Pf
IC2
lxU
UPb
~-.h
n~P
t))J.p
uu
eap))p
tllblJ
ti\Z
tn
spt76
12~
$TliiKIIT 1 01
~XJZ
130
ooo,u
oovp,
$TlfEKIIT 1 01
~~~~
1~~
,,
--~----
o,ql
spJ'78 1 *
19,41
o,,~
32 1 U
IIPIU,*
1PI~0,*2
bpJfll1~
apJ~1?
t.,.c;:sa
11Ptt6,
~92
epi~
sp 1100
tP!
;z, c:
PI~O?
-22,1c;;
6 000114 ,'701 20
11 ooo$11 U6 1 ao
00,46 '7561 20
eaplp
spf36,
Ufl
lpf~S,
liP I ,o~,
0 00631 7101 00
tra
aptiiO?
0 OOU1 lJ101 00
tfa
APII609
~hec~S4t~ce-~n4ex
~JII
o
tra
IJP riOCIDUJI
STAilftiiT 1 OJ
5' 1 ,4;1.
6 oo116 Ulf1 ao
777152 'HOO Oil
;J.dq
1PI18,*
00 167
ntnn
ooo, .. a
lfAI!ftiJf 1 01
lfAIIftiJT 1 QJ
return
~fAtlftiJf 1 OJ
retUfn
-
~%11
'Jt
~%11
1~'1
~JJI
1110
ooou
tn
t,i.a
0001'11l
0001711
1;n
.. ,,,.,1.,
000013
---
,..
del 1
It
6
7
12
13
14 co.. apna
1!i
1&
17 zfl
....
N
~
18
19
20
21
ptr1 = dpl
ptr2
addr CordJ;
call hcs_Scheck_devlce C"", dctx, coda J;
return;
and;
1 call rlng 0 1
OFFSET
code
dctx
dp
hcs_Scheck_devlce
inst
3
1
6
ptri
ptr2
10
111ord
zdataac::ode
NAHES
OECLAR~O
coaon
zf
zg
Sf EXPLICIT CONTEXT.
000030 constant
000052 constant
000011 constant
DATA TYPE
fixed blnC17,0)
fixed bin(17,0)
polnhr '
entry
structura
label
entry
entry
del 14 ref 14 20
external del 17 ref 17
external. del <1 .ref 1
builtin function
lnter~l
blt
(3&)
bit (72)
pointer
polnhr
blt l3&J
14
9 14 9
12 18
13 19
18
ref 13 11
....
N
\11
Start
Length
ExterMI
ObJ eet
0
Text
322
72
pro:ed~re
Lln"'
144
1&
Syabo~
162
126
Oafs
72
static
52
15~
calt_ext_put_desc
return
ext_entrv
zdatetcode
LINE
1.3C
9 011005
11 OIOOiU
LINE
LOC
1 000010
19 000065
LINE
LOC
12 000017
20 000071
LINE
LOC
13 000025
LINE
LOC
n oooa1o.
LINE
LOC
15 080050
LIIE
LOC
17 001051
,..,
ASSEMBLY LISTING OF
ASSEMBLED ONI
OPTIONS USEOI
ASSEMBLED BYI
ASSEMBLER CRE ATEDa
SEGMENT >user_d!r_dlr>Druld>Karger>coapllar_pool>zdata~
04/11/74 1826.1 e~t Thu
list old_ob)act old_call svabOis
ALM ~arslon 4.4, Septeabar 1973
OZ/13/74 1728.8 edt Wad
000000
000000
000010
000011
000012
000013
000014
000015
000016
000017
000020
000021
NO LITERALS
....
N
a>
000011
000000
000000
742331
&21553
z 00005
z oooo7
0 77717
000001
077777
000001
000000
00000 0
2744S 7
174267
2361 zo
7561 20
0 0004 3
00000 0
000043
000000
n-
S8!iJd8f
1
2
3
use
evan
oct
oct
oct
oct
zdata
code
J.apura
11
stq
its
0
0
742331274457
&21553174267
bpiS,
bp 17,
-1,1
12
its
-1.1
ptr2
13
14
Jo.ln
and
II ink/ .lapw-e
It
5
&
1
8
9
10
code a
~v
ldq
8GOOZ7
010030
100031
...
:;a
000004 00000 0
000001
157 144
000 000
000000
000000 000002
014 163 171 155
142 157 154 137
164 141 142 154
145 000 000 000
000017 00000 0
000037 000002
010 162 145 154
137 164 145 170
164 000 000 000
000024 00000 0
za
000011
a 0 04 143
a a 145 000
;a
000012
code
aa
sybol_table
&a
aa
Ia
Sa
&a
:;a
sa
010 162
137 154
153 000
000031
145 154
151 156
000 000
000000
rel_l ink
012 162
137 163
142 157
000000
145.154
171 155
154 000
000000
rel_syabol
NO UTERNAL NAMES
.....
aa
rel_text
000001 00000 0
000000 000000
OQOOQO{\J(\J
OQOOQCNC\J
00000000
00000000
ooooooco
00000000
....0
....
,.,~
0
lL.
000000(\JO
000000(\JO
QOOOCtOOO
QOQCICJQOO
OCtc:tQQOOO
ocooccoo
11I<IIIOIOIOIONN
"'omfftl'ftfftN"'
o.,..N,.,~ll'l-'1,.._
""'4
00000000
CCICIQQQCQ
UJ
OOQOOOOO
!,!)
OCIOCJCIQQQ
<(
OCIOOOOOO
:.::
....z..J
128
N
1)
000000
000001
000002
000003
000004
000005
00000&
000007
000010
000011
000012
000013
000014
000015
00001&
000017
000020
000021
008022
000023
000024
000025
000026
000027
000038
000031
000032
000033
000034
000035
000036
,.
118
18
,.
,.
i!
000000
240000
000000
240000
000000
141711
000000
720102
000000
000000
000000
0 00034
000000
240000
003141
037101
040126
1&3151
040064
054040
160164
142145
061071
17211t4
141040
040040
OltOOitO
Olt0040
OltOOitO
040040
OltOOitO
001001
000033
001045
000427
101452
0&7&71
1015&1
115324
000000
000002
00000 0
0 0002 2
001474
000440
154155
114115
145162
157156
056064
123145
145155
162040
0&7063
141164
OltOOitO
OltOOitD
040040
04004 0
Olt0040
04001t 0
040040
P'
vaue
11
10
12
NO FATAL ERRJRS
....
""
0
s vbo f
Source file
code
lpure
zdataa
Zdataa
zdataa
~ev
Lifle nuber
2,
&.
3t
13.
7.
APPEND I X D
131
1 zdl
proc;
It
'111
6
1 del , targ char Uc:J
10
11
12
U
14
1S
16
17
~8
:;:
N
based ctp),
,.,.ror_table_snoat-g, error_tabte_tsegt~nownt Hod bin ext,
(~de, outl, it t;:, flrst, inltstc, the_sa next_arg, offset, left, pg..,sl~e, bouncU fixed blnt
count flxec:t bln C3SJ,
f CH c:har U6t aUgned static: inlt c-6o -., -6o -. -" .. -6o -~~~ -. - ... ,,
dlita UD24J fl xed bin,
wata U0?4t blt (36) aligned based Cactc:tr Cdat~u,
overlay COIIeft-U blt (36) allgne4 based,
Ctp, da~~p, segptrJ ptr,
dl rnaae char C168),
char C32),
c:v_oc:t_check_ entry Cchar ct, fixed blnt returns (fixed o.ln C35H,
Cco-rr_, loa_t entry options cv.,.lable J.
ringO_get_tsgptr entry Cchar ct, c:nar ct, ptr, fixed bln),
hcs_ttrlnate_nonaM ent!"'f Cptr, flX.d bin),
hcs_Slnltiate entry Cchar ct, char ct, char ct, fixed bln, flxed blnt ptr, flxed bln),
Czgtzf, zg) entry Cptr, blt C36) aligned),
s. fixed bin,
dseg_worc:t bit U6J aligned based Caddr CdStgU,
cu_targ_ptr ext entry Ctl~ed bin, ptr, flx.d bin, Hxec:t blnt,
condition_ ext entry,
exp.and_path_ ext entry Cptr, fixed blnt ptr, ptr, fixed bln)J
an
19
20
Z1
22
23
24
25
26
27
28
29
3D del.: 1 dseg at igned,
31
2 pad1 bl t C19J una I,
32
2 ond blt C8J unal,
33
2 size blt Itt unal
34
2 pac:t2 bit 12) unal,
35
2 ace blt 16) unall
36
37 dc:l, save_acc bitC36t aligned,
38
Mdsegptr ptrl
39
ItO
lnl ts
01
41
datap a c:tc:tr 1c:tat a) I
42
43
call c:u_sarg_ptr 11, tp, tc, codiJI
ltlt
.If coda = error_table_snoarg 1 tc
0 then dol
ItS
call loa_ C"rzd segno/naae first co~ntt;
46
return;
47
end;
48
49
50
if targ
-n" I targ "-na" then do;
51
next _arg = 3;
52
call cu_Sarg_ptr Cnext_arg-1, tp, tc:, code);
53
i f code -= 0 then do;
pl~
~gaent 1
3 1
up the ascll tor the segent nae 1
1 not t hera 1
pi~
so
57
58
end;
go to get_name;
end;
59
......
VI
VI
66
67
if code -= 0 then ::~o to missing;
1 error in p<:tn naml! ;
call hcs_iinitiate (dirname, c'1amJ, '"' o, o, sagptr, cod;.); 1 get pcinTE:r ro sagm.nt ;
b8
if code-= 0 then if code-= .. ~ro,._tc.biE_iiegk'lown th4<n go to missing;
69
inltsw = 1;
1 must Tarminate the segmenT laTer ;
70
enJ;
71
enj;
72
73
e l~c se;~p tr
baseptr li l;
1 ~et pointer to bas"' of segmEnT 1
74
75
76
then do;
78
79
return;
end;
80
first = 0;
84
count = 10 00 0 0 0;
85
go to get _bound;
enj;
86
87
88
90
return;
end;
91
92
94
98
r~turn;
.:nj;
99
enj;
100
101
102 get _boundz
103
call ringO_get_iosegptr("" ">~dseg", >~dsegpt,., codE);
104
call zg (ptr lbaseprr (01, b<Jseno (SI!gpt~l l, dseg_wo~d); 1 get size of segment from oou'\O in SllW 1
105
if oseg_word = "O"b then do;
10&
call loa_ <"SOW = O"l;
107
ret~rn;
108
end;
109
if substr ldseg.acc, 4, 3) = "100"b tn~n ao;
110
111
call loa_ ("dZ M&ster procedu~e.
SOW=-~ .. , ds~g_wordll
60
next_ar;~
&1
&2
...
us
11&
117
118
1U
120
121
122
123
121t I O)pl
12S
12&
127
1211
129
130
131
132
133
134
us
136
137
ua
call zg(ptr(wdse~ptr, baseno(segptr)), save_acc); 1 get wired ring access and save ln sawe_acc 1
call z~Szf(ptr(wdsegptr, basenoCsegptr)), dse~_word);
1 change wired rln~ access to rln~ 0 access 1
if dseg.s!ze then pg_size =&It; else p~_slze = 1024; 1 gat page size 1
bOYnd = Cflxed Cdseg.bnd, 8) + 1Jpg_slze;
1 get words of seg..nt 1
if count > bound- first then count =
....
""
~
iltS
11t6
11t7
bo~nd-
first; elsa
!f
count
<
1 then go to bad_counfl
offset = o;
out 1 = U
bloc~
if count >= 1024 then left = 1024; else left = count; 1 ~et nuaoer of words to print In this loop 1
addr (bdata) ->overlay= ptr Csegptr, Hrst+offseU ->overlay;
1 = 1;
the_sae '"' o;
go.
,.
t 0 SlliP I
the_saH o;
139 dU ferentl
11t0 Skl pi
141
11t2
11t3
11tlt
1 = 1 + ftl
end;
outl
left
= outl
~
+ ltf
teft - It;
1SO
do t c :o: 0 to left-U
152
end;
15ft
go to check_lnit;
156 ,. .. a
157
call loa_ (f Heft), first+outi-1, data U), data U+U, data U+2));
151
end;
159 chi cllk..i n 1t a
160
call zg~zf(ptr(Mdsegptr, baseno(segpt~)), save_acc);
1 replace old ired rin~ access 1
161
i f lnitsw -,. 0 then call hcs_Sterinate_nona Csegptr, code);
162
return;
163
end;
16ft
iltl
OFFSET
DATA TYPE
bit 16)
eount
000034 constant
OOOUit autoaet ic
entry
fixed
cu_sarg_pt,.
cv_oet_cheelir..
data
000052 constant
000032 constant
000115 autotlc
entry
entry
fixed blnU7,0)
datap
d1rnaH
dHg
Qeg_word
enaaa
error_table ..lno~g
arrpr_table.,.l se SJI\.nown
002120 autoaatlc
002121t autoaatlc:
002206 autoaatlc:
based
002176 autoaat lc
000026 external static
pointer
char 1161)
struc:t~o~re
b~t U6)
Ch.. rC32J
fixed blnU7,0)
000030
000051t
000010
000101t
000044
fixed blnC17,0J
entry
char C16J
fixed b1nC17,0J
entry
del 7 rat 69
external del 1 ref &&
initial array del 7 set raf 156
del 7 sat raf 83 87 120 ~20 126 131 156
external del 7 ref 68
external del 7 ref 161
del 1 set ref 61 73 127 131 131 131 131 135 115
11t0 140 1_52 152 ..156 156 1~6
del 7 set ref ItO 70 161
external del 7 raf 45 89 97 116 111 131 133 15ft
156
.
. '
del 7 set ref 121t 125 126 126 1~.9 131 .141 11t3 1
151 156
del 1
ref 51 52 60 81 93
del 1 set ~ef 122 126 146 1~
del 7 st ref 123 131 142 1~ 156
erray del 7 set rat 126 126
laval 2 pJte~ed \maligned del 30
level 2 packed unatlgned del 30
del 1 set ref 117 117 111
external del 7 raf &It 102
del 37 set ref .115 159
del 7 set ref 63 64 65 68 73 76 104 10ft 115 115
116 116 126 159 159 161
ivi 2-, packed unaligned del 30 sat ref 117
unaligned del 7 sat ref 50 50 61 64 87 19 9St7
del 1 set rat lt3 4ft 50 50_52 61 61 &It &It ~6 11
87 87 89 89 93 94 95 95 .97 97. Ult 135 135 151 1
152
lie I 7 set ref 128 U1 133 117 137 139 154
de I 7 set ref lt3 50 50 52 61 &It 66 81 87 :89 91
97
aee
bdllta
bnd
bound
code
COli_.,.,._
exPand_path_
f
.....
"'
U1
ttr.tt
hes_S1n1thta
hcs_ataralnata_nona. .
external static
constant
internal static
autoaetlc
constant
blt (3,)
blt (8)
fixed blnU7,0)
fixed binC17,0)
~lnC35,
0)
000042 constant
000102 autoaatie
antry
fixed b.lnC17,0J
lnltsw
loa_
00010 5 autoaat lc
000036 constant
fhaa blnC17,0J
entry
laft
000111 autoutlc
fixed blnU7,Q)
naxt_arg
off sat
outl
ovarlay
pad~
Qtdl
PLSIZe
rlngG_...gat ..sse gp:tr
save_acc
sagptr
slze
targ
tc
the_....
tp
autout le
auto. .tle
autoaiitle
based
auto.atle
autoatlc
autoaat le
constant
autoaiat lc
auto11at1c
flxad blnU7,0)
flxad blnC17,U
fllcad blnU1,0J
blt C3&)
blt (19)
blt C2J
fixed blnU7,0J
an try
bltCJ&)
pointer
based.
000103 autoaat1c
bit ( :i.i
c:her
fixed blnC17,0)
000106 autoaatlc
002116 autoaat lc
flxed blnC17,0)
pointer
000107
000110
oob101
002206
0128) 002206
000112
000040
002207
002122
,7
--
--
4ft~
44~
44~
44,
4~Q
4&Q
,..
Ztl~f
00004& constant
entry
condition_
000000 constant
entry
SM
autoniltlc
thea blnU7,0)
NAMES DECI.AR:: 0 BY EXPLICIT CONTEXT.
bad_count
000736
0011t63
chec"-lnl t
different
001341
get_bound
00077 o
get_neaa
000327
001175
IOOQ
alssing
000250
0011t24
r
sklp
001342
000114
zd
externa I de I 7
lie I 7
la~el
constant
constant
constant
constant
constant
constant
constant
constant
constant
constant
de 1 63.. rat 57 63
det ~lt.,rf 54 67 69
label
label
label
la~el
la~el
label
label
label
entry
addr
126
internet r.af 63 65
buUtln function
aaeuno
bulltln
bulttln
bull U n
bull tl n
bullt1 n
bulttln
._.,ptr
Uxad
nult
ptr
substr
function
function
function
tunctlon
function
function
""""'
0>
Start
IAngth
Exttrnal
ObJ act
0
2124
pr~adu-a
Tut
0
1516
Un~
1656
56
Syabol
1734
156
Static
1&66
46
Oats
1516
140
r --
cp~cs
ea ll_axt_out_dasc
catl_axt_out
copy_Mord$
ext _entry
rpd_l oop_1.... 1P_bp
eo~~_arr_
eu_sarg_ptr
hcs_llnl tlatl
hcs_ste r alna t a_no na ae
zg
ZSJIZf
set_csa
return
cv_~et_enaek_
expand_path_
rlnSJO-iat_lsegptr
loa_
>#
error_table_S noar- 51
error_table_-sselknown
LINE
LilC
1 000113
so 00017 2
611 00.0271
&7 00041 s
78 00047 7
57 0005'1) 2
LINE
ItO
$1
61
68
79
88
I. oc
000121
000225
000273
0001t17
000527
000614
LINE
41
52
62
69
81
89
LOC
000122
000227
000325
000460
000530
000616
LINE
43
53
63
70
82
90
LOC
000124
00021t6
000327
0001t65
000545
00 0647
L.INE
44
54
64
72
83
93
I.OC
00 0143
00 0250
000331
0001tft7
000556
000650
LINE
ItS
55
65
73
...
94
LOC
00015/t
000267
000366
000470
000557
010670
LINE.
L.OC
It& 011111
57.010270
66 000372
76 0001t74
as ooos61
9S 00070/t
---i~
107
117
121t
131
139
148
156
OQ1055
00111t2
00117 5
o:o1a1
0013H
001360
0011t24
110
117
125
133
1lt 0
150
159
0010 56
001150
001203
001303
001342
001362
001463
111
118
126
131t
11t2
151
161
001062
001152
001204
001320
0 01344
001364
001501
112
120
127
135
143
152
162
001103
0011&0
001220
001321t
001345
001372
001511t
111t
120
128
136
11t4
153
00 1101t.
001167
001222
001335
00131t7
00 11t03
115 001106
122 001172
129 OU223
137D013U
11t6 001350
154 0011t05
116 UU21t
121 001173
130 _0 GU 26
ua oou,.o
1At7 '0.013!52
155 0011t23
.......,
"'
APPENDIX E
123171163101 ~!22151156
660 104162165151 to 123171163101
661 144040040040 to 14415515115G
133
1 ZPI
..
s
g
1C
11
12
13
14
15
16
17
19
20
21
22
...
""
ID
21t
25
26
27
28
29
30
!2
13
3ft
35 dc:l
36
37
39
ItO
lt1
42
It!
44
45
..,
47
ItS
4CJ
50
51
52
53
.....
I&
- - - - - ._ .__... __
..
a ........,
5&
57
58
59
60
61
62
63
&It
74
75
76
77
78
79
.....
cf lrst
65
66
67
68
69
70
71
72
"'0 "
segptr
ptr Csegptr, first);
sciMP
ptr Cbaseptr co), baseno CsagptrH;
return;
and;
(0))
"sa
97
98
101
1 f substr Cbuffer, it 3t -= '"yes than go to reset;
102
103
104
105
106
107 1 Now do the patches 1
101
109
sagptr -> overlay = data1p -> overlay;
110
rJI
..
h:ac::ant'lllc:all"''ni-r-l) ...
c:::u
ar,..l!
word to <Wep ) 1
...c
...~
............
............
11\IDP...,
141
,..
NA1ES DECLARED IN THIS COfPILATION.
IDENTifiER
OFFSET
....
+!"
N
DATA TYPE
bJ.t l&)
char (1Ei)
Uxecl blnU7,Q)
fixed binU7,01
entry
entry
entry
flxed bln(35,0)
Uxect b.LnU7,0!
pointer
pointer
a~o~toaatlc
external static: fixed binU7,0)
Unci b lnU7,0)
autoutlc
autoutJ.c
filcect blnU7,ot
based
autoHt lc
autoaat ic
1nterna I static
constant
constant
constant
a~o~toaat ic
Internal static
a_utoHHc
1oe_lnnf
ln_tread-1) t'"
overlay
rlngO_get_ssagptl"
save_aec
Sdafp
segptr
'"-
000172 constant
000174 constant
00017& constant
bas eel
000170 constant
0002&1t auto.. tie
000010 lnterna,J static
000012 internal static:
entry
entry
entry
blt (3)
entry
fixed blnC35,0)
pointer
pointer
targ
te
baseel
000102 autout.le
char
Uxed blnC17,0)
tp
000252
000104
00020 0
000202
Pointer
pointer
entry
entry
Cieegptr
Zg
Zgllf
auto. .tle
autotle
conshnt
constant
dlrna
autoutic
eharU68)
eM
autoatlc:
charC32)
ATTRISUTES AND
REFERENC~S
99 JOO
69 75 80 95
86 91) 9Ct 9J IS 9J
unl!.llQ~ned del 7
unaligned del 7
error_tab.e_lsa~own
XPand_path_
gat_proeess_l ct_
pad
processld
sdlt
sw
external static:
00000 0 constant
00000 0 constant
based
autoutlc
based
autoHt lc
endarg
GGG&35
000555
lOOP
000132
HSS
reset
000770
Zl)
00007 2
constant
conshnt
constant
constant
constant
addr
ba!lni!l
Uxed blnU7,0)
entry
entry
blt (30)
blt (36)
stl"ucture
flud binU7,0)
de 1 7
external del 7
external del 7
dc.J 7
level 1 packed de I 31
clc 1 7
:~bel
dee 9C ,ref 87 90
label
label
label
entry
builtin function
bul I t1 n funetl on
internal ref 37 66 67 99 99
nuu
1Dternal ref ~7 ~9
internal ref 59 60 79 79
internal ref 7~ 101
buliUn functlon
builtin function
bull t1 n functl on
ptr
substr
ao ao
113 111
ObJ act
0
152&
Text
Llnk
1130
20&
1012
2ft~
Syabo I
Oafs
Static:
133&
156
1012
116
111t0
176
r_e_as
call_axt_out_desc
ca ll_ext_out
return
rpd_toop_1_1,_bp
axt_antry
c:opy_Mords
loa~
cv_oct_chec~
rln~O_get_ssagpt
zg
zgUf
.,.,.or_tablaJ noar g
'
.....
\10
LINE
LJC
LINE
LOC
LINE
LOC
LINE
1
ItS
53
61
71t
000071
000150
000302
37
lt6
Sit
66
75
86
9ft
109
000077
000202
000303
000ft30
0001t72
000556
00061t7
000760
38
lt7
56
67
76
87
95
113
000101
000201t
000310
000ft32
000513
0.00573
000656
000770
ItO
...
57
il
71
aa
96
11&
000~02
Of01t66
as oaosss
93 00061t1
101 0017ilt
&.OC
000103
000207.
000327.
0001t35
OQI511t
ooo6o~
000713
001010
LINE
LOC
lt1 000121
lt9
58
69
79
89
98
OOD21t3
00031t0
OOOitlt5
000517
00 0631t
00 0715
LINE
LOC
LINE
LOC
lt2 OD01U
so 001251
59 000366
70 0001tlt7
lt3 11Uit7
90 081635
92 OOOiltO
100 001751
eo ooosn
99 001732
51.000311
&0 .001372
71 0001t65
"-08fU3
APPH!D I X F
144
1 get a
Pt"oc;
3
It 1 Entr-y point to
5
&
1
8
9
10
11
12
13
14
15
16
17
18
19
zo
21
22
23
~
Zit
25
,.. Zi
V1
27
28
29
30
31
32
33 erSit
35
36
37
38
39
ItO er"' or 1
lt1
42
43
ltlt
lt5
It&
47
48
49
so
51
52
del
cu_sarg_ptr ent,.., (flxed bin, ptr, fixed bln, fixed Dln),
expand_path_ entry (ptr, flxed bln, ptr, ptr, flxed blnt,
co~rr_ entry OPtions (variable),
hcs_Sstat us_ long entry (char c. char c>, f ixad bln U, ptr, ptr, fixed bin),
hcs_Sset_dates entry lchar ca, char cJ, ptr, fixed bin;
del
argp ptr,
arg I f lxe d b!n,
code flxe d bin,
cUr char C168) lnt static inlt ('" .. ,,
entry char UZ int static inlt ('" ..,_,
arg char Cargl) based Cargp,
bp ptr;
del
1 tiae aligned internal static,
2 (dtea, dtd, dtu, dta) bit (36) unaligned;
del
1 branch a Ugned,
2 (type bit 12), nnaaes bit 116), nrp bit (18), dt bit Ui), dtu bit U&), aode bit CSh :padding
b lt U3), recordS b 1t I 18), dtcl bit 136J, cltea bit 136), acct blt C36), cur,len bit 112), bltcnt
bit (21th did bit (It), adid bit lit), copySit bit (1), pad2 bit 19), n.bs (012) bit (6), uicl blt (36)
J una I;
cau cu_Sarg_ptr u, argp, argl, code);
1 get r-elative Pathnaae fro coa . .nd lina 1
if code-= 0 then
do;
ca It coa_err_ (code, get .. n
return;
end;
lf code-= 0 then
do;
call coa_err_ (code, .. get .. , arg;
return;
end;
bp = addr- I branch) ;
cal I hcs_sstatus_,long I dirt entry, 1, bp, null
if code-= G tt,.,., go to arror;
t1ae.dtea
branchodtea;
tlme.dtd = branchodtd;
tlaeodtu = branchodtu;
t1aeodtm
bran~odta;
return;
---
P'
-~
5&
57 1 Entr-y to~ the dates on a seg111ent to the values 3t the U11e of the .lll.l, call 1
58
call hcs_Sset_detes (dlr, entry, addr (tllle), code); 1 set the dates 1
59
60
1 f code -= o then go to errU
en a;
61
.....
.&:"
en
OFFSET
5
dteJi
000012 internet st~t!c
<ate~
3
000012 internal static
dt&.
!100106 auto.Eatlc
Gti!.
1
2
000012 internal static
GhL
2
000106 autontlc
dtu..
0000&2 lnternat static
entrv
00010 2 constant
exe&end.J>~Ittt_
..... hcs_esot_deta s
000110 constant
000106 constant
!; hcs_Sshtl.!s~l ong
10 (0 It) 110010 6 autontl c
lldid
3
000106 autoaetlc
tllfd$
10(18) 000106 autoaatic
nbs.
0 (I) 2) 000106 auto.. tlc
nt'lallG$
0(18) 000106 autoaatlc
nrp.
10(09) 000106 autontlc
peetZ
3(05) 000106 autontic
padding
3(18) 000106 auto11at1c
records
000012 lnter.nal statlc
u
type
000106 auto.. tlc
000106 autoaatlc
uld
11
NAMES DECLARE 0 B'f EXPLICIT CONTEXT
err1
000041
error
000106
get
000013
set
000221
constant
constant
constant
constant
aGdr
nuft
DATA TYPE
bl t (36)
char
fliCed blnUt,oJ
pointer
bit C21t)
pointer
st,.ucture
flxed blnU7,0)
entry
bJ.t (1)
entry
bit (12)
bit
(It)
cner U.&S)
blt 136)
blt
u&
bU C3&)
bit
U6~
blt (36)
blt(3&)
bit (~6)
b1t(36)
charC32J
entry
entry
entry
blt (It)
blt(5)
blt (6)
blt (16)
blt uu
blt
(9)
bit (13)
blt (1U
Stl"ucture
bit (2)
blt
(3&)
ObJect
Text
0
260
&32
Link
350
112
Sy11bo I
4&2
136
Oats
260
&7
label
label
entry
entry
de 1 n ref 33 60
exterl'!a 1 de. I 54 r f 54
!~t~rna!
Start
Length
Static
3&0
102
ref 37 37 37 37 ltlt 59 59
~-
o.
--~-11,
--
c:all_axt_out_dasc
THE
FOLLOWIN~
call_axt_out
return
axt_antry
c:o-rr_
hc:s_astatus_long
cu_sarg_ptr
hcs_aset_dates
axpand_path_
LINE
LOC
1 000012
~0 00010 6
50 000213
....
.&.
00>
LINE
LOC
30 000020
42 0001U
51 000215
LINE
LOC
31 OOOU7
44 000142
52 000217
LINE
LOC
33 00 0 041
ItS 0001~
54 000220
UNE;
L,oc
:ss oooq,o
LOC
LIN
LOC
37 008061
000201t
59 00 0.226
,.. 011206
nou
~ ;8ft0211
60 000255
6t. :tai2S7
LINE
~6
GLOSSARY
Access
"The ability and the means to approach, communicate
wl th (input to or receive output from), or otherwise
make use of any material or component in an ADP
System." <DOD73>
Access Control List (ACL)
"An access control
list (Af'L) descrihes the i'lccP.ss
attributes associated with a particular se~ment. The
ACL is a list of user identifications and r~spective
access attributes.
It is kept in the directory that
catalogs the segment." <HIS73>
Active Segment Table CAST)
The AST contains an entry for every active segment in
the system. A segment is "active" if its paf:e table
is In core. The AST Is managed with least recently
used algorithm.
Argument Validation
On calls to inner-ring (more privileged) procedures,
argument validation Is performed to ensure that the
caller indeed had access to the arguments that have
been
passed
to
ensure that the cal led, more
privileged procedure does not un\'littlngly access the
arguments improperly.
Arrest
"The discovery of user .1ctivi ty not necessary to thP.
normal processing of data which might lead to a
violation of system security and force termination of
the activity." <DOD73>
149
Breach
"The successful and repeatable defeat of security
controls wl thor without an arrest, which if carried
to consummation, could result In a penetration of the
system. Examples of breaches are:
a. Operation of user code In master mode;
b. Unauthorized acquisition of I.D. password or file
access passwords; and
c.
Accession to a file without using prescribed
operating system mechanisms." <DOD73>
Call Limiter
The call 1 imi ter Is a hardware fpature of the HIS
6180 which
restricts calls to~ ~ate se~ment to a
specified block of instructions (normally a transfpr
vector) at the base of the segment.
Date Time Last Modified (OTM)
The date time last modified of each
In its parent directory.
se~ment
is stored
removin~
segments
~1 od
a system reentry
crash to
syste~
~raceful
stoppin~
u 1e ( f i m)
is
the
operating
HIS 645
The Honeywell 645 Is the computer ori~inal ly desi~nerl
to run Mul tics.
It is i'l Modification of thP HIS 635
adding paging and segmentation hardware.
151
HIS 6180
The
hcs_
The gate segment hcs_ provides entry into ring 0 for
most user programs for such functions as creating anrl
deleting segments, modifyin~ ArL's, ~tc.
hphcs_
The gate segment hphcs_ provirles entry into rln~ n
for such functions as shuttin~ the syst~m rlown,
hardware reconfi gura ti on, etc.
Its
access
is
restricted to system arlmlnistration personnel.
ITS Pointer
An ITS (Indirect To Segment) Pointer is a 72-bit
pol n te r containing a segment number, word number, bit
offset, and indirect modifier.
A Multics
~L/1
aligned pointer variable is stored as an ITS pointer.
Known Segment Table (KST)
The KST is a per-process table which a ssociates
segment numbers with segment names. De ta i Is of its
organization and use may be found in Organick.
<O RG 72>
Linkage Segment
"The 1 inkar,;e segment contains certain vi tal symhol ic
data,
descriptive
information,
pointPrs,
and
instructrons that are needed fnr
thP Jinkinp- niP roc ed u res i n e a c h pro c e s s 11
<0 Rr; 72 >
152
Master Mode
When the HIS 645 processor is in master mode (as
opposeJ to slave mode), any processor instruction may
be executed and access control checkinr, is inhibited.
Multics
Mult1cs, the Multiplexed Information and Computing
Service, is the operating system for the HIS 645 and
HIS 6180 computers.
~1 u I
OS/360
OS/360 is the operating !iYStem for the IBH 360 1 ine
of
computers.
It
is
very similar to ofher
conventional operating systems anrl has no outstanrlin~
security features.
Page
Segments may be broken up into 1024 word ~locks
called pages which may be stored in non-conti~uous
locations of memory.
153
Pene t ra t Jon
"The successful and
repeatable
extraction
and
identification of recognizable information from a
protected data file or data set without any attendant
arrests." <DOD73>
Process
"A process is a locus of
control
v-Ji thin
an
instruction sequence.
That is, a process is that
abstract entity which moves through the instructions
of a procedure as the procedure is executed by a
processor." <DEN66>
Process Data Segment CPOS)
The PDS is a per-process segment which contains
various information about the process includinrr the
user identification and the ring 0 stack. The rns is
accessible only in ring 0 or in master mode.
Process lnitlizatfon Table (PIT)
The PIT is a per-process segment ~t-Jhich contains
add it Iona 1 information about the process. The PIT is
readable in rine 4 and writable only in ring 0.
Protection Rings
Protection rings form an extension to the tradi tiona!
master/slave mode relationship in which there are
eight hierarchical levels of protection numbered 0
7.
A given ring N may access rings N throu~h 7 but
may only call specific gate segments in rings 0 to
N-1.
Reference Monitor
The
reference monitor is that hCJrrlw<lre/softltJRr~"
comb i n a t i on "''h i c h r-~u s t m0 n i to r _gJ_l r e f e r en c e s h y an y
program to any data anywhere in the system to ensur0
the security rules are followed.
a. The monitor must he tamper proof.
h. The monitor must be invoked for
every
154
to he
Segment
A segment is the logical atomic unit of information
in
Multics.
Segments
have
names and uniqu~
protection attributes and may contain up to 256K
words.
Segments are directly implemented hy the HIS
645 and HIS 6180 hardware.
Segment Descriptor Word (SOW)
An srlw is a single entry tn a Descriptor Segment.
The SDW contains the ahsolute address of the pa~e
table of a segment (if one P.Xists) or an indication
that the page table does not exist. The SDW also
contains the access control information for the
segment.
Segment Loading Table (SLT)
The SLT contains a list Qf segments to be used at the
time the system is brought up. All se~ments in the
SLT come from the system tape.
signaller
"signaller is the hardcore ring privilep:ed procedure
responsible
for
signal! ing
all
fault
~nd
Interrupt-produced errors. 11 <SPS73>
S 1ave
~1ode
155
156